Table des matières

TP : interface virtuelle tap en mode bridge

Introduction

Nous allons voir dans ce tutoriel comment créer une interface réseau virtuelle tap en mode bridge.
Beaucoup de tutoriels traitant ce sujet existent déjà, mais aucun n'a pu m'aider.
Je vais vous donner la configuation réseau que j'ai chez moi, et vous expliquer ce que j'ai voulu faire.

Préalable

Par défaut, le réseau de VirtualBox fonctionne en mode NAT, ce qui crée un sous-réseau virtuel dont la machine hôte est le serveur.
La configuration réseau de la machine virtuelle se faisant en DHCP c'est très pratique.

Par contre, il n'est pas possible de se connecter de manière simple par SSH sur une autre machine du réseau (et inversement), ou d'utiliser des partages en réseau NFS ou Samba, car il y faut l'application des règles iptables, trop compliqué pour moi. ;-)

Créer une interface virtuelle en mode bridge permet :
1) de ne pas avoir un sous-réseau, et donc
2) que la machine virtuelle soit ainsi dans le même réseau que les autres machines physiques.

Installation

Assurez-vous d'avoir les paquets “bridge-utils” et “uml-utilities” d'installés.

apt-get update && apt-get install bridge-utils uml-utilities
Le but ici est donc d'avoir une machine virtuelle configurée, au niveau réseau, exactement comme une nouvelle machine physique.

IP non fixe - Configuration du réseau bridge

IP non fixe - Configuration du fichier /etc/network/interfaces

Ma configuration de départ :

# The primary network interface static
allow-hotplug eth0
iface eth0 inet dhcp

À modifier ainsi :

Bien utiliser auto et non allow-hotplug !
# The primary network interface static
auto eth0
iface eth0 inet manual 
        up ifconfig eth0.1.2.3...50 up
        down ifconfig down

Ajoutez ensuite ces lignes :

# Bridge interfaces
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_fd 0

# Tap
auto tap0
iface tap0 inet manual
        up tunctl -u <MonUser> -t tap0 && brctl addif br0 tap0 && ifconfig tap0 up
down ifconfig tap0 down && brctl delif br0 tap0 && tunctl -d tap0
Pensez à remplacer <MonUser> par l'utilisateur qui utilisera cette interface.

IP fixe - Configuration du réseau bridge

Préalable

Ma configuration réseau à la base :

Neufbox : routeur : 192.168.1.1
PC1 : passerelle (debian etch) : eth0 = 192.168.0.1, eth1 = 192.168.1.20
PC2 : desktop (debian lenny) : eth0 = 192.168.0.2
PC3 : desktop (debian lenny) : eth0 = 192.168.0.3

Vous vous demandez :
Pourquoi j'ai une passerelle qui joint 2 réseaux ?

Réponse :
Avant d'avoir la Neufbox, j'étais chez Free et par défaut la freebox était configurée en mode bridge (comme un modem classique) et non en routeur, donc il me fallait une passerelle.

Certes j'aurai pu la configurer en routeur mais je ne savais pas qu'on pouvait le faire.
Voilà, c'est dit !

Mon but ici est d'avoir une machine virtuelle configurée, au niveau réseau, exactement comme une machine physique soit :

 PCv (v pour virtuel) : eth0 = 192.168.0.4

IP fixe - Configuration

Je souhaite utiliser ma machine virtuelle depuis PC3 donc je configure PC3.

Voici l'extrait concernant “eth0” du fichier “/etc/network/interfaces” avant modification :

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 192.168.0.1
    dns-search intranet

Apportez les modifications suivantes :

# The primary network interface
allow-hotplug eth0
iface eth0 inet manual
    up ifconfig eth0 0.0.0.0 up
    down ifconfig eth0 down

# The bridge interface
auto br0
iface br0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    network 192.168.0.0
    broadcast 192.168.0.255
    gateway 192.168.0.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 192.168.0.1
    dns-search intranet
    bridge_ports eth0
    bridge_fd 0

# Tap
iface tap0 inet manual
    up tunctl -u UTILISATEUR -t tap0 && brctl addif br0 tap0 && ifconfig tap0 up
    down ifconfig tap0 down && brctl delif br0 tap0 && tunctl -d tap0
Pensez à remplacer “UTILISATEUR” par l'utilisateur qui utilisera cette interface.

Connection tap0 non automatique

Pour éviter la connection automatique, car généralement, on utilise cette interface que lorsque l'on en a besoin, commentez ou effacez la ligne auto tap0 :

# Tap
# auto tap0
iface tap0 inet manual
        up tunctl -u <MonUser> -t tap0 && brctl addif br0 tap0 && ifconfig tap0 up
down ifconfig tap0 down && brctl delif br0 tap0 && tunctl -d tap0

Merci à ahillerin ;-) pour sa remarque à ce propos sur le forum ici :
http://debian-facile.org/forum/viewtopic.php?pid=3062#p3062

Avec cette configuration, nous avons :

eth0

notre interface physique eth0 qui écoute tout ce qui se passe.

br0

L'interface br0 qui fait le pont (bridge) de jonction entre “eth0” et “tap0

tap0

tap0 est la seule interface possible pour être utilisé sur la machine virtuelle que nous allons créer.
tap0 reprend et utilise à l'identique la configuration initiale de eth0.
Pour cet exemple, dans la connection virtualisée, tap0 se nommera eth0.

Relancer le réseau

Il vous reste juste à relancer le réseau :

service networking restart

Créer l'interface tap0

Si sur la commande :

ifconfig

L'interface “tap0” n'apparaît pas, il faut donc faire :

ifup tap0

Avec Virtualbox

Dans la section réseau “adapté à Adapteur réseau hôte” et dans le champ “Nom de l'interface” saisissez :

"tap0"

Puis dans votre machine virtuelle, vous configurez votre réseau comme pour une autre machine.

Virtualbox et le Bridge

Ceci reste valable jusqu'à la branche lenny qui utilise encore une ancienne version de Virtualbox

-Quelle distribution conservatrice ! :-) - Note de XwZ sur irc… ah ah ah !

Sinon, sous les versions suivantes de Virtualbox, dans la section reseau, nous avons une option :

 Accès par pont

et il fait tout tout seul !

KVM - QEMU

Liens

Voici 2 liens sur sur lesquels je me suis appuyé :
http://www.adella.org/spip/spip.php?article71
http://compsoc.dur.ac.uk/~djw/qemu.html.

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !