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.