Comprenez comment fonctionne le protocole Spanning-Tree

Dans le monde des réseaux informatiques, les protocoles jouent un rôle essentiel pour assurer une communication efficace. Spanning-Tree est un protocole de couche 2 du modèle OSI qui permet de créer et maintenir une infrastructure de niveau 2 dépourvue de boucles.

Deux PC connectés via deux commutateurs interconnectés par deux liens redondants, illustrant une boucle réseau que le protocole Spanning-Tree permet d'éviter.
Spanning-Tree permet de créer une infrastructure de niveau 2 sans boucles

Sans SPANNING-TREE, si PC1 envoie une requête ARP pour apprendre l’adresse MAC de PC2, cette requête sera envoyée en BROADCAST.

SW1 va transférer cette trame sur tous ses ports, sauf sur le port où est arrivée la trame. SW2 va faire de même et ainsi de suite… Comme les trames ne disposent pas de TTL contrairement aux paquets IP, nous avons… une boucle, et potentiellement un crash du réseau, car aux trames qui bouclent vont s’en ajouter d’autres et ainsi de suite. Grâce au protocole SPANNING-TREE, nous allons pouvoir éviter ça !

Trois commutateurs (SW1, SW2, SW3) forment un triangle et échangent des trames BPDU sur chaque lien, illustrant une topologie réseau.
Trois switches, avec chacun une priorité SPANNING-TREE par défaut de 32768

Quand SPANNING-TREE est activé, les switches vont « discuter » entre eux à ce sujet via des messages BPDU ou BRIDGE PROTOCOL DATA UNIT (BPDU). Ces messages contiennent l’adresse MAC et la priorité.

Les BPDU sont envoyés en Multicast à l’adresse 01:80:C2:00:00:00.

Capture d’écran montrant le détail d’une trame BPDU Spanning Tree, avec adresse multicast de destination, identifiants des bridges, priorités et indicateurs de changement de topologie.
La capture de la trame

Les commutateurs Cisco emploient une adresse MAC différente lorsqu'ils utilisent les protocoles PVST+ ou RPVST+ : 

Capture d’écran montrant une trame Ethernet avec une adresse de destination multicast propre à PVST+ (01:00:0c:cc:cc:cd).
Adresse MAC multicast spécifique utilisée par le protocole PVST+

Ces sujets seront abordés plus en détail dans quelques chapitres.

Le switch qui aura la priorité la plus basse deviendra ROOT BRIDGE. 

Pourquoi élire un ROOT BRIDGE ?

Le ROOT BRIDGE sert de point de référence pour tous les autres switches. Une fois élu, chaque switch de la topologie va calculer le meilleur chemin pour l’atteindre.

Mais si tous les switches ont la même priorité, qui sera le ROOT BRIDGE ???

Ce sera le switch qui dispose de l’adresse MAC dont la valeur est la plus basse : 

Trois commutateurs connectés en triangle échangent des BPDU. SW1, avec l’adresse MAC la plus basse, est désigné comme root. Les ports désignés (D) sont indiqués sur les liens actifs.
L'adresse MAC qui commence avec 0001 a la plus petite valeur

SW-1 dispose d’une adresse MAC dont la valeur commence par 0001, ce qui correspond à la plus petite valeur par rapport à SW-2 et SW-3. Le switch ROOT BRIDGE aura tous ses ports à l’état désigné (D), ce qui veut dire que ces derniers seront toujours actifs en émission et réception.

Les autres switches sont NON ROOT. Les switches NON ROOT disposent d’un port ROOT, c’est-à-dire le port qui dispose du chemin le plus court vers le ROOT BRIDGE. 

Comprenez les coûts

Le chemin le plus court se définit en fonction de la vitesse du lien. Ici ce n’est pas compliqué, tous les liens sont en GIGABIT ETHERNET, le port ROOT sur chaque switch non ROOT sera donc le port qui connecte le switch le plus directement au switch ROOT : 

Trois commutateurs connectés en triangle. SW1 est root, ses ports sont désignés (D). Les ports racines (R) sur SW2 et SW3 pointent vers SW1 via les liens les plus directs. Adresses MAC visibles.
R montre le chemin le plus direct

Plus le lien est rapide, plus le coût est bas. Le chemin qui dispose du coût le plus bas l’emporte.

Le tableau ci-dessous liste les valeurs de coûts Spanning-Tree :

Tableau listant les coûts Spanning-Tree selon la vitesse du lien, de 100 pour 10 Mbps à 1 pour les vitesses supérieures à 10 Gbps.
Les valeurs des coûts

Sur SW3, si on utilise la commande “show spanning-tree”, on peut voir que le port GigabitEthernet 0/2 qui connecte SW3 au Root Bridge SW1 est le port ROOT :

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

Je vais maintenant remplacer le lien entre SW1 et SW3 par un lien FastEthernet : 

Interface Role Sts Cost Prio.Nbr Type
Fa0/1 Altn BLK 19 128.1 P2p
Gi0/1 Root FWD 4 128.25 P2p

Le port ROOT est devenu le port GigabitEthernet 0/1 connecté à SW2 pour atteindre le ROOT BRIDGE.

Comme vous pouvez le constater, ce n’est pas le chemin le plus direct qui est utilisé, mais le plus rapide.

Si on additionne la valeur Spanning-Tree du lien entre SW3 et SW2 puis entre SW2 et SW1, on obtient : 4 + 4 = 8. Si on regarde la valeur du lien entre SW3 et SW1 : 19.

8 étant inférieur à 19, Spanning-Tree va préférer utiliser les deux liens Gigabit Ethernet pour atteindre le ROOT BRIDGE à la place du lien FastEthernet direct entre SW3 et SW1.

Une fois le ROOT BRIDGE ainsi que les ports ROOT sur les switches non ROOT définis, il nous reste à savoir quel sera le lien bloqué pour éviter qu’une boucle ne se forme…

Trois commutateurs en triangle. SW1 est root avec ports désignés (D), SW2 et SW3 ont des ports racines (R). Le lien entre SW2 et SW3 est bloqué, indiqué par un port en rouge marqué A.
Le SW2 a un port bloqué

Ce sera le switch dont l’adresse MAC est la plus élevée qui aura un port bloqué. Bien entendu, tous ces paramètres sont modifiables par un administrateur. 

Que sont les états Spanning-Tree ?

La norme SPANNING-TREE par défaut, la norme 802.1D, définit les états suivants :

  • DISABLED : le port est désactivé administrativement.

  • LISTENING : d’une durée de 15 secondes, cet état permet au switch d’écouter les BPDU des autres switches, mais sans remplir sa table MAC

  • LEARNING : d’une durée de 15 secondes également, cet état permet au switch d’apprendre les adresses MAC, mais toujours sans transmettre de trames (sauf les BPDU bien entendu)

  • FORWARDING : pas de durée ici, le switch transmet et reçoit sur le port concerné.

  • BLOCKING : le port est bloqué, il ne reçoit et n'envoie aucune trame mais il peut passer en FORWARDING en cas de changement de topologie.

Un port nouvellement utilisé passera par les états : Listening -> learning puis forwarding ou blocking. Cela représente une durée d’environ 30 secondes.

Si c’est un port bloqué, que la topologie change, et que ce changement implique le passage du port bloqué à l’état forwarding, il faudra ajouter un « délai de MAX AGE » de 20 secondes aux 30 secondes.

Tableau comparant les délais des états STP lors d'une première connexion et d’un changement de topologie, avec un total de 30 ou 50 secondes selon le cas.
Les délais des différents états

Pourquoi un délai de 20 secondes supplémentaires (Max Age) ?

Pour expliquer ces 20 secondes supplémentaires, regardons de plus près les BPDU.

Avec SPANNING-TREE, un switch envoi un HELLO BPDU toutes les 2 secondes. En cas de non-réception d’un HELLO BPDU d’un switch membre de la topologie, les autres switches vont attendre la fin du délai MAX AGE de 20 secondes (par défaut) avec une nouvelle exécution de l’algorithme SPANNING-TREE.

On parle donc d’un délai approximatif de 50 secondes, en général compris entre 40 et 50 secondes, en fonction des calculs réalisés par l’algorithme.

Pour conclure, ce délai constitue un équilibre entre la stabilité et la réactivité du réseau. Il évite les reconfigurations précipitées tout en garantissant une reprise de service dans un temps raisonnable. 

En résumé

  • Spanning-Tree est un protocole de couche 2 qui empêche les boucles réseau en bloquant certains ports de switchs selon une topologie logique hiérarchique.

  • L’élection du Root Bridge se fait en fonction de la priorité la plus basse, puis de l’adresse MAC la plus faible en cas d’égalité ; tous les autres switches calculent leur chemin le plus court (au plus bas coût) pour l’atteindre.

  • Les ports passent par plusieurs états (Listening → Learning → Forwarding/Blocking), ce qui entraîne un délai d’environ 30 à 50 secondes en cas de changement de topologie.

  • Le coût Spanning-Tree dépend du type de lien (Gigabit, FastEthernet…), et c’est le chemin au coût total le plus bas qui est toujours privilégié, pas forcément le plus direct.

  • Les BPDU (Bridge Protocol Data Unit) sont envoyés en multicast à l’adresse 01:80:C2:00:00:00 et contiennent l’adresse MAC et la priorité, informations essentielles pour la convergence du protocole.

Dans le prochain chapitre, vous allez découvrir le fonctionnement de Spanning-Tree spécifiquement sur les équipements Cisco. Prêt à relever le défi ? C'est parti !

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous