У 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

Я припускаю, що це увімкнено пристрої настройки для контейнера, але 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 config наступний рядок: lxc.cgroup.devices.allow = c 10: 200 rwm
apagr

@apagr більше не працює на Ubuntu 14.04 ...
Адам Ryczkowski

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.