Нет устройства для настройки в гостевой lxc для openvpn

17

Я пытаюсь настроить сервер openvpn внутри гостя lxc. Тем не менее, он показывает, что в контейнере нет доступного устройства настройки.

Запуск openvpn внутри контейнера дает мне эту ошибку:

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

В моей конфигурации контейнеров я вижу следующее:

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

Я бы предположил, что это включило устройства Tun для контейнера, но modprobe tun дает мне еще одну ошибку:

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

Я предполагаю, что мне не хватает разрешения или чего-то в моем контейнере. Может кто-нибудь сказать мне, что это?

Лоренс
источник
Существует /dev/net?
кванты
Нет, / dev / net тоже не существует.
Лоуренс

Ответы:

17

Я не знаком с lxc , но попробуйте следующие команды:

# mkdir /dev/net 
# mknod /dev/net/tun c 10 200 
# chmod 666 /dev/net/tun
кванты
источник
3
и в конфигурации lxc следующая строка: lxc.cgroup.devices.allow = c 10: 200 rwm
apagr
@apagr Больше не работает в Ubuntu 14.04 ...
Адам Рычковски
1
Работает с LXC под ключ OpenVPN на Proxmox 4,3
встроенный
6

Ответы выше на самом деле не работают сейчас с текущими версиями lxc. Создание символьного устройства вручную mknodбез эффекта - устройство не видно внутри контейнера. Использование autodevфункциональности в 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"

Порядок важен - denyдолжен быть первым.

Стюарт Кардалл
источник
3

В дополнение к ответу кванты. Также убедитесь, что у вас есть эта строка в конфигурации lxc:

mknod / dev / net / tun c 10 200

Это правильный синтаксис:

#tun
lxc.cgroup.devices.allow = c 10:200 rwm
Априори
источник