Relativement au contexte précédent, ce mode permet de faire
«apparaître» une interface réseau de machine virtuelle sur le
système hôte. Cette configuration nécessite donc l'utilisation de
droits super utilisateur pour administrer les interfaces depuis le
système hôte. Ces droits peuvent être délégués «à l'acte» via
sudo ou utilisés directement à la
console.
Voici la topologie type des communications réseau entre une machine virtuelle, un système hôte et un hôte distant.
On trouve ci-dessous les attributions d'adresses IPv4 en fonction des types d'interfaces. Bien entendu, ces adresses ne sont que des exemples utiles à l'interprétation des étapes de mise en place de la topologie illustrée.
Tableau 1. Plan d'adressage IPv4 pour les communications point à point
| Système | Interface | Adresse IPv4 |
|---|---|---|
| hôte | eth0 | 192.168.1.1/24 |
| hôte | tap0 | 192.0.2.1/24 |
| virtuel | eth0 | 192.0.2.2/24 |
| distant | eth0 | 192.168.1.7/24 |
Pour la suite, on considère que la configuration et le fonctionnement du réseau local de communication entre le système hôte et le système distant sont déjà validés.
-
Configuration de l'interface TAP sur le système hôte.
$./scripts/tap-up.sh tap0 192.0.2.1/24$/sbin/ifconfig tap0 tap0 Link encap:Ethernet HWaddr 00:ff:8c:db:de:99 inet adr:192.0.2.1 Bcast:192.0.2.255 Masque:255.255.255.0 adr inet6: fe80::2ff:8cff:fedb:de99/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:47 overruns:0 carrier:0 collisions:0 lg file transmission:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) -
Lancement de l'instance de machine virtuelle sur le système hôte.
$kvm \ -name pointopoint-example \ -m 512 \ -rtc base=localtime,clock=host \ -drive file=vm0-debian-stable-x86_64.raw,if=virtio,media=disk,boot=on \ -k fr \ -usb -usbdevice tablet \ -net nic,vlan=0
\
-net tap,vlan=0,ifname=tap0
,script=no
L'option
-net nicindique que la machine virtuelle doit disposer d'une interface réseau (nic : network interface card) émulée. Le paramètrevlan=0désigne le réseau local virtuel (vlan : virtual local area network) auquel cette interface est raccordée.L'option
-net tap,vlan=0,ifname=tap0indique que l'interface TAP du système hôte doit être raccordée au même réseau local virtuel (vlan) que l'interface réseau émulée.L'option
noindique que l'on ne fait appel à aucun script d'initialisation et de configuration d'interface TAP du système hôte lors du lancement de la machine virtuelle. -
Mise en place des entrées statiques de la table de routage du système distant pour pouvoir joindre la machine virtuelle via le système hôte.
# route add -net 192.0.2.0 netmask 255.255.255.0 dev eth1 # route add -host 192.0.2.2 gw 192.0.2.1 # ping -c 2 192.0.2.2 PING 192.0.2.2 (192.0.2.2) 56(84) bytes of data. 64 bytes from 192.0.2.2: icmp_seq=1 ttl=63 time=3.81 ms 64 bytes from 192.0.2.2: icmp_seq=2 ttl=63 time=1.78 ms --- 192.0.2.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1007ms rtt min/avg/max/mdev = 1.782/2.797/3.812/1.015 ms
Test de connexion à la machine virtuelle.
:~$ ssh etu@192.0.2.2 etu@192.0.2.2's password: Linux vm0 2.6.24-1-amd64 #1 SMP Fri Apr 18 23:08:22 UTC 2008 x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed May 14 22:12:46 2008 from topaze.linux.home etu@vm0:~$