Dans un précédent billet nous avons vu comment configurer la partie OpenVswitch sur l'hyperviseur. Nous allons voir maintenant comment configurer les VM pour utiliser ce switch virtuel.

Normalement si tout c'est bien passé, sur l'hyperviseur le switch virtuel br0 est configuré:

[root@hyperviseur01 ~]# ovs-vsctl show
c5f92e84-adaa-4b87-beac-c7f6c8129a7c
    Bridge "br0"
        Port "br0"
            Interface "br0"
                type: internal
    ovs_version: "2.4.0"

Configuration simple sans VLAN

Le but maintenant est de faire en sorte d'ajouter automatiquement dans ce br0 les interfaces virtuelles de la VM dès son démarrage. Pour cela il faut faire comprendre à la libvirt qui gère notre VM que les interfaces réseaux de cette dernière sont à associer à notre "bridge" OpenVswitch nommé br0. La syntaxe XML pour cela est la suivante :
[...]
<source bridge='br0'/>
 <virtualport type='openvswitch'/>
[...]
Qu'il faudra ajouter dans le bloc des interfaces réseaux via la commande suivante :
virsh edit NOM_VM
Voici ce que donnerait un bloc interface complet :
[...]
<interface type='bridge'>
      <mac address='52:54:00:06:7e:aa'/>
      <source bridge='br0'/>
      <virtualport type='openvswitch'/>
      <model type='virtio'/>
</interface>
[...]
Aujourd'hui, passer par virt-manager ne permet pas de profiter de toutes les possibilités d'OpenVswitch. C'est pourtant prévu, mais en attendant, en fonction des versions de ce dernier, il ne connait même pas l'existence d'OpenVswitch. Du coup, pour faire le lien entre notre VM et notre br0 nous n'avons pas d'autre choix que d'éditer le fichier XML de configuration de la VM à la main. Cela repose sur l'utilisation de la libvirt bien sûr.
Ensuite pour démarrer la VM, il est possible de repasser par les outils habituels, soit virsh encore (virsh start NOM_VM), soit virt-manager par exemple. 
Il est ensuite possible de faire de même pour d'autres VMs, qui si elles ont la même configuration IP pourront communiquer. Bien sûr il ne faudra pas s'attendre à la main simplicité qu'avec un switch linux natif type bridge. Les VMs n'auront par exemple pas accès tel quel à votre réseau physique. Mais avec un prochain billet sur la configuration des VLANs et ce billet précédent sur la configuration basique d'OpenVswitch, tout devrait être possible.