Ecole Nationale des Sciences Appliquées d’al Hoceima Université Abdelmalek Essaadi
Génie Logiciel GL - La Virtualisation Année Universitaire 2020/2021
Pr. H. ROUTAIB
Travaux Pratiques n◦ 1 -Atelier n◦ 2 -
– Virtualisation (KVM/QEMU) sous Ubuntu –
Objectif : Le but de cet article est de faire monter deux modes de réseaux différents entre la
machine hôte et la machine virtuelle (Ubuntu) via QEMU en tant qu’utilisateur local; Vous ferez
ceux-ci sous votre compte. Vous pouvez aussi configurer ces deux modes réseaux sur la machine
virtuelle (Windows) via KVM.
Le mode BRIDGE :
Nous allons maintenant intégrer les machines virtuelles windows et linux à notre réseau local On va prendre
pour l’exemple la machine virtuelle linux mais c’est aussi les mêmes démarches pour windows vous pouvez le
faire en parallèle aussi Commencez par installer les paquetages bridge et dnsmasq. (sous votre machine Hôte )
• Éteignez vos machines virtuelles.
• Sur la machine hôte , nous allons créer un pont qui va contenir à la fois l’interface (physique) eth0 et
l’interface virtuelle de linux (attention, le réseau de votre machine va être coupé lors des commandes
suivantes)
NB: Attention l’interface physique peut avoir un autre nom que eth0 par exemple sur Ubuntu
j’ai une interface enp0s3
sudo ifconfig enp0s3 0.0.0.0
sudo brctl addbr pont
sudo brctl addif pont enp0s3
sudo ifconfig pont up
sudo dhclient pont
sudo tunctl -b -u <localuser>
% la commande tunctl vous affiche alors une interface nommée tap0, qu’il faut l’utiliser dans les comman-
des suivantes
sudo brctl addif pont tap0
sudo ifconfig tap0 up
• Expliquez chacune des commandes précédentes.
• Faites un dessin récapitulant la nouvelle configuration du réseau.
• Maintenant, on lance la machine virtuelle Ubuntu 20.04 LTS (tout en affectant une nouvelle @ MAC au ma-
chine virtuelle à choisir au hazard et qui fera 6 octets) via cette commande (la commande fait une seule ligne)
qemu-system-x86 64 -m 2048 /home/vservers/ubuntu.qcow2 -net nic,model=virtio,
macaddr=00:00:00:00:00:01 -net tap,ifname=tap0
• Expliquez cette commande
• Vérifiez la configuration du réseau. Est ce que la VM linux a-t-elle récupéré une adresse IP ? Vérifiez
aussi si c’est dans la même plage d’adresse que votre réseau local.
• Pouvez-vous maintenant faire un ping sur la VM linux depuis la machine hôte ?
• Essayez de ping er www.google.com depuis votre VM linux.
• Faites un apt-get update sur la VM
Le mode NAT :
Dans cette partie, vous devez vérifier que vous avez récupéré une configuration normale et que les machines
virtuelles crées dans l’atelier 1 sont bien éteintes. Utilisez pour cela les commandes brctl show, ifconfig, route
-n, . . .etc. Nous allons créer un réseau local à la machine dans lequel nous allons mettre les machines virtuelles
windows ou linux.
Préparation du réseau :
Il faut d’abord redémarrer vos machines virtuelles
• Les commandes qui suivent sont à faire en localuser dans la machine Hôte.
• Créez un pont dans un nouveau réseau local destiné pour les VM, dans une plage d’adresses que vous
choisirez et qui sera different de la plage d’adresses de votre réseau local, par exemple 192.168.17.0/24
sudo brctl addbr virbr0
sudo ifconfig virbr0 up
sudo ifconfig virbr0 192.168.17.1 netmask 255.255.255.0
• Lancez sudo brctl show et sudo route -n
• Lancez un serveur DHCP minimal qui fournira des IP à vos machines. Ce serveur ne fonctionne que sur
notre réseau local (la commande fait une seule ligne) :
sudo dnsmasq -o -z --listen-address 192.168.17.1 --except-interface lo --dhcp-range
192.168.17.2,192.168.17.254 --dhcp-lease-max=253
Expliquez cette commande !
• Réservez une deuxième interface de type tap, en vous servant de sudo tunctl -b -u <localuser>.
L’interface obtenue est tap0.
• Ajoutez cette interface au pont et activez la :
sudo brctl addif virbr0 tap0
sudo ifconfig tap0 up
• Lancez sudo brctl show et sudo ifconfig pour contrôler ce qui se passe.
Lancement de la machine virtuelle :
• Le lancement de cette VM est fait grace à cette commande :
qemu-system-x86 64 -m 2048 /home/vservers/ubuntu.qcow2 -net nic,model=virtio,
macaddr=00:00:00:00:00:02 -net tap,ifname=tap0
Vous pouvez garder l’@ MAC du lancement précédent comme vous pouvez la changer
• Vérifiez que dnsmasq a bien fourni une @IP à vo tre VM
• Avez-vous accès a la VM depuis la machine hôte ?
• Pouvez-vous envoyer un ping sur 192.168.17.1 (i.e.La passerelle qui est la machine hôte) ?
• Vous pouvez autoriser la VM à accéder à l’interface réseau de la machine hôte en utilisant la redirection
de ports grace à cette commande :
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip forward"
• Finalement on active la translation d’adresses avec :
sudo iptables -t nat -A POSTROUTING -s 192.168.17.0/24 ! -d 192.168.17.0/24 -j MASQUERADE