Pour la configuration réseau des machines virtuelle, la méthode « pont Ethernet » est celle qui est conseillée à l'AUF. L'avantage de cette méthode est de présenter, côté machines virtuelle, une configuration réseau 100% similaire à celle de machines physiques.

Installer le package bridge-utils

Configurer un pont Ethernet sur la machine hôte. Si l'interface choisie est eth1, par exemple, mettre pour cela dans le /etc/network/interfaces quelque chose du genre :

auto vz1
iface vz1 inet manual
        bridge_ports    eth1
        bridge_stp      off
        bridge_fd       1
        bridge_maxwait 0

Si la machine dispose de plusieurs interfaces, je préfère ne pas mettre d'ip sur l'interface associée au pont, et de configurer une autre interface pour accéder à la machine hôte. Dans ce cas, ajouter un net.ipv4.conf.eth0.forwarding=0 dans le /etc/sysctl.conf pour l'interface (ici, eth0) qui servira uniquement à administrer la machine. Cette interface peut même être branchée sur un réseau différent, ultra-protégé, pour limiter les accès à l'hôte, qu'il est vital de bien protéger : un accés illégitime à l'hôte donnerait accès à tous les serveurs hébergés dessus.

Le fichier /etc/vz/vznet.conf configure le comportement réseau lors du démarrage de nouvelle machines. Y ajouter le chemin vers un script qui ajoutera à chaque fois l'interface Ethernet de la machine démarrée au pont créé à la première étape.

% cat /etc/vz/vznet.conf
EXTERNAL_SCRIPT=/usr/local/sbin/vzaddbr

Exemple de script :

% cat /usr/local/sbin/vzaddbr
#!/bin/bash

BRIDGE=vz1
ETH=$3

/sbin/ifconfig $ETH up

/usr/sbin/brctl addif $BRIDGE $ETH

Enfin, dernière étape, configurer une interface Ethernet virtuelle sur chaque machine :

vzctl set 211 --netif_add "eth0,00:E1:00:00:21:1A,veth211.1,00:E1:00:00:21:1B" --save

Choix des adresses mac :

Enfin (ENFIN), côté machine virtuelle : rien de particulier, configurer l'interface eth0 comme si de rien n'était :

# cat /var/lib/vz/private/211/etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 172.18.1.211
        netmask 255.255.255.0

La machine virtuelle est connectée au réseau comme si de rien n'était.