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 tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn