Google
virtualisation

- Réseau virtuel de 3distributions avec qemu-system-x86_64 (Kvm) sur Hôte Ubuntu -

Après «avoir fait naître et insuffler de la vie dans la machine virtuelle N°1», je peux maintenant faire la même chose pour d'autres machines !

Deux méthodes sont disponibles :

Recommencer depuis le début sur un nouveau fichier disque dur et une nouvelle image ISO (ou un CD/DVD physique) d'une autre distribution.

Ou le «CLONAGE» de la machine virtuelle précédente :

objectif :

Avoir 3 machines virtuelles supplémentaires (évolutif < 10) en fonction sur la machine physique ainsi qu'un réseau fonctionnel et accès Internet le plus simple au niveau de son routage avec ma Freebox v6.

duplication du fichier disque dur hdDebian-stable.img :

Pour déja mettre des Debian GNU/Linux -stable supplémentaires dans ce réseau virtuel, je copie autant de fois le fichier image hdDebian-stable.img qu'il faudra pour chaque machine virtuelle et en les renommant pour bien les repérer.

mv hdDebian-stable.img hd1Debian-stable.img  => premier disque « hd1 »
cp hd1Debian-stable.img hd2Debian-stable.img => deuxième disque « hd2 »
cp hd1Debian-stable.img hd3Debian-stable.img => troisième disque « hd3 »

nommage des scripts de lancement respectifs :

J'attribue un script de lancement pour chaque fichier disque dur «hdX» obtenu précédemment.

mv debian-stable.sh debian1-stable.sh  => script pour le disque « hd1 »
cp debian1-stable.sh debian2-stable.sh => script pour le disque « hd2 »
cp debian1-stable.sh debian3-stable.sh => script pour le disque « hd3 »

Adaptations des scripts de lancement :

Pour «identifier (personnaliser)» les machines virtuelles afin d'éviter les conflis de TRAMES IP dans mon «ENTONNOIR br0» créé précédemment.

Attribution de l'adresse MAC :

Afin que chaque carte réseau émulée par qemu-system-x86_64 puisse bien s'intégrer au mieux possible en conformité au protocole TCP/IP, je place une adresse MAC différente dans les scripts de lancements.

A placer dans l'option «macaddr=» des fichiers respectifs de lancements debianX-stable.sh :

macaddr=08:00:27:A7:F7:D8 -> debian1
macaddr=08:00:27:E2:43:D4 -> debian2
macaddr=08:00:27:2A:0A:9D -> debian3

==> Comme je l'utilise aussi pour un autre réseau virtuel, j'emploie l'outil de création aléatoire d'adresse MAC de Virtualbox-OSE pour bénéficier de sa plage de choix d'adresses MACS facilement en le laissant m'en proposer à ma place!

Pour repérer les cartes réseau émulées par qemu-system-x86_64 ainsi que le nom du fichier disque dans chaque script de lancement :

vlan=X -> N° de l'interface de la carte de qemu-system-x86_64 (0...9 maxi)
tap=X  -> N° du pont (bridge sur br0, 0...9 maxi)
-hdXdebian... -> N° pour préciser l'appartenance du fichier disque

Reprise de l'exemple d'un script comme avant :

#!/bin/bash

qemu-system-x86_64 -k fr -smp 2 -m 256 \
-net nic,vlan=X,macaddr=Z \  -> "Z" = comme chaque adresse ci-dessus
-net tap,vlan=X,ifname=tapX,script=/etc/qemu-ifup \
-hda hdXDebian-stable.img \
#-boot d \
#-cdrom $1

Validation des scripts pour sudo :

Je donne l'information à sudo de la présence de ces nouveaux scripts de lancements avec visudo par une nouvelle ligne supplémentaire dans /etc/sudoers pour chacun :

su -c visudo  -> pour passer temporairement par « root »

Lignes à ajouter (extensible à 10 scripts de lancements maximum déjà testés) :

/home/"xxx"/debian1-stable.sh, \
/home/"xxx"/debian2-stable.sh, \
/home/"xxx"/debian3-stable.sh, \

Pré-conformité des machines virtuelles :

But :

Vérifier la reconnaissance de l'interface carte réseau émulée par qemu-system-x86_64 pour chacune de ces machines.

==> J'utilise déjà uniquement UN script de lancement à la fois !

Démarrage nouvelle machine «X» :

Pour commencer, je déclanche le pont br0 de l'hôte Ubuntu :

sudo bin/bridge.sh start  -> pont démarré
/sbin/ifconfig  -> vérification br0 (MULTICAST)

En éxécutant debian"X"-stable.sh, c'est comme si on mettait l'alimentation d'un boiter de PC en fonction.

sudo ./debian1-stable.sh  -> lancement du premier script par mon $HOME

Sous le compte root de la machine virtuelle :

Après avoir laissé la procédure de mise en service s'exécuter, on arrive à la la requête Login de cette distribution virtuelle, je passe sous le compte root de cette distribution.

ifconfig | grep HWaddr  -> vérification de l'adresse MAC et N° port eth

Si aucun interface eth n'est détecté :

dhclient  -> validation de l'interface et adresse MAC par le DHCP 
de cette distribution -stable virtuelle

Si une intervention due à l'absence d'interface est apparue, une action sur /etc/nework/interfaces est nécessaire pour préciser le bon N° eth qui a été trouvé par DHCP ci-dessus afin qu'il soit bien pris en compte lors d'un prochain reboot de cette machine :

nano /etc/network/interfaces  -> précision du BON N° d'interface eth

==> C'est terminé pour cette debian1-stable.sh, je la stoppe par :

halt  -> je suis sous root de celle ci, bien sûr !

Les autres «machines» !

Pour autant de machines souhaitées (<10) :

Laissant le pont démarré ci dessus en service (bridge.sh start -> pont démarré), je recommence INDIVIDUELLEMENT comme ci-dessus pour chaque script afin de vérifier leur interface réseau respectif.

Inventaire :

  1. 3 fichiers disques hdX. -> Ok
  2. 3 scripts de lancements -> Ok
  3. 3 adresses MACS --> Ok
  4. 3 portes tapX --> Ok
  5. 3 interface vlanX --> Ok
  6. même login/mdp root et user pour chacune des machines virtuelles --> Ok

Comme les 3 distributions Debian GNU/Linux proviennent de la même installation initiale, les logins et mots de passe sont les mêmes pour les comptes root et user (à adapter si nécessaire).

Déploiement du réseau :

Après avoir contrôlé l'inventaire précédent, je vérifie et paramètre chaque distribution virtuelle pour que leurs interfaces ethX soient bien intégrés avec le pont br0 de l'hôte Ubuntu.

- Sur l'HÔTE : -

Je mets en fonction le pont sur ma carte physique manuellement pour conserver le choix pour mes besoins.

Mise en route du pont br0 :

sudo bin/bridge.sh start

Vérifier gateway :

netstat -rn

Pour CHAQUE machine virtuelle :

lancement script debianX-stable.sh.

Vérifier ethX et adresse MAC :

ifconfig | grep HWaddr

Vérifier gateway:

netstat -rn

Modif de grub :

Pour modifier le démarrage du noyau ainsi que l'affichage de la console des distribs pour avoir un meilleur confort. Affichage console (vga=791). Défilement (quiet).

/boot/grub/menu.lst  -> mettre les options : # defoptions=vga=791 quiet
update-grub -> pour la prochaine reconnaissance au boot (laissez le "#")

Renommage du hostname :

Mettre «debian-stableX» (ex: 1,2, 3..) dans /etc/hostname.

Personnaliser la machine (/etc/hostname).