====== TP : interface virtuelle tap en mode bridge ====== * Objet : Créer une interface virtuelle **tap** en mode //bridge//. * Niveau requis : {{tag>avisé}} * Commentaires : //Vous faites joujou avec vos machines virtuelles et souhaitez leur créer un réseau virtuel ? C'est ici !// * Suivi : {{tag>à-tester}} * Création par [[user>smolski]] le 31/05/2010 * Testé par <...> le <...> * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=129405#p129405|ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== 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 [[:doc:reseau:ssh | SSH]] sur une autre machine du réseau (et inversement), ou d'utiliser des partages en réseau [[:doc:reseau:nfs | 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 -t tap0 && brctl addif br0 tap0 && ifconfig tap0 up down ifconfig tap0 down && brctl delif br0 tap0 && tunctl -d tap0 Pensez à remplacer '''' 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 -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 ===== * [[:doc:systeme:kvm | KVM - Virtualisation ]]. - Virtualisation purement GNU/Linux. ===== 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.