KVM : le réseau

La partie réseau a été préparée sur la machine "hôte" par la création du "bridge" dans l'article précédent, il ne nous reste plus qu'à "activer" un interface qui permettra à notre Machine Virtuelle de communiquer avec l'extérieur. 
Il nous faut réaliser les opérations suivantes :

  • Créer un interface "tap0" (nom consacré par l'usage ?) à l'aide de "tunctl" et l'affecter à notre user.
  • Activer cet interface
  • L'ajouter à notre bridge "br0" (là aussi nom consacré)

Ces opérations sont enchaînées par le petit script suivant qui demande deux paramètres :

  • Le numéro de switch (br0 ... n)
  • Le nom de l'interface (tap0 ... n)

#!/bin/bash

echo '1 = switch         : '$switch 
echo '2 = interface name : '$IFNAM 
if [ -n "$1" ]  then 
        /usr/bin/sudo /usr/sbin/tunctl -u $USER -t $IFNAM 
        sleep 1 
        /usr/bin/sudo /sbin/ip link set $IFNAM up 
        sleep 1 
        /usr/bin/sudo /usr/sbin/brctl addif $switch $IFNAM 
        exit 0 
else 
        echo "Error: no interface specified" 
        exit 1 
fi

Résultat, après avoir lancé le script avec en paramètres : br0 tap0  , on vérifie :

sudo ifconfig tap0 
tap0      Link encap:Ethernet  HWaddr 2a:8d:39:8d:b7:62  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:500 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Notre interface réseau semble fin prête. 
Pour le stopper il suffit de lancer le petit script suivant avec les mêmes paramètre "br0 tap0" pour effacer notre interface virtuel et tout remettre "à blanc" :

#!/bin/bash 
switch=$1 
IFNAM=$2 
sudo /sbin/ifconfig $IFNAM down 
sudo brctl delif $switch $IFNAM

Attention si vous voulez lancer deux MV ou plus, il faudra utiliser "tap1, tap2 ..." et pas deux fois le même ! Sinon vous vous ferez "tap"er sur les doigts.