Cómo habilitar tun en contenedores proxmox

Cómo usar TUN/TAP en contenedores Proxmox y solucionar el error Resource temporarily unavailable (errno=11)

Proxmox es un sistema de virtualización de código abierto que se ha convertido en uno de los principales a la hora de virtualizar servidores, y ahora ordenadores domésticos (como en mi caso con passthrough). El problema, es que saber cómo habilitar tun o tap en proxmox para los contenedores, y luego también solucionar los problemas que casi seguro vas a encontrar.

Pero bueno, como yo ya he pasado por eso por la última instalación que he hecho, simplemente te lo dejo aquí para que lo tuyo sea como un suspiro. De todas formas, si en algún paso tienes problemas simplemente déjame un comentario y te echo un cable para solucionarlo.

Cómo activar TUN/TAP en contenedores Proxmox (openVZ)

En la mayoría de tutoriales que te encuentras por ahí hay algunas instrucciones que no funcionan, sobretodo si usas la última versión. En este caso, lo he probado en Proxmox 5 y Proxmox 6 sin problemas en instalaciones limpias.

Si tienes la solución para versiones anteriores, o lo has probado y también funciona dímelo y lo pongo en la lista de compatibles. También ten en cuenta que Proxmox está diseñado para funcionar sobre Debian, de hecho es la distribución que ellos ofrecen con el instalador.

Para habilitar TUN y TAP en un contenedor, el host tiene que dar permisos, ya que en producción no deberías ejecutar contenedores sin privilegios por seguridad. Como seguramente el tuyo no los tiene y por eso no te funciona (unprivileged).

Deberías añadir esta línea como todos comentan en la configuración:

lxc.cgroup.devices.allow: c 10:200 rwm

El problema, es que no suele funcionar, y eso es porque si estás usando lxc tienes que hacer otra cosa.

Léete también  Configurar tarjeta de red en Debian / Centos de forma estática [Solucionado]

Abre proxmox, o conéctate por ssh y para el contenedor a modificar:

pct stop <id_contenedor>

Ahora edita el archivo de configuración:

nano /etc/pve/lxc/<id_contenedor>.conf

o

vim /etc/pve/lxc/<id_contenedor>.conf

Vete a la última línea, y añade una nueva con:

lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file

Guarda y pon en marcha de nuevo el contenedor. Desde aquí te debería dejar crear la nueva conexión de red para la vpn dentro del contenedor.

Cómo solucionar el error Resource temporarily unavailable (errno=11)

Ahora bien, es posible que cuando estés dentro del contenedor, y vayas a ejecutar openvpn, te suelte este error:

daemon() failed or unsupported: Resource temporarily unavailable (errno=11)

Si es así tienes que hacer un pequeño cambio en el servicio de openvpn, edita este archivo:

vim /lib/systemd/system/[email protected]

Y en la línea del limit nproc descoméntala:

#LimitNPROC=10

cambialo por

LimitNPROC=10

Guarda, cierra y ejecuta el siguiente comando para recargar los servicios:

systemctl daemon-reload

Ahora cuando lo vuelvas a ejecutar debería ponerse directamente en marcha sin soltar ningún error.

Si estás teniendo otros problemas deja un comentario y te echaré un cable para solucionarlos.

¿Usas proxmox para virtualizar? ¿Qué tipo de servicios tienes virtualizados? Comenta y comparte.


AYUDANOS a poder seguir dando respuestas. Te podemos echar una mano y tú también a nosotros, símplemente dale a me gusta.