Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

sysadmin:virtualisation:libvirt:default_network [2019/03/07 16:50] (Version actuelle)
james créée
Ligne 1: Ligne 1:
 +{{tag>​virtualisation sysadmin libvirt bridge dnsmasq firewall iptables NAT}}
 +====== Changer le réseau par défaut libvirt ======
 +
 +libvirtd crée par défaut un réseau de type nat, c'est a dire qu'en plus de faire le café, libvirt lance automatiquement un serveur DHCP sur ce réseau, mais aussi insere des règles de firewall qui ont la facheuse tendance a ne pas cohabiter avec les règles existantes.
 +
 +Du coup si vous voulez remplacer le réseau par défaut par un ou vous gérez vous mêmes vos regles de firewall/​NAT,​ ce guide est fait pour vous.
 +On va remplacer le réseau par defaut de type NAT par un réseau de type bridge. Il faut gérer manuellement la création du bridge ainsi que les regles de firewall
 +
 +===== Detruire l'​ancien réseau par défaut =====
 +<​code>​
 +# virsh net-destroy default
 +# virsh net-undefine default
 +</​code>​
 +
 +
 +===== Definir notre nouveau réseau libvirt par défaut =====
 +
 +==== Créer les interfaces nécessaires ====
 +
 +Pour ne pas que votre bridge change d'​adresse MAC (il prend l'​adresse MAC de la première interface intégrée dans le bridge) nous allons définir une interface dummy avec MAC connue et fixe.
 +
 +==== Génération d'​adresse MAC ====
 +
 +Pour générer une adresse MAC aléatoire conforme à ce qu'​attend libvirt pour du KVM (52:​54:​00:​xx:​xx:​xx) :
 +<​code>​$ hexdump -vn3 -e '/3 "​52:​54:​00"'​ -e '/1 ":​%02x"'​ -e '"​\n"'​ /​dev/​urandom</​code>​
 +
 +Notez cette adresse MAC que nous allons réutiliser dans la suite (52:​54:​00:​78:​f9:​8c pour nous)
 +
 +<​note>​Pour du Xen il aurait fallu générer une adresse MAC en 00:​16:​3e:​xx:​xx:​xx</​note>​
 +
 +
 +==== Création des interfaces dummy et bridge ====
 +
 +Nous utiliserons une interface bridge nommee virbr0, adapter la suite si vous souhaitez modifier le nom.
 +Idem pour notre sous réseau ip associé 192.168.123.0/​24.
 +
 +Sous Debian (stretch) nous définirons ces interfaces dans le fichier /​etc/​network/​interfaces.d/​libvirt avec le contenu suivant :
 +<​code>​
 +auto virbr0-dummy
 +iface virbr0-dummy inet manual
 +    pre-up /sbin/ip link add virbr0-dummy type dummy
 +    up /sbin/ip link set virbr0-dummy address 52:​54:​00:​78:​f9:​8c
 +    down /sbin/ip link del virbr0-dummy
 +
 +auto virbr0
 +iface virbr0 inet static
 +    bridge_ports virbr0-dummy
 +    bridge_stp on
 +    bridge_fd 2
 +    address 192.168.123.1
 +    netmask 255.255.255.0
 +</​code>​
 +ces interfaces seront automatiquement activées lors du prochain redémarrage,​ mais pour les activer manuellement pour l'​instant sans redémarrer :
 +<​code>​
 +# ifup virbr0-dummy
 +</​code>​
 +
 +On peut vérifier la configuration obtenue avec un petit "ip a s virbr0"​ comme dans l'​exemple suivant :
 +<​code>​
 +# ip a s virbr0
 +13: virbr0: <​BROADCAST,​MULTICAST,​UP,​LOWER_UP>​ mtu 1500 qdisc noqueue state UP group default qlen 1000
 +    link/ether 52:​54:​00:​78:​f9:​8c brd ff:​ff:​ff:​ff:​ff:​ff
 +    inet 192.168.123.1/​24 brd 192.168.123.255 scope global virbr0
 +       ​valid_lft forever preferred_lft forever
 +    inet6 fe80::​5054:​ff:​fe78:​f98c/​64 scope link 
 +       ​valid_lft forever preferred_lft forever
 +</​code>​
 +
 +
 +==== Definir réellement notre nouveau réseau libvirt par défaut ====
 +
 +  * Créer le fichier XML de définition du réseau (par exemple /​tmp/​default-network.xml) avec le contenu suivant : <​code><​network>​
 +  <​name>​default</​name>​
 +  <forward mode='​bridge'/>​
 +  <bridge name='​virbr0'​ />
 +</​network>​
 +</​code>​
 +  * Définir ce réseau, le démarrer et activer son autodémarrage :<​code>#​ virsh net-define /​tmp/​default-network.xml
 +# virsh net-start default
 +# virsh net-autostart default</​code>​
 +
 +On peut vérifier a l'aide de la commande "virsh net-list"​ que tout est conforme, comme par exemple :<​code>​
 +# virsh net-list
 + ​Name ​                ​State ​     Autostart ​    ​Persistent
 +----------------------------------------------------------
 + ​default ​             active ​    ​yes ​          yes
 +</​code>​
 +
 +<​note>​Si vous souhaitez continuer à utiliser dnsmasq pour gérer le NDS/DHCP sur ce réseau par exemple, n'​oubliez pas de l'​installer completement : service et configuration globale : <​code>#​ apt-get install dnsmasq</​code>​
 +Il reste ensuite à le configurer pour n'​écouter que sur cette interface virbr0
 +</​note>​
 +
 +===== Références =====
 +  * https://​jamielinux.com/​docs/​libvirt-networking-handbook/​custom-nat-based-network.html
 +  * https://​wiki.debian.org/​HowTo/​dnsmasq
  
sysadmin/virtualisation/libvirt/default_network.txt · Dernière modification: 2019/03/07 16:50 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0