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 ...
Tu veux:
lxc config device add CONTAINER tun unix-char path=/dev/net/tun
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
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