Configurez Spanning-Tree sur Cisco

Chez Cisco, SPANNING-TREE est exécuté par VLAN. On appelle cela PER VLAN SPANNING-TREE ou PVST+. Le plus correspond à la deuxième version de PVST, qui utilise 802.1Q pour l’encapsulation de VLAN, contrairement à la première version qui utilisait ISL, protocole propriétaire Cisco.

Dans l’exemple suivant, Spanning-Tree est exécuté pour les VLAN 88 et 91 sur SW1 et SW3, mais uniquement pour le VLAN 91 sur SW2 :

Trois commutateurs en triangle. SW1 et SW3 exécutent Spanning-Tree pour les VLAN 88 et 91, tandis que SW2 ne l’exécute que pour le VLAN 91. Les zones VLAN sont colorées en vert et bleu.
Spanning-Tree est exécuté pour les VLAN 88 et 91 sur SW1 et SW3

Il faut bien faire la différence entre la topologie physique et la topologie logique : Un switch peut être le ROOT BRIDGE pour le VLAN 88 mais ne pas l’être pour le VLAN 91. Dans ce cas, les ports ne fonctionnent pas de la même façon en fonction des VLAN. Un port désigné dans le VLAN 88 peut être bloqué dans le VLAN 91.

Pour expliquer ce principe, regardez les topologies ci-dessous :

Deux topologies : à gauche, SW1 est root pour le VLAN 88 et SW3 pour le VLAN 91 ; à droite, SW1 est root pour les VLAN 88 et 91, unifiant les rôles des ports sur tous les VLAN.
À gauche, les ROOT BRIDGE sont différents, les ports auront donc des rôles différents en fonction des VLAN. À droite, SW1 est ROOT BRIDGE pour tous les VLANS. Les ports auront donc ici le même rôle pour tous les VLAN.

L’avantage d’avoir un ROOT BRIDGE différent par VLAN ?

Répartir la charge sur les liens pour chaque VLAN, et donc optimiser l’utilisation des ressources ; )

Voici le résultat de la commande “show spanning-tree vlan 88” qui permet d’afficher le fonctionnement de Spanning-Tree par VLAN :

VLAN0088
     Spanning tree enabled protocol ieee

     Root ID    Priority    32856
                Address     0006.2A09.4593
                This bridge is the root
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

     Bridge ID  Priority    32856 (priority 32768 sys-id-ext 88)
                Address     0006.2A09.4593
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr    Type
Gi0/1       Desg    Fwd     4       128.25      P2p
Gi0/2       Desg    Fwd     4       128.26      P2p

Dans cette capture de SW1, vous pouvez voir deux blocs d’informations :  Un bloc ROOT ID et un BLOC BRIDGE ID. Le BLOC ROOT ID contient les informations qui concernent le ROOT BRIDGE pour ce VLAN, en l'occurrence nous sommes ici sur le ROOT BRIDGE car il est indiqué : “This bridge is the root”.

On retrouve ensuite :

  • Hello Time 2 sec : correspond à l’envoi de Hello BPDU toutes les deux secondes.

  • Max Age 20 sec : correspond au délai de non réception de réponses aux HELLO BPDU envoyés à un switch avant de le considérer comme tombé.

  • Forward Delay 15 sec : correspond au délai de l’état listening et au délai de l’état learning, 15 secondes par état.

Dans la partie Bridge ID, on trouve (priority 32768 sys-id-ext 88), ce qui correspond à la priorité du switch, ici par défaut de 32768 et l’ID de VLAN, ce qui donne une priorité de 32856.

Enfin, pour les interfaces, on trouve différentes informations :

  • Role : Desg Correspond à un port désigné, qui émet et envoie des trames.

  • Sts : correspond à l’état du port, ici FWD pour FORWARDING.

  • Cost : correspond au coût, ici 4 car c’est un lien Gigabit Ethernet.

  • Prio : correspond a la priorité du port, ici 128 par défaut, modifiable de 0 à 240, en allant de 16 en 16, plus cette valeur est basse plus elle sera préférée.

  • Nbr : correspond au numéro de port, permet de départager deux interfaces en cas de priorité identique, le port avec le numéro le plus bas l’emporte.

Que se passe t’il en cas de changement de topologie, comment Spanning-tree va réagir ?

Si un changement de topologie se produit, par exemple un port tombe, le switch qui détecte ce changement va envoyer un TCN BPDU ou TOPOLOGY CHANGE NOTIFICATION BPDU au ROOT BRIDGE qui va ensuite envoyer des TC BPDU aux autres switches.

Quand un switch non root reçoit un BPDU TC du ROOT BRIDGE, le délai d’expiration des entrées de la table MAC passe de 300 secondes à 15 secondes, ce qui permet d’épurer plus rapidement les anciennes adresses MAC.

Le TC est propagé pendant deux fois le temps de FORWARD DELAY (15 secondes), soit 30 secondes pour garantir que tous les switches réagissent.

Configurez le PVST+

Voici un exemple de configuration du protocole PVST+ : 

 

Topologie en triangle avec trois commutateurs : S1 est root pour le VLAN 10, S2 pour le VLAN 20, et S3 pour le VLAN 30. Chaque VLAN a un root bridge distinct.
La topologie PVST+

S1 sera le ROOT BRIDGE du VLAN 10, S2 sera le ROOT BRIDGE du VLAN 20 et S3 sera le ROOT BRIDGE du VLAN 30. Il faut avant de configurer le protocole Spanning-Tree pour chaque VLAN, créer les VLAN et configurer les liens entre les switches en TRUNK 802.1Q :

S1(config)#vlan 10
S1(config-vlan)#name vlan10
S1(config)#vlan 20
S1(config-vlan)#name vlan20
S1(config)#vlan 30
S1(config-vlan)#name vlan30
S1(config)#interface range gig 0/1-2
S1(config-if-range)#switchport mode trunk

S2(config)#vlan 10
S2(config-vlan)#name vlan10
S2(config)#vlan 20
S2(config-vlan)#name vlan20
S2(config)#vlan 30
S2(config-vlan)#name vlan30
S2(config)#interface range gig 0/1-2
S2(config-if-range)#switchport mode trunk

S3(config)#vlan 10
S3(config-vlan)#name vlan10
S3(config)#vlan 20
S3(config-vlan)#name vlan20
S3(config)#vlan 30
S3(config-vlan)#name vlan30
S3(config)#interface range gig 0/1-2
S3(config-if-range)#switchport mode trunk

Ensuite, il existe deux possibilités pour configurer un ROOT BRIDGE :

  • La commande priority, qui fonctionne à partir de 0 jusqu’à 61440, permet de définir le ROOT BRIDGE en jouant directement sur la valeur de priorité, la plus basse étant préférée.

  • La commande root primary, qui permet de définir le ROOT BRIDGE en laissant Spanning-Tree calculer une valeur plus basse automatiquement.

On peut également ajouter un “BACKUP ROOT BRIDGE”, qui deviendra ROOT BRIDGE en cas de panne du ROOT BRIDGE actuel, il faut pour cela :

  • Soit utiliser la commande priority pour configurer une priorité plus faible sur le BACKUP ROOT BRIDGE que la priorité par défaut (32768) mais supérieure à celle du ROOT BRIDGE

  • Soit utiliser la commande root secondary, qui va se charger de ce calcul.

Configuration du Switch S1 avec la commande priority :

S1(config)#spanning-tree vlan 10 priority 0

Même chose sur S2 pour le VLAN 20 :

S2(config)#spanning-tree vlan 20 priority 0

Le switch S3 est configuré avec la commande root primary :

S3(config)#spanning-tree vlan 30 root primary

 La vérification se fait grâce à la commande “show spanning-tree vlan X” ou “X” représente le numéro de VLAN.

 S1 est bien le ROOT BRIDGE pour le VLAN 10 :

S1#show spanning-tree vlan 10
VLAN0010
Spanning tree enabled protocol ieee
Root ID   Priority   10
          Address    0001.9748.510C
          This bridge is the root
          Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

S2 est bien le ROOT BRIDGE pour le VLAN 20 :

S2#show spanning-tree vlan 20
VLAN0020
Spanning tree enabled protocol ieee
Root ID Priority    20
        Address     0030.F2C4.1E2C
        This bridge is the root
        Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

S3 est bien le ROOT BRIDGE pour le VLAN 30 :

S3#show spanning-tree vlan 30
VLAN0030
Spanning tree enabled protocol ieee
Root ID Priority    24606
        Address     00D0.BCCA.D83A
        This bridge is the root
        Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

S1 va maintenant être configuré en tant que BACKUP ROOT BRIDGE pour le VLAN 20 et le VLAN 30 : 

S1(config)#spanning-tree vlan 20 priority 4096
S1(config)#spanning-tree vlan 30 root secondary

Si S2 tombe, S1 devient ROOT BRIDGE pour le VLAN 20 :

S1#show spanning-tree vlan 20
VLAN0020
Spanning tree enabled protocol ieee
Root ID Priority    4116
        Address     0001.9748.510C
        This bridge is the root
        Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

Même scénario si S3 tombe :

S1#show spanning-tree vlan 30
VLAN0020
Spanning tree enabled protocol ieee
Root ID Priority    28702
        Address     0001.9748.510C
        This bridge is the root
        Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

On peut également modifier le coût d’un port. Regardons cela ensemble.

Les commutateurs S4 et S5 sont reliés par deux liens parallèles utilisant les ports GigabitEthernet 0/1 et 0/2 de chaque côté.
S4 et S5 sont connectés par deux liens, sur les ports GigabitEthernet 0/1 et 0/2

S4 et S5 sont connectés par deux liens, sur les ports GigabitEthernet 0/1 et 0/2. Le port GigabitEthernet 0/2 de S4 est bloqué pour le VLAN 1 :

S4#show spanning-tree
VLAN0001
    Spanning tree enabled protocol ieee

    Root ID     Priority    32769
                Address     0006.2A08.9854
                Cost        4
                Port        25 (GigabitEthernet0/1)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32769 (priority 32768 sys-id-ext 1)
                Address     0010.1131.8457
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr   Type
Gi0/1       Root    Fwd     4       128.25     P2p
Gi0/2       Altn    BLK     4       128.26     P2p

on modifie la priorité du port pour le VLAN 1 sur les deux switches :

S4(config)#int gig 0/2
S4(config-if)#spanning-tree vlan 1 port-priority 0

S5(config)#int gig 0/2
S5(config-if)#spanning-tree vlan 1 port-priority 0

c’est désormais le port GigabitEthernet 0/2 qui est actif :

S4#show spanning-tree
VLAN0001
    Spanning tree enabled protocol ieee

    Root ID     Priority    32769
                Address     0006.2A08.9854
                Cost        4
                Port        26 (GigabitEthernet0/2)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32769 (priority 32768 sys-id-ext 1)
                Address     0010.1131.8457
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr    Type
Gi0/1       Altn    BLK     4       128.25      P2p
Gi0/2       Root    FWD     4       0.26        P2p

Attention, ce changement n’affecte que le VLAN 1, VLAN pour lequel la priorité du port a été modifiée, si on observe le fonctionnement de Spanning-Tree pour le VLAN 2, c’est différent :

S4#show spanning-tree vlan 2
VLAN0002
    Spanning tree enabled protocol ieee

    Root ID     Priority    32770
                Address     0006.2A08.9854
                Cost        4
                Port        25 (GigabitEthernet0/1)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32770 (priority 32768 sys-id-ext 2)
                Address     0010.1131.8457
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr    Type
Gi0/1       Root    Fwd     4       128.25      P2p
Gi0/2       Altn    BLK     4       128.26      P2p

Si on souhaite le faire pour plusieurs VLAN, il faut utiliser la commande suivante :

S4(config)#int gig 0/2
S4(config-if)#spanning-tree vlan 1-2 port-priority 0

S5(config)#int gig 0/2
S5(config-if)#spanning-tree vlan 1-2 port-priority 0

Cette fois, le port GigabitEthernet 0/2 dispose également d’une priorité plus basse que le port GigabitEthernet 0/1 pour le VLAN 2 :

S4#show spanning-tree vlan 2
VLAN0002
    Spanning tree enabled protocol ieee

    Root ID     Priority    32770
                Address     0006.2A08.9854
                Cost        4
                Port        26 (GigabitEthernet0/2)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32770 (priority 32768 sys-id-ext 2)
                Address     0010.1131.8457
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr     Type
Gi0/1       Altn    BLK     4       128.25       P2p
Gi0/2       Root    FWD     4       0.26         P2p

Il y a également un autre point important à évoquer : la possibilité pour un administrateur de définir lui-même le chemin vers le ROOT BRIDGE :

Topologie en triangle avec S1 root pour le VLAN 10. Sur S3, le port GigabitEthernet 0/2 est défini comme port racine (R) pour atteindre le root bridge.
Sur S3, le port ROOT pour atteindre le ROOT BRIDGE est le port GigabitEthernet 0/2

Voici comment le faire :

S3#show spanning-tree vlan 10
VLAN0010
    Spanning tree enabled protocol ieee

    Root ID     Priority    10
                Address     0001.9748.510C
                Cost        4
                Port        26 (GigabitEthernet0/2)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32778 (priority 32768 sys-id-ext 10)
                Address     00D0.BCCA.D83A
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr     Type
Gi0/1       Altn    BLK     4       128.25       P2p
Gi0/2       Root    FWD     4       128.26       P2p

Si l’administrateur, pour une raison X ou Y, décide que le chemin pour atteindre le ROOT BRIDGE passe par S2 pour le VLAN 10, il faudra configurer les switches comme ceci :

S3(config)#int gig 0/1
S3(config-if)#spanning-tree vlan 10 cost 1

S2(config)#int range gig 0/1-2
S2(config-if-range)#spanning-tree vlan 10 cost 1

S1(config)#int gig 0/1
S1(config-if)#spanning-tree vlan 10 cost 1

Avec cette modification, le coût du chemin en passant par S2 pour atteindre le ROOT BRIDGE du vlan 10 (S1) devient 2, donc inférieur à 4, valeur correspondant par défaut au coût d’un lien Gigabit Ethernet par défaut :

S3#show spanning-tree vlan 10
VLAN0010
    Spanning tree enabled protocol ieee

    Root ID     Priority    10
                Address     0001.9748.510C
                Cost        2
                Port        25 (GigabitEthernet0/1)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32778 (priority 32768 sys-id-ext 10)
                Address     00D0.BCCA.D83A
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr     Type
Gi0/1       Root    FWD     1       128.25       P2p
Gi0/2       Altn    BLK     4       128.26       P2p

Notez encore une fois que cette modification n’affecte que le VLAN 10, le VLAN 20 n’est pas concerné par cette configuration, le coût pour atteindre le ROOT BRIDGE du VLAN 20 (S2) reste de 4 :

S3#show spanning-tree vlan 20
VLAN0020
    Spanning tree enabled protocol ieee

    Root ID     Priority    20
                Address     0030.F2C4.1E2C
                Cost        4
                Port        25 (GigabitEthernet0/1)
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec

    Bridge ID   Priority    32788 (priority 32768 sys-id-ext 20)
                Address     00D0.BCCA.D83A
                Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
                Aging Time 20

Interface   Role    Sts     Cost    Prio.Nbr     Type
Gi0/1       Root    FWD     4       128.25       P2p
Gi0/2       Altn    BLK     4       128.26       P2p

Découvrez le Rapid PVST+

L’IEEE a défini ensuite le Rapid Spanning-Tree, norme 802.1W, qui apporte des améliorations majeures au protocole Spanning-Tree classique, notamment une réduction drastique du temps de convergence. En environnement Cisco, on parle de RPVST+. Première différence, les états :

Tableau comparatif des états STP (802.1D) et RSTP (802.1W), avec indications sur l’activité du port et l’apprentissage des adresses MAC.
Les états de Rapid Spanning Tree

L’état LISTENING n’existe plus en RAPID SPANNING-TREE, on retrouve donc trois états en RAPID SPANNING-TREE : DISCARDING, LEARNING, FORWARDING.

Le principe d’élection du ROOT BRIDGE ne change pas, c’est toujours la priorité la plus basse qui l’emporte, ou l’adresse MAC la plus basse si la priorité n’a pas été modifiée.

La force du Rapid Spanning-Tree réside dans l’utilisation d’un mécanisme de négociation qui ne fonctionne pas du tout de la même façon qu’en Spanning-Tree classique, en effet, un mécanisme de “proposal / agreement” est utilisé entre les switches pour établir un nouveau chemin sans attendre l’expiration des timers Spanning-Tree classiques (Max Age 20 secondes + Listening 15 secondes + Learning 15 secondes).

Si le vlan natif est modifié sur les liens TRUNK, il est important que le VLAN natif soit identique à chaque extrémité des liens trunk, car le vlan natif va servir de canal de compatibilité entre les BPDU PVST+ et les BPDU RPVST+. La capture suivante indique qu’une trame Spanning-Tree est de type RAPID Spanning-Tree :

Capture d’écran d’une trame Spanning Tree indiquant l’identifiant de version du protocole (2), correspondant à Rapid Spanning Tree, et un type BPDU spécifique à RSTP/MSTP.
Protocol Version Identifier indique le type RAPID Spanning-Tree

Voyons maintenant comment fonctionne le mécanisme “proposal / agreement”.

Etape 1 : élection du ROOT BRIDGE

Deux commutateurs reliés. Celui de gauche, élu ROOT, envoie une trame avec le bit Proposal vers l'autre commutateur, illustré par une flèche verte.
ROOT envoie un BIT Proposal

Comment en PVST+, RPVST+ commence par élire le ROOT BRIDGE, en se basant sur les critères habituels (Priorité la plus basse ou adresse mac la plus basse si priorité identique sur tous les switches). Une fois le ROOT BRIDGE élu, il va envoyer un ‘BIT Proposal’ sur tous ses ports.

Etape 2 : Réception du Bit Proposal par les switches NON ROOT

Le switch ROOT envoie une trame Proposal vers un switch non-root, qui répond aussi par une Proposal. Son port est marqué comme racine (R), et les ports vers les autres switches sont en attente (A).
ROOT envoie un AGREEMENT

Un switch NON ROOT reçoit un BPDU qui contient le BIT PROPOSAL sur son port ROOT, puis il bloque tous ses autres ports (sauf les ports connectés aux terminaux, nommés ports EDGE) afin d’éviter toute boucle. Il accepte enfin le PROPOSAL en envoyant un bit AGREEMENT vers le ROOT BRIDGE ou le switch en amont s’il n’est pas directement connecté au ROOT BRIDGE.

Etape 3 : Transition rapide

Le switch en amont qui reçoit le BPDU AGREEMENT passe le port sur lequel il l’a reçu à l’état FORWARDING, sans attendre les délais LISTENING / LEARNING utilisés en PVST+ basé sur la norme 802.1D. Le processus se répète en cascade sur tous les switches jusqu’à synchronisation complète. L’avantage ? une synchronisation qui passe d’environ 50 secondes à environ… 6 secondes !

En PVST+, basé sur 802.1D, si un switch détectait un changement de topologie, il envoyait une notification au ROOT BRIDGE en unicast et le ROOT BRIDGE informait les autres switches en MULTICAST à l’adresse 01:00:0C:CC:CC:CD (adresse MAC utilisée par Cisco au lieu de l’adresse MAC 01:80:C2:00:00:00 utilisée par 802.1D).

En RPVST+, basé sur 802.1W, si un switch détecte un changement de topologie, il peut désormais avertir tous les autres switches en MULTICAST à l’adresse 01:00:0C:CC:CC:CD.

 

Lorsque SW6 détecte un changement de topologie, il envoie un message TC (Topology Change) multicast. Ce message se propage à travers tous les switches jusqu’au ROOT.
Le switch peut avertir tous les autres switches en MULTICAST

Pour activer RAPID SPANNING-TREE, rien de plus simple :

S1(config)#spanning-tree mode rapid-pvst
Découvrez les fonctionnalités avancées Spanning-Tree

On peut également optimiser encore le protocole Spanning-Tree, par exemple, il est possible de rendre un port d’accès, qui accueille par exemple un équipement terminal (PC, imprimante…) immédiatement opérationnel, avec la commande “spanning-tree portfast”.

Il est important d’utiliser spanning-tree portfast avec précaution, car le port va passer directement à l’état Forwarding, et une mauvaise utilisation pourrait causer une boucle, l’IOS va de plus émettre un warning sur cette utilisation :

S1(config-if)#spanning-tree portfast
%Warning : portfast should only be enabled on ports connected to a single
host. Connecting hubs, concentrators, switches, bridges, etc… to this
interface when protfast is enabled, can cause temporary bridging loops.
Use with CAUTION

%Portfast has been configured on Ethernet0/0 but will only have effect when the interface is in non-trunking mode.

Pour éviter tout problème, on peut activer BPDU GUARD, qui va désactiver le port si un BPDU arrive sur un port configuré avec PORTFAST :

S1(config-if)#spanning-tree bpduguard enable

On peut également ensuite activer ERRDISABLE RECOVERY qui va, en cas de port à l’état d’erreur suite à une détection de BPDU par BPDU GUARD, essayer de réactiver le port automatiquement toutes les 30 secondes si ce dernier ne se trouve plus en situation d’erreur. Cette configuration permet d’éviter à l’administrateur de désactiver le port administrativement, puis de le réactiver :

S1(config)#errdisable recovery cause bpduguard
S1(config)#errdisable recovery interval 30

Si on connecte un switch qui émet un BPDU sur ce port, le résultat est immédiat :

*Oct 30 12:07:02.162: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU from bridge aabb.cc00.0200 on port Et0/0 with BPDU Guard enabled. Disabling port.
S1#
*Oct 30 12:07:02.162: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/0, putting Et0/0 in err-disable state
S1#
*Oct 30 12:07:03.163: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down
S1#
*Oct 30 12:07:04.162: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down

Au bout de quelques instants, le switch essaye de réactiver le port, si ce dernier reçoit toujours des BPDU, il reste en erreur : 

*Oct 30 12:07:32.162: %PM-4-ERR_RECOVER: Attempting to recover from bpduguard err-disable state on Et0/0
*Oct 30 12:07:32.166: %SPANTREE-2-BLOCK_BPDUGUARD: Received BPDU from bridge aabb.cc00.0200 on port Et0/0 with BPDU Guard enabled. Disabling port.
S1#
*Oct 30 12:07:32.166: %PM-4-ERR_DISABLE: bpduguard error detected on Et0/0, putting Et0/0 in err-disable state

Une fois que le port n’est plus connecté à un autre switch, mais par exemple à un PC, il se réactive :

*Oct 30 12:09:02.142: %PM-4-ERR_RECOVER: Attempting to recover from bpduguard err-disable state on Et0/0
S1#
*Oct 30 12:09:04.142: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to up
S1#
*Oct 30 12:09:05.142: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to up

Après BPDUGUARD, une autre fonctionnalité intéressante, ROOT GUARD, permet de protéger le ROOT BRIDGE contre un potentiel ROOT BRIDGE indésirable, soit par erreur ou en cas d’attaque :

S1(config)#int ethernet0/0
S1(config-if)#spanning-tree guard root

Si un switch avec une priorité plus basse se connecte sur ce port, il sera rejeté :

S1#
*Oct 30 13:43:11.243: %SPANTREE-2-ROOTGUARD_BLOCK: Received a superior BPDU from bridge aabb.cc00.0200. Root guard blocking port Ethernet0/0 on VLAN0001

En résumé

  • PVST+ (Per VLAN Spanning Tree Plus) exécute une instance Spanning-Tree par VLAN, permettant d’adapter la topologie logique à chaque VLAN indépendamment sur une même infrastructure physique.

  • Un switch peut être Root Bridge pour un VLAN et non pour un autre, ce qui permet de répartir intelligemment la charge réseau selon les flux (ex. VLAN VoIP sur un lien, VLAN utilisateur sur un autre).

  • En cas de changement de topologie, Spanning-Tree déclenche une notification de changement (TCN) pour forcer un nettoyage rapide des tables MAC et éviter les erreurs de routage.

  • Le protocole Rapid PVST+ (basé sur 802.1W) remplace les étapes lentes de PVST+ (802.1D) par un mécanisme de proposal/agreement, ce qui réduit drastiquement le temps de convergence du réseau en cas de panne.

  • Des fonctionnalités comme PortFast, BPDU Guard ou Root Guard permettent de sécuriser et accélérer le démarrage des ports d’accès, tout en protégeant l’architecture Spanning-Tree contre les erreurs ou les configurations malveillantes.

Vous savez maintenant comment configurer Spanning-Tree sur Cisco. Dans le prochain chapitre, découvrez comment fonctionne le protocole HSRP. C'est parti ! 

Ever considered an OpenClassrooms diploma?
  • Up to 100% of your training program funded
  • Flexible start date
  • Career-focused projects
  • Individual mentoring
Find the training program and funding option that suits you best