Quelques compléments sur Qemu:
-
Des paquets correspondants à la version 0.82 pour sarge/i386 peuvent être récupérer ici:
http://boisson.homeip.net/sarge/qemu/
Il y a le module accélérateur kqemu pour les noyaux de sarge, attention, kqemu n’est pas libre. -
Simuler un réseau n’est pas forcément simple avec qemu mais quand on a compris c’est très puissant et remarquable. On peut considérer qu’un réseau est égal à un switch sur lequel on se connecte. Le switch porte un numéro déclaré par vlan. Il y a 3 opérations fondamentales toutes ammenés par l’option -net:
-net nic crée une interface réseau: Exemple
-net nic,vlan=0,macaddr=52:54:00:12:34:78
crée une carte réseau connectée au switch 0 d’adresse MAC égal à 52:54:00:12:34:78. On peut même préciser le type de la carte (cf man qemu à l’option nic)
-net user connecte le réseau à une passerelle et un serveur DHCP, une adresse IP est attribuée à la carte sur le réseau 10.0.2.0/24 avec l’adresse d’une passerelle et un DNS. Il y a même un serveur samba (10.0.2.4 si ma mémoire est bonne). Exemple:
-net user,vlan=0
connecte le réseau 0 au serveur DHCP, cela veut dire que les cartes sur vlan 0 recevront une adresse IP.
Enfin
-net socket
permet de connecter un réseau d’une machine qemu à un autre réseau. Cela se fait en associant au réseau une adresse IP multicast avec un numéro de port (genre 230.0.0.1:1234 exemple souvent pris),
-net socket,vlan=1,mcast=230.0.0.1:1234
connecte le réseau 1 à une douille 230.0.0.1:1234 donc à tous les réseaux mis sur cette douille.
Un exemple pour illustrer tout cela: Une simulation de bonding entre deux machines debian, cela correspond au schéma suivant:
| eth1 ---------------------------- eth0
| Internet - eth0 -A - | | - B
| eth2 ---------------------------- eth1
est simulé comme suit: linux.img et linux2.img sont des images de debian sarge fonctionnelles.
[code]
Machine1:
qemu -hda ~/Emulation/linux2.img
-net nic,vlan=0,macaddr=52:54:00:12:34:78
-net nic,vlan=1,macaddr=52:54:00:12:34:79
-net nic,vlan=2,macaddr=52:54:00:12:34:77
-net user,vlan=0
-net socket,vlan=1,mcast=230.0.0.1:1234
-net socket,vlan=2,mcast=230.0.0.2:1234
-k fr[/code]
3 réseaux: 0 sur DHCP et Internet (eth0), 1 sur la douille 230.0.0.1:1234 (eth1) et 2 sur la douille 230.0.0.2:1234 (eth2).
Machine 2:
qemu -hda ~/Emulation/linux.img \
-net nic,vlan=1,macaddr=52:54:00:12:34:99 \
-net nic,vlan=2,macaddr=52:54:00:12:34:97 \
-net socket,vlan=1,mcast=230.0.0.1:1234 \
-net socket,vlan=2,mcast=230.0.0.2:1234 \
-k fr
2 réseaux: 1 (eth0) sur la douille 230.0.0.1:1234 (qui sera donc connecté au réseau 1 de la machine précédente soit à eth1) et 2 (eth1) sur la douille 230.0.0.2:1234 et donc connecté au réseau 2 de la machine précédente (soit à eth2).
Cela permet de s’amuser avec le routage et de faire des expériences diverses, par exemple le bonding
Voilà… qemu est vraiment extrèmement souple et très pratique d’emploi pour peu qu’on lise la doc.