1) il me faut un réseau, routé (pas naté), qui va à la fois faire
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
(
# Voici une technique basée sur un bridge
Posté par Olivier Thauvin . En réponse au message VirtualBox & réseau : comment ça marche ?. É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.