Bagaimana cara saya mengizinkan / dev / net / Tun dalam wadah LXC yang dikelola LXD?

9

Saya mencoba menjalankan Openvpn di dalam wadah LXD / LXC, dan mengarahkan lalu lintas yang datang ke wadah ke VPN.

Tujuannya adalah untuk mengganti VM sepenuhnya yang melakukan hal itu (dan bermain-main dengan LXD :-)

Saya berhasil mendapatkan IP dari server DHCP utama saya, mengatur aturan iptables untuk menyamarkan / meneruskan lalu lintas, tetapi ketika saya mencoba untuk meluncurkan openvpn, itu diblokir oleh kurangnya (akses ke) / dev / net / perangkat tun .

Saya menemukan posting ini di ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpn , tetapi tampaknya tidak berfungsi dengan versi LXC saat ini dan / atau LXD mengelola konfigurasi ...

EDIT: Saya mencoba menggunakan mantra ini, tetapi tidak berhasil:

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

EDIT2: mencoba lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200tetapi pada stop / start berikutnya, saya dapat

kesalahan: Gagal mengkonfigurasi tun perangkat: Tidak diterapkan

Sekarang saya tidak bisa bahkan lxc config device remove mycontainer tunketika melempar kesalahan yang sama Tidak dilaksanakan. Wadah tampaknya hilang ...

alci
sumber

Jawaban:

14

Kamu ingin:

lxc config device add CONTAINER tun unix-char path=/dev/net/tun
stgraber
sumber
1
Ini menyelesaikan ERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)kesalahan yang saya dapatkan ketika mencoba memulai koneksi OpenVPN dari sebuah wadah. Menyebutkan ini di sini dengan harapan untuk menambahkan jawaban ini ke pencarian Google pada kesalahan itu. Jika ini juga menyelesaikan pertanyaan @alci, jawaban ini harus diterima.
Jonathan Y.
Saya sekarang ERROR: Cannot open TUN/TAP dev /dev/net/tun: Operation not permitted (errno=1)bukannyaERROR: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)
Jay _silly_evarlast_ Wren
3

Saya sedang berjuang untuk melakukan ini juga di dalam wadah yang tidak terjangkau. Apa yang akhirnya saya lakukan adalah

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

lalu di dalam wadah

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

Ini berarti saya tidak perlu melakukan perubahan pada lxc conf

kent
sumber
0

Anda harus membuat perangkat tun pada host, sebelum Anda memulai wadah: sudo mknod /path/to/your/container/dev/net/tun c 10 200

sмurf
sumber
Terima kasih. Saya membuat simpul. Saya mengubah pemiliknya: grup menjadi 100000: 100000. Tapi saya masih tidak bisa melihatnya dari dalam wadah ...
alci