Ningún dispositivo tun en lxc guest para openvpn

17

Estoy tratando de configurar un servidor openvpn dentro de un invitado lxc. Sin embargo, parece que no hay ningún dispositivo tun disponible en el contenedor.

Iniciar openvpn dentro del contenedor me da este error:

Tue Sep 18 13:04:18 2012 Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Tue Sep 18 13:04:18 2012 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Sep 18 13:04:18 2012 /sbin/ifconfig  10.6.0.1 pointopoint 10.6.0.2 mtu 1500
SIOCSIFADDR: No such device
: ERROR while getting interface flags: No such device
SIOCSIFDSTADDR: No such device
: ERROR while getting interface flags: No such device
SIOCSIFMTU: No such device
Tue Sep 18 13:04:18 2012 Linux ifconfig failed: external program exited with error status: 1
Tue Sep 18 13:04:18 2012 Exiting

En mi configuración de contenedores, veo lo siguiente:

#tun
lxc.cgroup.devices.allow = c 10:200 rwm

Supongo que esto habilitó dispositivos tun para el contenedor, pero modprobe tun me da otro error:

FATAL: Could not load /lib/modules/3.2.0-30-generic/modules.dep: No such file or directory

Supongo que me falta algún permiso o algo en mi contenedor. ¿Alguien puede decirme qué es?

Lawrence
fuente
¿Existe /dev/net?
quanta
No, / dev / net tampoco existe.
Lawrence

Respuestas:

17

No estoy familiarizado con lxc , pero prueba los siguientes comandos:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun
quanta
fuente
3
y en lxc config la siguiente línea: lxc.cgroup.devices.allow = c 10: 200 rwm
apagr
@apagr ya no funciona en Ubuntu 14.04 ...
Adam Ryczkowski
1
Funciona con lxc llave en mano openvpn en proxmox 4.3
incrustado el
6

Las respuestas anteriores en realidad no funcionan ahora con las versiones actuales de lxc. La creación manual de un dispositivo de caracteres mknodno tiene ningún efecto: el dispositivo no es visible dentro del contenedor. Se requiere el uso de la autodevfuncionalidad en lxc.

lxc.cgroup.devices.deny = a

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

lxc.hook.autodev = sh -c "modprobe tun; cd ${LXC_ROOTFS_MOUNT}/dev; mkdir net; mknod net/tun c 10 200; chmod 0666 net/tun"

El orden es importante: denydebe ser el primero.

Stuart Cardall
fuente
3

Además de la respuesta de quanta. También asegúrese de tener esta línea en la configuración de lxc:

mknod / dev / net / tun c 10 200

Esta es la sintaxis correcta:

#tun
lxc.cgroup.devices.allow = c 10:200 rwm
A priori
fuente