Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
virtualbox_reseau [Le 22/07/2008, 15:10]
soleuu
virtualbox_reseau [Le 11/09/2022, 12:01] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>virtualbox ​réseau}}+{{tag>virtualisation ​réseau ​À_RECYCLER}}
  
 ---- ----
  
-{{applications:​virtualbox.png|}} +{{ :applications:​virtualbox.png?70|}}
- +
 ====== VirtualBox et le réseau ====== ====== VirtualBox et le réseau ======
  
 Cette page n'est qu'une annexe destinée à alléger la page principale de [[:​VirtualBox]] et permettant de vous présenter ​ la façon de mettre en œuvre la mise en réseau de l'​hôte //(host interface networking)//​. ​ Cette page n'est qu'une annexe destinée à alléger la page principale de [[:​VirtualBox]] et permettant de vous présenter ​ la façon de mettre en œuvre la mise en réseau de l'​hôte //(host interface networking)//​. ​
  
-<note important>​Attention si l'​hôte (le système qui exécute VirtualBox) ​est connecté ​à votre réseau par wifi : beaucoup de carte wifi **ne supporte pas bridge**malheureusement les deux exemples donnés ci-dessous utilisent **bridge**. Plus d'information ​: [[http://www.linux-foundation.org/en/Net:​Bridge#​It_doesn.27t_work_with_my_Wireless_card.21|It doesn'​t work with my Wireless card!]]  +<note important>​Cette page est assez ancienne et est donc à prendre avec précautionsn'hésitez pas à consulter le chapitre 6 de la doc officielle (fr) :\\ [[http://download.virtualbox.org/virtualbox/UserManual_fr_FR.pdf]]\\ 
-Cependant, un workaround avec iptables ​et le nat peut permettre ​à virtualbox de se connecter au réseau même si l'​interface wifi ne supporte pas le bridge.+et à amender cette page</​note>​
  
 +<note important>​Attention si l'​hôte (le système qui exécute VirtualBox) est connecté à votre réseau par wifi : beaucoup de cartes wifi **ne supportent pas bridge**, malheureusement les deux exemples donnés ci-dessous utilisent **bridge**. Plus d'​information : [[http://​www.linux-foundation.org/​en/​Net:​Bridge#​It_doesn.27t_work_with_my_Wireless_card.21|It doesn'​t work with my Wireless card!]]
 +Cependant, un workaround avec iptables et le nat peut permettre à VirtualBox de se connecter au réseau même si l'​interface wifi ne supporte pas le bridge.
 </​note>​ </​note>​
-<​note>​+
 Pour la rédaction de cet article, les options suivantes ont été utilisées dans la configuration réseau de VirtualBox: Pour la rédaction de cet article, les options suivantes ont été utilisées dans la configuration réseau de VirtualBox:
   * **Adapter Type**: //''​PCnet-FAST III (Am 79C973)''//​   * **Adapter Type**: //''​PCnet-FAST III (Am 79C973)''//​
   * **Adresse MAC**: Laisser la valeur par défaut, ou ''​Générer''​.   * **Adresse MAC**: Laisser la valeur par défaut, ou ''​Générer''​.
 +
 +<note tip>
 + Sous [[Jaunty]] avec la version des dépôts (version 2.1.4 OSE) il suffit d'​installer **[[apt>​bridge-utils]]** et de configurer l'​adaptateur réseau sur "​attaché à: Adaptateur réseau Hôte" pour la machine virtuelle. Si vous êtes en DHCP le tour est joué, la machine virtuelle est accessible directement sur le réseau local sans plus de configuration.
 </​note>​ </​note>​
- 
- 
- 
- 
- 
- 
 ===== NAT ===== ===== NAT =====
  
Ligne 32: Ligne 29:
 ===== Adaptateur réseau hôte ===== ===== Adaptateur réseau hôte =====
  
-[[:​tutoriel:​comment_installer_un_paquet|Installer les paquets]] **bridge-utils****uml-utilities** (attention, ​ce paquet est dans le dépôt **Universe**). +[[:​tutoriel:​comment_installer_un_paquet|Installer les paquets]] **[[apt>bridge-utils,​uml-utilities|bridge-utils uml-utilities]]** (attention, ​ces paquets sont dans le dépôt **Universe**).
- +
- +
  
 ==== Création du pont ==== ==== Création du pont ====
Ligne 43: Ligne 37:
 Le fait que le pont soit permanent nous permet, pour la méthode dynamique, d'​ajouter les interfaces virtuelles sans couper la connection réseau de l'​hôte. Le fait que le pont soit permanent nous permet, pour la méthode dynamique, d'​ajouter les interfaces virtuelles sans couper la connection réseau de l'​hôte.
  
-Sauvegarder le fichier **/​etc/​network/​interfaces**:<​code bash>+Sauvegarder le fichier **/​etc/​network/​interfaces**:​ 
 +<code bash>
 sudo cp /​etc/​network/​interfaces /​etc/​network/​interfaces.orig sudo cp /​etc/​network/​interfaces /​etc/​network/​interfaces.orig
 </​code>​ </​code>​
Ligne 51: Ligne 46:
 Remplacer "​eth0"​ par le nom de l'​interface à laquelle on désire attacher le pont.\\ Remplacer les valeurs de "​address",​ "​netmask"​ et "​gateway"​ par celles utilisées sur le réseau. Remplacer "​eth0"​ par le nom de l'​interface à laquelle on désire attacher le pont.\\ Remplacer les valeurs de "​address",​ "​netmask"​ et "​gateway"​ par celles utilisées sur le réseau.
 </​note>​ </​note>​
-L' interface est probablement déjà configurée par le système, repérer les lignes du type<​file>​ +L' interface est probablement déjà configurée par le système, repérer les lignes du type 
-auto eth0 +<​file ​- /​etc/​network/​interfaces
 +auto eth0
 iface eth0 inet dhcp iface eth0 inet dhcp
 </​file>​ou<​file>​ </​file>​ou<​file>​
-auto eth0 +auto eth0
 iface eth0 inet static iface eth0 inet static
         address xxx.xxx.xxx.xxx         address xxx.xxx.xxx.xxx
         netmask xxx.xxx.xxx.xxx         netmask xxx.xxx.xxx.xxx
         gateway xxx.xxx.xxx.xxx         gateway xxx.xxx.xxx.xxx
-</​file>​puis les supprimmer.+</​file>​puis les supprimer.
  
 Configurer l'​interface en mode manuel, pour cela ajouter<​file>​ Configurer l'​interface en mode manuel, pour cela ajouter<​file>​
Ligne 70: Ligne 66:
 auto br0 auto br0
 iface br0 inet dhcp iface br0 inet dhcp
- bridge-ports ​eth0+ bridge_ports ​eth0
 </​file>​sinon,​ ajouter (remplacer les xxx par les valeurs qui se trouvaient dans la configuration de eth0)<​file>​ </​file>​sinon,​ ajouter (remplacer les xxx par les valeurs qui se trouvaient dans la configuration de eth0)<​file>​
 auto br0 auto br0
 iface br0 inet static iface br0 inet static
- bridge-ports ​eth0+ bridge_ports ​eth0
  address xxx.xxx.xxx.xxx  address xxx.xxx.xxx.xxx
  netmask xxx.xxx.xxx.xxx  netmask xxx.xxx.xxx.xxx
  gateway xxx.xxx.xxx.xxx  gateway xxx.xxx.xxx.xxx
 </​file>​ </​file>​
- 
-<note tip>​Voici une autre méthode pour ubuntu 8.04 et virtualbox ose : [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=217680]]</​note>​ 
- 
- 
  
 ==== Préparation des interfaces virtuelles ==== ==== Préparation des interfaces virtuelles ====
Ligne 88: Ligne 80:
 Quelques préparatifs sont nécessaires afin que VirtualBox puisse accéder aux interfaces virtuelles. Quelques préparatifs sont nécessaires afin que VirtualBox puisse accéder aux interfaces virtuelles.
  
-Ajouter l'​utilisateur au groupe **uml-net**:<​code bash>​sudo adduser $USERNAME ​uml-net</​code>​+Ajouter l'​utilisateur au groupe **uml-net**:<​code bash>​sudo adduser $USER uml-net</​code>​
 Créer le groupe **tunusers**:<​code bash>​sudo addgroup tunusers</​code>​ Créer le groupe **tunusers**:<​code bash>​sudo addgroup tunusers</​code>​
-Y ajouter l' utilisateur:<​code bash>​sudo adduser $USERNAME ​tunusers</​code>​ +Y ajouter l' utilisateur:<​code bash>​sudo adduser $USER tunusers</​code>​ 
-Modifier les droits d'​acces a //''/​dev/​net/​tun''//​ pour que les utilisateurs du groupe **tunusers** puissent l'​utiliser:​\\ [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​udev/​rules.d/​20-names.rules**.\\ Remplacer<​file>​KERNEL=="​tun",​ NAME="​net/​%k"</​file>​par<​file>​KERNEL=="​tun",​ NAME="​net/​%k",​ GROUP="​tunusers",​ MODE="​0660"</​file>​ +Modifier les droits d'​acces a //''/​dev/​net/​tun''//​ pour que les utilisateurs du groupe **tunusers** puissent l'​utiliser:​\\ [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​udev/​rules.d/​20-names.rules**.\\ ​ 
-Si le node //''/​dev/​net/​tun''//​ est créé par recopie du fichier //''/​lib/​udev/​devices/​net/​tun''//​ avec ses droits d'​accès.\\ Modifier les permissions de **/​lib/​udev/​devices/​net/​tun** afin que le fichier soit accessible pour les membres du groupe **tunusers**:<​code bash>+Remplacer 
 +<​file>​ 
 +KERNEL=="​tun",​ NAME="​net/​%k"</​file>​ 
 +par 
 +<​file>​KERNEL=="​tun",​ NAME="​net/​%k",​ GROUP="​tunusers",​ MODE="​0660"</​file>​ 
 +Si le node //''/​dev/​net/​tun''//​ est créé par recopie du fichier //''/​lib/​udev/​devices/​net/​tun''//​ avec ses droits d'​accès.\\ Modifier les permissions de **/​lib/​udev/​devices/​net/​tun** afin que le fichier soit accessible pour les membres du groupe **tunusers**:​ 
 +<code bash>
 sudo chown :tunusers /​lib/​udev/​devices/​net/​tun sudo chown :tunusers /​lib/​udev/​devices/​net/​tun
 sudo chmod g+rw /​lib/​udev/​devices/​net/​tun sudo chmod g+rw /​lib/​udev/​devices/​net/​tun
Ligne 100: Ligne 98:
 ==== Méthode dynamique ==== ==== Méthode dynamique ====
  
-L'​interface utilisée par la machine virtuelle est créée au démarrage de celle-ci, puis supprimée ​son extinction.+L'​interface utilisée par la machine virtuelle est créée au démarrage de celle-ci, puis supprimée ​à son extinction.
  
 <note important>​ <note important>​
-Nous allons ici utiliser la commande "​VBoxTunctl",​ cet outil n'est pas fournit ​avec la version OpenSource de VirtualBox, il nous faut donc [[virtualbox#​installation_de_la_version_officielle_methode_classique|installer la version officielle]].+Nous allons ici utiliser la commande "​VBoxTunctl",​ cet outil n'est pas fourni ​avec la version OpenSource de VirtualBox, il nous faut donc [[virtualbox#​installation_de_la_version_officielle_methode_classique|installer la version officielle]].
 </​note>​ </​note>​
  
-[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​opt/​bin/​vbox-network**.<​file>​+[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​opt/​bin/​vbox-network**. 
 +<​file ​- /​opt/​bin/​vbox-network>
 #!/bin/bash #!/bin/bash
  
Ligne 131: Ligne 130:
 </​file>​ </​file>​
  
-[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​opt/​lib/​vbox-network**.<​file>​+[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​opt/​lib/​vbox-network**. 
 +<​file ​- /​opt/​bin/​vbox-network>
 # include configuration # include configuration
 . /​opt/​etc/​vbox-network . /​opt/​etc/​vbox-network
Ligne 186: Ligne 186:
 </​file>​ </​file>​
  
-[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​opt/​etc/​vbox-network**.<​file>​+[[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​opt/​etc/​vbox-network**. 
 +<​file ​- /​opt/​bin/​vbox-network>
 BRIDGE="​br0"​ BRIDGE="​br0"​
 TUN="/​dev/​net/​tun"​ TUN="/​dev/​net/​tun"​
Ligne 195: Ligne 196:
 </​file>​ </​file>​
  
-Modifier les permission de **/​opt/​bin/​vbox-network** afin qu'il soit exécutable par les membres du groupe **vboxusers**:<​code bash>+Modifier les permission de **/​opt/​bin/​vbox-network** afin qu'il soit exécutable par les membres du groupe **vboxusers**:​ 
 +<code bash>
 sudo chown :vboxusers /​opt/​bin/​vbox-network sudo chown :vboxusers /​opt/​bin/​vbox-network
 sudo chmod ug+rx /​opt/​bin/​vbox-network sudo chmod ug+rx /​opt/​bin/​vbox-network
 </​code>​ </​code>​
  
-Créer les liens **vbox-network_start** et **vbox-network_stop**:<​code bash>+Créer les liens **vbox-network_start** et **vbox-network_stop**:​ 
 +<code bash>
 cd /opt/bin cd /opt/bin
 sudo ln -s vbox-network vbox-network_start sudo ln -s vbox-network vbox-network_start
Ligne 206: Ligne 209:
 </​code>​ </​code>​
  
-Editer **/​etc/​sudoers** afin que virtualbox ​puisse exécuter les commandes ​necessaires ​sans se voir demandé ​de mot de passe:<​code bash>+Editer **/​etc/​sudoers** afin que Virtualbox ​puisse exécuter les commandes ​nécessaires ​sans se voir demander ​de mot de passe: 
 +<code bash>
 sudo visudo sudo visudo
 </​code>​ </​code>​
-Ajouter<​file>​+Ajouter 
 +<​file>​
 # Members of vboxusers can run /​opt/​bin/​vbox-network_start and /​opt/​bin/​vbox-network_stop without asked for a password # Members of vboxusers can run /​opt/​bin/​vbox-network_start and /​opt/​bin/​vbox-network_stop without asked for a password
 %vboxusers ALL=(ALL) NOPASSWD: /​opt/​bin/​vbox-network_start,​ /​opt/​bin/​vbox-network_stop %vboxusers ALL=(ALL) NOPASSWD: /​opt/​bin/​vbox-network_start,​ /​opt/​bin/​vbox-network_stop
 </​file>​ </​file>​
  
-Pour utiliser ces interfaces virtuelles, sélectionner l'​option //''​Adaptateur Réseau Hôte''//​ du menu **attaché à** dans la configuration réseau de la machine virtuelle.\\ Laisser le champ **Nom de l'​interface** vide.\\ Remplir le champ **Application d'​installation** avec //''​sudo /​opt/​bin/​vbox-network_start''//​.\\ Remplir le champ **Application de désinstallation** avec //''​sudo /​opt/​bin/​vbox-network_stop''//​.+Pour utiliser ces interfaces virtuelles, sélectionner l'​option //''​Adaptateur Réseau Hôte''//​ du menu **attaché à** dans la configuration réseau de la machine virtuelle.\\ ​ 
 +Laisser le champ **Nom de l'​interface** vide. 
 +Remplir le champ **Application d'​installation** avec //''​sudo /​opt/​bin/​vbox-network_start''//​.\\ ​ 
 +Remplir le champ **Application de désinstallation** avec //''​sudo /​opt/​bin/​vbox-network_stop''//​.
  
  
Ligne 223: Ligne 231:
 [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​network/​interfaces**. [[:​tutoriel:​comment_editer_un_fichier|Éditer le fichier]] **/​etc/​network/​interfaces**.
 <​note>​ <​note>​
-Remplacer **eth0** par le nom de l'​interface à laquelle on a attaché le pont.\\ Remplacer **tapX** par le nom de l'​interface (tap0, puis tap1, tap2, tap3 ...)\\ Remplacer **<​user>​** par le nom de l'​utilisateur.+Remplacer **eth0** par le nom de l'​interface à laquelle on a attaché le pont.\\ Remplacer **tapX** par le nom de l'​interface (tap0, puis tap1, tap2, tap3 ...) 
 +Remplacer **<​user>​** par le nom de l'​utilisateur.
 </​note>​ </​note>​
-Pour chaque interface virtuelles, ajouter<​file>​+ 
 +Pour chaque interface virtuelles, ajouter ​(avant la section de l'​interface br0) 
 +<​file ​- /​etc/​network/​interfaces>
 auto tapX auto tapX
 iface tapX inet manual iface tapX inet manual
Ligne 231: Ligne 242:
  down ifconfig $IFACE down  down ifconfig $IFACE down
  tunctl_user <​user>​  tunctl_user <​user>​
-</​file>​puis,​ dans la section de l'​interface br0, remplacer<​file>​bridge-ports eth0</​file>​par<​file>​bridge-ports eth0 tapX</​file>​+</​file>​ 
 +puis, dans la section de l'​interface br0, rajouter tapX à la fin de la ligne suivante 
 +<​file>​bridge-ports eth0</​file>​ 
 +ce qui donne 
 +<​file>​bridge-ports eth0 tapX</​file>​
  
-Redémarrer le réseau:<​code bash>+Redémarrer le réseau: 
 +<code bash>
 sudo /​etc/​init.d/​networking restart sudo /​etc/​init.d/​networking restart
 </​code>​ </​code>​
  
-Pour utiliser ces interfaces virtuelles, sélectionner l'​option //''​Adaptateur Réseau Hôte''//​ du menu **attaché à** dans la configuration réseau de la machine virtuelle, puis indiquer le nom de l'​interface (tap0, tap1, tap2 ... ) dans le champ **Nom de l'​interface**.+Pour utiliser ces interfaces virtuelles, sélectionner l'​option //''​Accès par pont''//​ du menu **attaché à** dans la configuration réseau de la machine virtuelle, puis indiquer le nom de l'​interface (tap0, tap1, tap2 ... ) dans le champ **Nom de l'​interface**.
  
 Pour la version 1.6.0 de Sun il faut utiliser les cartes réseaux Intel Pro/1000 au lieu des PCNet . Pour la version 1.6.0 de Sun il faut utiliser les cartes réseaux Intel Pro/1000 au lieu des PCNet .
 Télécharger [[http://​downloadcenter.intel.com/​download.aspx?​url=/​4275/​a08/​PRO2KXP.exe&​DwnldId=4275&​ProductID=871&​lang=fra|Pilotes Windows XP]] et les installer. Télécharger [[http://​downloadcenter.intel.com/​download.aspx?​url=/​4275/​a08/​PRO2KXP.exe&​DwnldId=4275&​ProductID=871&​lang=fra|Pilotes Windows XP]] et les installer.
  
 +==== Pour les utilisateurs de Firestarter ====
  
 +=== Méthode dynamique : ===
 +
 +FIXME A compléter
 +
 +=== Méthode permanente : ===
 +
 +Allez dans //​Préférences->​Pare-Feu->​Configuration du réseau//:
 +
 +  * //​Périphérique réseau connecté à Internet:// br0
 +
 +  * //​Périphérique réseau connecté au réseau local//:
 +
 +<​note>​
 +  * Sélectionnez br0 si une seule interface réseau physique est utilisée (l'​ordinateur ne gère pas le partage de la connexion Internet pour le réseau local)
 +
 +  * Sélectionnez ethx (x à remplacer par le numéro correspondant) si l'​ordinateur est relié au réseau local par ethx et à internet par br0 (par exemple pour gérer le partage de la connexion internet)
 +</​note>​
 +
 +  * Dans les 2 cas : cocher //Autoriser le partage de la connexion internet// (que ce soit pour le réseau local ou seulement pour les machines virtuelles)
  
 ===== Réseau interne ===== ===== Réseau interne =====
  
-Pour utiliser le réseau interne, ​choisisez ​réseau interne dans les interfaces réseau.+Pour utiliser le réseau interne, ​dans le gestionnaire de machines VirtualBox, dans les propriétés de la machine, choisissez ​réseau interne dans les interfaces réseau.
  
-Puis, il vous faudra préciser le nom de réseau que vous allez utiliser. Sur la documentation de Virtualbox, il est précisé qu'il faut utiliser le nom "​intnet"​ avec l'​interface graphique. ​+Puis, il vous faudra préciser le nom de réseau que vous allez utiliser. Sur la documentation de Virtualbox, il est précisé qu'il faut utiliser le nom "​intnet"​ avec l'​interface graphique. Ce qui se confirme après un test.
 Dans la documentation il est précisé qu'il est possible d'​utiliser un autre nom de réseau interne seulement avec la ligne de commande. (à confirmer ou infirmer) Dans la documentation il est précisé qu'il est possible d'​utiliser un autre nom de réseau interne seulement avec la ligne de commande. (à confirmer ou infirmer)
  
Ligne 257: Ligne 293:
 (à compléter éventuellement avec des captures d'​écran ou autre) (à compléter éventuellement avec des captures d'​écran ou autre)
  
-===== Liens et sources =====+==== Donner un accès internet aux machines virtuelles présentes dans un réseau interne ​====
  
-  * Documentation VirtualBox: http://​www.virtualbox.org/​wiki/​End-user_documentation +Cela est possible en insérant un routeur dans le réseau interne ​et si votre machine hôte à un accès internet.
-  * http://​www.singularity.be/​2008/​02/​back-to-virtualbox.html +
-  * http://​atmaniak.net/​blog/​279-virtualbox-et-le-reseau-sous-debianubuntu.html +
-  * Script de configuration de pont : http://​www.taltan.fr/​post/​2008/​03/​24/​VirtualBox-simplifer-la-gestion-du-reseau-avec-un-hote-Ubuntu+
  
-----+Il suffit de créer une machine virtuelle qui servira de routeur (j'ai pour ma part utilisé PFSense mais une machine sous Débian peut fonctionner également). 
 +Sur cette machine, il faut deux interfaces:​ 
 +  * Une interface WAN, connectée en NAT. 
 +  * Une interface LAN, connectée au réseau interne. 
 + 
 +Avec PFSense, la configuration est très facile, il suffit de se laisser guider. Il faut bien penser à configurer l'​interface LAN en statique et dans le bon réseau et penser également à activer le serveur DHCP sur cette interface. 
 + 
 +Ainsi, toutes les machines virtuelles connectées au réseau internes auront une adresse automatiquement attribuée et auront accès à internet en passant par le routeur précédemment créé. 
 + 
 +(Partie à compléter avec captures d'​écran et utilisation d'​exemples) 
 + 
 +===== Liens et sources ===== 
 + 
 +  * Documentation VirtualBox: [[https://​www.virtualbox.org/​wiki/​End-user_documentation]] (EN) 
 +---
  
 //​Contributeurs : [[utilisateurs:​narsil]],​ Igor.B, [[utilisateurs:​tigermickrs]],​ [[utilisateurs:​Marvinux]].//​ //​Contributeurs : [[utilisateurs:​narsil]],​ Igor.B, [[utilisateurs:​tigermickrs]],​ [[utilisateurs:​Marvinux]].//​
  
  • virtualbox_reseau.1216732244.txt.gz
  • Dernière modification: Le 18/04/2011, 14:59
  • (modification externe)