Este artículo explica como habilitar el uso de VPN (por ejemplo OpenVPN) mediante el módulo TUN/TAP dentro de un contenedor openVZ.
OpenVZ es usado por PROXMOX para crear contenedores por lo que os será muy útil si os solicitan esto.

Soporta TUN/TAP del Kernel


OpenVZ soporta VPN dentro de un contenedor a través del módulo TUN/TAP del kernel. Para permitir al contenedor #101 usar el módulo TUN/TAP debemos hacer lo siguiente: Asegúrate de que el módulo tun ha sido cargado previamente en el nodo principal:

 lsmod|grep tun

Si no está ahí, usa el siguiente comando para cargar dicho módulo:

 modprobe tun

Para asegurarnos que el módulo tun se cargará automáticamente en cada reinicio también a /etc/modules.conf (en RHEL mira /etc/sysconfig/modules/directory

Concesión de un contenedor de acceso a TUN/TAP


Permite al contendor usar el módulo tun/tap lanzando los siguientes comandos en el host:

CTID=101

vzctl set $CTID --devnodes net/tun:rw --save

vzctl set $CTID --devices c:10:200:rw --save

vzctl set $CTID --capability net_admin:on --save

vzctl exec $CTID mkdir -p /dev/net

vzctl exec $CTID mknod /dev/net/tun c 10 200
vzctl exec $CTID chmod 600 /dev/net/tun

Configurar VPN dentro del contenedor


Después de que hayamos completa todos los pasos anteriores podremos usar el software VPN con TUN/TAP dentro de la máquina virtual como en la propia máquina.