LXD 관리 LXC 컨테이너에서 / dev / net / Tun을 어떻게 허용합니까? / 또는 작동하지 않는 것

Openvpn을 LXD / LXC 컨테이너 내에서 실행하고 컨테이너로 들어오는 트래픽을 VPN으로 리디렉션하려고합니다.

목적은 정확히 수행하는 본격적인 VM을 대체하는 것입니다 (및 장난감을 LXD :-)).

주 DHCP 서버에서 IP를 가져 와서 트래픽을 가장하고 전달하기위한 iptables 규칙을 설정했지만 openvpn을 시작하려고하면 / dev / net / tun 장치가 없어서 차단됩니다. .

ServerFault /server/429461/no-tun-device-in-lxc-guest-for-openvpn 에서이 게시물에 올랐지 만 현재 버전의 LXC 및 / 또는 작동하지 않는 것 같습니다 구성 관리 LXD …

편집 :이 주술을 사용하려고했지만 성공하지 못했습니다.

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했지만 다음 중지 / 시작시

오류 : 장치 tun 구성 실패 : 구현되지 않음

이제는 lxc config device remove mycontainer tun동일한 구현되지 않음 오류가 발생 하더라도 할 수 없습니다 . 컨테이너가 분실 된 것 같습니다 …



답변

당신이 원하는 :

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

답변

나는 권한이없는 컨테이너 내부 에서도이 작업을 수행하기 위해 고심하고있었습니다. 내가 끝낸 것은

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 conf를 변경할 필요가 없다는 것을 의미했습니다.


답변

컨테이너를 시작하기 전에 호스트에서 tun 장치를 만들어야합니다. sudo mknod /path/to/your/container/dev/net/tun c 10 200