K

- Base de connaissances

Accueil > Projets Open Source > KVM ou « Kernel-based Virtual Machine » > Ponter (Bridging) votre connexion réseau pour votre machine virtuelle

Ponter (Bridging) votre connexion réseau pour votre machine virtuelle

mercredi 11 novembre 2015, par webmestre

Lire aussi :

Introduction

La mise en réseau d’une machine virtuelle passe soit par du nat entre votre réseau ethernet et un réseau local virtuel, soit par un pont réseau (bridge).
Par défaut, s’il n’y a pas de pont réseau en place, c’est du nat sera mis en place.
L’objectif de cet article est de ponter une carte réseau pour que notre machine virtuelle puisse avoir sa propre adresse IP.
Et, la technique proposé dans cet article est applicable aux distributions UBUNTU et DEBIAN.

Etape 1 : Installation du paquet bridge-utils

Via la commande :

apt-get install bridge-utils

Etape 2 : Arret des services réseaux

Via les commandes (si je souhaite mettre eth0 dans le pont réseau) :

service network-manager stop
ifdown eth0

Etape 3 : Paramétrage des services réseaux

Dans le fichier /etc/network/interfaces , nous mettons en place le pont br0 :

auto lo
iface lo inet loopback
auto br0
iface br0 inet static
  address 192.168.1.213
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.1
  bridge_ports eth0
  bridge_stp on
  bridge_maxwait 0
  bridge_fd 0

Pour information, le fichier original /etc/network/interfaces était :

auto lo
iface lo inet loopback
allow-hotplug eth0
iface eth0 inet static
  address 192.168.1.213
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.1

On lance le pont réseau, via la commande :

ifup br0

Ensuite, on ajoute la configuration du pont dans le fichier /etc/sysctl.conf  :

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Et, enfin on recharge la configuration via la commande suivante :

sysctl -p /etc/sysctl.conf

Remarque :
A l’exécution de la dernière commande, il est possible que vous rencontriez l’erreur suivante :

sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: Aucun fichier ou dossier de ce type
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: Aucun fichier ou dossier de ce type
sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-arptables: Aucun fichier ou dossier de ce type

Pour fixer celle-ci, il suffit de charger le module br_netfilter , en tapant la commande suivante :

modprobe br_netfilter

Où, en modifiant le fichier /etc/modules, en y ajoutant le module à charger au démarrage br_netfilter .

Pour être sûr que la configuration remonte bien au démarrage de l’ordinateur, on modifie le fichier /etc/rc.local en y ajoutant les lignes suivantes :

/sbin/sysctl -p /etc/sysctl.conf
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS  --clamp-mss-to-pmtu
exit 0

Vérification du paramétrage
On lance les différentes commandes suivantes :

$ tail /proc/sys/net/bridge/*
==> /proc/sys/net/bridge/bridge-nf-call-arptables <==
0
==> /proc/sys/net/bridge/bridge-nf-call-ip6tables <==
0
==> /proc/sys/net/bridge/bridge-nf-call-iptables <==
0
==> /proc/sys/net/bridge/bridge-nf-filter-pppoe-tagged <==
0
==> /proc/sys/net/bridge/bridge-nf-filter-vlan-tagged <==
0
==> /proc/sys/net/bridge/bridge-nf-pass-vlan-input-dev <==
0
$ iptables -L  FORWARD
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        
TCPMSS     tcp  --  anywhere             anywhere             tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.f80f41076180       yes             eth0

Etape 4 : Paramétrage de QEMU

Il faut donner modifier les droits de l’outil qemu-bridge-helper :

chmod u+s /usr/lib/qemu/qemu-bridge-helper

Si vous ne modifiez pas les droits de ce binaire, vous aurez le message d’erreur suivant :

failed to create tun device: Operation not permitted
failed to launch bridge helper

Et, on crée le fichier de configuration /etc/qemu/bridge.conf :

echo "allow br0" > /etc/qemu/bridge.conf

Etape 5 : Lancer une machine virtuelle avec une interface réseau virtuelle sur le pont

Via la commande suivante :

kvm pi.debian.8.raw -m 1024 -k fr -vnc :1 -netdev bridge,id=hn0 -device virtio-net-pci,netdev=hn0,id=nic1

Ici, la machine virtuelle sera toujours accessible via un client VNC pour accèder à la sortie écran de la machine virtuelle sur l’ip de la machine hôte. Mais en regardant le paramétrage réseau de votre machine virtuelle, vous verrez une ip allouée à l’interface réseau de celle-ci.

Références :

BridgeNetworkConnections (debian)
Documentation libvirt
QEMU - Features-Done/HelperNetworking

Répondre à cet article

Plan du site | Suivre la vie du site RSS 2.0 | powered by NYSTEK-EDITIONS and NYSTEK-CONSULTING