Vous utilisez Debian ou Ubuntu serveur sans NetworkManager ? Cette recette vous montre comment créer un bridge avec ifupdown pour connecter vos VMs au LAN.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Relever la configuration réseau avant d'y toucher, passerelle comprise
- Créer un bridge dans
/etc/network/interfaces, sans NetworkManager - Y rattacher une VM et vérifier qu'elle obtient une adresse du LAN
- Revenir en arrière si la machine perd le réseau
Prérequis
Section intitulée « Prérequis »Une condition n'apparaît pas dans la liste et conditionne pourtant tout le reste : le réseau de l'hôte doit réellement être piloté par ifupdown, donc par le fichier /etc/network/interfaces. Un Ubuntu Server récent est livré avec netplan et n'a même pas ce fichier ; si ls /etc/netplan/ rend des fichiers YAML, c'est lui qui décide et il faut suivre la méthode Netplan du guide réseau. L'accès console est le seul point non négociable de la liste.
- Debian 11+ ou Ubuntu Server 20.04+
- Pas de NetworkManager (vérifier avec
systemctl status NetworkManager) - Accès root
- Accès console (IPMI, KVM physique) en cas de perte d'accès SSH
Identifier la configuration actuelle
Section intitulée « Identifier la configuration actuelle »Trois valeurs sont à relever avant de toucher au moindre fichier, et ce sont exactement celles que vous allez recopier dans le bridge : le nom de l'interface, son adresse IP et la passerelle. La seconde commande donne la vue la plus lisible, ip -br link affichant une ligne par interface avec son état. Notez-les ailleurs que sur la machine elle-même : si la manipulation échoue, vous en aurez besoin depuis la console.
# Interface physique et IP actuelleip addr show
# Nom de l'interface (ex: eno1, enp3s0, eth0)ip -br link | grep -v lo
# Passerelle actuelleip route show defaultNotez :
- Le nom de l'interface physique (ex:
eno1) - L'IP actuelle (ex:
192.168.1.100/24) - La gateway (ex:
192.168.1.1)
Sauvegarder la configuration
Section intitulée « Sauvegarder la configuration »Cette copie n'est pas une formalité : elle est la seule voie de retour si le réseau ne remonte pas, et la section de restauration plus bas ne fait rien d'autre que la remettre en place. Faites-la avant la première édition, jamais après avoir commencé à modifier le fichier, sinon vous sauvegardez déjà l'état cassé. Gardez le suffixe .backup en tête : ifupdown ne lit que /etc/network/interfaces et ignore ce fichier.
sudo cp /etc/network/interfaces /etc/network/interfaces.backupCréer le bridge
Section intitulée « Créer le bridge »Le principe tient en deux lignes de configuration. La carte physique passe en inet manual, c'est-à-dire montée mais sans adresse, et le bridge br0 reprend l'adresse, le masque et la passerelle qu'elle portait. La directive bridge_ports est ce qui les relie : elle dit quelles interfaces deviennent des ports du switch. Ces directives bridge_* viennent du paquet bridge-utils, d'où la première étape ci-dessous.
-
Installer bridge-utils (si pas déjà installé)
Fenêtre de terminal sudo apt install bridge-utils -
Éditer /etc/network/interfaces
Fenêtre de terminal sudo nano /etc/network/interfacesRemplacez la configuration existante par :
/etc/network/interfaces # Loopbackauto loiface lo inet loopback# Interface physique : pas d'IP, esclave du bridgeauto eno1iface eno1 inet manual# Bridge avec IP statiqueauto br0iface br0 inet staticaddress 192.168.1.100netmask 255.255.255.0gateway 192.168.1.1dns-nameservers 8.8.8.8 1.1.1.1bridge_ports eno1bridge_stp offbridge_fd 0 -
Appliquer la configuration
Fenêtre de terminal sudo systemctl restart networkingOu sur les anciennes versions :
Fenêtre de terminal sudo ifdown eno1 && sudo ifup br0 -
Vérifier
Fenêtre de terminal # Le bridge a l'IPip addr show br0# L'interface physique est dans le bridgebridge link show# Connectivitéping -c 2 192.168.1.1ping -c 2 1.1.1.1
Connecter une VM au bridge
Section intitulée « Connecter une VM au bridge »Une fois br0 en place, libvirt n'a rien à configurer : on lui passe directement le nom de l'interface système, et non un objet réseau libvirt comme pour le NAT. C'est la différence à retenir entre les deux modes, le XML la porte lui aussi avec type='bridge' et source bridge= là où le NAT utilise type='network'. La VM obtiendra son adresse du DHCP du LAN, pas de dnsmasq.
Dans virt-install :
virt-install --network bridge=br0 ...Ou dans le XML de la VM :
<interface type='bridge'> <source bridge='br0'/> <model type='virtio'/></interface>Restaurer en cas de problème
Section intitulée « Restaurer en cas de problème »La procédure de secours tient en deux commandes, et c'est tout l'intérêt d'avoir sauvegardé avant : on remet le fichier d'origine, on relance le réseau, l'hôte retrouve l'adresse qu'il avait. Tapez-les depuis la console, jamais en SSH, puisque c'est justement la session SSH qui est tombée. Si restart networking ne suffit pas, ifdown br0 && ifup eno1 reprend la main interface par interface.
Si vous perdez l'accès, depuis la console :
sudo cp /etc/network/interfaces.backup /etc/network/interfacessudo systemctl restart networkingVariantes
Section intitulée « Variantes »Les deux configurations qui suivent partent du même fichier et ne changent qu'une ligne ou deux. La première fait entrer le bridge dans un VLAN étiqueté, la seconde ajoute un bridge isolé à côté du premier. Elles se combinent sans difficulté, mais appliquez-les l'une après l'autre : un fichier /etc/network/interfaces modifié sur trois points d'un coup se diagnostique beaucoup moins facilement.
Bridge avec VLAN
Section intitulée « Bridge avec VLAN »Le cas typique est un hôte relié à un port trunk : la carte physique reçoit plusieurs VLAN étiquetés, et vous ne voulez exposer les VMs que sur l'un d'eux. La déclaration intermédiaire eno1.100 crée l'interface VLAN (ici le VLAN 100) et c'est elle, pas eno1, qui devient le port du bridge. La directive vlan-raw-device indique la carte porteuse.
auto eno1iface eno1 inet manual
auto eno1.100iface eno1.100 inet manual vlan-raw-device eno1
auto br0iface br0 inet static address 192.168.100.10 netmask 255.255.255.0 gateway 192.168.100.1 bridge_ports eno1.100 bridge_stp off bridge_fd 0Plusieurs bridges
Section intitulée « Plusieurs bridges »Rien n'oblige un bridge à posséder un port physique. C'est ce que dit bridge_ports none : br1 existe, porte une adresse, commute les trames entre les VMs qui s'y branchent, et ne mène nulle part en dehors de l'hôte. On obtient ainsi deux domaines de diffusion séparés sur la même machine, br0 vers le LAN et br1 entre VMs, sans toucher au matériel.
auto br0iface br0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 bridge_ports eno1 bridge_stp off bridge_fd 0
auto br1iface br1 inet static address 10.0.0.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0br1 est un bridge isolé (pas connecté au réseau physique), utile pour des labs internes.
Voir aussi
Section intitulée « Voir aussi »- Guide réseau KVM, Comprendre NAT vs Bridge
- Dépannage réseau, Diagnostiquer les problèmes
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications