Як дозволити / dev / net / Tun в контейнері LXC, керованому LXD?


9

Я намагаюся змусити Openvpn запустити всередині контейнера LXD / LXC і перенаправити трафік, що надходить з контейнера до VPN.

Мета - замінити повноцінний VM, який робить саме це (і іграшку з LXD :-)

Мені вдалося отримати IP з мого основного сервера DHCP, встановити правила iptables для маскування / переадресації трафіку, але коли я намагаюся запустити openvpn, він блокується відсутністю (доступу до) / dev / net / tun пристрою .

Я наткнувся на цю публікацію на сервері ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpn , але, схоже, це не працює з поточною версією LXC та / або LXD управління конфігурацією ...

EDIT: Я спробував використати цю заклик, але це не вдалося:

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

EDIT2: спробував, lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200але на наступній зупинці / старті я отримав

помилка: Не вдалося настроїти настройку пристрою: Не реалізовано

Тепер я навіть не можу, lxc config device remove mycontainer tunоскільки він видає ту саму Не реалізовану помилку. Здається, контейнер загублений ...

Відповіді:


14

Ти хочеш:

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

1
Це вирішило ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)помилку, яку я намагаюся ініціювати OpenVPN-з'єднання з контейнера. Згадування про це тут, сподіваючись додати цю відповідь до пошукових запитів Google на цю помилку. Якщо це також вирішило питання @alci, цю відповідь слід прийняти.
Джонатан Ю.

Тепер я отримую ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)замістьERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Jay _silly_evarlast_ Wren

3

Я з усіх сил намагався це зробити і в непривілейованому контейнері. Що я в кінцевому підсумку робив

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

потім всередині контейнера

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

Це означало, що мені не довелося вносити жодних змін у конф. Lxc


0

Перед тим, як запустити контейнер, потрібно зробити пристрій налаштування: sudo mknod /path/to/your/container/dev/net/tun c 10 200


Дякую. Я створив вузол. Я змінив власника: групу на 100000: 100000. Але я все ще не бачу його зсередини контейнера ...
alci
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.