2. Raccordement au commutateur de distribution

Dans cette section, on étudie le raccordement des deux machines virtuelles au commutateur de distribution sur le système hôte.

Q1.

Comment contrôler la configuration des ports du commutateur de distribution sur le système hôte ?

Le commutateur virtuel implanté sur le système hôte est géré par Open vSwitch. On fait donc appel à la commande ovs-vsctl pour accéder aux paramètres de la configuration des ports.

  • Pour le port nommé tap200, on obtient le paramètre vlan_mode avec l'instruction :

    sudo ovs-vsctl get port tap200 vlan_mode
    trunk

    Le mode trunk correspond à un canal de transmission unique dans lequel circule le trafic de plusieurs domaines de diffusion ou VLANs.

  • Pour le port nommé tap2, on obtient la valeur access pour le même paramètre :

    sudo ovs-vsctl get port tap2 vlan_mode
    access

    Ici, le mode access correspond à un canal de transmission dans lequel circule le trafic d'un seul et unique domaine de diffusion ou VLAN.

Q2.

Comment afficher le numéro de VLAN attribué au port en mode accès du commutateur de distribution sur le système hôte ?

On reprend la même commande que dans la question précédente avec le mot clé tag.

sudo ovs-vsctl get port tap2 tag
20

Q3.

Comment affecter le numéro de VLAN attribué au port en mode accès du commutateur de distribution sur le système hôte ?

On reprend à nouveau la même commande avec l'option set.

sudo ovs-vsctl set port tap2 tag=440

Les valeurs données dans l'exemple ci-dessus sont à changer suivant les attributions du plan d'adressage des réseaux d'hébergement et de conteneurs.

Q4.

Comment configurer les ports du commutateur avant le lancement des machines virtuelles ?

On utilise le script de procédure switch-conf.py qui applique les déclarations contenues dans un fichier YAML. Le code du script est accessible à partir du dépôt Git startup-scripts.

Voici une copie du fichier de configuration des deux ports de commutateur.

ovs:
  switches:
    - name: dsw-host
      ports:
        - name: tap5 # Router port
          type: OVSPort
          vlan_mode: trunk
          trunks: [360, 440]
        - name: tap6 # Container hosting VM
          type: OVSPort
          vlan_mode: access
          tag: 440

On applique les paramètres définis ci-dessus.

$HOME/masters/scripts/switch-conf.py switch.yaml

On obtient les résultats suivants.

----------------------------------------
Configuring switch dsw-host
>> Port tap5 vlan_mode set to trunk
>> Port tap5 trunks set to [360, 440]
>> Port tap6 vlan_mode is already set to access
>> Port tap6 tag set to 440
----------------------------------------

Les numéros de port de commutateur et de VLAN donnés dans les exemples ci-dessus sont à changer suivant le contexte.

Q5.

Comment lancer les machines virtuelles associées aux rôles routeur et hébergement de conteneurs ?

On utilise le script de procédure lab-startup.py qui applique les déclarations contenues dans un fichier YAML. Le code du script est accessible à partir du dépôt Git startup-scripts.

Voici une copie du fichier de déclaration des deux machines virtuelles.

kvm:
  vms:
    - vm_name: router
      master_image: debian-testing-amd64.qcow2 # master image to be used
      force_copy: false # do not force copy the master image to the VM image
      memory: 1024
      tapnum: 5
    - vm_name: hosting
      master_image: debian-testing-amd64.qcow2 # master image to be used
      force_copy: false # do not force copy the master image to the VM image
      memory: 1024
      tapnum: 6

On lance les deux machines virtuelles avec le script lab-startup.py.

$HOME/masters/scripts/lab-startup.py lab1.yaml
Copying /home/etudianttest/masters/debian-testing-amd64.qcow2 to router.qcow2...done
Creating OVMF_CODE.fd symlink...
Creating router_OVMF_VARS.fd file...
Starting router...
~> Virtual machine filename   : router.qcow2
~> RAM size                   : 1024MB
~> SPICE VDI port number      : 5905
~> telnet console port number : 2305
~> MAC address                : b8:ad:ca:fe:00:05
~> Switch port interface      : tap5, trunk mode
~> IPv6 LL address            : fe80::baad:caff:fefe:5%dsw-host
router started!
Copying /home/etudianttest/masters/debian-testing-amd64.qcow2 to hosting.qcow2...done
Creating hosting_OVMF_VARS.fd file...
Starting hosting...
~> Virtual machine filename   : hosting.qcow2
~> RAM size                   : 1024MB
~> SPICE VDI port number      : 5906
~> telnet console port number : 2306
~> MAC address                : b8:ad:ca:fe:00:06
~> Switch port interface      : tap6, access mode
~> IPv6 LL address            : fe80::baad:caff:fefe:6%vlan440
hosting started!

Les deux machines virtuelles sont maintenant disponibles pour la suite des manipulations.