virtualboxPar défaut, VirtualBox propose de connecter les machines virtuelles (ou VM) via un NAT : un serveur DHCP interne à VirtualBox fournit à la VM une adresse IP, la VM a accès à Internet, mais il est impossible d’y accéder via le réseau (même via le système hôte, par exemple pour utiliser SSH ou faire un montage Samba… la solution ? Faire un « pont » !

L’exemple ici fonctionne sous une Debian (ou Ubuntu), adaptez-le selon votre propre système.

La méthode présentée ici est la méthode statique… on aurait pu utiliser une méthode qui crée/détruit les interfaces de manière dynamique, mais le but ici est de faire en sorte de comprendre un minimum ce qui est fait, et le succès de la méthode statique conditionne celui de la méthode dynamique… qui fera (peut être) l’objet d’un prochain article)

Voici la marche à suivre :

→ installer le paquet « bridge-utils »

→ éditer /etc/network/interfaces et y créer une nouvelle interface (le bridge) qui sera rattachée à une interface physique existante :

auto eth0
iface eth0 inet dhcp # ici eth0 obtient son adresse IP via DHCP
# Création du pont :
auto br0
iface br0 inet dhcp # br0 permettra à la machine virtuelle de d'obtenir son adresse IP via DHCP
        bridge_ports eth0
        bridge_fd 2

bridge_ports permet de lier la connexion en pont sur l’interface eth0 qui a été configurée en dhcp
bridge_fd
correspond au temps d’apprentissage de l’adresse ip de l’interface (entre le learning et le forwarding state)
D’autres options existent, mail elles dépassent largement le cadre de cet article.

→ Redémarrer le réseau pour prendre en compte le pont via :

sudo /etc/init.d/networking restart

La chose intéressante, c’est que, comme tout a été configuré via DHCP, on peut ajouter autant de ponts que nécessaire, et laisser le serveur dhcp (celui du routeur par exemple) attribuer les adresses IP en fonction des règles qu’on y aura défini (selon l’adresse MAC par exemple).

→ Faire en sorte que l’utilisateur qui lancera les VM possède les droits suffisants sur le TUNnel :

sudo chown [votre utilisateur] /dev/net/tun

→ Il faut désormais créer l’interface dans VirtualBox (on le fait ici de manière statique) via la commande suivante :

VBoxAddIF vbox0 [votre utilisateur] br0

L’interface est stockée dans le fichier /etc/vbox/interfaces, et se ra pérenne entre un lancement de VM et un autre.
→ Il faut maintenant paramétrer correctement notre VM en spécifiant :

→ attaché à « Adaptateur réseau hôte »

→ Nom de l’interface « vbox0″

Au démarrage de la VM, le server DHCP attribuera une adresse IP à cette interface et vous pourrez accéder à votre VM, non seulement via la machine hôte, mais depuis tout le réseau, et, éventuellement, router certains ports vers la VM.
Notez qu’on aurait très bien pu fixer une adresse IP dans le fichier /etc/network/interfaces

Écrire un commentaire

  • (ne sera pas publié ou utilisé pour vous envoyer du spam)
  • (liens en nofollow)