12. Communications réseau en mode point-à-point

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.

12.1. Exemple d'utilisation des communications réseau en mode point à point

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.

  1. 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)
    
  2. 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 1 \
      -net tap,vlan=0,ifname=tap02,script=no 3
    

    1

    L'option -net nic indique que la machine virtuelle doit disposer d'une interface réseau (nic : network interface card) émulée. Le paramètre vlan=0 désigne le réseau local virtuel (vlan : virtual local area network) auquel cette interface est raccordée.

    2

    L'option -net tap,vlan=0,ifname=tap0 indique 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.

    3

    L'option no indique 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.

  3. 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:~$