Kein tun Gerät in lxc Gast für OpenVPN

17

Ich versuche, einen OpenVPN-Server in einem LXC-Gast einzurichten. Es scheint jedoch, dass sich kein Tun-Gerät im Container befindet.

Wenn ich openvpn im Container starte, erhalte ich folgenden Fehler:

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

In meiner Containerkonfiguration sehe ich Folgendes:

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

Ich würde annehmen, dass dies Tun-Geräte für den Container aktiviert haben, aber Modprobe Tun gibt mir einen weiteren Fehler:

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

Ich gehe davon aus, dass ich eine Erlaubnis oder etwas in meinem Container vermisse. Kann mir jemand sagen was es ist?

Lawrence
quelle
Gibt /dev/netes
Quanten
Nein, / dev / net existiert auch nicht.
Lawrence

Antworten:

17

Ich bin nicht mit LXC vertraut , aber probiere die folgenden Befehle aus:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun
Quanten
quelle
3
und in lxc config die folgende Zeile: lxc.cgroup.devices.allow = c 10: 200 rwm
20.
@apagr Funktioniert nicht mehr auf Ubuntu 14.04 ...
Adam Ryczkowski
1
Funktioniert mit LXC Turnkey OpenVPN auf Proxmox 4.3
Embedded
6

Die obigen Antworten funktionieren derzeit mit den aktuellen Versionen von nicht lxc. Das manuelle Erstellen eines Zeichengeräts mknodhat keine Auswirkung - das Gerät ist im Container nicht sichtbar. Die Nutzung der autodevFunktionalität in lxcist erforderlich.

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"

Die Reihenfolge ist wichtig - das denymuss zuerst sein.

Stuart Cardall
quelle
3

Neben der Antwort von Quanta. Stellen Sie auch sicher, dass Sie diese Zeile in der LXC-Konfiguration haben:

mknod / dev / net / tun c 10 200

Dies ist die richtige Syntax:

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