Yani

STP - Spanning Tree Protocol

Objectif de la lecture

Comprendre pourquoi les réseaux commutés ont besoin de Spanning Tree, comment un root bridge est choisi, comment les ports sont sélectionnés et bloqués, puis comment vérifier et dépanner STP dans un environnement de laboratoire ou de prodcution.

1. Rappel et mise en contexte

Prenons un exemple simple avec trois switches (A, B, C) interconnectés en triangle, chacun relié à un PC (PC-A, PC-B, PC-C).

Topologie de trois switches A, B, C reliés en triangle, chacun connecté à un PC

Si PC-A envoie une trame, elle arrive d'abord au Switch-A. Celui-ci la retransmet ensuite à tous ses voisins, sauf sur le port par lequel elle est arrivée, donc vers Switch-B et Switch-C. Switch-B fait la même chose : la trame vient de A, il la renvoie donc vers C. Switch-C fait pareil : la trame vient de B, il la renvoie vers A. Et ainsi de suite.

On vient de créer une boucle infinie : la même trame circule sans arrêt entre les trois switches. Ce phénomène s'appelle une tempête de diffusion (broadcast storm). Le réseau finit par tomber parce que chaque switch doit traiter et retransmettre une quantité croissante de trames dupliquées, ce qui sature la bande passante des liens et surcharge le CPU des switches jusqu'à les rendre inutilisables.

Spanning Tree (STP) existe justement pour éviter ce problème. Une fois configuré, un des liens entre les switches est coupé virtuellement (bloqué, pas débranché physiquement). Si, par exemple, c'est le lien entre A et C qui est bloqué, alors pour que A communique avec C, la trame doit obligatoirement passer par B.

Avec ce lien bloqué, la boucle disparaît aussi : quand une trame arrive à Switch-C, il ne peut pas la renvoyer vers A (le lien est bloqué) ni vers B (puisque c'est justement de là qu'elle provient).

STP conserve la redondance physique mais place certains ports dans un état non-transférant. Le réseau logique devient une topologie sans boucle, appelée arbre recouvrant. Si un lien actif tombe, STP peut autoriser un chemin précédemment bloqué.

2. Concepts fondamentaux de STP

Avant de rentrer dans le fonctionnement, il faut se familiariser avec quelques termes clés. STP repose sur des élections : élection d'un root bridge, puis élection de ports sur chaque lien du réseau.

Bridge ID (BID)
C'est la carte d'identité d'un switch dans STP. Elle est composée d'une priorité (configurable, 32768 par défaut) et d'un identifiant système, en général l'adresse MAC du switch. Le switch avec le BID le plus faible gagne les élections.

Root Bridge
C'est le switch de référence pour tout le réseau STP. Il est choisi comme étant le switch avec le BID le plus faible parmi tous ceux du réseau.

BPDU (Bridge Protocol Data Unit)
C'est le message que les switches s'échangent en continu pour faire fonctionner STP. Chaque BPDU contient l'identité du root bridge telle que le switch émetteur la connaît, le coût du chemin pour s'y rendre, ainsi que le BID du switch émetteur lui-même.

Root Port
Une fois le root bridge connu, chaque switch non root détermine par quel port il obtient le chemin le plus efficace vers lui. Ce port s'appelle le root port. Un switch non root en possède normalement un seul. Le root bridge n'a jamais de root port.

Designated Port
Sur chaque lien du réseau, un seul des deux switches connectés peut avoir le droit d'y transmettre du trafic, sinon la boucle réapparaît. Ce port gagnant s'appelle le designated port. Il est élu indépendamment sur chaque lien, en comparant le coût vers le root bridge des deux switches concernés. Tous les ports du root bridge sont automatiquement désignés.

Alternate ou Non-designated Port
C'est le port qui perd l'élection sur son segment, celui qui n'est ni root port ni designated port. Il reste branché physiquement, mais ne transmet aucun trafic de données. Selon la variante de STP, on dit qu'il est en état blocking ou discarding. Il continue de recevoir les BPDU, ce qui lui permet de réagir si la topologie change.

Path Cost
C'est le prix associé à un lien, utilisé pour calculer quel chemin est le meilleur vers le root bridge. Plus un lien est rapide, plus son coût est bas.

Coût STP par défaut selon la vitesse du lien
Vitesse du lien Coût STP
10 Mbps100
100 Mbps19
1 Gbps4
10 Gbps2

Port ID
Quand deux ports sont à égalité parfaite, il faut un dernier critère pour trancher. C'est le rôle du Port ID, une combinaison entre une priorité de port et le numéro du port lui-même.