
Par défaut, Incus connecte les instances à un bridge NAT nommé incusbr0 : elles obtiennent une IP privée et sortent vers Internet à travers l'hôte. Ce guide montre comment inspecter ce réseau, en créer d'autres, exposer un service avec un device proxy, et surtout comment régler le conflit classique avec Docker qui prive les conteneurs de réseau. Tout a été testé sur Incus 7.0. Pour qui veut maîtriser la connectivité de ses instances.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Comment fonctionne le réseau par défaut (incusbr0, NAT).
- Inspecter et créer des réseaux.
- Exposer un service avec un device proxy.
- Régler le conflit réseau avec Docker (le piège n°1).
Le réseau par défaut : incusbr0
Section intitulée « Le réseau par défaut : incusbr0 »À l'initialisation, Incus crée un bridge managé incusbr0 en NAT. Les instances s'y branchent, reçoivent une IP privée par DHCP et accèdent à Internet via l'hôte.
incus network list+----------+----------+---------+-----------------+---------+---------+| NAME | TYPE | MANAGED | IPV4 | USED BY | STATE |+----------+----------+---------+-----------------+---------+---------+| incusbr0 | bridge | YES | 10.173.191.1/24 | 4 | CREATED || eth0 | physical | NO | | 0 | |+----------+----------+---------+-----------------+---------+---------+Le détail (sous-réseau, NAT, DNS) s'obtient avec incus network show :
incus network show incusbr0# ipv4.address: 10.173.191.1/24# ipv4.nat: "true"Créer un réseau
Section intitulée « Créer un réseau »On isole un groupe d'instances sur son propre réseau avec incus network create :
incus network create labnet ipv4.address=10.20.20.1/24 ipv4.nat=true# Network labnet createdOn connecte ensuite une instance à ce réseau via un device nic (ou en modifiant son profil) :
incus config device add c1 eth1 nic network=labnetExposer un service : le device proxy
Section intitulée « Exposer un service : le device proxy »Une instance sur incusbr0 n'est pas joignable depuis l'extérieur de l'hôte. Pour publier un port, on ajoute un device proxy qui relie un port de l'hôte à un port de l'instance :
incus config device add c1 web proxy \ listen=tcp:0.0.0.0:8888 connect=tcp:127.0.0.1:80web: connect: tcp:127.0.0.1:80 listen: tcp:0.0.0.0:8888 type: proxyLe service de l'instance (ici sur le port 80) devient accessible sur le port 8888 de l'hôte. C'est la méthode la plus simple ; pour exposer une instance entière sur le réseau physique, on la place plutôt sur un bridge ponté (macvlan ou bridge de l'hôte).
Le piège n°1 : le conflit réseau avec Docker
Section intitulée « Le piège n°1 : le conflit réseau avec Docker »C'est l'erreur qui fait perdre deux heures. Si Docker est installé sur le même hôte qu'Incus, ses conteneurs perdent le réseau.
Un pare-feu de l'hôte (firewalld, ufw) trop strict produit le même symptôme : il faut alors autoriser le DHCP et le DNS entre incusbr0 et l'hôte.
DNS : intégration avec systemd-resolved
Section intitulée « DNS : intégration avec systemd-resolved »Sur un hôte utilisant systemd-resolved, la résolution des noms d'instances (.incus) peut échouer, car le serveur DNS d'Incus ne gère ni DNSSEC ni DNS-over-TLS. On l'indique explicitement à resolved :
resolvectl dns incusbr0 10.173.191.1resolvectl domain incusbr0 '~incus'resolvectl dnssec incusbr0 offAller plus loin : OVN
Section intitulée « Aller plus loin : OVN »Pour des réseaux distribués sur un cluster multi-nœuds (réseaux virtuels qui suivent les instances d'un nœud à l'autre, isolation par projet), Incus s'appuie sur OVN. C'est un sujet avancé, réservé aux déploiements en cluster : le bridge incusbr0 couvre l'immense majorité des besoins sur un hôte unique.
À retenir
Section intitulée « À retenir »- Par défaut, les instances sont sur le bridge NAT
incusbr0(IP privée + sortie Internet via l'hôte). incus network list/showinspecte,incus network createcrée un réseau isolé.- Un device proxy (
listen/connect) publie un port d'instance sur l'hôte. - Piège n°1 : Docker force
iptables FORWARD DROPet coupe le réseau d'Incus, réglez-le viaDOCKER-USER. - Avec systemd-resolved, déclarez le DNS d'
incusbr0(et rendez-le persistant).
FAQ : questions fréquentes sur le réseau Incus
Section intitulée « FAQ : questions fréquentes sur le réseau Incus »Le bridge NAT par défaut
incusbr0 est le pont réseau managé créé à l'initialisation d'Incus. Il fonctionne en NAT :- les instances reçoivent une IP privée par DHCP ;
- elles accèdent à Internet via l'hôte.
incus network show incusbr0 (sous-réseau, NAT, DNS). Il couvre l'immense majorité des besoins sur un hôte unique.Le device proxy
incus config device add c1 web proxy \
listen=tcp:0.0.0.0:8888 connect=tcp:127.0.0.1:80
Le service de l'instance (port 80) devient accessible sur le port 8888 de l'hôte. C'est la méthode la plus simple.Pour exposer une instance entière sur le réseau physique (avec sa propre IP du LAN), on la place plutôt sur un bridge ponté ou en macvlan.Souvent, c'est Docker
Si une instance a une IP mais ni DNS ni Internet, le coupable habituel est Docker sur le même hôte : son démon forceiptables FORWARD DROP, qui jette le trafic d'incusbr0.Le correctif, sans casser Docker :iptables -I DOCKER-USER -i incusbr0 -j ACCEPT
iptables -I DOCKER-USER -o incusbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
Un pare-feu (firewalld/ufw) trop strict produit le même symptôme.incus network create
incus network create labnet ipv4.address=10.20.20.1/24 ipv4.nat=true
incus config device add c1 eth1 nic network=labnet
On crée un réseau managé isolé, puis on y connecte une instance via un device nic (ou son profil).Pratique pour cloisonner des groupes d'instances (front, back, base de données) sur des sous-réseaux séparés.