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 01/01/2009, 11:45] – 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:// | ||
| + | --- | ||
| + | |||
| + | // | ||
