Améliorations sur la partie réseau

This commit is contained in:
Gregory Colpart 2016-12-27 05:31:00 +01:00
parent 322fddebd7
commit 49676800d3

View file

@ -94,6 +94,7 @@ On crée un bridge _br0_ liée à l'interface _eth0_ :
Puis on ajuste le fichier `/etc/network/interfaces` ainsi :
~~~
#source-directory /etc/network/interfaces.d
auto br0
iface eth0 inet manual
iface br0 inet static
@ -104,7 +105,9 @@ iface br0 inet static
up echo 0 > /sys/class/net/br0/bridge/multicast_snooping
~~~
*Note* : il est nécessaire de désactiver le multicast_snooping pour assurer un bon fonctionnement de l'IPv6
*Note 1* : il est nécessaire de désactiver le multicast_snooping pour assurer un bon fonctionnement de l'IPv6
*Note 2* : il est nécessaire de commenter *source-directory /etc/network/interfaces.d* car [cela fait boguer libvirt](http://bugs.debian.org/740114)
/!\\ : s'assurer d'avoir bien installé _bridge-utils_ et configuré le firewall avant de redémarrer
@ -279,7 +282,7 @@ Convertir ume image RAW en QCOW2 :
# qemu-img resize host.img +50G
Image resized.
~~~
ou on peut utiliser dd, exemple pour une taille finale de 80G :
ou on peut utiliser _dd_, exemple pour une taille finale de 80G :
~~~
# dd if=/dev/zero of=host.img seek=80G count=0 bs=1
@ -352,6 +355,46 @@ loop deleted : /dev/loop0
## Réseau
~~~
# virsh iface-list --all
# virsh net-list --all
# virsh help interface
Interface (help keyword 'interface'):
iface-begin create a snapshot of current interfaces settings, which can be later committed (iface-commit) or restored (iface-rollback)
iface-bridge create a bridge device and attach an existing network device to it
iface-commit commit changes made since iface-begin and free restore point
iface-define define (but don't start) a physical host interface from an XML file
iface-destroy destroy a physical host interface (disable it / "if-down")
iface-dumpxml interface information in XML
iface-edit edit XML configuration for a physical host interface
iface-list list physical host interfaces
iface-mac convert an interface name to interface MAC address
iface-name convert an interface MAC address to interface name
iface-rollback rollback to previous saved configuration created via iface-begin
iface-start start a physical host interface (enable it / "if-up")
iface-unbridge undefine a bridge device after detaching its slave device
iface-undefine undefine a physical host interface (remove it from configuration)
# virsh help network
Networking (help keyword 'network'):
net-autostart autostart a network
net-create create a network from an XML file
net-define define (but don't start) a network from an XML file
net-destroy destroy (stop) a network
net-dhcp-leases print lease info for a given network
net-dumpxml network information in XML
net-edit edit XML configuration for a network
net-event Network Events
net-info network information
net-list list networks
net-name convert a network UUID to network name
net-start start a (previously defined) inactive network
net-undefine undefine a persistent network
net-update update parts of an existing network's configuration
net-uuid convert a network name to network UUID
~~~
### Adresse MAC
On peut générer l'adresse MAC d'une VM KVM avec le script suivant :
@ -416,10 +459,42 @@ Créer un fichier XML définissant le réseau :
# virsh net-autostart br1
~~~
### Mode réseau NAT
### Mode réseau NAT (avec libvirt)
Le mode NAT peut être intéressant si l'on ne peut pas avoir d'IP dans le réseau local.
Une autre raison d'utiliser le NAT est qu'une interface Wi-Fi n'est pas toujours utilisable dans un bridge :
Le mode NAT peut être intéressant si l'on ne peut pas avoir d'IP dans le réseau de l'hyperviseur.
Avec libvirt, il suffit d'installer :
~~~
# apt install dnsmaq ebtables
~~~
Et l'on peut configurer avec un réseau NAT avec _virt-manager_ ou `virsh net-create` et un fichier XML du type :
~~~{.xml}
<network connections='1'>
<name>reseau1</name>
<uuid>f94578a3-3b7f-4c60-a441-d1f86920fb59</uuid>
<forward dev='eth0' mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
<interface dev='eth0'/>
</forward>
<bridge name='virbr0' stp='on' delay='0'/>
<mac address='52:54:00:06:2e:8c'/>
<domain name='nat0'/>
<ip address='192.168.100.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.100.128' end='192.168.100.254'/>
</dhcp>
</ip>
</network>
~~~
### Mode réseau NAT (sans libvirt)
Une raison d'utiliser le NAT est qu'une interface Wi-Fi n'est pas toujours utilisable dans un bridge :
~~~
# brctl addif br0 wlan0
@ -886,6 +961,16 @@ On peut aussi présenter toutes les instructions du CPU hôte aux machines virtu
</cpu>
~~~
### Etendre une image RAW
Différentes méthodes pour étendre une image RAW :
~~~
# qemu-img resize host.img +50G
# dd if=/dev/zero of=host.img seek=80G count=0 bs=1
# dd oflag=append conv=notrunc if=/dev/zero of=host.img bs=1MB count=20480
~~~
### Erreur "Unable to create cgroup"
Si votre VM a crashé et n'est pas "redémarrable" avec un message "Unable to create cgroup for $VIRTIMAGE: No such file or directory", notamment il reste des « traces » dans /run/systemd/system/machine-qemu\x2dfoo.scope vous pouvez faire un *reset-failed* :