Aucun périphérique tun dans lxc guest pour openvpn

17

J'essaie de mettre en place un serveur openvpn à l'intérieur d'un invité lxc. Cependant, il semble qu'aucun appareil tun ne soit disponible dans le conteneur.

Démarrer openvpn à l'intérieur du conteneur me donne cette erreur:

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

Dans ma configuration de conteneurs, je vois ce qui suit:

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

Je suppose que ce périphérique tun activé pour le conteneur, mais tun modprobe me donne une autre erreur:

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

Je suppose que je manque une autorisation ou quelque chose dans mon conteneur. Quelqu'un peut-il me dire ce que c'est?

Lawrence
la source
/dev/netExiste- t- il?
quanta
Non, / dev / net n'existe pas non plus.
Lawrence

Réponses:

17

Je ne connais pas lxc , mais essayez les commandes suivantes:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun
quanta
la source
3
et dans lxc config la ligne suivante: lxc.cgroup.devices.allow = c 10: 200 rwm
apagr
@apagr Ne fonctionne plus sur Ubuntu 14.04 ...
Adam Ryczkowski
1
Fonctionne avec lxc clé en main openvpn sur proxmox 4.3
intégré
6

Les réponses ci-dessus ne fonctionnent pas actuellement avec les versions actuelles de lxc. La création manuelle d'un périphérique de caractères avec mknodn'a aucun effet - le périphérique n'est pas visible à l'intérieur du conteneur. L'utilisation des autodevfonctionnalités de lxcest requise.

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"

L'ordre est important - le denydoit être le premier.

Stuart Cardall
la source
3

En plus de la réponse de quanta. Assurez-vous également que vous disposez de cette ligne dans la configuration lxc:

mknod / dev / net / tun c 10200

Voici la bonne syntaxe:

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