Utiliser KVM sous ubuntu pour virtualiser des serveurs (3eme partie : le réseau)

Pré-requis : ubuntu serveur 10.04 ou 12.04 ( ne fonctionne pas avec 11.10) avec un système de partitions en LVM et d’OpenSSH installé.

et avoir suivi la 1ere partie et la seconde partie ….

 

Configuration du réseau.

pour que les machines virtuelles soient visible sur le réseau

Le réseau est configuré en NAT, par défaut. Les paquets réseaux émis par la machine virtuelle passent par une passerelle (le système hôte) pour arriver à destination.

Cette configuration est suffisante quand la machine virtuelle n’a pas besoin d’être contactée par l’extérieur. Quand il s’agit de virtualiser des serveurs, il est nécessaire de configurer un pont (Bridge) afin de lui attribuer une IP.

Sur le serveur hôte (le serveur physique), installer les paquets suivants pour la création d’interface virtuelle et la gestion des bridges:

sudo aptitude install uml-utilities

sudo aptitude install bridge-utils

 

Préparation du pont réseau (bridge) et de l’interface réseau virtuelle

Ajout de l’utilisateur courant au groupe uml-net:

Pour que l’utilisateur courant du serveur hôte puisse utiliser une interface réseau virtuelle il faut l’ajouter au groupe uml-net:

sudo adduser $User uml-net

$User est à remplacer par le nom de l’utilisateur courant.

Configuration du groupe tunusers et édition du fichier 50-udev.rules:

Pas sûr que cette partie soit utile, a essayer sans …
Pas utile pour la 12.04.

Pour que l’utilisateur courant puisse utiliser l’interface virtuelle, il est nécessaire de créer le groupe tunusers, d’y ajouter l’utilisateur courant et de configurer udev pour intégrer le groupe tunusers

sudo addgroup tunusers

sudo adduser « $User » tunusers

Editer le fichier /lib/udev/rules.d/50-udev.rules et modifier pour obtenir:

KERNEL=="tun", NAME="net/%k", GROUP="tunusers", MODE="0660"

 

sudo chown :tunusers /dev/net/tun
sudo chmod g+rw /dev/net/tun
 ls -l /dev/net/tun

Redémarrage du système hôte

 

Pour que l’ensemble des modifications précédentes prennent effet.

>sudo reboot

Le fichier /etc/network/interfaces

 

Configuration de l’interface virtuelle et le bridge en modifiant le fichier /etc/network/interfaces:

 

Caractéristiques réseau du système hôte

 

  • L’interface réseau active sur le serveur est eth0.
  • L’adresse IP de eth0 est fixée manuellement à 192.168.1.2;
  • l’adresse IP de la passerelle du réseau local est 192.168.1.1;
  • Le masque du réseau local est 255.255.255.0;
  • Le nom du bridge est br0;

Modification du fichier /etc/network/interfaces

 

A partir des caractéristiques précédentes le fichier /etc/network/interfaces doit comporter le contenu suivant:

auto lo

iface lo inet loopback

auto br0

iface br0 inet static

address 192.168.1.2

netmask 255.255.255.0

network 192.168.1.0

broadcast 192.168.1.255

gateway 192.168.1.1

dns-nameservers 8.8.8.8 8.8.4.4 # DNS de Google

bridge_ports eth0

bridge_stp on

bridge_maxwait 0

 

 

Redémarrage du réseau et test de la configuration du système hôte

 

sudo /etc/init.d/networking restart

Test du bridge

 

ifconfig | grep br0

doit répondre :

br0       Link encap:Ethernet  HWaddr 00:e0:81:4b:2a:d0

Test de l’association du bridge avec l’interface réseau virtuelle

 

brctl show

doit répondre :

bridge name    bridge id                            STP enabled                       interfaces

br0                   8000.00e0814b2ad0          no                                      eth0

Redémarrage de la machine virtuelle

Le système hôte est configuré.

Sur la machine virtuelle, utiliser un périphérique réseau configuré de cette manière :
Configurer le réseau de la machine virtuelle ( ip fixe ou dynamique )
sudo vi /etc/network/interfaces

Par exemple, pour une ip fixe :

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1

 

Redémarrer le réseau de la machine virtuelle.

sudo /etc/init.d/networking restart

 

Nous voici avec un serveur dont l’adresse IP est 192.168.1.2 et une machine virtuelle dont l’adresse ip est 192.168.1.3, utilisant la même carte réseau physique.

Les deux machines sont visible sur le LAN.

Webographie :

https://help.ubuntu.com/11.10/serverguide/C/network-configuration.html#bridging

http://thegeekcorner.pagesperso-orange.fr/fr/tutoriel/kvm_linux.html

https://help.ubuntu.com/11.10/serverguide/C/libvirt.html
http://doc.fedora-fr.org/wiki/Xen_:_installation_d%27un_domaine_compl%C3%A8tement_virtualis%C3%A9_avec_virt-manager
http://virt-manager.et.redhat.com/

http://doc.ubuntu-fr.org/virtualbox_reseau

http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2

http://wiki.libvirt.org/page/Networking#Forwarding_Incoming_Connections

http://wiki.libvirt.org/page/Networking#Bridged_networking_.28aka_.22shared_physical_device.22.29

http://libvirt.org/formatdomain.html#elementsNICS 

http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=%2Fliaai%2Fkvmadv%2Fkvmadvvirsh.htm

http://berrange.com/posts/2009/12/13/routed-subnets-without-nat-for-libvirt-managed-virtual-machines-in-fedora/

http://backreference.org/2010/03/26/tuntap-interface-tutorial/

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.