Vous voulez un réseau NAT séparé du "default" pour isoler un projet ou un lab ? Cette recette vous montre comment créer un réseau libvirt personnalisé.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Définir un réseau libvirt sur mesure, au lieu de surcharger
default - Écrire son XML : plage d'adresses, nom du bridge et mode de sortie
- Y connecter une VM et rendre le réseau persistant au redémarrage
- Distinguer
net-destroydenet-undefine, qui ne font pas la même chose
Cas d'usage
Section intitulée « Cas d'usage »Le réseau default de libvirt suffit tant que l'hôte ne porte qu'une poignée de machines. Dès que plusieurs projets cohabitent, il devient un point de collision : toutes les VMs partagent la même plage d'adresses et se voient mutuellement. Un réseau NAT dédié rétablit la séparation sans toucher au default, qui reste disponible pour le reste.
- Isoler les VMs d'un projet des autres
- Utiliser une plage d'adresses différente (ex: 10.x.x.x)
- Avoir plusieurs labs avec des réseaux distincts
Créer un réseau NAT personnalisé
Section intitulée « Créer un réseau NAT personnalisé »Un réseau libvirt se crée en deux temps : on écrit sa définition XML, puis on la confie à libvirt, qui crée le bridge Linux décrit dans le fichier et lui attribue l'adresse de passerelle. La séquence ne varie jamais, définir, démarrer, activer au boot, vérifier. Sauter net-autostart est l'oubli classique : le réseau fonctionne jusqu'au prochain redémarrage de l'hôte, puis disparaît.
-
Créer le fichier de définition XML
Fenêtre de terminal cat > /tmp/lab-network.xml << 'EOF'<network><name>lab-network</name><forward mode='nat'><nat><port start='1024' end='65535'/></nat></forward><bridge name='virbr-lab' stp='on' delay='0'/><ip address='10.10.10.1' netmask='255.255.255.0'><dhcp><range start='10.10.10.100' end='10.10.10.200'/></dhcp></ip></network>EOFParamètres à personnaliser :
Paramètre Exemple Description namelab-network Nom du réseau (utilisé avec virsh et virt-install) bridge namevirbr-lab Nom du bridge Linux créé ip address10.10.10.1 IP de l'hôte sur ce réseau (passerelle) dhcp range.100 à .200 Plage d'IP pour les VMs -
Définir le réseau dans libvirt
Fenêtre de terminal virsh net-define /tmp/lab-network.xml -
Démarrer le réseau
Fenêtre de terminal virsh net-start lab-network -
Activer le démarrage automatique
Fenêtre de terminal virsh net-autostart lab-network -
Vérifier
Fenêtre de terminal virsh net-list --all# Doit afficher lab-network comme activeip addr show virbr-lab# Doit afficher 10.10.10.1/24
Connecter une VM au réseau
Section intitulée « Connecter une VM au réseau »Une VM ne référence jamais le bridge, elle référence le nom du réseau : libvirt fait la correspondance au démarrage du domaine. C'est tout l'intérêt de cette abstraction, changer le bridge sous-jacent ne demande aucune modification des machines. Deux chemins selon le moment, virt-install à la création de la VM, virsh edit sur une machine déjà définie.
Avec virt-install :
virt-install --network network=lab-network ...Ou modifier une VM existante :
virsh edit ma-vm<interface type='network'> <source network='lab-network'/> <model type='virtio'/></interface>virsh edit écrit la configuration persistante du domaine : la nouvelle interface n'apparaît qu'au prochain démarrage complet de la machine. Un reboot lancé depuis l'intérieur de l'invité ne suffit pas, il faut un arrêt réel puis un virsh start.
Variantes
Section intitulée « Variantes »Les deux variantes ci-dessous repartent du même squelette XML et n'en changent qu'un élément. La première retire le NAT pour obtenir un réseau strictement interne, la seconde ajoute une réservation DHCP pour qu'une machine retrouve toujours la même adresse. Rien n'interdit de les combiner dans une même définition.
Réseau isolé (pas d'accès Internet)
Section intitulée « Réseau isolé (pas d'accès Internet) »Pour un réseau interne sans accès extérieur :
<network> <name>isolated-net</name> <bridge name='virbr-iso' stp='on' delay='0'/> <ip address='172.16.0.1' netmask='255.255.255.0'> <dhcp> <range start='172.16.0.10' end='172.16.0.100'/> </dhcp> </ip></network>Notez l'absence de <forward>, les VMs peuvent communiquer entre elles et avec l'hôte, mais pas avec Internet.
Réseau avec IP fixe pour une VM
Section intitulée « Réseau avec IP fixe pour une VM »Vous pouvez réserver une IP pour une VM spécifique :
<network> <name>lab-network</name> <forward mode='nat'/> <bridge name='virbr-lab' stp='on' delay='0'/> <ip address='10.10.10.1' netmask='255.255.255.0'> <dhcp> <range start='10.10.10.100' end='10.10.10.200'/> <host mac='52:54:00:aa:bb:cc' name='web-server' ip='10.10.10.10'/> </dhcp> </ip></network>La VM avec l'adresse MAC 52:54:00:aa:bb:cc obtiendra toujours l'IP 10.10.10.10.
Gérer le réseau
Section intitulée « Gérer le réseau »Les commandes de gestion reprennent la logique de celles des domaines, avec le préfixe net-. Deux d'entre elles se confondent facilement : net-destroy arrête le réseau et laisse sa définition sur disque, alors que net-undefine supprime la définition persistante et laisse tourner un réseau déjà démarré. Faire disparaître un réseau pour de bon demande donc les deux commandes, dans cet ordre.
| Action | Commande |
|---|---|
| Voir la config | virsh net-dumpxml lab-network |
| Arrêter | virsh net-destroy lab-network |
| Supprimer | virsh net-undefine lab-network |
| Modifier | virsh net-edit lab-network |
Voir aussi
Section intitulée « Voir aussi »- Guide réseau KVM, Comprendre NAT vs Bridge
- Port forwarding NAT, Exposer un service en NAT
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