LXD : le réseau
LXD crée un pont réseau lxdbr0 : les instances y obtiennent une adresse privée et accèdent à Internet par NAT. Les exemples utilisent un conteneur nommé c1.
Gérer les réseaux
Section intitulée « Gérer les réseaux »lxc network list # réseaux connus (dont lxdbr0)lxc network show lxdbr0 # configurationlxc network info lxdbr0 # état et adresseslxc network create lxdbr1 ipv4.address=10.20.0.1/24 ipv4.nat=true ipv6.address=nonelxc network set lxdbr1 dns.domain lxd.locallxc network edit lxdbr1 # édition complètelxc network delete lxdbr1 # supprime (aucune instance rattachée)Rattacher une instance à un réseau
Section intitulée « Rattacher une instance à un réseau »lxc launch ubuntu:24.04 c1 --network lxdbr1 # à la créationlxc network attach lxdbr1 c1 eth0 # ajoute une carte réseau à une instance existantelxc network detach lxdbr1 c1 eth0Adresse IP fixe
Section intitulée « Adresse IP fixe »lxc config device override c1 eth0 ipv4.address=10.20.0.50lxc restart c1L’adresse doit appartenir à la plage du réseau (lxc network show).
Rediriger un port de l’hôte vers une instance
Section intitulée « Rediriger un port de l’hôte vers une instance »Le périphérique proxy redirige un port de l’hôte vers un port de l’instance :
lxc config device add c1 http proxy listen=tcp:0.0.0.0:8080 connect=tcp:127.0.0.1:80lxc config device remove c1 http # supprimer la redirectionRésoudre les noms des instances
Section intitulée « Résoudre les noms des instances »Le pont lxdbr0 fournit un DNS interne : une instance se joint par c1.lxd depuis une autre instance. Pour l’utiliser aussi depuis l’hôte avec systemd-resolved (Ubuntu) :
resolvectl dns lxdbr0 $(lxc network get lxdbr0 ipv4.address | cut -d/ -f1)resolvectl domain lxdbr0 '~lxd'Ces réglages ne survivent pas à un redémarrage : à rendre persistants avec un service systemd ou un script de démarrage.
Pare-feu (UFW)
Section intitulée « Pare-feu (UFW) »Avec UFW actif, autoriser le trafic du pont, sans quoi les instances perdent l’accès réseau :
sudo ufw allow in on lxdbr0sudo ufw route allow in on lxdbr0sudo ufw route allow out on lxdbr0Si Docker est installé sur la même machine, il modifie aussi les règles du pare-feu : voir Installer LXD sur Ubuntu.
Dépannage
Section intitulée « Dépannage »| Symptôme | Piste |
|---|---|
Pas d’adresse IP dans lxc list |
lxc network list : le pont lxdbr0 doit exister et être géré (YES) |
| Instance sans accès à Internet | Règles UFW ou Docker (voir ci-dessus), lxc network get lxdbr0 ipv4.nat doit valoir true |
Le nom c1.lxd ne se résout pas depuis l’hôte |
Configurer systemd-resolved (section précédente) |
| Conflit de plage d’adresses | Choisir une autre plage : lxc network set lxdbr0 ipv4.address 10.30.0.1/24 |
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Documentation officielle : documentation.ubuntu.com/lxd/en/latest/networking