Configuration du mode "Adaptateur réseau Hôte" pour VirtualBox

Ce mode permet, par exemple, d'être sur le meme réseau IP que votre machine hôte, et donc de pouvoir accéder aux mêmes ressources (et donc aux ressources de la machine hôte aussi).

Commandes à entrer en tant que root.

tout d'abord, nous aurons besoin des bridge-utils :
yum install bridge-utils
Ensuite on donne les bons droits sur le tun device (seul root et les membres du groupe vboxusers peuvent l'utiliser):
chmod 0660 /dev/net/tun
chown root:vboxusers /dev/net/tun
# on crée un bridge:
brctl addbr br0
# eth0 en mode promiscuous (to capture all packets on the network) :
ifconfig eth0 0.0.0.0 promisc up
# on met eth0 dans le bridge (it will be the source because in promiscious mode and physically plugged externally):
brctl addif br0 eth0
# pour accéder au WAN et LAN, il faut une adresse IP pour le bridge (ici en DHCP):
dhclient br0
# pour une adresse ip fixe: ifconfig br0 add 192.168.1.34

# on crée une interfcae réseau logique tap0 :
openvpn --mktun --dev tap0
# on l'active:
ifconfig tap0 up
# on ajoute tap0 dans le bridge pour avoir accès au réseau:
brctl addif br0 tap0
Ensuite, il vous faudra certainement régler votre firewall (moi je l'ai désactivé, j'ai pas cherché plus loin).

Puis ouvrir VirtualBox, la configuration réseau de votre machine virtuelle doit être:
- cocher Activer l'adaptateur réseau
- choisir Adaptateur réseau hôte
- laisser l'adresse MAC par défaut (ou changez la si vous savez ce que vous faites)
- cocher câble relié
- nom de l'interface : tap0
- laisser blanc application d'installation et de désinstallation (nous l'avons fait à la main)

un petit script:
#!/bin/bash
chmod 0660 /dev/net/tun
chown root:vboxusers /dev/net/tun
# we setup a bridge:
brctl addbr br0
# we put eth0 in promiscuous mode (to capture all packets on the network) :
ifconfig eth0 0.0.0.0 promisc up
# we add eth0 in our bridge (it will be the source because in promiscious mode and physically plugged externally):
brctl addif br0 eth0
# just in case! :
# iptables -F FORWARD
# if we want the Host to access LAN and WAN, we nedd an IP Address:
# with DHCP:
dhclient br0
# by hand:
# ifconfig br0 add 192.168.1.34
# we setup a simple VPN on tap0 :
openvpn --mktun --dev tap0
# we activate the tap0 interface:
ifconfig tap0 up
# we add the tap0 in our bridge to be able to access the network:
brctl addif br0 tap0
En mettant ce script dans le répertoire /usr/local/bin et en le faisant exécuter par /etc/rc.d/rc.local tout sera en ordre au démarrage de la machine.

Voilà, j'ai écrit ce petit tuto car je ne trouvais rien de simple, clair et complet et surtout tout ce que je trouvais était à base de tunctl... ce qui est dépassé, et non dispo sur F7.
N'hésitez pas à faire vos commentaires/critiques/remontrances/féliciations/ajouts/corrections/améliorations...
à+

PS: si quelqu'un veut bien se pencher sur la configuration du firewall dans cette configuration... n'oubliez pas de compléter ce post!
Salut, voila un petit howto intéréssant.

J'ai moi aussi cherché un moment comment créer une interface tap sans passé par tuntcl et j'ai trouvé la solution sur un forum avec openvpn mais je n'ai pas eu le temps da la mettre en place. Je compte l'utiliser non pas avec VirtualBox mais avec le couple qemu/kvm.

En tout cas bravo a toi pour ce petit tuto.
Merci, oui, effectivement, j'ai rassemblé diverses sources, et ça devrait aussi fonctionner avec Qemu/KVM, j'ai essayé ça qui fonctionne:
qemu -boot n -net nic,vlan=0 -net tap,vlan=0,script=no,ifname=tap0 -hda /dev/null
Et ça boot en PXE, par contre , le réseau de la VM est extrêment lent (même pas 10Mbps).
En fait OpenVPN remplace complètement tunctl pour la création d'interface tap.
à+
Denis
salut, dis moi une petite doc concernant virtualbox, est prévue, veux tu y participer ?
Pourrais aussi faire une partie sur le partage de périf USB ?
Salut et merci pour ce tuto.

Cependant, il n'est absolument pas coutume de mettre des tuto sur le forum. Le forum est exclusivement réservé au support et à la discussion. Les tuto quant à eux vont dans la partie documentation : http://doc.fedora-fr.org/wiki/Contribuer
@slobberbone: OK pour participer.

@MrTom: oui effectivement, j'y ai songé un moment, mais après renseignements, les procédures à suivre me gavent et donc je préfère poster sur le forum, libre à chacun de reprendre mes tutos/scripts pour les inclure dans la partie documentation ou non. Je fais ça pour la communauté, je les rends dispo, après ... j'ai pas vraiment le temps pour ça.

Ceci dit je vais quand même m'essayer à la partie doc, puisqu'on me le propose, mais je le répète je n'ai vraiment pas beaucoup de temps à y consacrer.

à+
Denis
Bonjour,

tu sais, il existe une doc sur le site de VirtualBox qui décrit une méthode totalement adaptée à Fedora (mais moins générique, je te l'accorde).
Cette méthode utilise les fichiers de configuration du bien connu system-config-network.
@denis (pour le petit tuto )

je ne l'ai pas testé mais au moins ca a le mérite d'être super clair !! !bravo et merci !!!

ozan
5 jours plus tard
bonjour j'ai un petit problème avec ma connection internet sous virtualbox...
non en fait je n'ai pas de probleme sous virtualbox mais dès que je ferme virtualbox, je n'ai plus de connexion sur Fedora..
que dois je faire pour reconfigurer ma connection sous fedora apres avoir éteint virtualbox..
merci.
Bonjour,

Ce tuto est bien. Malheureusement, j'ai un petit problème avec le bridge.
J'ai fait mes tests, j'ai monté sans problème la connexion RM<=>VM via Tun/Tap avec openvpn en attribuant aux interfaces des IP statiques.

Ensuite, en suivant de A à Z ce tuto, je n'arrive pas à me connecter sur le net avec ma VM, mais j'arrive à le faire avec ma machine physique, et pas moyen de pinger par tap0, en utilisant bien sur la seule adresse disponible: mon IP publique.

Est-ce que quelqu'un pourrait m'aider SVP?
Bonjour,

Que tu aies monté le bridge par la méthode de ton choix ne change rien au processus de rattachement de l'interface TUN/TAP de la VM (vbox0) au bridge installé.
La doc officielle citée plus haut est également fournie avec le rpm : /usr/share/doc/VirtualBox-1.5.2_25433_fedora7/UserManual.pdf
6 jours plus tard
Bonjour a tous,
Tout d"abord super le tuto 🙂 ca m'a bien aidé dans ma résolution de l'histoire VirtualBox et du bridge networking. J'ai trouvé pour ne plus avoir à desactiver le firewall, il faut faire comme suit (pour précision je suis sous une fedora 8), ouvrez un terminal :
$su -
$service iptables stop
Le plus simple est de faire un copier/coller de mon fichier iptables dans un fichier executable (chmod 700 iptables.sh)
#!/bin/bash

# Remise à zero des règles de filtrages
iptables -F
iptables -t nat -F

# Toutes les connexions entrantes bloquées par défaut
iptables -P INPUT DROP

# Les connexions destinées à être forwardées sont acceptées par défaut
iptables -P FORWARD ACCEPT

# Les connexions sortantes sont acceptées par défaut
iptables -P OUTPUT ACCEPT

# Accepter les paquets entrants relatifs a des connexions déjà établies
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# Service FTP
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# Service SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Service HTTP
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# Service Samba
iptables -A INPUT -p tcp --dport 137:139 -j ACCEPT
iptables -A INPUT -p udp --dport 137:139 -j ACCEPT
iptables -A INPUT -p tcp --dport 445 -j ACCEPT

# Service VLC
# iptables -A INPUT -p udp --dport 1234 -j ACCEPT

# Accpeter les pings 
iptables -A INPUT -p icmp -j ACCEPT

# Pas de filtrage sur loopaback et tap0
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -i tap0 -j ACCEPT

# La règle par défaut devient REJECT pour la chaîne INPUT
iptables -A INPUT -j REJECT

# Partage de connexion
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Voila ! il ne reste plus qu'a sauvegarder les changements et à redémarrer iptables
$service iptables save
$service iptables start
Normalement y'a plus qu'a démarrer la machine virtuelle.

En bonus, le tout pti script qui permet d'arrêter le pont (il peut sûrement être mieux ce script) :
#! /bin/bash
# Arret des interfaces réseau
/sbin/ifconfig tap0 down
/sbin/ifconfig br0 down
# Destruction du pont
/usr/sbin/brctl delbr br0
# Redémarrage du service réseau
/etc/init.d/network restart
Ne pas oublier le chmod 700 pour le rendre exécutable (ex : chmod 700 delbr.sh) 🙂
3 mois plus tard
Bonjour j'ai modifié ton script pour plusieur interface tap et modifié une ligne de code qui était en erreur chez moi

ifconfig br0 add 192.168.1.3 par ifconfig br0 192.168.1.3
#!/bin/bash
chmod 0660 /dev/net/tun
chown root:vboxusers /dev/net/tun
# we setup a bridge:
brctl addbr br0
# we put eth0 in promiscuous mode (to capture all packets on the network) :
ifconfig eth0 0.0.0.0 promisc up
# we add eth0 in our bridge (it will be the source because in promiscious mode and physically plugged externally):
brctl addif br0 eth0
# just in case! :
#iptables -F FORWARD
# if we want the Host to access LAN and WAN, we nedd an IP Address:
# with DHCP:
dhclient br0
# by hand:

#ifconfig br0 192.168.1.3

# we setup a simple VPN on tap0 :
openvpn --mktun --dev tap0
openvpn --mktun --dev tap1
openvpn --mktun --dev tap2
openvpn --mktun --dev tap3

# we activate the tap0 interface:
ifconfig tap0 up
ifconfig tap1 up
ifconfig tap2 up
ifconfig tap3 up
# we add the tap0 in our bridge to be able to access the network:
brctl addif br0 tap0
brctl addif br0 tap1
brctl addif br0 tap2
brctl addif br0 tap3
et voici le code de desactivation

#! /bin/bash
# Arret des interfaces réseau
/sbin/ifconfig tap0 down
/sbin/ifconfig tap1 down
/sbin/ifconfig tap2 down
/sbin/ifconfig tap3 down

/sbin/ifconfig br0 down
# Destruction du pont
/usr/sbin/brctl delbr br0
# Redémarrage du service réseau
/etc/init.d/network restart