Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
virtualbox_reseau [Le 09/04/2009, 22:48] – 213.95.41.13 | virtualbox_reseau [Le 13/04/2017, 20:28] (Version actuelle) – tags L'Africain | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{ : | ||
+ | ====== VirtualBox et le réseau ====== | ||
+ | |||
+ | Cette page n'est qu'une annexe destinée à alléger la page principale de [[: | ||
+ | |||
+ | <note important> | ||
+ | et à amender cette page</ | ||
+ | |||
+ | <note important> | ||
+ | Cependant, un workaround avec iptables et le nat peut permettre à VirtualBox de se connecter au réseau même si l' | ||
+ | </ | ||
+ | |||
+ | Pour la rédaction de cet article, les options suivantes ont été utilisées dans la configuration réseau de VirtualBox: | ||
+ | * **Adapter Type**: //'' | ||
+ | * **Adresse MAC**: Laisser la valeur par défaut, ou '' | ||
+ | |||
+ | <note tip> | ||
+ | Sous [[Jaunty]] avec la version des dépôts (version 2.1.4 OSE) il suffit d' | ||
+ | </ | ||
+ | ===== NAT ===== | ||
+ | |||
+ | Sélectionner simplement l' | ||
+ | |||
+ | |||
+ | ===== Adaptateur réseau hôte ===== | ||
+ | |||
+ | [[: | ||
+ | |||
+ | ==== Création du pont ==== | ||
+ | |||
+ | Nous créons le pont quelle que soit la méthode utilisée (permanente ou dynamique), car il est nécessaire aux deux. | ||
+ | |||
+ | Le fait que le pont soit permanent nous permet, pour la méthode dynamique, d' | ||
+ | |||
+ | Sauvegarder le fichier **/ | ||
+ | <code bash> | ||
+ | sudo cp / | ||
+ | </ | ||
+ | |||
+ | [[: | ||
+ | < | ||
+ | Remplacer " | ||
+ | </ | ||
+ | L' interface est probablement déjà configurée par le système, repérer les lignes du type | ||
+ | <file - / | ||
+ | auto eth0 | ||
+ | iface eth0 inet dhcp | ||
+ | </ | ||
+ | auto eth0 | ||
+ | iface eth0 inet static | ||
+ | address xxx.xxx.xxx.xxx | ||
+ | netmask xxx.xxx.xxx.xxx | ||
+ | gateway xxx.xxx.xxx.xxx | ||
+ | </ | ||
+ | |||
+ | Configurer l' | ||
+ | auto eth0 | ||
+ | iface eth0 inet manual | ||
+ | </ | ||
+ | |||
+ | Ajouter le pont. Si votre interface se configure automatiquement (//'' | ||
+ | auto br0 | ||
+ | iface br0 inet dhcp | ||
+ | bridge_ports eth0 | ||
+ | </ | ||
+ | auto br0 | ||
+ | iface br0 inet static | ||
+ | bridge_ports eth0 | ||
+ | address xxx.xxx.xxx.xxx | ||
+ | netmask xxx.xxx.xxx.xxx | ||
+ | gateway xxx.xxx.xxx.xxx | ||
+ | </ | ||
+ | |||
+ | ==== Préparation des interfaces virtuelles ==== | ||
+ | |||
+ | Quelques préparatifs sont nécessaires afin que VirtualBox puisse accéder aux interfaces virtuelles. | ||
+ | |||
+ | Ajouter l' | ||
+ | Créer le groupe **tunusers**:< | ||
+ | Y ajouter l' utilisateur:< | ||
+ | Modifier les droits d' | ||
+ | Remplacer | ||
+ | < | ||
+ | KERNEL==" | ||
+ | par | ||
+ | < | ||
+ | Si le node //''/ | ||
+ | <code bash> | ||
+ | sudo chown :tunusers / | ||
+ | sudo chmod g+rw / | ||
+ | </ | ||
+ | Redémarrer le système. | ||
+ | |||
+ | ==== Méthode dynamique ==== | ||
+ | |||
+ | L' | ||
+ | |||
+ | <note important> | ||
+ | Nous allons ici utiliser la commande " | ||
+ | </ | ||
+ | |||
+ | [[: | ||
+ | <file - / | ||
+ | #!/bin/bash | ||
+ | |||
+ | # include lib | ||
+ | . / | ||
+ | |||
+ | CALLNAME=$(basename $0) | ||
+ | |||
+ | case " | ||
+ | " | ||
+ | # if the fd is set, interface already exists | ||
+ | [ " | ||
+ | create_iface | ||
+ | exit $? | ||
+ | ;; | ||
+ | " | ||
+ | delete_iface | ||
+ | exit $? | ||
+ | ;; | ||
+ | *) | ||
+ | exit $E_BAD_CALLNAME | ||
+ | ;; | ||
+ | esac | ||
+ | </ | ||
+ | |||
+ | [[: | ||
+ | <file - / | ||
+ | # include configuration | ||
+ | . / | ||
+ | |||
+ | IF_FD=" | ||
+ | IF_NAME=" | ||
+ | |||
+ | # get the user running vbox | ||
+ | if [ " | ||
+ | VBOX_USER=$USER | ||
+ | else | ||
+ | VBOX_USER=$SUDO_USER | ||
+ | fi | ||
+ | |||
+ | # errors | ||
+ | NO_ERROR=0 | ||
+ | E_ERROR=1 | ||
+ | E_NOT_ROOT=2 | ||
+ | E_TUNCTL_CREATE=3 | ||
+ | E_BAD_CALLNAME=4 | ||
+ | |||
+ | function create_iface | ||
+ | { | ||
+ | # need to be root | ||
+ | [ " | ||
+ | |||
+ | # create the interface | ||
+ | TUNCTL_CMD=" | ||
+ | [ " | ||
+ | IF=$( $TUNCTL_CMD ) | ||
+ | [ -z " | ||
+ | |||
+ | # bring it up | ||
+ | $IFCONFIG $IF up >> /dev/null | ||
+ | |||
+ | # bridge it | ||
+ | $BRCTL addif $BRIDGE $IF >> /dev/null | ||
+ | |||
+ | echo $IF | ||
+ | return $NO_ERROR | ||
+ | } | ||
+ | |||
+ | function delete_iface | ||
+ | { | ||
+ | # need to be root | ||
+ | [ " | ||
+ | |||
+ | # unbridge | ||
+ | $BRCTL delif $BRIDGE $IF_NAME >> /dev/null | ||
+ | |||
+ | # delete | ||
+ | $TUNCTL -d $IF_NAME >> /dev/null | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | [[: | ||
+ | <file - / | ||
+ | BRIDGE=" | ||
+ | TUN="/ | ||
+ | |||
+ | TUNCTL="/ | ||
+ | BRCTL="/ | ||
+ | IFCONFIG="/ | ||
+ | </ | ||
+ | |||
+ | Modifier les permission de **/ | ||
+ | <code bash> | ||
+ | sudo chown :vboxusers / | ||
+ | sudo chmod ug+rx / | ||
+ | </ | ||
+ | |||
+ | Créer les liens **vbox-network_start** et **vbox-network_stop**: | ||
+ | <code bash> | ||
+ | cd /opt/bin | ||
+ | sudo ln -s vbox-network vbox-network_start | ||
+ | sudo ln -s vbox-network vbox-network_stop | ||
+ | </ | ||
+ | |||
+ | Editer **/ | ||
+ | <code bash> | ||
+ | sudo visudo | ||
+ | </ | ||
+ | Ajouter | ||
+ | < | ||
+ | # Members of vboxusers can run / | ||
+ | %vboxusers ALL=(ALL) NOPASSWD: / | ||
+ | </ | ||
+ | |||
+ | Pour utiliser ces interfaces virtuelles, sélectionner l' | ||
+ | Laisser le champ **Nom de l' | ||
+ | Remplir le champ **Application d' | ||
+ | Remplir le champ **Application de désinstallation** avec //'' | ||
+ | |||
+ | |||
+ | ==== Méthode permanente ==== | ||
+ | |||
+ | Les interfaces virtuelles seront créées au démarrage du systeme, meme si elles ne sont pas utilisées par la suite. | ||
+ | |||
+ | [[: | ||
+ | < | ||
+ | Remplacer **eth0** par le nom de l' | ||
+ | Remplacer **< | ||
+ | </ | ||
+ | |||
+ | Pour chaque interface virtuelles, ajouter (avant la section de l' | ||
+ | <file - / | ||
+ | auto tapX | ||
+ | iface tapX inet manual | ||
+ | up ifconfig $IFACE up | ||
+ | down ifconfig $IFACE down | ||
+ | tunctl_user < | ||
+ | </ | ||
+ | puis, dans la section de l' | ||
+ | < | ||
+ | ce qui donne | ||
+ | < | ||
+ | |||
+ | Redémarrer le réseau: | ||
+ | <code bash> | ||
+ | sudo / | ||
+ | </ | ||
+ | |||
+ | Pour utiliser ces interfaces virtuelles, sélectionner l' | ||
+ | |||
+ | 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:// | ||
+ | |||
+ | ==== Pour les utilisateurs de Firestarter ==== | ||
+ | |||
+ | === Méthode dynamique : === | ||
+ | |||
+ | FIXME A compléter | ||
+ | |||
+ | === Méthode permanente : === | ||
+ | |||
+ | Allez dans // | ||
+ | |||
+ | * // | ||
+ | |||
+ | * // | ||
+ | |||
+ | < | ||
+ | * Sélectionnez br0 si une seule interface réseau physique est utilisée (l' | ||
+ | |||
+ | * Sélectionnez ethx (x à remplacer par le numéro correspondant) si l' | ||
+ | </ | ||
+ | |||
+ | * 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 ===== | ||
+ | |||
+ | 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 " | ||
+ | Dans la documentation il est précisé qu'il est possible d' | ||
+ | |||
+ | Ensuite, vous faites ça pour une deuxième machine virtuelle et elles pourront communiquer. Penser à configurer le réseau des deux machines soit en installant un serveur DHCP, soit en configurant les interfaces réseau à la main. | ||
+ | |||
+ | Vous pouvez utiliser autant de machines que désiré (sur le même réseau) en considérant seulement les limites de la machine hôte. | ||
+ | |||
+ | (à compléter éventuellement avec des captures d' | ||
+ | |||
+ | ==== Donner un accès internet aux machines virtuelles présentes dans un réseau interne ==== | ||
+ | |||
+ | Cela est possible en insérant un routeur dans le réseau interne et si votre machine hôte à un accès internet. | ||
+ | |||
+ | 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' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | ===== Liens et sources ===== | ||
+ | |||
+ | * Documentation VirtualBox: [[http:// | ||
+ | --- | ||
+ | |||
+ | // | ||