Nessun dispositivo tun nel guest lxc per openvpn


17

Sto cercando di configurare un server openvpn all'interno di un guest lxc. Tuttavia, sembra che non ci sia un dispositivo tun disponibile nel contenitore.

L'avvio di openvpn all'interno del contenitore mi dà questo errore:

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

Nella mia configurazione dei contenitori, vedo quanto segue:

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

Suppongo che questo abbia abilitato i dispositivi tun per il container, ma modprobe tun mi dà un altro errore:

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

Presumo che mi manchi qualche permesso o qualcosa nel mio contenitore. Qualcuno può dirmi di cosa si tratta?


Esiste /dev/net?
quanti

No, / dev / net non esiste neanche.
Lawrence,

Risposte:


17

Non ho familiarità con lxc , ma prova i seguenti comandi:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun

3
e in lxc config la seguente riga: lxc.cgroup.devices.allow = c 10: 200 rwm
apagr

@apagr Non funziona più su Ubuntu 14.04 ...
Adam Ryczkowski il

1
Funziona con lxc chiavi in ​​mano openvpn su proxmox 4.3
incorporato il

6

Le risposte sopra non funzionano ora con le versioni attuali di lxc. La creazione manuale di un dispositivo a caratteri con mknodnon ha alcun effetto: il dispositivo non è visibile all'interno del contenitore. È richiesto l'uso della autodevfunzionalità in 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"

L'ordine è importante: denydeve essere il primo.


3

Oltre alla risposta di Quanta. Assicurati anche di avere questa linea nella configurazione di lxc:

mknod / dev / net / tun c 10 200

Questa è la sintassi giusta:

#tun
lxc.cgroup.devices.allow = c 10:200 rwm
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.