Brak urządzenia tun w lxc guest dla openvpn

17

Próbuję skonfigurować serwer openvpn wewnątrz gościa lxc. Jednak wydaje się, że w pojemniku nie ma urządzenia tun.

Uruchomienie openvpn wewnątrz kontenera powoduje błąd:

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

W mojej konfiguracji kontenerów widzę:

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

Zakładam, że to włączone tun urządzenia dla kontenera, ale modprobe tun daje mi kolejny błąd:

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

Zakładam, że brakuje mi jakiegoś pozwolenia lub czegoś w moim pojemniku. Czy ktoś może mi powiedzieć, co to jest?

Lawrence
źródło
Czy /dev/netistnieje
kwanty
Nie, / dev / net też nie istnieje.
Lawrence

Odpowiedzi:

17

Nie znam LXC , ale wypróbuj następujące polecenia:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun
kwanty
źródło
3
oraz w lxc skonfiguruj następujący wiersz: lxc.cgroup.devices.allow = c 10: 200 rwm
apagr
@apagr Już nie działa na Ubuntu 14.04 ...
Adam Ryczkowski
1
Współpracuje z lxc pod klucz openvpn na proxmox 4.3
osadzony
6

Powyższe odpowiedzi w rzeczywistości nie działają teraz z aktualnymi wersjami lxc. Ręczne utworzenie urządzenia postaci mknodnie ma żadnego efektu - urządzenie nie jest widoczne w kontenerze. Wymagane jest użycie autodevfunkcji w 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"

Kolejność jest ważna - denymusi być pierwsza.

Stuart Cardall
źródło
3

Oprócz odpowiedzi kwanty. Upewnij się także, że masz tę linię w konfiguracji lxc:

mknod / dev / net / tun c 10 200

Oto właściwa składnia:

#tun
lxc.cgroup.devices.allow = c 10:200 rwm
ApriOri
źródło