2. La topologie physique de l'interconnexion réseau

Une migration réseau peut être motivée par plusieurs facteurs : évolution ou remplacement de matériel, répartition de la charge entre processeurs de route, etc. Dans le cas présent, c'est le fait d'avoir atteint les limites de la capacité de traitement d'un routeur Cisco™ ISR 2851 qui a motivé la migration du réseau correspondant au périmètre des services Internet hébergés vers un second routeur.

Dans cette section, on commence par mettre en place une topologie de câblage à l'aide du gestionnaire dynagen. Dans les sections suivantes, on implante une première topologie logique dans laquelle tous les flux réseaux sont concentrés dans un seul routeur et on étudie les étapes qui permettent de migrer le réseau des services Internet vers un nouveau routeur.

Même s'il n'est pas toujours évident d'obtenir une représentation satisfaisante d'une interconnexion réseau, ce n'est pas une raison pour faire n'importe quoi. La problématique dans le cas présent vient du fait que toutes les interfaces sont raccordées au même commutateur : vde.

Une représentation telle que celle donnée ci-dessus, qui ne fait apparaître qu'un commutateur unique est quasiment illisible. Que dire de l'identification des VLANs ? Même en employant différentes couleurs on aurait beaucoup de mal à identifier les différents domaines de diffusion. C'est la raison pour laquelle je préfère utiliser autant de «sous-commutateurs» que de VLANs.

Si l'on accepte le fait que le commutateur est découpé en cinq sous-ensembles correspondant chacun à un réseau local (ou un VLAN), on gagne en lisibilité. Pour la partie câblage proprement dite on peut alors se contenter d'un tableau de correspondance.

Tableau 1. Brassage des interfaces sur le commutateur vde

numéro de port interface hôte
1 tap0 Système hôte
2 fa0/0 Routeur Campus
3 fa0/1 Routeur Campus
4 fa0/0 Routeur Parc
5 fa0/1 Routeur Parc
6 fa1/0 Routeur Parc
7 fa0/0 Routeur DMZ
8 fa0/1 Routeur DMZ
9 fa1/0 Routeur DMZ
10 eth0 Client (machine virtuelle KVM)
11 eth0 Serveur (machine virtuelle KVM)

Une fois ce brassage établi, il ne varie plus tout au long des différentes étapes et évolutions de la topologie logique. On passe d'une topologie logique à l'autre par le biais des affectations de VLANs.

Le tableau ci-dessus est la traduction des éléments de configuration en place aussi bien sur le système hôte que sur les systèmes émulés ou virtualisés.

2.1. Le système hôte

Sur un système Debian GNU/Linux, le paquet vde2 fournit les scripts nécessaires à la configuration d'une interface de type tap au lancement du commutateur. Voici un extrait du fichier /etc/network/interfaces.

iface tap0 inet static
    address 192.0.2.1/27
    vde2-switch -

Lors de l'activation de l'interface tap0, le commutateur virtuel est lancé et l'interface est directement raccordée sur le port numéro 1.

$ vdeterm /var/run/vde2/tap0.mgmt
VDE switch V.2.2.3
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde$ port/print
0000 DATA END WITH '.'
Port 0001 untagged_vlan=0000 ACTIVE - Unnamed Allocatable
 Current User: NONE Access Control: (User: NONE - Group: NONE)
 IN:  pkts         81          bytes                25726
 OUT: pkts          0          bytes                    0
  -- endpoint ID 0007 module tuntap      : tap0
.
1000 Success

2.2. L'émulation des routeurs Cisco

Le gestionnaire dynagen prend en charge l'interconnexion des interfaces des routeurs émulés via son fichier de configuration.

[localhost]

ghostios = true
sparsemem = true

[[7200]]

[[router Campus]]
        model = 2621XM
        ram = 192
        image = /home/phil/ios.images/c2600-advipservicesk9-mz.124-15.T14.image
        f0/0 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/2
        f0/1 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/3

[[router Parc]]
        model = 2621XM
        ram = 192
        slot1 = NM-1FE-TX
        image = /home/phil/ios.images/c2600-advipservicesk9-mz.124-15.T14.image
        f0/0 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/4
        f0/1 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/5
        f1/0 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/6

[[router DMZ]]
        model = 2621XM
        ram = 192
        slot1 = NM-1FE-TX
        image = /home/phil/ios.images/c2600-advipservicesk9-mz.124-15.T14.image
        f0/0 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/7
        f0/1 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/8
        f1/0 = NIO_vde:/var/run/vde2/tap0.ctl/ctl:/var/run/vde2/tap0.ctl/9

Les ports du commutateur vde sont raccordés séquentiellement aux interfaces des routeurs dans l'ordre défini dans le fichier de configuration ci-dessus.

2.3. Les machines virtuelles

Dans le cas des machines virtuelles, les affectations se font lors de l'appel au script d'initialisation startup.sh proposé dans l'article Virtualisation système et enseignement.

Ici, les machines virtuelles sont lancées à l'aide des deux instructions suivantes.

../scripts/startup.sh client.raw 512 10 
../scripts/startup.sh serveur.raw 512 11

2.4. L'initialisation de la maquette complète

Pour synthétiser tous ces éléments de configuration, on utilise un script baptisé migration.sh qui englobe les différentes initialisations.

#!/bin/bash

../scripts/startup.sh client.raw 512 10 
../scripts/startup.sh serveur.raw 512 11 

if [[ -z "`pidof dynamips | tr -d '\n'`" ]]
then
        echo "Launching dynamips"
        dynamips -H 7200 & >/dev/null
        sleep 5
        echo '.'
fi

dynagen lab.net

echo "The End"

exit 0

Une fois que tous les systèmes sont actifs, on peut passer à la création de la base de données des VLANs via la console d'administration du commutateur vde.

$ vdeterm /var/run/vde2/tap0.mgmt
VDE switch V.2.2.3
(C) Virtual Square Team (coord. R. Davoli) 2005,2006,2007 - GPLv2

vde$ vlan/create 1
1000 Success

vde$ vlan/create 2
1000 Success

vde$ vlan/create 3
1000 Success

vde$ vlan/create 4
1000 Success

vde$ vlan/create 5
1000 Success

vde$ vlan/print
0000 DATA END WITH '.'
VLAN 0000
 -- Port 0001 tagged=0 active=1 status=Forwarding
 -- Port 0002 tagged=0 active=1 status=Forwarding
 -- Port 0003 tagged=0 active=1 status=Forwarding
 -- Port 0004 tagged=0 active=1 status=Forwarding
 -- Port 0005 tagged=0 active=1 status=Forwarding
 -- Port 0006 tagged=0 active=1 status=Forwarding
 -- Port 0007 tagged=0 active=1 status=Forwarding
 -- Port 0008 tagged=0 active=1 status=Forwarding
 -- Port 0009 tagged=0 active=1 status=Forwarding
 -- Port 0010 tagged=0 active=1 status=Forwarding
 -- Port 0011 tagged=0 active=1 status=Forwarding
VLAN 0001
VLAN 0002
VLAN 0003
VLAN 0004
VLAN 0005
.
1000 Success

La copie d'écran ci-dessus montre que tous les ports actifs appartiennent au même VLAN (le numéro 0) et que cinq autres VLANs ont été créés.

On peut maintenant considérer que la topologie physique est en place et passer à la mise en œuvre de la première topologie logique.