Não estou familiarizado com o lxc , mas experimente os seguintes comandos:
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
# chmod 666 /dev/net/tun
Estou tentando configurar um servidor openvpn dentro de um convidado lxc. No entanto, parece que não há dispositivo tun disponível no recipiente.
Iniciar o openvpn dentro do contêiner me dá este erro:
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
Na configuração dos meus contêineres, vejo o seguinte:
#tun
lxc.cgroup.devices.allow = c 10:200 rwm
Eu suponho que esses dispositivos tun habilitados para o contêiner, mas modprobe tun me dá outro erro:
FATAL: Could not load /lib/modules/3.2.0-30-generic/modules.dep: No such file or directory
Estou assumindo que estou perdendo alguma permissão ou algo no meu contêiner. Alguém pode me dizer o que é isso?
Não estou familiarizado com o lxc , mas experimente os seguintes comandos:
# mkdir /dev/net
# mknod /dev/net/tun c 10 200
# chmod 666 /dev/net/tun
As respostas acima não funcionam agora com as versões atuais de lxc
. A criação manual de um dispositivo de caracteres com mknod
não tem efeito - o dispositivo não fica visível dentro do contêiner. O uso da funcionalidade autodev
em lxc
é obrigatório.
systemd
, consulte Configuração do LXC no Arch Linux
Wiki para OpenVPN em contêineres Linux . systemd
) eu uso: 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"
O pedido é importante - o deny
deve ser o primeiro.
Além da resposta de quanta. Certifique-se também de ter esta linha na configuração lxc:
mknod /dev/net/tun c 10 200
Esta é a sintaxe correta:
#tun
lxc.cgroup.devices.allow = c 10:200 rwm