Virtualbox et le réseau sous debian/ubuntu

Pendant que l’installation d’une machine virtuelle se termine, je ne résiste pas a l’envie de partager quelques lignes pour configurer efficacement le réseau pour l’utilisation de VirtualBox.

Si vous avez survolé rapidement VirtualBox, vous avez pu constater que par défaut, le réseau fonctionne pour les systèmes invités (virtualisés) grâce à un NAT. Cependant ce fonctionnement présente quelques limites, empêchant par exemple la machine virtuelle d’être accessible depuis un autre ordinateur de votre réseau.
Heureusement, les développeurs de VirtualBox proposent d’autres modes de fonctionnement, et en particulier l’utilisation d’une interface du système hôte (host interface networking). Il va donc s’agir ici de créer une interface réseau supplémentaire (nommée tap0), ainsi qu’un bridge permettant au réseau de fonctionner correctement.
L’installation décrite ici sera très simple : Une machine hote comprenant une carte réseau, dont l’adresse est définie par un serveur DHCP (routeur, freebox, …) sur laquelle une machine virtuelle sera créée via VirtualBox.

Configuration du système et du réseau

Il convient tout d’abord d’installer les paquets nécessaires :

# apt-get install bridge-utils uml-utilities

Passons a la configuration réseau a proprement parler, en modifiant le fichier /etc/network/interfaces comme ceci.

# L'interface réseau physique de la machine
auto eth0
iface eth0 inet manual

# L'interface qui sera utilisée par VirtualBox
auto tap0
iface tap0 inet manual
    tunctl_user user

# Le bridge, permettant au réseau d'être accessible aux deux interfaces réseaux.
auto br0
iface br0 inet dhcp
    post-up chmod ugo+rw /dev/net/tun
    bridge-ports eth0 tap0
    bridge-ageing 7200
    bridge-fd 0

Comme vous pouvez le voir ci-dessus, il vous faudra définir la valeur user à la valeur de l’utilisateur sous lequel vous lancez VirtualBox, puis ajouter cet utilisateur au groupe uml-net :

# addgroup user uml-net

Il ne vous reste plus qu’a redémarrer le réseau.

# /etc/init.d/networking restart

N’oubliez pas de surveiller les différents messages affichés lors de cette opération, ceux ci pourront être utiles pour repérer une erreur de configuration. Dans ce cas, n’hésitez pas a utiliser l’ami.

La configuration de VirtualBox

Grâce a l’interface graphique bien pensée (qui a dit inspirée de VMware ?), la configuration est très simple. Dans la partie Réseau des Préférences d’une machine virtuelle, il vous suffit de spécifier les deux valeurs Attaché à et Nom de l’interface respectivement à Adaptateur réseau hôte et tap0 comme dans la capture ci-dessous.
Configuration réseau virtualbox

Comme d’habitude, une explication assistée c’est bien, mais n’oubliez pas de lire la documentation en cas de besoin!

15 comments on “Virtualbox et le réseau sous debian/ubuntu
  1. atlas95 dit :

    Bonjour,
    Comment faire si je veux creer plusieurs machine a mettre sur le meme reseau?
    Je dois faire un TPI samba et donc je voudrais créer une machine virtuelle linux et windows au moin, tout en ayant toujours internet sur la machine hôte je voudrais que les 2 machine virtuelle puisse communiquer et recuperer une ip sur le meme routeur que la machine hote…
    J’espère être clair et que vous pourrez m’aider.
    Merci d’avance et merci pour le tuto

  2. atmaniak dit :

    Il suffit simplement d’ajouter une interface tapX possedant les memes paramètres que la première, par exemple :
    auto tap1
    iface tap1 inet manual
    tunctl_user user

    Et ainsi de suite en modifiant le X.
    Ne pas oublier d’ajouter le nom de l’interface a la directive
    bridge-ports eth0 tap0 tap1

  3. Rene dit :

    Bonjour,

    Merci pour cette explication nette et sans bavure. J’ai pu « rejouer » ce tuta du premier coup sans problème, et je peux désormais profiter du reseau depuis ma Virtualbox 🙂

    Cordialement

    Ma Configuration :

    Debian Testing 64 Bits (x86_64)
    Virtualbox 1.5.0

  4. Typhoe dit :

    Bonjour,

    je viens de découvrir ton astuce. Cela m’intéresse fortement car il s’agit justement DU point que je trouve très bloquant avec VirtualBox par rapport à VMWare (le mode bridge de la carte réseau donc).
    Par contre, petite question, Ubuntu utilise le paquet Network-manager pour gérer les interfaces réseaux et de mémoire, pour que celui-ci (NM) fonctionne, il ne faut pas que les interfaces réseaux apparaissent dans le fichier /etc/network/interfaces ?
    Est-ce que celà pose problème ou pas? Qu’en est il pour toi?

    Merci d’avance.
    Typhoe

  5. atmaniak dit :

    Il est vrai que j’ai fait cette manipulation sans avoir le Network-Manager d’installé … et d’ailleurs depuis je l’ai desinstallé.

    D’apres ce que j’ai pu lire sur ce wiki par exemple : http://doc.ubuntu-fr.org/networkmanager
    Il ne faudrait absolument pas toucher au fichier de configuration pour que les interfaces soient gerés par le NW. Donc cela risque de casser le fonctionnement de NW …

  6. nico5 dit :

    Bonjour,

    Une fois le tuto suivi, quelle est la config réseau à mettre en oeuvre au niveau de la VBox ?
    J’avais effectuée des modifs de cette config réseau donc j’ai predu la config initiale.

    Merci.

  7. Syfodiass dit :

    Bonjour,

    Tous dabord merci pour ce super tuto.

    La mise en oeuvre de cette config ne pose pas de problème, par contre j’aimerais l’appliquer sur mon interface wifi.

    Voici mon fichier /etc/network/interfaces :

    #The loopback network interface
    auto lo
    iface lo inet loopback

    # L’interface réseau physique de la machine
    auto ath0
    iface ath0 inet manual

    # interface virtuel ethernet
    auto tap0
    iface tap0 inet manual
    tunctl_user user

    # Le bridge, permettant au réseau d’être accessible aux deux interfaces réseaux.
    auto br0
    iface br0 inet dhcp
    post-up chmod ugo+rw /dev/net/tun
    bridge-ports ath0 tap0
    bridge-ageing 7200
    bridge-fd 0

    Malheureusement cela ne fonctionne pas.
    Saurais tu me dire d’ou vient le problème ?
    D’avance merci
    Syfodiass

  8. stefcio dit :

    salut,
    Comme Syfodiass, j’accède à mon réseau par carte wifi, j’ai pu lire à droite à gauche qu’il était difficile de « brigder » lorsque l’on utiliser le wifi.
    pour l’instant bizzarement j’accède au web via ma machine virtuelle windob mais lorsque je ping ou tracert une adresse web cela ne fonctionne pas, cela me pose donc pb lorsque j’essaye de fonctionner avec ubuntu serveur ou freebsd…..
    Pourriez vos me donner de plus amples info?

    Merci d’avance

    Stef

  9. MikeMeilleur dit :

    Salut et merci pour ce tuto très clair.

    Maintenant me machine virtuelle peut accéder à Internet mais impossible de pinguer mes machines (host machine virtuelle). J’ai le message suivant :

    PING 192.168.0.6 (192.168.0.6) 56(84) bytes of data.
    From 192.168.0.4 icmp_seq=1 Destination Host Unreachable
    From 192.168.0.4 icmp_seq=2 Destination Host Unreachable
    From 192.168.0.4 icmp_seq=3 Destination Host Unreachable

    Mes machines (host et virtuelle) sont en FHCP les deux. Est-ce à cause de ça ? (je n’ai pas firestarter d’installé)

  10. Dany dit :

    J’ai le même comportement que toi MikeMeilleur et c’est pas tip top… :/ Quelqu’un aurait une idée ? 😉

  11. nifuro dit :

    Bonjour à tous,

    Pour les ping qui ne répondent pas , je pense que c’est du au fait que les requetes ICMP ne sont pas routables, donc via la connexion NAT dans VIRTUALBOX, ça marche pas 🙁

  12. lobe dit :

    Je n’arrive pas à installer virtualbox sous debian. Peux-tu me donner la procédure complète. J’ai un serveur debain 3.1 et je souhaite avoir deux machines supplémentaires sous debian communiquant avec mon serveur.
    J’ai mis virtubox-ose téléchargé sur une clé usb.

  13. tres interssant comme information merci beaucoup !

2 Pings/Trackbacks for "Virtualbox et le réseau sous debian/ubuntu"
  1. […] Mis à Jour : un article plus clair ici […]

  2. […] votre VM VirtualBox en mode bridge, sur l’interface tap0 mais pour cela, vous pouvez regarder ici. Posted in […]

Laisser un commentaire

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

*