Come posso consentire / dev / net / Tun in un contenitore LXC gestito da LXD?


9

Sto cercando di far funzionare Openvpn all'interno di un contenitore LXD / LXC e reindirizzare il traffico che arriva al contenitore verso la VPN.

Lo scopo è quello di sostituire una VM a tutti gli effetti che fa esattamente questo (e gioca con LXD :-)

Sono riuscito a ottenere un IP dal mio server DHCP principale, ho impostato le regole di iptables per mascherare / inoltrare il traffico, ma quando provo ad avviare openvpn, è bloccato dalla mancanza di (accesso a) / dev / net / tun .

Mi sono imbattuto in questo post su ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpn , ma non sembra funzionare con la versione corrente di LXC e / o LXD gestione della configurazione ...

EDIT: ho provato a usare questo incantesimo, ma non è riuscito:

lxc config set mycontainer raw.lxc 'lxc.cgroup.devices.allow = c 10:200 rwm'

EDIT2: provato lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200ma alla prossima fermata / avvio, ho ottenuto

errore: configurazione del dispositivo non riuscita: non implementato

Ora non riesco nemmeno lxc config device remove mycontainer tuna lanciare lo stesso errore Non implementato. Il contenitore sembra essere perso ...

Risposte:


14

Tu vuoi:

lxc config device add CONTAINER tun unix-char path=/dev/net/tun

1
Questo ha risolto l' ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)errore che stavo provando ad avviare una connessione OpenVPN da un contenitore. Menzionandolo qui nella speranza di aggiungere questa risposta alle ricerche di Google su quell'errore. Se anche questo risolse la domanda di @alci, questa risposta dovrebbe essere accettata.
Jonathan Y.

Adesso ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)invece diERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Jay _silly_evarlast_ Wren,

3

Stavo lottando per farlo anche all'interno di un contenitore senza privilegi. Quello che ho finito per fare è stato

mknod /path/to/your/container/root/tun c 10 200
chown 100000:100000 /path/to/your/container/root/tun

quindi all'interno del contenitore

mkdir /dev/net
ln -s /root/tun /dev/net/tun

Ciò significa che non ho dovuto apportare modifiche a lxc conf


0

È necessario creare il dispositivo tun sull'host, prima di avviare il contenitore: sudo mknod /path/to/your/container/dev/net/tun c 10 200


Grazie. Ho creato il nodo. Ho cambiato il suo proprietario: gruppo a 100000: 100000. Ma non riesco ancora a vederlo dal contenitore ...
alci,
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.