Connecter un réseau de machines virtuelles sur un réseau local

Plop à tous …

Les tutos concernant les interconnexions entre réseaux virtuelles et réseaux locaux sont légions sur internet, mais leur propretés pour le réseau ou leur flexibilité laissent souvent à désirer (entre les techniques foireuse à coup de nat iptables, les rejeux arp via parprouted et j’en passe).

J’ai eu récemment mis en place un réseau de test sur vm (avec xen, mais les réseaux de virtualbox, vmware et … devraient eux aussi fonctionner), directement connecté sur un réseau local et j’ai trouvé une méthode bien plus simple et plus rapide à mettre en place : il suffit simplement d’utiliser la machine hôte en routeur/proxy arp (suivant le type de connexion de réseau).

Pour un réseau inclut dans un autre réseau (genre pour les VM 10.75.75.0/28 dans le réseau physique 10.75.75.0/24 (dans ce cas, il faudra que le dhcp soit configuré pour fournir des ip à partir de 10.75.75.17)).

Il suffit de rajouter ceci dans le fichier /etc/sysctl.conf :

net.ipv4.ip_forward = 1
net.ipv4.conf.default.proxy_arp = 1
net.ipv4.conf.all.proxy_arp = 1
net.ipv4.conf.default.rp_filter = 0

Et l’hôte servira de routeur entre les « deux » réseaux, ça présence sera quasi-invisible (les paquets ARP de la première interface sont rejoués sur la seconde interface seulement si l’adresse existe sur sa seconde interface, ce qui évite les surcharges).

Sur deux réseaux « séparés » (genre pour les VM 192.168.1.0/24 et pour le réseau physique 10.8.8.0/24)

Il suffit de rajouter ceci dans le fichier /etc/sysctl.conf :

net.ipv4.ip_forward = 1

Et rajouter la route menant au réseau 192.168.1.0/24 via l’ip de l’hôte (mettre l’ip du réseau physique ;)) dans le routeur du réseau 10.8.8.0/24.

Et comme ça on ne pourrit pas son réseau avec du rejeu ARP entre les réseaux physique et virtuel (ça peut augmenter de façon importante le traffic du réseau).

Ne pas oublier un coup de sysctl -p après modification du fichier /etc/sysctl.conf

Et on n’a pas besoin d’ajouter de surcouche iptables avec des règles dans tout les sens à chaque machine que l’on ajoute dans le réseau.

Y’a peut être plus simple, mais celle-ci me semble assez propre et rapide à mettre en place, tout en permettant de garder des performances assez élevées.

2 réflexions sur « Connecter un réseau de machines virtuelles sur un réseau local »

  1. merci pour ton blog sa semble interessant mais seulement tu a oublier de donner la procedure comment editer le fichier. je compte sur toi car je ne comprend pas grand chose sue linux

  2. Il faut éditer le fichier en root bien entendu, après, tu utilise le logiciel ou la méthode que tu veux 😉 dans tout les cas, faut pas oublier le sysctl -p en root.

Les commentaires sont fermés.