bonjour,
j'ai un réseau physique, avec une passerelle réseau, qui distribue des adresses en 192.168.1.X aux machines physiques du réseau.
Sur l'une d'entres elles, j'ai installé VirtualBox, et des machines virtuelles dedans.
Ces machines ont des adresses de la forme 10.0.2.X.
A partir de ces machines, j'ai accès au net et au réseau ; en revanche, impossible d'accéder aux machines virtuelles depuis la machine hôte ou une autre machine du réseau.
Qui est-ce qui attribue ces adresses en 10.0.2.X ? VirtualBox embarque son propre serveur DHCP ?
Comment faire pour que mes machines virtuelles obtiennent leur IP (ainsi que leur nom, leurs DNS, etc...) auprès de ma passerelle réseau, exactement comme les machines physiques ?
Merci d'avance !
# touche touche
Posté par jll_ . Évalué à 2.
J'avais d'ailleur écris un petit tuto:
http://wiki.archlinux.fr/howto:virtualisation:qemu#avec_des_(...)
La manipulation doit aussi fonctionner pour virtual box.
# la machine qui heberge virtual box
Posté par NeoX . Évalué à 3.
il distribue donc des IPs, un DNS à tes machines virtuelles.
tu dois d'ailleurs avoir une nouvelle carte reseau dans ta machine reelle, elle aussi en 10.0.2.x
mais c'est aussi pour ca qu'une machinne externe ne peut pas joindre tes machines virtuelles
comme dit plus haut si tu veux mettre tes machines virtuelles sur le reseau 192.168.1.X il faut demander à virtualbox de faire un "bridge".
Ainsi les machines virtuelles seront branchées sur ta carte reseau
# .
Posté par Vincent ORDY . Évalué à 4.
Oui
Comment faire pour que mes machines virtuelles obtiennent leur IP (ainsi que leur nom, leurs DNS, etc...) auprès de ma passerelle réseau, exactement comme les machines physiques ?
VirtualBox a 4 mode pour le réseau:
- rien
- NAT (par défaut)
- adaptateur réseau hôte
- réseau interne (= les machines virtuelles se voient entre elles)
Ce que tu veux, c'est "adaptateur réseau hôte" pour créer une interface sur ta machine hôte, puis faire un bridge.
Le plus simple est probablement que tu lises le manuel utilisateur (User Manual sur http://www.virtualbox.org/wiki/Downloads ) qui décrit très bien la procédure à suivre, pour plusieurs distributions.
# Voici une technique basée sur un bridge
Posté par Olivier Thauvin . Évalué à 3.
communiquer les VM entre elles, et les faire communiquer vers le monde
extérieur.
VirtualBox permet de s'attacher à une interface type tap/tun. Donc j'ai
créer un bridge qui inclus les interfaces des VM. Accessoirement, comme
ma machine sert de routeur, l'interface bridge a elle même une addresse
IP. Une autre possibilité serait d'ajouter au bridge une interface
réelle connectée au reste du réseau.
brctl addbr br0
ip addr add 192.168.28.1 dev br0
Pour ajouter une interface réelle, avec un vrai réseau:
brctl addif br0 eth1
ip link set up dev eth1
eth1 étant connectée au switch réel de la salle, pas besoin d'IP.
Ensuite j'ai créer les VM avec l'interface graphique, déjà ne serait-ce
que pour faire l'installation de mon OS favoris.
La première configuration se fait à la main:
TAP=`tunctl -b`
ip link set up dev $TAP
brctl addif br0 $TAP
$TAP contient l'interface à utliser dans VirtualBox.
Bon là evidement, c'est là que je magouille. J'ai un dhcpd en écoute sur
br0, et ma machine fait office de routeur. De plus je fixe une mac
adresse dans la VM.
Une fois ma VM installée, et mon système opérationnel, je veux pourvoir
le lancer sans réfléchir. Sauf qu'il est impossible de fixer l'interface
tap en ligne de commande (elle sont dynamiques et je peux en avoir besoin
pour d'autres usage, mais on peut modifier la config de la machine virtuelle.
Hop, un script:
#!/bin/sh
# Un argument, le nom de la vm:
VMNAME=$1
# tunctl créer et renvois la première TAP dispo
TAP=`tunctl -b`
# dans le bridge
brctl addif br0 $TAP
# impératif sinon les paquets ne passent pas
ifconfig $TAP up
# on modifie la VM pour connecter la première interface
# à note TAP
/usr/lib64/virtualbox/VBoxManage modifyvm "$VMNAME" -hostifdev1 $TAP
# on lance le tout dans un sous shell en tache de fond
(
/usr/lib64/virtualbox/VBoxHeadless -startvm "$VMNAME"
# je suis propre, je vire la tap inutile:
tunctl -d $TAP
)&
NB: VirtualBox fournit un soft pour faire la dernière partie en fait, mais je ne l'ai vu qu'après.
# Merci !
Posté par santos . Évalué à 3.
C'est surtout la notion de "bridge" qui me manquait.
J'ai lu la doc officielle, vos exemples et vos liens, ainsi que cet article :
http://atmaniak.net/blog/279-virtualbox-et-le-reseau-sous-de(...)
Maintenant ça fonctionne parfaitement !
Encore merci ;-)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.