
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.

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 !

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.

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

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 :

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.
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 :

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 :

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…

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.
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.

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.
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 !