3 min read

Virsh

Fixer des IP avec virsh

Il y a quelques temps, j’ai pris le parti de ne plus utiliser virtualbox, ou VMware; pourtant ils sont très agréable à utiliser , très facile , et on les retrouve assez régulièrement un peu partout.

Je souhaitais un hyper viseur full open-source et natiif , et je me suis tourné vers KVM, qui dispose lui aussi d’une interface graphique répondant au nom de virt-manager.

Plutot rustique , mais tout y est, néanmoins pour pour une gestion plus fine de la partie réseau, il existe un utilitaire: virsh, de la librairie libvirt.

Voici les viersions de l’article:

  • Debian Buster 4.19.0-10-amd64

  • kvm --version QEMU emulator version 3.1.0 (Debian 1:3.1+dfsg-8+deb10u8) Copyright (c) 2003-2018 Fabrice Bellard and the QEMU Project developers

  • virt-manager --version2.0.0

  • virsh --version5.0.0

Guide de survie réseau

De base vous disposez d’un réseau bridgé naté .Qui fait très bien l’affaire, mais comment:

  • modifier son réseau
  • définir une plage DHCP
  • fixer des adresses

Je ne vais pas détailler toutes les commandes ici, vous disposez du man-page , ainsi que le site de libvirt.

Lister les réseaux

  • sudo virsh net-list --all
sudo virsh net-list --all
 Name           State    Autostart   Persistent
-------------------------------------------------
 default        active   yes         yes

Créer un nouveau réseau

Nous allons simplement dumper la configuration par défaut:

  • sudo virsh net-dumpxml default > computerclub.xml
  • Cela génère un fichier de configuration que vous éditez ensuite avec cette
  • commande: sudo virsh net-edit network computerclub
<network>
  <name>default</name>
  <uuid>48155b51-d2a5-4d32-a953-86ca4a1bc921</uuid>
  <forward mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
  </forward>
  <bridge name='virbr0' stp='on' delay='0'/>
  <mac address='52:54:00:28:d8:81'/>
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254'/>
    </dhcp>
  </ip>
</network>

“Il suffit de modifier” le fichier à votre convenance en vous référant à la partie réseaux de libvirt.org

Voici mon fichier de configuration , a ne pas utiliser dans l’état , si vous inspectez la config , vous constaterez que j’ai crée une nouvelle interface virtuelle, qui est bridgée sur ma carte wifi.

<network>
  <name>computerclub</name>
  <uuid>a7db4f85-5560-488c-a888-e2f16f86a148</uuid>
  <forward dev='wlp2s0' mode='nat'>
    <nat>
      <port start='1024' end='65535'/>
    </nat>
    <interface dev='wlp2s0'/>
  </forward>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:93:c7:8a'/>
  <domain name='computerclub.local'/>
  <ip address='192.168.200.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.200.100' end='192.168.200.254'/>
      <host mac='52:54:00:2f:46:ce' name='srvads-deb-cham-001' ip='192.168.200.2'/>
      <host mac='52:54:00:9d:17:f5' name='D-DEB-CHAM-001' ip='192.168.200.10'/>
      <host mac='52:54:00:92:d4:7b' name='D-OSX-HOUC-001' ip='192.168.200.30'/>
      <host mac='52:54:00:a3:0b:38' name='linuxFX' ip='192.168.200.40'/>
      <host mac='52:54:00:81:ba:67' name='L-WIN-SERV-001' ip='192.168.200.50'/>
    </dhcp>
  </ip>
</network>

ATTENTION

  • Un détail n’apparait pas ici , lors de la création de ce fichier et de son injection , il faut sauter une ligne à la fin du fichier.
# virsh net-destroy computerclub
Network computerclub destroyed

# virsh net-undefine computerclub
Network computerclub has been undefined

# virsh net-create /home/ordinatous/computerclub.xml
Network computerclub created from /home/ordinatous/computerclub.xml

# virsh net-autostart computerclub
error: failed to mark network computerclub as autostarted
error: Requested operation is not valid: cannot set autostart for transient network

ATTENTION

  • Comme mentionnée plus haut , n’oubliez d’ajouter une ligne vide.
root@gally-reborn:/home/ordinatous# virsh net-edit computerclub
Network computerclub XML configuration edited.

root@gally-reborn:/home/ordinatous# virsh net-autostart computerclub
Network computerclub marked as autostarted

Modification à la volée

Il serait possible d’ajouter un hôte , et son adresse fixe dans le réseau créé avec cette commande, personnellement je n’ai pas eu de succés avec cette méthode:

sudo virsh net-update computerclub add ip-dhcp-host \
"<host mac='52:54:00:6a:7b:8c' name='une_machine' ip='192.168.200.60' >" --live
--config

C’est peut etre du à une erreur de synthaxe, mais j’aime autant avoir mon fichier sous les yeux.

  • virsh error: network_update_xml:1: attributes construct error

Ce travail est sous licence Attribution-NonCommercial 4.0 International. Attribution-NonCommercial 4.0International