web-dev-qa-db-fra.com

Comment autoriser / dev / net / Tun dans un conteneur LXC géré par LXD?

J'essaie de faire fonctionner Openvpn dans un conteneur LXD/LXC et de rediriger le trafic venant du conteneur vers le VPN.

Le but est de remplacer un VM à part entière _ qui fait exactement cela (et qui joue avec LXD :-)

J'ai réussi à obtenir une adresse IP de mon serveur DHCP principal, configurer les règles iptables pour le masquage/le transfert du trafic, mais lorsque je tente de lancer openvpn, il est bloqué par le manque de (accès à)/dev/net/tun .

Je suis tombé sur ce message sur ServerFault https://serverfault.com/questions/429461/no-tun-device-in-lxc-guest-for-openvpn , mais cela ne semble pas fonctionner avec version actuelle de LXC et/ou LXD gérant la configuration ...

EDIT: J'ai essayé d'utiliser cette incantation, mais elle n'a pas réussi:

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

EDIT2: essayé lxc config device add mycontainer tun unix-char path=/dev/net/tun major=10 minor=200 mais lors du prochain arrêt/démarrage, je me suis

erreur: Echec de la configuration du périphérique: non implémenté

Maintenant, je ne peux même pas lxc config device remove mycontainer tun car il génère la même erreur non implémentée. Le conteneur semble être perdu ...

9
alci

Tu veux:

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

J'avais du mal à le faire aussi dans un conteneur non privilégié. Ce que j'ai fini par faire était

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

puis à l'intérieur du conteneur

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

Cela signifiait que je n'avais aucune modification à apporter à lxc conf

3
kent

Avant de lancer le conteneur, vous devez créer le périphérique tun sur l'hôte: Sudo mknod /path/to/your/container/dev/net/tun c 10 200

0
sмurf