Aller au contenu
Virtualisation medium

Créer un réseau libvirt personnalisé

4 min de lecture

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é.

  • 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
  1. 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>
    EOF

    Paramètres à personnaliser :

    ParamètreExempleDescription
    namelab-networkNom du réseau (utilisé avec virsh et virt-install)
    bridge namevirbr-labNom du bridge Linux créé
    ip address10.10.10.1IP de l’hôte sur ce réseau (passerelle)
    dhcp range.100 à .200Plage d’IP pour les VMs
  2. Définir le réseau dans libvirt

    Fenêtre de terminal
    virsh net-define /tmp/lab-network.xml
  3. Démarrer le réseau

    Fenêtre de terminal
    virsh net-start lab-network
  4. Activer le démarrage automatique

    Fenêtre de terminal
    virsh net-autostart lab-network
  5. Vérifier

    Fenêtre de terminal
    virsh net-list --all
    # Doit afficher lab-network comme active
    ip addr show virbr-lab
    # Doit afficher 10.10.10.1/24

Avec virt-install :

Fenêtre de terminal
virt-install --network network=lab-network ...

Ou modifier une VM existante :

Fenêtre de terminal
virsh edit ma-vm
<interface type='network'>
<source network='lab-network'/>
<model type='virtio'/>
</interface>

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.

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.

ActionCommande
Voir la configvirsh net-dumpxml lab-network
Arrêtervirsh net-destroy lab-network
Supprimervirsh net-undefine lab-network
Modifiervirsh net-edit lab-network

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.