Apple

VirtualBox / Mise en réseau – Wiki Aide de la communauté

Par Maximus , le 8 juin 2019 - 12 minutes de lecture


VirtualBox 2.0 et les versions ultérieures fournissent un réseau simple permettant l’attribution d’adresses IP et l’accès à Internet via NAT, l’option réseau par défaut. Lisez ci-dessous pour des configurations plus sophistiquées.

La version 2.1 a réimplémenté certains de ses réseaux. Le pontage d'une machine virtuelle peut maintenant être entièrement réalisé à partir de l'interface utilisateur graphique.

Remarque: Pour les utilisateurs derrière un serveur proxy, vous devrez spécifier vos paramètres de proxy dans Fichier -> Préférences -> Proxy.

NAT sur PPPoE

Certains FAI vérifient la valeur du champ TTL des paquets IP provenant de votre ordinateur. TTL est un numéro associé à chaque paquet IP qui est décrémenté à chaque saut rencontré sur son chemin. Lorsque la durée de vie est à zéro, le paquet IP est ignoré.

Les TTL commencent à différents numéros (voir http://members.cox.net/~ndav1/self_published/TTL_values.html) généralement 128 ou 64.

À l'aide de ces informations, certains fournisseurs d'accès à Internet ont décidé de limiter le nombre d'ordinateurs connectés sur un réseau en supprimant les paquets en provenance de l'hôte et disposant d'une durée de vie différente de celle attendue (64, 128, etc.) et en modifiant la durée de vie de tous les ordinateurs. paquets destinés à l'hôte à 1. De cette façon, s'il y a un autre ordinateur X derrière celui qui est connecté UNE, son TTL sera décrémenté par le UNE lors de son envoi sur internet. Le FAI détectera qu'un TTL inattendu a été reçu (63, 127, etc.) et abandonnera le paquet. De même, lorsque le FAI doit transférer un paquet à l'hôte UNE, il définit le TTL sur 1. De cette façon, si le paquet était vraiment destiné à X, UNE décrémentera la durée de vie, verra qu’elle est égale à zéro et la supprimera avant de l’envoyer à l’ordinateur.

Les mêmes choses s'appliquent quand X est une machine virtuelle s'exécutant sur l'hôte UNE.

Pour activer la connexion Internet sur les machines virtuelles Virtualbox dans de telles conditions, vous devez modifier la durée de vie:

  • incrémente la durée de vie des paquets dès qu'ils arrivent sur l'interface ppp0 (la connexion Internet par défaut, cela peut mais eth0, eth1, wlan0, etc.)

sudo iptables -t mangle -A PREROUTING -i ppp0 -j TTL --ttl-inc 1

  • modifier les paquets au moment où ils sont sur le point de sortir
sudo iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64

Réseau hôte

La connexion d'une machine virtuelle via NAT permettra à l'invité de se connecter aux systèmes du réseau (y compris l'hôte ou un site Web). Une machine du réseau ne pourra cependant pas établir de connexion avec l'invité.

Mais généralement, on peut vouloir se connecter de l'hôte à l'invité (comme c'est le cas lorsque l'invité exécute un serveur Web ou un serveur ssh). Dans ce cas d'utilisation, un pontage peut être utilisé (sachez que ce pontage rendra une machine virtuelle visible sur le réseau, elle doit donc être sécurisée au préalable).

Réseau hôte avec VirtualBox 2.1 et versions ultérieures

Ouvrez les paramètres de la machine virtuelle. Aller à la section réseau. Choisissez "Réseau de pont" dans la liste des options "Attacher à". Choisissez l'interface réseau avec laquelle vous souhaitez établir un lien. La plupart du temps, ce sera "eth0" pour un réseau câblé. Comme indiqué dans la documentation (§6.4 Réseau en pont), seul IPv4 est pris en charge pour les interfaces sans fil.

Mise en réseau de l'hôte dans Ubuntu 9.04

Il vous suffit de charger les modules "vboxnetflt" s'il n'est pas encore chargé et d'ajuster le type de réseau dans les paramètres réseau de l'invité VirtualBox à attacher à "l'interface hôte".

sudo modprobe vboxnetflt

Remarque: Ceci est maintenant disponible pour la version OSE également, contrairement au rapport concernant la version 8.10 ci-dessous

Réseau hôte dans Ubuntu 8.10

Vous devez simplement charger les modules "vboxnetflt" s'il n'est pas encore chargé.

sudo modprobe vboxnetflt

Remarque: Cela ne fonctionne pas par défaut avec virtualbox-ose, car le module vboxnetflt ne semble pas être inclus dans le package. Correction inconnue.

Réseau hôte dans Ubuntu version 8.04 et antérieure

Pour configurer le réseau d’hôte, vous devez configurer le pont réseau, vous devez suivre quatre étapes de la hôte machine:

  • installer les paquets nécessaires
  • déclarez le pont et la véritable interface réseau que vous y ajoutez
  • déclarer des interfaces virtuelles
  • définir les autorisations sur / dev / net / tun

Installer les paquets nécessaires

Vous devez d’abord installer bridge-utils pour pouvoir créer des ponts de réseau:

$ sudo apt-get install bridge-utils

Déclarer pont

Avant de commencer, sauvegardez le fichier d'interface actuel avec une copie portant la date actuelle dans son nom:

$ sudo cp / etc / network / interfaces /etc/network/interfaces.`date +% F ~% T` 

Vous devez éditer / etc / network / interfaces sur le hôte machine pour déclarer le pont, cette procédure est légèrement différente si votre hôte utilise une adresse IP statique ou dynamique.

Si vous avez une adresse IP dynamique, sur le hôte machine:

$ sudo nano / etc / network / interfaces
auto eth0
iface eth0 inet manuel

auto br0
iface br0 inet dhcp
   bridge_ports eth0 vbox0

# L'interface réseau en boucle
auto lo
iface lo inet loopback

"eth0" est le nom de votre interface, il peut être différent selon votre machine.

"br0" est un nom arbitraire pour le pont.

"vbox0" est un nom arbitraire pour le périphérique que VirtualBox utilisera. Si vous voulez plus de périphériques, vous devez simplement ajouter:

                bridge_ports eth0 vbox0 vbox1 vbox2 vbox3 vbox4

etc. N'oubliez pas que vous devrez déclarer ces périphériques sur un autre fichier, cela sera expliqué plus tard, continuez à lire.

Si vous utilisez des adresses IP statiques, modifiez les interfaces de la manière suivante:

$ sudo nano / etc / network / interfaces
auto eth0
iface eth0 inet manuel

auto br0
iface br0 inet statique
    adresse 192.168.0.100
    masque de réseau 255.255.255.0
    passerelle 192.168.0.1
    bridge_ports eth0 vbox0 vbox1

# L'interface réseau en boucle
auto lo
iface lo inet loopback

Remplacez 192.168.0.100 par votre adresse IP, 255.255.255.0 par votre masque de réseau et 192.168.0.1 par votre passerelle. Si vous utilisez des adresses IP statiques pour eth0, eth1, etc. vous devrez configurer l'interface br0 en utilisant les mêmes paramètres! Sinon, votre système demandera une adresse IP via DHCP. Vous pouvez ajouter autant d'interfaces vbox # que vous le souhaitez tant qu'elles sont également déclarées dans / etc / vbox / interfaces; Continuez à lire pour plus de détails.

Vous devez redémarrer le réseau pour que les modifications prennent effet:

$ sudo /etc/init.d/networking restart

Vous pouvez ignorer les messages à propos des périphériques "vbox #".

Déclarer les interfaces virtuelles qui seront utilisées par VirtualBox

Pour déclarer les interfaces virtuelles utilisées par VirtualBox, vous devez éditer / etc / vbox / interfaces sur le hôte machine:

$ sudo nano / etc / vbox / interfaces
# Chaque ligne doit être du format:
#      [[[[]
vbox0  br0
vbox1  br0
...

"vbox #" est un nom arbitraire. Vous pouvez déclarer ici autant d'interfaces virtuelles que vous le souhaitez, à condition qu'elles aient été correctement déclarées dans / etc / network / interfaces. Dans cet article spécifique, nous avons déclaré deux interfaces vbox dans / etc / network / interfaces, puis avons fini de les configurer dans / etc / vbox / interfaces.

Pour prendre en compte les modifications, redémarrez le script de réseau de l'hôte VirtualBox. Si vous avez installé VirtualBox OSE:

$ sudo /etc/init.d/virtualbox-ose restart

Si vous avez installé la version propriétaire précompilée:

$ sudo /etc/init.d/vboxnet restart

Les interfaces virtuelles sont maintenant créées et ajoutées au pont.

C'est tout! Maintenant, les différents scripts se chargeront de créer / configurer / supprimer proprement des ponts et des interfaces virtuelles lorsque vous démarrez et éteignez votre système.

Définir les autorisations sur / dev / net / tun

Vous devez avoir des autorisations de lecture / écriture sur le fichier / dev / net / tun pour pouvoir utiliser le pont, afin de définir des autorisations:

$ sudo chown root: vboxusers / dev / net / tun
$ sudo chmod g + rw / dev / net / tun

Ce fichier est créé avec les autorisations par défaut chaque fois que le système redémarre. Pour rendre les nouvelles autorisations permanentes, vous devez éditer le fichier /etc/udev/rules.d/20-names.rules et modifier:

KERNEL == "tun", NAME = "net /% k"

à

KERNEL == "tun", NOM = "net /% k", GROUP = "vboxusers", MODE = "0660"

Configurer le réseau dans VirtualBox

Une fois que tout est prêt, vous pouvez démarrer l’interface de gestion de VirtualBox sur le hôte machine, configurez le réseau de votre machine virtuelle et, en sélectionnant "réseau hôte", entrez le nom de l'un des adaptateurs virtuels configurés. Démarrez votre machine virtuelle. Une carte réseau vous est présentée. Vous pouvez la configurer à votre guise (adresse IP statique, DHCP) à l’aide des outils de configuration réseau de la machine virtuelle.

Réseau sans fil

La configuration d'un réseau ponté normal ne fonctionne généralement pas si vous passez d'une carte sans fil à VirtualBox. Un script simple qui utilise l’outil dupliqué permettra à votre VM d’avoir un accès complet au réseau sans fil.

Vous aurez besoin de faire cela pour:

sudo apt-get install parprouted

Ensuite, en utilisant votre éditeur de texte favori, créez et modifiez le script, par exemple:

sudo nano /etc/network/if-up.d/vbox_network

Ensuite, entrez le script (en remplaçant $ USER par votre nom d'utilisateur (ou par qui que ce soit que vous envisagez d'exécuter virtualbox sous)). Remplacez wlan0 par le nom de votre interface sans fil. Utilisez une adresse IP disponible sur votre réseau pour tap0 (j'ai utilisé 192.168.1.100 dans ce cas):

sysctl net.ipv4.ip_forward = 1
VBoxTunctl -b -u $ USER
ip link set tap0 up
ip addr add 192.168.1.100/24 ​​dev tap0
gaspillé wlan0 tap0

Enfin, assurez-vous que le nouveau fichier est exécutable par root:

sudo chmod 700 /etc/network/if-up.d/vbox_network

Maintenant que votre script de réseau est installé, l'interface virtuelle tap0 sera disponible au démarrage pour VirtualBox. Plutôt que de redémarrer, exécutons simplement le script maintenant:

sudo /etc/network/if-up.d/vbox_network

La dernière chose à faire est de dire à VirtualBox d’utiliser le nouveau périphérique virtuel tap0. Ouvrez VirtualBox, mettez une machine virtuelle en surbrillance et cliquez sur paramètres. Maintenant, choisissez l’option réseau et sélectionnez Interface hôte dans le menu déroulant "attaché à". Dans la zone de texte Nom d'interface, entrez: tap0

Cliquez sur ok et démarrez votre VM. La VM devrait maintenant se comporter comme s'il s'agissait d'une autre machine physique sur votre réseau!

Utilisation de DHCP dans la machine virtuelle invité

Il était possible de faire fonctionner DHCP sur la machine virtuelle invitée. Les instructions ont été prises à partir d'ici. Puisque parprouted ne transmet pas la multidiffusion, nous devons utiliser un démon auxiliaire supplémentaire pour gérer cela. J’ai essayé dhcp-helper et bcrelay et j’ai eu le plus de succès avec bcrelay.

Utilisez-le comme suit:

sudo apt-get install bcrelay
sudo bcrelay -i tap0 -o wlan0

À ce stade, mon /etc/network/if-up.d/vbox_network est le suivant:

    #! / bin / sh
sysctl net.ipv4.ip_forward = 1
VBoxTunctl -b -u jacob
ip link set tap0 up
ip addr add 192.168.1.200/32 dev tap0
tap0 tapoté wlan0 &
route add -net 192.168.1.0 masque de réseau 255.255.255.0 tap0
bcrelay -i tap0 -o wlan0 &

Il semble que je dois démarrer le script à la main après le démarrage. Autre que cela, le réseau hôte semble maintenant fonctionner correctement (cette question devrait être résolue en ajoutant la ligne "#! / Bin / sh" juste au début du script.

Clonage des pièges entre différents hôtes

Lors du clonage d'un système d'exploitation invité VirtualBox et de son utilisation entre différents ordinateurs hôtes, l'adresse MAC est un écueil commun pour les systèmes d'exploitation invités Debian / Ubuntu.

S'il diffère de celui défini par l'hôte qui l'a créé, vous aurez probablement des problèmes avec l'adaptateur réseau. eth0 restant dans l'état DOWN en regardant la sortie de adresse ip de la CLI.

Voici les étapes pour résoudre ce problème:

  1. Ouvrez VirtualBox sur les deux machines hôtes sur lesquelles vous utilisez l'image VirtualBox.

  2. Sur l’hôte sur lequel vous avez créé l’image VirtualBox, sélectionnez la machine virtuelle. (assurez-vous qu'il ne fonctionne pas) et allez dans les paramètres.

  3. Clique sur le Réseau paramètres, puis développez la Avancée section.

  4. Maintenant, copiez le Adresse Mac.

  5. Suivez les étapes 1 à 3 sur le deuxième ordinateur hôte, puis remplacez l'adresse Mac sur le deuxième ordinateur hôte par l'adresse Mac du premier ordinateur hôte.

Vous devriez pouvoir démarrer votre système d'exploitation invité VirtualBox maintenant et utiliser l'adaptateur eth0 sans problème. Sinon, vérifiez à nouveau l'adresse Mac.

Vous trouverez plus de détails sur le débogage à l’adresse http://www.virtualbox.org/ticket/660. Cela fonctionnait lorsque testé entre Ubuntu 10.04 Lucid Desktop et Windows 7 avec le système d'exploitation invité Ubuntu 10.04 Server 32-bit. Les deux systèmes d'exploitation hôtes sont 64 bits.

Click to rate this post!
[Total: 0 Average: 0]

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.