Configuration Spanning Tree

Suite à l’article sur la théorie de Spanning Tree, voyons comment ce protocole se configure.
Nous mettrons en pratique les notions précédemment vues, et nous chercherons à analyser le comportement de Spanning Tree.
A l’issue de cet article, vous serez en mesure de mettre en place Spanning Tree dans un réseau, et ce en comprennent son fonctionnement.

1) La topologie

Voici la topologie que nous utiliserons :
Le but sera de configurer Spanning Tree pour qu’il désactive les liens redondants.
Nous verrons quel est le lien désactivé, puis nous influencerons l’élection du Root Bridge.
Nous verrons aussi les timers de Spanning Tree, le Peer Vlan Spanning Tree, etc…

2) Première approche

Vous vous demandez certainement comment activer Spanning Tree.
Et bien sachez qu’il est déjà activé, et déjà en action.
En utilisant la commande « Show Running Config », nous pouvons voir quelle est la version utilisée :
Spanning-Tree Mode PVST
La version activée actuellement est la PVST.
Pour rappel, cette version fonctionne comme le STP classique, sauf qu’il peut y avoir un Root Bridge par VLAN.
Dans les exemples que je donnerai, il sera parfois fait mention du VLAN 99.
Il s’agit du VLAN que j’utilise pour accéder à distance à mes switchs. Il n’est pas nécessaire de s’en soucier.
En dehors de cela, nous n’avons que le VLAN 1 (pour le moment).
Voyons donc qui est le Root Bridge sur la topologie précédente.
Les critères de choix du Root Bridge sont les suivants :
  • Priorité la plus basse
  • Adresse MAC la plus basse
La commande « Show Spanning Tree » permet de voir l’état Spanning Tree :
Les informations affichées sont celles du VLAN 1
Nous retrouvons deux groupes d’information.
La partie Root ID, concerne le Root Bridge (ici il s’agit de S2 lui-même)
Quand le Switch en question est le Root Bridge, nous pouvons voir le message « This bridge is the root ».
La deuxième partie, « Bridge ID » concerne le switch en lui-même.
Forcément, pour S2 nous y retrouvons les mêmes informations.

3) Etats des ports

Dans la partie interface, il est indiqué le rôle des ports, et leur état.
Ici, comme S2 est le Root Bridge, les ports sont tous en Designated / Forwarding.
Voyons maintenant le résultat de la même commande sur S1 :
La partie Root ID fait bien référence à S2.
Nous pouvons voir que le port Fa 0/1 a le rôle Root.
Le port Fa 0/2 a été bloqué.

4) Choix du meilleur lien / désactivation des liens redondants

Nous parlions, dans le précédent article, du choix des liens à désactiver.
Ici, tous les liens sont en 100 Mb/s.
Le coût est effectivement de 19 :
Le choix du meilleur chemin sera donc relativement simple.
Mais pourquoi S1 a-t’il choisit le lien vers S4 comme étant le meilleur chemin ?
En effet, S1 a 2 chemins égaux à disposition.
Dans l’article précédent, nous avions dit qu’en cas d’égalité, c’est le voisin avec le plus petit BID qui gagne.
Comparons S3 et S4 :

Les deux switchs ont la même priorité.
En revanche, S4 a une adresse MAC plus élevée.
S3 a donc un BID plus petit.
Ce qui explique pourquoi S1 a coupé le port Fa 0/2.

5) Les Timers STP

Voyons en fonction les Timers STP.
Pour étudier les Timers, nous allons couper le port Fa 0/2 de S2, de manière à ce que S1 réactive son pot Fa 0/2.
Pour cela, nous commençons par désactiver le port.
Switch-2(config-if)#interface fastEthernet 0/2
Switch-2(config-if)#shutdown
Rapidement, nous passons sur S1, et nous affichons l’état Spanning Tree :
Nous constatons que le port reste en mode Blocking pendant les 20 secondes dont nous avions parlé.
Ensuite, le port passe en mode Listening pendant 15 secondes (il écoute les BPDU).
Après quoi il passe en mode Learning (pendant 15 secondes) :
Enfin, le port arrive en mode Forwarding :

6) Portfast

La première solution pour réduire les timers, est d’utiliser le Portfast sur certains ports.
Comme dit dans l’article précédent, cela aura pour effet de désactiver Spanning Tree sur le port en question.
Cette fonctionnalité n’est à activer que sur les ports connectés à des PC.
Entre les switchs, Porfast est proscrit, pour des raisons évidentes.
La configuration est très simple :
Switch-1(config)#interface fastEthernet 0/3
Switch-1(config-if)#spanning-tree portfast
Afin de prévenir les erreurs, le message suivant est affiché :

7) Rapid-PVST

Afin de rendre le processus Spanning Tree plus rapide, nous allons mettre en place le protocole Rapid PVST.
Encore une fois, pour plus de détails, je vous renvoie vers l’article traitant de la théorie de Spanning Tree.
Voici comment changer le mode Spanning Tree :
Spanning Tree Mode
Vous aurez alors le choix entre plusieurs modes.
Ici nous choisirons Rapid-PVST. Il fonctionne comme PVST, mais il est plus rapide.
Attention, lors du changement de protocole, cela peut causer des boucles. En effet, selon le protocole choisi, les switchs ne pourront plus discuter entre eux. Rapid-PVST, RSTP et MSTP sont compatibles.
Switch-1(config)#spanning-tree mode rapid-pvst
La manipulation est à faire sur tous les switchs.
Le résultat ressemble beaucoup à ce que nous avions en PVST :
Maintenant la question qui se pose : la bascule se fait-elle plus vite ?
Refaisons la manipulation précédente.
Nous désactivons le port Fa 0/2 de S2, de manière à forcer le port FA 0/2 de S1 à passer en mode Forwarding.
Voici l’état actuel de S1 :
Procédons à la coupure :
Switch-2(config)#interface fastEthernet 0/2
Switch-2(config-if)#shutdown
Passons rapidement sur S1, et voyons l’état Spanning Tree :
Le changement a déjà été fait !
La bascule se fait si rapidement, qu’il est très difficile de la percevoir.
Néanmoins, d’un point de vu des transmissions réseau, le temps de bascule est tout de même significatif.

8) MSTP – Muliple Spanning Tree Protocol

Le MSTP est l’équivalent de Rapid-PVST mais en version standard.
La configuration est un peu différente.
En voici un aperçu :
Switch-1(config)#spanning-tree mode mst
Il faut ensuite rentrer dans la configuration de MST, et créer des instances.
Une instance peut contenir un ou plusieurs VLAN.
Un switch va ensuite être le Root Bridge pour une instance, et donc potentiellement pour plusieurs VLAN.
Switch-1(config)#spanning-tree mst configuration
Switch-1(config-mst)#instance 1 vlan 1 2 3 4 5
Switch-1(config-mst)#instance 2 vlan 6 7 8 9 10
Si nous le souhaitons, nous pouvons forcer un switch à devenir le Root Bridge :
Switch-1(config)#spanning-tree mst 1 root primary
Libre à vous d’implémenter le protocole MST dans notre topologie, néanmoins, nous resterons sur du Rapid-PVST pour la suite de cet article.

9) Plusieurs instances Spannign Tree

Nous avons dit précédemment qu’en PVST et Rapid-PVST, il est possible d’avoir plusieurs instances Spanning Tree.
Le Root Bridge ne sera alors pas le même pour tous les VLAN.
Nous allons modifier notre topologie pour profiter pleinement de cette fonctionnalité.

PC 1 et PC 3 seront dans le VLAN 10, et PC 2 et PC 4 dans le VLAN 20.
Le but est que S3 soit le Root Bridge du VLAN 10, et S2 le Root Bridge du VLAN 20.
Voici les modifications à apporter :
Switch-1(config)#interface fastEthernet 0/3
Switch-1(config-if)#switchport mode access
Switch-1(config-if)#switchport access vlan 10
Switch-1(config)#interface fastEthernet 0/4
Switch-1(config-if)#switchport mode access
Switch-1(config-if)#switchport access vlan 20
Switch-1(config)#interface range fastEthernet 0/1 - 2
Switch-1(config-if-range)#switchport mode trunk
Switch-2(config)#interface fastEthernet 0/3
Switch-2(config-if)#switchport mode access
Switch-2(config-if)#switchport access vlan 10
Switch-2(config)#interface fastEthernet 0/4
Switch-2(config-if)#switchport mode access
Switch-2(config-if)#switchport access vlan 20
Switch-2(config)#interface range fastEthernet 0/1 - 2
Switch-2(config-if-range)#switchport mode trunk
Switch-3(config)#interface range fastEthernet 0/1 - 2
Switch-3(config-if-range)#switchport mode trunk
Switch-4(config)#interface range fastEthernet 0/1 - 2
Switch-4(config-if-range)#switchport mode trunk
Comme convenu, nous forçons S3 comme Root Bridge pour le VLAN 10 :
Switch-3(config)#spanning-tree vlan 10 root primary
Puis S4 pour le VLAN 20 :
Switch-4(config)#spanning-tree vlan 20 root primary
Voyons le résultat :
Comme prévu, S1 utilise son port Fa 0/1 pour le VLAN 10, et son port FA 0/2 pour le VLAN 20.
Les frames du VLAN 10 transiteront par S3, et celles du VLAN 20 par S4.
La charge sera donc « répartie », la bande passante ne sera pas gaspillée.

10) Autres fonctionnalités

Voyons à présent quelques autres fonctionnalités qui peuvent être utiles en Spanning Tree.

BPDU Guard

En activant le BPDU Guard sur un port, ce dernier va se désactiver (état Err-Disable) s’il reçoit un BPDU.
C’est une fonctionnalité à activer sur les ports faisant face à des PC.
Switch-1(config-if)#interface fastEthernet 0/3
Switch-1(config-if)#spanning-tree bpduguard enable

BPDU Filter

Le BPDU Filter permet de désactiver l’envoie de BPDU sur ce port.
Par contre, si un BPDU est reçu sur ce même port, le port fera à nouveau partie du processus Spanning Tree (Portfast sera aussi désactivé).
Switch-1(config)#interface fastEthernet 0/4
Switch-1(config-if)#spanning-tree bpdufilter enable

Backbone Fast et UplinkFast

Backbone Fast et UplinkFast sont deux fonctionalité (crées par Cisco) qui permettent d’améliorer le temps de convergence de processus Spanning Tree.
La configuration de ces fonctionnalités est inutile en Rapid-PVST, RSTP et MSTP, car elles sont déjà prises en charge.
Reprenons cette topologie pour étudier les deux fonctionnalités précédemment citées :

S3 étant le Root Bridge, le port de Fa 0/2 sera en mode Blocking.
En activant UplinkFast, la convergence sera plus rapide en cas de panne.
Si le switch S3 tombe en panne, S1 va automatiquement activer son port Fa 0/2 car il a gardé en mémoire que c’est un chemin alternatif vers le Root Bridge.
La convergence sera donc plus rapide, car il ne sera pas nécessaire de repasser par les différentes phases d’écoute et d’apprentissage.
Cette fonctionnalité est à activer sur les switchs au niveau Access. Aux niveaux Distribution et Core, cela peut parfois amener à des boucles.
Pour améliorer la sécurité, la priorité du switch est augmentée lors de l’activation d’UplinkFast. De même que le coût des ports.
Voici comment activer UplinkFast :
Switch-5(config)#spanning-tree uplinkfast
Et voici l’évolution de la priorité et du coût :
Avant UplinkFast :
Après :
La priorité a augmenté de 2^14 et le coût du lien, de 3000.
A l’inverse, Backbone Fast permet de détecter des pannes distantes. C’est-à-dire des pannes qui se produisent sur des switchs distants et qui font que nous n’accédons plus au Root Bridge.
A la détection d’une telle panne, le switch passe directement le port concerné en mode Listening, et n’attend pas l’expiration du Max Age Timer (temps après lequel le port passe en Listening si on ne reçoit plus de BPDU du Root Bridge).
Le gain de temps est donc de 20 secondes.
Pour activer Backbone Fast, utiliser la commande suivante sur tous les switchs :
Switch-5(config)#spanning-tree backbonefast
Encore une fois, il n’est pas nécessaire d’activer UplinkFast et BackboneFast en RSTP, Rapid-PVST et MSTP.

11) Storm Control

Sur les switchs Cisco, il existe une fonctionnalité qui permet de limiter les tempêtes de broadcast.
Il est possible de choisir la quantité maximale de broadcast qui peut transiter sur un port.
Il est même possible de désactiver le port en cas d’excès.

Switch-5(config-if)#storm-control broadcast level 20
Dans ce cas-ci, seul 20% de la bande passante du lien peut être utilisée pour transmettre des broadcast.
Si le seuil est dépassé, tout le broadcast sera bloqué, jusqu’à ce que le débit de transmission tombe en dessous de 20%.
Il est possible de faire de même pour le multicast et l’unicast.
Pour désactiver le port en cas d’excès (error-disabled) :
Switch-5(config-if)#storm-control action shutdown
Il est aussi possible de configure deux niveaux :
Switch-5(config-if)#storm-control broadcast level 20 15
Dans ce cas-ci, le trafic de broadcast sera bloqué s’il dépasse 20%, et ne sera autorisé à nouveau que s’il tombe en dessous de 15%.

12) Conclusion

Nous arrivons au terme de cette présentation du protocole Spanning Tree.
Nous avons pu voir la théorie (dans l’article précédent), et la pratique.
La partie pratique aura été l’occasion de configurer Spanning Tree et ces différentes fonctionnalités, mais aussi d’étudier le fonctionnement du protocole.

0 commentaires:

Enregistrer un commentaire