# Réseau virtuel

Comme il a été brièvement indiqué au , VirtualBox fournit huit cartes Ethernet PCI virtuelles pour chaque machine virtuelle. Pour chacune de ces cartes, vous pouvez sélectionner individuellement

1. 1. le matériel qui sera virtualisé ou

2. 2. le mode de virtualisation avec lequel la carte virtuelle agira par rapport à votre matériel réseau physique sur l'hôte.

Quatre des cartes réseau peuvent être configurées dans la section « Réseau » des paramètres de la boîte de dialogue dans l'interface graphique de VirtualBox. Vous pouvez configurer les huit cartes réseau en ligne de commande avec VBoxManage modifyvm ; voir .

Ce chapitre explique les divers paramètres réseau avec plus détails.

## Matériel de réseau virtuel

Pour chaque carte, vous pouvez sélectionner individuellement le type de matériel qui sera présenté à la machine virtuelle. VirtualBox peut virtualiser les six types de matériels de carte suivants :

- AMD PCNet PCI II (Am79C970A);

- AMD PCNet FAST III (Am79C973, celle par défaut) ;

- Intel PRO/1000 MT Desktop (82540EM);

- Intel PRO/1000 T Server (82543GC);

- Intel PRO/1000 MT Server (82545EM);

- Paravirtualized network adapter (virtio-net).

La PCNet FAST III est celle par défaut parce qu'elle est supportée par presque tous les systèmes d'exploitation d'ordinateur et le gestionnaire de démarrage GNU GRUB. Sauf que les adaptateurs de la famille Intel PRO/1000 sont choisis pour certains types de système d'exploitation invités qui n'incluent plus les pilotes de la carte PCNet, tels que Windows Vista.

Celle de type Intel PRO/1000 MT Desktop fonctionne avec Windows Vista et les versions supérieures. La variante Server T de la carte Intel PRO/1000 est reconnue par les invités Windows XP sans l'installation de pilotes supplémentaires. La variante Server T facilite les importations OVF à partir d'autres plateformes.

L'« adaptateur réseau para-virtualisé (virtio-net » est spécial. Si vous le sélectionnez, VirtualBox ne virtualise pas du matériel réseau classique (qui est supporté par les systèmes d'exploitation habituels hors du PC). VirtualBox s'attend par contre à ce qu'une interface logicielle spéciale pour les environnements virtualisés soient fournies par l'invité, évitant ainsi la complexité d'émuler du matériel réseau et améliorant la performance réseau. À partir de la version 3.1, VirtualBox fournit le support des pilotes de réseau « virtio » industriels, qui font partie du projet libre KVM.

Les pilotes de réseau « virtio » sont disponibles pour les systèmes d'exploitation invités suivants :

- Les noyaux Linux version 2.6.25 ou supérieur peuvent être configurés pour fournir le support de virtio ; certaines distributions ont aussi porté virtio dans des noyaux plus anciens.

- Pour Windows 2000, XP et Vista, les pilotes virtio peuvent être téléchargés et installés à partir de la page Internet du projet KVM. http://www.linux-kvm.org/page/WindowsGuestDrivers.

VirtualBox a aussi un support pour les cadres appelés jumbo, par exemple les paquets réseaux avec plus de 1500 bytes de données fournies pour que vous utilisiez la virtualisation de la carte réseau Intel et le réseau bridgé. En d'autres termes, les cadres jumbo ne sont pas supportés avec les périphériques réseau AMD ; dans ces cas les paquets jumbo seront refusés sans message à la fois dans la direction de la transmission et de la réception. Les systèmes d'exploitation invités qui essaient d'utiliser cette fonctionnalité verront cela comme une perte de paquets, ce qui peut provoquer un comportement inattendu de certaines applications dans l'invité. Cela n'entraîne pas de problèmes avec des systèmes d'exploitation invités dans leur configuration par défaut, vu que les cadres jumbo doivent être explicitement activés.

## Introduction aux modes réseaux

Chacun des huit adaptateurs réseau peut être configuré séparément pour agir dans l'un des cinq modes suivants :

Non attaché

  Dans ce mode, VirtualBox indique à l'invité qu'une carte réseau est présente mais qu'il n'y a pas de connexion -- comme si aucun câble Ethernet n'était branché sur la carte. - De cette façon, il est possible de « débrancher » le câble Ethernet virtuel et de couper la connexion, ce qui peut être utile pour informer un système d'exploitation invité qu'aucune connexion réseau n'est disponible et l'obliger à une reconfiguration.

Network Address Translation (NAT)
(traduction d'adresse réseau)

  Si tout ce que vous voulez faire est de naviguer sur Internet, télécharger des fichiers et lire les messages à l'intérieur de l'invité, ce mode par défaut devrait vous suffire et vous pouvez sauter en toute sécurité le reste de cette section. Merci de remarquer qu'il y a certaines limitations quand on utilise le partage de fichiers Windows (voir le pour des détails).

Réseau bridgé

  C'est pour des besoins réseau plus avancés tels que des simulations de réseau et le fonctionnement de serveurs dans un invité. Lorsqu'il est activé, VirtualBox se connecte à une de vos cartes réseaux installées et échange directement des paquets réseaux, contournant la pile réseau de votre système d'exploitation hôte.

Réseau interne

  Ceci peut être utilisé pour créer un genre différent de réseau de type logiciel, visible par les machines virtuelles sélectionnées mais pas pour les applications en fonction sur l'hôte ou dans le monde extérieur.

Réseau privé-hôte

  Ceci peut être utilisé pour créer un réseau contenant l'hôte et un ensemble de machines virtuelles, sans qu'il y ait besoin de l'interface physique de l'hôte. À la place, une interface réseau virtuelle (comme une interface loopback) est créée sur l'hôte, fournissant la connectivité parmi les machines virtuelles et l'hôte.

Réseau générique

  Les modes rarement utilisés partagent la même interface réseau générique mais ils permettent à l'utilisateur de sélectionner un pilote qui peut être inclu dans VirtualBox ou distribué dans un pack d'extension.

  Pour l'heure, il y a deux sous-modes disponibles :

  Tunnel UDP

    On peut l'utiliser pour connecter directement des machines virtuelles en fonction sur des hôtes différents, facilement et de manière transparente, via une infrastructure réseau existante.

  Réseau VDE (Virtual Distributed Ethernet)

    Cette option peut être utilisée pour se connecter à un switch Virtual Distributed Ethernet (Ethernet distribué virtuel) d'un hôte Linux ou FreeBSD. Pour l'instant, il implique de compiler VirtualBox à partir des sources, car les paquets d'Oracle ne l'incluent pas.

Les sections suivantes décrivent les modes de réseau disponibles avec plus de détails.

## Network Address Translation (NAT)

La traduction d'adresses réseaux (NAT) est la façon la plus simple d'accéder à un réseau externe depuis une machine virtuelle. Habituellement, cela ne demande aucune configuration sur le réseau hôte et le système invité. Pour cette raison, c'est le mode réseau par défaut de VirtualBox.

Une machine virtuelle où le NAT est activé agit comme un vrai ordinateur qui se connecte à Internet à travers un routeur. Le « routeur », dans ce cas, est le moteur réseau de VirtualBox qui dresse le plan du trafic venant et à destination de la machine virtuelle de façon intégréte. L'inconvénient du mode NAT est que, tout comme se comporte un réseau privé derrière un routeur, la machine virtuelle est invisible et injoignable à partir et à l'extérieur sur Internet ; vous ne pouvez pas lancer de serveur de cette façon sauf si vous réglez le forwarding (routage) de ports (décrit ci-dessous).

Les trames réseau envoyés par le système d'exploitation invité sont reçus par le moteur NAT de VirtualBox, qui extrait les données TCP/IP et les réexpédie en utilisant le système d'exploitation de l'hôte. Sur une application de l'hôte ou sur un autre ordinateur du même réseau que l'hôte, on a l'impression que les données ont été envoyées par l'application VirtualBox sur l'hôte, en utilisant une adresse IP appartenant à l'hôte. VirtualBox écoute les réponses aux paquets envoyés, puis les réemballe et les renvoie sur la machine invitée sur son réseau privé.

La machine virtuelle reçoit son adresse réseau et sa configuration sur le réseau privé à partir d'un serveur DHCP intégré dans VirtualBox. L'adresse IP ainsi assignée à la machine virtuelle est en général sur un réseau complètement différent de l'hôte. Comme plus d'une carte d'une machine virtuelle peut être paramétrée pour utiliser NAT, la première carte est connectée au réseau privé 10.0.2.0, la deuxième au réseau 10.0.3.0 et ainsi de suite. Si vous devez modifier la plage d'IP assignées à l'hôte pour une raison quelconque, merci de vous reporter au .

### Configurer la redirection de ports avec NAT

Comme la machine virtuelle est connectée à un réseau privé interne à VirtualBox et qu'il est invisible pour l'hôte, les services réseau de l'invité ne sont pas accessibles pour la machine hôte ou pour d'autres ordinateurs du même réseau. Néanmoins, comme un routeur physique, VirtualBox peut effectuer un transfert de ports sélectionné. Cela signifie que VirtualBox écoute certains ports sur l'hôte et renvoie tous les paquets qui y arrivent vers l'invité, sur un port identique ou différent.

Pour une application de l'hôte ou d'autres machines physiques (ou virtuelles) du réseau, c'est comme si le service derrière le proxy fonctionnait finalement sur l'hôte. Cela signifie aussi que vous ne pouvez pas exécuter le même service sur les mêmes ports que sur l'hôte. Néanmoins, vous en tirez les avantages de l'exécution d'un service dans une machine virtuelle : par exemple les services de la machine hôte ou d'autres machines virtuelles ne peuvent pas être compromis ou plantés par une vulnérabilité ou un bogue du service, et le service peut s'exécuter sur un système d'exploitation différent du système hôte.

Vous pouvez paramétrer un service invité que vous souhaitez mettre derrière un proxy en utilisant l'outil en ligne de commande `VBoxManage` ; pour des détails, merci de vous référer au .

Vous devrez savoir quels ports sur l'invité le service utilise et décider quels ports utiliser sur l'hôte (vous voudrez souvent, mais pas toujours, utiliser les mêmes ports sur l'invité et sur l'hôte). Vous pouvez utiliser n'importe quel port de l'hôte qui n'est pas déjà utilisé par un service. Par exemple, pour paramétrer des connexions entrantes NAT vers un serveur `ssh` de l'invité, utilisez la commande suivante :

    VBoxManage modifyvm "nom VM" --natpf1 "guestssh,tcp,,2222,,22"

Avec l'exemple ci-dessus, tout le trafic `tcp` arrivant sur le port 2222 sur n'importe quelle interface de l'hôte sera transféré sur le port 22 dans l'invité. Le nom du protocole `tcp` est un attribut obligatoire définissant quel protocole devrait être utilisé pour la redirection (on pourrait aussi utiliser (`udp`). Le nom `guestssh` est purement descriptif et sera généré automatiquement si vous n'en spécifiez pas. Le numéro après `--natpf` nomme la carte réseau, comme dans d'autres paramétrages de VboxManage.

Pour supprimer à nouveau cette règle de redirection, utilisez la commande suivante :

    VBoxManage modifyvm "nom VM" --natpf1 delete "guestssh"

Si pour une raison quelconque l'invité utilise une adresse IP statique non attribuée par le serveur DHCP intégré, il faut spécifier l'IP de l'invité lors de l'enregistrement de la règle de redirection :

    VBoxManage modifyvm "nom VM" --natpf1
          "guestssh,tcp,,2222,10.0.2.19,22"

Cet exemple est identique au précédent, sauf qu'on dira au moteur NAT qu'on peut trouver l'invité sur l'adresse 10.0.2.19.

Pour rediriger tout le trafic entrant d'une interface spécifique de l'hôte vers l'invité, spécifiez l'IP de cette interface hôte comme ceci :

    VBoxManage modifyvm "nom VM" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"

Ceci redirige tout le trafic TCP arrivant sur l'interface localhost (127.0.0.1) via le port 2222 vers le port 22 de l'invité.

Il n'est pas possible de configurer des connexions NAT entrantes pendant que la VM est en fonction. Néanmoins, vous pouvez modifier les paramètres d'une VM actuellement sauvegardée (ou éteinte) dans un instantané.

### Amorçage PXE avec NAT

L'amorçage PXE est à présent supporté par le mode NAT. Le serveur DHCP NAT fournit un fichier d'amorçage nommé sous la forme `nomvm.pxe` si le répertoire `TFTP` existe dans le répertoire où est conservé le fichier `VirtualBox.xml` de l'utilisateur. C'est à l'utilisateur de fournir `nomvm.pxe`.

### Limites du NAT

Il existe quatre limites du mode NAT dont l'utilisateur devrait être conscient :

Limite du protocole ICMP :

  Certains outils de débogage réseau fréquemment utilisés (tels que `ping` ou tracerouting) utilisent le protocole ICMP pour envoyer/recevoir des messages. Si le support d'ICMP a été amélioré avec VirtualBox 2.1 (`ping` devrait maintenant fonctionner), il se peut que d'autres outils ne fonctionnent pas de façon fiable.

La réception de broadcasts (diffusion de messages) UDP n'est pas fiable :

  L'invité ne reçoit pas de façon fiable les broadcasts puisque, pour économiser des ressources, il n'écoute qu'un certain temps après que l'invité ait envoyé des données UDP sur un port particulier. Par conséquent, la résolution de nom NetBios basée sur les broadcasts ne fonctionne pas toujours (mais WINS fonctionne toujours). Vous pouvez utiliser, en contournement, l'IP numérique du serveur désiré noté `\\server\share`.

Les protocoles tels que GRE ne sont pas supportés :

  Les protocoles autres que TCP et UDP ne sont pas supportés. Cela signifie que certains produits VPN (par exemple PPTP de Microsoft) ne peuvent pas être utilisés. Il y a d'autres produits VPN qui utilisent simplement TCP ou UDP.

Redirection des ports de l'hôte < 1024 impossible :

  Sur les hôtes basés sur Unix (comme Linux, Solaris, Mac OS X) il n'est pas possible de solliciter des ports inférieurs à 1024 depuis des applications non lancées par `root`. Il en résulte que si vous essayez de configurer une telle redirection de ports, la VM refusera de démarrer.

Ces limitations ne devraient normalement pas perturber l'utilisation standard du réseau. Mais la présence du NAT a aussi des effets subtils qui peuvent interagir avec des protocoles qui, normalement, fonctionnent. NFS est un exemple où le serveur est souvent configuré pour refuser les connexions provenant de ports non privilégiés (c'est-à-dire des ports non inférieurs à 1024).

## Réseau bridgé

Avec le réseau bridgé, VirtualBox utilise un pilote de périphérique de votre système hôte qui filtre les données depuis l'adaptateur de votre réseau physique. Ce pilote est donc appelé un pilote « net filter » (filtre de réseau). Ceci permet à VirtualBox d'intercepter des données du réseau physique et d'injecter des données dedans, créant de fait une nouvelle interface réseau logicielle. Quand un invité utilise une telle nouvelle interface logicielle, le système hôte voit l'invité comme si il était physiquement connectés à l'interface par un câble réseau : l'hôte peut envoyer des données à l'invité par cette interface et reçoit des données à partir d'elle. Cela signifie que vous pouvez régler un routage ou un pont entre l'invité et le reste de votre réseau.

Pour que cela fonctionne, VirtualBox a besoin d'un pilote de périphérique sur votre système hôte. La façon dont fonctionne le réseau bridgé a été entièrement réécrite avec VirtualBox 2.0 et 2.1, selon le système d'exploitation hôte. Pour les hôtes Mac OS X et Solaris, les pilotes net filter étaient déjà ajoutés à VirtualBox 2.0 (en tant que support dès le départ pour Host Interface Networking (réseau par interface hôte) sur ces plateformes). Avec VirtualBox 2.1, les pilotes net filter ont également été ajoutés pour les hôtes Windows et Linux, en remplaçant les mécanismes présents auparavant dans VirtualBox pour ces plateformes ; surtout sur Linux, la méthode plus récente sous Linux exigeait de créer des interfaces et des ponts (bridge) TAP, ce qui était complexe et ce qui changeait d'une distribution à l'autre. Rien de tout cela n'est nécessaire aujourd'hui. Le réseau bridgé s'appelait avant « Host Interface Networking » (réseau avec interface de l'hôte), et il a été renommé dans la version 2.2 sans modification de son fonctionnement.

Même si TAP n'est plus nécessaire sur Linux avec le réseau bridgé, vous pouvez toujours utiliser des interfaces TAP pour certains réglages avancés, puisque vous pouvez connecter une VM à n'importe quelle interface hôte -- ce qui pourrait aussi être une interface TAP.

Pour activer le réseau bridgé, tout ce que vous avez besoin de faire est d'ouvrir la boîte de dialogue Paramètres de la fenêtre d'une machine virtuelle, aller sur la page « Réseau » et sélectionner « Réseau bridgé » dans la liste déroulante du champ « Attaché à ». Enfin, sélectionnez l'interface hôte désirée depuis la liste au bas de la page, qui contient les interfaces réseau physiques de vos systèmes. Sur un MacBook typique, par exemple, cela vous permettra de choisir entre « en1: AirPort » (qui est l'interface tans fil) et « en0: Ethernet », qui représente l'interface avec un câble réseau.

En fonction de votre système d'exploitation hôte, vous devriez garder à l'esprit les limites suivantes :

- Sur des hôtes Macintosh, la fonctionnalité est limitée quand on utilise AirPort (le réseau sans fil de Mac) pour le réseau bridgé. Actuellement, VirtualBox ne supporte que l'IPv4 via AirPort. Pour d'autres protocoles tels qu'IPv6 et IPX, vous devez choisir une interface filaire.

- Sur les hôtes Linux, la fonctionnalité est limitée lors de l'utilisation d'interfaces sans fil pour le réseau bridgé. VirtualBox ne supporte actuellement que l'IPv4 via le sans fil. Pour les autres protocoles tels que IPv6 et IPX, vous devez choisir une interface filaire.

  En outre, régler le MTU à moins de 1500 bytes sur les interfaces filaires fournies par le pilote sky2 sur la Marvell Yukon II EC Ultra Ethernet NIC est connu pour entraîner des pertes de paquets dans certaines conditions.

- Sur les hôtes Solaris, il n'y a pas de support pour utiliser les interfaces sans fil. Le filtrage du trafic invité en utilisant IPFilter n'est pas non plus totalement supporté du fait de restrictions techniques du sous-système de réseau de Solaris 11.

  Avec VirtualBox 2.0.4 et supérieur, il est possible d'utiliser des interfaces réseaux virtuelles Crossbow (Crossbow Virtual Network Interfaces, VNICs) avec le réseau bridgé, mais avec les précautions suivantes :

  - Vous ne pouvez pas partager un VNIC entre plusieurs interfaces réseau virtuelles, ainsi chaque interface réseau invité doit avoir son propre VNIC.

  - La VNIC et l'interface réseau de l'invité qui utilise le VNIC doivent se voir assigner des adresses MAC.

  Lors de l'utilisation des interfaces VLAN avec VirtualBox, elles doivent être nommées selon le schéma de nommage du hack PPA (comme "e1000g513001"), car sinon, il se peut que l'invité reçoive des paquets sous un format inattendu.

## Réseau interne

Le réseau interne est similaire au réseau bridgé dans le sens où la VM peut communiquer directement avec le monde extérieur. Cependant le « monde extérieur » est limité aux autres VMs qui se connectent au même réseau interne.

Même si techniquement, tout ce que vous pouvez faire en utilisant le réseau interne est aussi faisable en utilisant le réseau bridgé, il y a des avantages en matière de sécurité à utiliser le réseau interne. En mode réseau bridgé, tout le trafic passe par une interface physique du système hôte. Il est donc possible d'attacher un détecteur de paquets (tel que Wireshark) à l'interface hôte et d'enregistrer tout le trafic qui passe par lui. Si, pour une raison quelconque, vous préférez que deux ou davantage de VMs de la même machine communiquent de façon privée, tout en cachant leurs données à la fois au système hôte et à et à l'utilisateur, le réseau bridgé n'est donc pas une option.

Les réseaux internes sont créés automatiquement selon les besoins, ainsi il n'y a pas de configuration centrale. Chaque réseau interne est simplement identifié par son nom. Une fois qu'il y a plus d'une carte réseau virtuelle active avec le même ID de réseau interne, le pilote de support de VirtualBox va automatiquement « brancher » les cartes et agir comme un switch réseau. Le pilote du support de VirtualBox implémente une switch Ethernet complet et supporte à la fois les trames broadcast/multicast et le mode promiscuité.

Afin d'attacher la carte réseau d'une machine virtuelle à un réseau interne, réglez son mode réseau sur « réseau interne ». Il y a deux façons d'accomplir cela :

- Vous pouvez utiliser la boîte de dialogue « Paramètres » de la VM dans l'interface graphique. Dans la catégorie « Réseau » de la boîte de dialogue des paramètres, sélectionnez « Réseau interne » dans la liste déroulante des modes réseau. Maintenant, sélectionnez le nom d'un réseau interne existant depuis le menu déroulant en-dessous ou entrez un nouveau nom dans le champ d'édition.

- Vous pouvez utiliser

      VBoxManage modifyvm "nom VM" --nic<x> intnet

  Vous pouvez éventuellement spécifier un nom de réseau avec la commande

      VBoxManage modifyvm "nom VM" --intnet<x> "network name"

  Si vous ne spécifiez pas de nom de réseau, la carte réseau sera attachée au réseau `intnet` par défaut.

Sauf si vous configurez les cartes réseau (virtuelles) des systèmes d'exploitation invités qui participent au réseau interne pour utiliser des adresses IP statiques, il se peut que vous vouliez utiliser le serveur DHCP construit dans VirtualBox pour gérer les adresses IP pour le réseau interne. Merci de voir le pour des détails.

Par mesure de sécurité, l'implémentation Linux du réseau interne n'autorise que les VMs en fonction sous le même ID utilisateur à établir un réseau interne.

## Réseau privé avec l'hôte (Host-only)

Le réseau privé avec l'hôte est un autre mode réseau qui a été ajouté avec la version 2.2 de VirtualBox. On peut le concevoir comme un hybride entre les modes réseau bridgé et interne : comme avec le réseau bridgé, les machines virtuelles peuvent se parler entre elles et avec l'hôte comme si elles étaient connectées sur un switch ethernet physique. De la même façon, comme avec le réseau interne cependant, il n'est pas besoin qu'une interface réseau physique soit présente et les machines virtuelles ne peuvent pas parler au monde extérieur à l'hôte puisqu'elles ne sont pas connectées à une interface réseau physique.

Quand on utilise le réseau privé avec l'hôte, VirtualBox crée à la place une nouvelle interface logicielle sur l'hôte qui apparaît ensuite à côté de vos interfaces réseau existantes. En d'autres termes, alors qu'avec un réseau bridgé, on utilise une interface réseau existante pour y attacher les machines virtuelles, avec le mode hôte privé on crée une nouvelle interface « loopback » sur l'hôte. Et alors qu'avec le réseau interne, on ne peut pas voir le trafic entre les machines virtuelles, on peut intercepter le trafic sur l'interface « loopback » de l'hôte.

Le réseau avec hôte privé est particulièrement utile pour les applications virtuelles pré-configurées, où plusieurs machines virtuelles sont emballées ensembles et destinées à coopérer. Par exemple, il se peut qu'une machine virtuelle contienne un serveur Web et la seconde une base de données, et puisqu'elles sont prévues pour se parler, l'application peut demander à VirtualBox de régler un réseau avec hôte privé pour les deux. Un second réseau (bridgé) connecterait alors le serveur Web au monde extérieur pour donner accès aux données, mais le monde extérieur ne peut pas se connecter à la base de données.

Pour passer l'interface réseau de la machine virtuelle en mode « avec hôte privé » :

- soit allez sur la page « réseau » dans les paramètres de la machine virtuelle dans l'interface graphique et sélectionnez « Hôte privé » ou

- en ligne de commande, tapez `VBoxManage modifyvm "nom VM" --nic<x> hostonly` ; voir le pour les détails.

Pour le réseau privé avec hôte, comme avec le réseau interne, il se peut que vous trouviez le serveur DHCP construit dans VirtualBox utile. On peut l'activer puis gérer les adresses IP dynamiques dans le réseau avec hôte privé puisque sinon vous devriez configurer toutes les adresses IP de manière statique.

- Dans l'interface graphique de VirtualBox, vous pouvez configurer toutes ces options dans les paramètres globaux avec « Fichier » -> « Paramètres » -> « Réseau », qui liste tous les réseaux avec hôte privé présentement utilisés. Cliquez sur un nom de réseau puis sur le bouton « Éditer » à droite et vous pouvez modifier les paramètres de l'adaptateur et du DHCP.

- Alternativement, vous pouvez utiliser `VBoxManage dhcpserver` en ligne de commande ; voir le pour des détails.

## Réseau par tunnel UDP

Ce mode réseau permet de connecter entre elles des machines virtuelles en fonction sur plusieurs hôtes.

Techniquement, cela se fait en encapsulant des cadres (frames) Ethernet envoyés ou reçus par la carte réseau invitée dans un chiffreur de données (data datagrams) UDP/IP, et en les envoyant à l'hôte à travers un réseau disponible.

Le mode Tunnel UDP prend trois paramètres :

port UDP source

  Le port sur lequel écoute l'hôte. Les déchiffreurs de données arrivant sur ce port issus de n'importe quelle adresse source seront redirigés vers la partie réceptrice d'une carte réseau invitée.

adresse de destination

  L'adresse IP de l'hôte cible des données transmises.

Port UDP de destination

  Numéro de port vers lequel sont envoyées les données transmises.

Lorsqu'on connecte deux machines virtuelles sur deux hôtes différents, leurs adresses IP doivent être échangées. Sur un hôte unique, les ports sources et de destination doivent être échangés.

Dans l'exemple suivant, l'hôte 1 utilise l'adresse IP 10.0.0.1 et l'hôte 2 utilise l'adresse IP 10.0.0.2. Configuration en ligne de commande :

            VBoxManage modifyvm "VM 01 on host 1" --nic<x> generic
            VBoxManage modifyvm "VM 01 on host 1" --nicgenericdrv<x> UDPTunnel
            VBoxManage modifyvm "VM 01 on host 1" --nicproperty<x> dest=10.0.0.2
            VBoxManage modifyvm "VM 01 on host 1" --nicproperty<x> sport=10001
            VBoxManage modifyvm "VM 01 on host 1" --nicproperty<x> dport=10002

et

            VBoxManage modifyvm "VM 02 on host 2" --nic<y> generic
            VBoxManage modifyvm "VM 02 on host 2" --nicgenericdrv<y> UDPTunnel
            VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> dest=10.0.0.1
            VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> sport=10002
            VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> dport=10001

Bien entendu, vous pouvez connecter deux machines virtuelles sur le même hôte en réglant le paramètre d'adresse de destination sur 127.0.0.1 sur les deux. Dans ce cas, il agira comme le « Réseau interne », mais l'hôte peut voir le trafic réseau, ce qu'il ne pourrait pas faire en réseau interne normal.

Sur les hôtes basés sur Unix (comme Linux, Solaris, Mac OS X), il n'est pas possible de diriger (bind) sur des ports inférieurs à 1024, à partir d'applications qui ne sont pas exécutées par `root`. Il s'en suit que si vous essayez de configurer un tel port source UDP, la VM refusera de démarrer.

## Réseau VDE

Virtual Distributed Ethernet (Ethernet virtuel distribué, VDE VDE est un projet développé par Renzo Davoli, professeur associé à l'Université de Bologna en Italie.) est une infrastructure réseau virtuelle flexible, reliant plusieurs hôtes de manière sécurisée. Elle permet de basculer entre L2/L3, y compris avec un protocole d'arborescence de passerelles, entre VLANs et l'émulation WAN. C'est une partie facultative de VirtualBox qui n'est incluse que dans code source.

Les blocs de construction de base de l'infrastructure sont des switches VDE, des plugs (prises) VDE et des fils VDE, qui connectent les switches entre eux.

Le pilote VDE de VirtualBox prend un paramètre :

Réseau VDE

  Le nom du socket du switch du réseau VDE vers lequel se connectera la VM.

L'exemple de base suivant montre comment connecter une machine virtuelle à un switch VDE :

1. Créez un switch VDE :

       vde_switch -s /tmp/switch1

2. Configuration en ligne de commande :

       VBoxManage modifyvm "nom VM" --nic<x> generic

       VBoxManage modifyvm "nom VM" --nicgenericdrv<x> VDE

   Pour se connecter au port du switch automatiquement affecté, utilisez :

       VBoxManage modifyvm "nom VM" --nicproperty<x> network=/tmp/switch1

   Pour se connecter à un port spécifique du switch <n>, utilisez :

       VBoxManage modifyvm "nom VM" --nicproperty<x> network=/tmp/switch1[<n>]

   La dernière option peut être utile pour des VLANs.

3. Plan facultatif entre un port de switch VDE et un VLAN : (du switch en console)

       vde$ vlan/create <VLAN>

       vde$ port/setvlan <port> <VLAN>

VDE n'est disponible que sur des hôtes Linux et FreeBSD. Il n'est disponible que si le logiciel VDE et la bibliothèque du plugin VDE du projet VirtualSquare sont installés sur le système hôte. Pour plus d'informations sur le paramétrage des réseaux VDE, merci de voir la documentation qui accompagne le logiciel. http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking.