Jak zezwolić / dev / net / Tun w kontenerze LXC zarządzanym przez LXD?

9

Próbuję uruchomić Openvpn w kontenerze LXD / LXC i przekierować ruch przychodzący do kontenera do sieci VPN.

Celem jest zastąpienie pełnoprawnej maszyny wirtualnej, która robi dokładnie to (i gra z LXD :-)

Udało mi się uzyskać adres IP z mojego głównego serwera DHCP, skonfigurować reguły iptables do maskowania / przekazywania ruchu, ale kiedy próbuję uruchomić openvpn, jest on blokowany przez brak (dostępu do) / dev / net / tun urządzenia .

Natknąłem się na ten post na ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpn , ale wydaje się, że nie działa z bieżącą wersją LXC i / lub LXD zarządza konfiguracją ...

EDYCJA: Próbowałem użyć tej inkantacji, ale nie udało się:

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

EDIT2: próbowałem, lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200ale przy następnym zatrzymaniu / starcie dostałem

błąd: Błąd konfiguracji tun urządzenia: Nie zaimplementowano

Teraz nie mogę, lxc config device remove mycontainer tunponieważ generuje ten sam błąd Nie zaimplementowany. Pojemnik wydaje się zagubiony ...

alci
źródło

Odpowiedzi:

14

Chcesz:

lxc config device add CONTAINER tun unix-char path=/dev/net/tun
stgraber
źródło
1
To rozwiązało ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)błąd, który próbuję zainicjować połączenie OpenVPN z kontenera. Wspominając o tym tutaj, mamy nadzieję dodać tę odpowiedź do wyszukiwań Google dotyczących tego błędu. Jeśli to rozwiązało również pytanie @alci, odpowiedź powinna zostać zaakceptowana.
Jonathan Y.
Teraz dostaję ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)zamiastERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Jay _silly_evarlast_ Wren
3

Próbowałem to zrobić również w nieuprzywilejowanym kontenerze. Skończyło się na tym, że to zrobiłem

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

następnie w pojemniku

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

Oznaczało to, że nie musiałem dokonywać żadnych zmian w lxc conf

Kent
źródło
0

Przed uruchomieniem kontenera musisz ustawić urządzenie tun na hoście: sudo mknod /path/to/your/container/dev/net/tun c 10 200

surfowanie
źródło
Dzięki. Utworzyłem węzeł. Zmieniłem właściciela: grupę na 100000: 100000. Ale nadal nie widzę tego z wnętrza pojemnika ...
alci