Protocole STP
STP : pourquoi ton réseau peut planter à cause d'une boucle !
Introduction
Aujourd'hui, nous allons découvrir un protocole essentiel dans les réseaux Ethernet commutés : le Spanning Tree Protocol, plus connu sous le nom de STP.
Pourquoi ce protocole est-il si important ?
Imaginez un réseau composé de plusieurs switches reliés entre eux. Pour améliorer la disponibilité du réseau, vous décidez d'ajouter plusieurs liaisons entre ces équipements.
Sur le papier, c'est une bonne idée. Mais ces connexions supplémentaires peuvent créer des boucles réseau, avec des conséquences parfois désastreuses. Nous allons donc découvrir comment STP permet d'éviter ces boucles, comment il choisit le chemin à utiliser et comment mettre ce mécanisme en pratique dans Cisco Packet Tracer. C'est parti !
Une topologie avec trois switches
Commençons par comprendre le problème. Imaginons trois switches : Switch 1, Switch 2 et Switch 3.
Ils sont tous reliés entre eux. Cette architecture offre plusieurs chemins possibles pour faire circuler les données. Mais Ethernet ne possède pas, à lui seul, de mécanisme général permettant aux switches de supprimer automatiquement toutes les boucles de niveau 2.
Lorsqu'une trame de broadcast arrive sur un switch, celui-ci la transmet sur les ports concernés, à l'exception du port de réception. Si plusieurs chemins forment une boucle, ces trames peuvent circuler indéfiniment.
Les conséquences sont multiples : une tempête de broadcast, une surcharge des switches et des problèmes d'apprentissage des adresses MAC. Dans certains cas, le réseau peut devenir inutilisable.
Il faut donc conserver la redondance nécessaire à la disponibilité du réseau, tout en empêchant les boucles de niveau 2. C'est précisément le rôle de STP.
Le pont racine
Pour comprendre STP, nous devons d'abord parler du pont racine, également appelé Root Bridge. Le pont racine sert de référence pour construire l'arbre logique du réseau.
STP élit ce switch en comparant les identifiants des bridges, appelés Bridge ID. Le Bridge ID comprend notamment une priorité et une adresse MAC. Le switch qui possède le Bridge ID le plus faible est élu pont racine.
Par défaut, les switches Cisco utilisent généralement une priorité STP de 32768, à laquelle s'ajoutent des informations liées au VLAN pour former l'identifiant utilisé dans l'élection. Lorsque les priorités sont identiques, l'adresse MAC permet de départager les équipements.
Dans un réseau de production, il est préférable de choisir volontairement le pont racine plutôt que de laisser cette élection dépendre uniquement des valeurs par défaut. Nous allons voir comment effectuer ce réglage dans Packet Tracer.
Le choix des chemins
Une fois le pont racine élu, STP détermine les chemins à conserver pour construire une topologie sans boucle. Chaque switch non racine choisit son port racine, c'est-à-dire le port offrant le meilleur chemin vers le pont racine selon les règles de calcul STP.
Les switches échangent des informations de contrôle appelées BPDU, pour Bridge Protocol Data Unit. Ces informations permettent notamment de comparer les chemins et de déterminer les ports qui doivent transmettre les données ou rester bloqués.
Lorsqu'une liaison redondante créerait une boucle, STP peut empêcher le trafic utilisateur de passer par le port concerné. Attention : le protocole ne supprime pas physiquement la liaison. Il la conserve disponible pour permettre une nouvelle organisation de la topologie si nécessaire.
C'est ce mécanisme qui permet de bénéficier de chemins redondants sans créer de boucle permanente.
Les rôles des ports
STP attribue différents rôles aux ports des switches. Le port racine, ou Root Port, est le meilleur chemin d'un switch non racine vers le pont racine. Le port désigné, ou Designated Port, est le port sélectionné pour transmettre le trafic sur un segment donné.
Enfin, un port alternatif peut offrir un autre chemin vers le pont racine. Avec Rapid PVST+ ou d'autres mécanismes compatibles, ce port peut notamment rester en état de blocage logique jusqu'à ce qu'il soit nécessaire. Les rôles exacts dépendent de la topologie et des résultats des calculs STP.
Il faut également distinguer les rôles des états des ports : ce ne sont pas les mêmes notions.
Les états des ports
Avec le STP classique, les ports peuvent passer par plusieurs états. L'état Blocking empêche le transfert des trames utilisateur et l'apprentissage des adresses MAC, tout en permettant le traitement des BPDU nécessaires au fonctionnement du protocole.
BPDU (Bridge Protocol Data Unit ou unité de données du protocole de pont) est un message réseau échangé entre les commutateurs (switches) pour faire fonctionner le Spanning Tree Protocol (STP) et ses variantes (RSTP, MSTP).
Rôles principaux :
Détection des boucles : Il permet aux commutateurs de cartographier la topologie du réseau de niveau 2 (L2) et d'éviter les boucles de transmission et les tempêtes de diffusion (broadcast storms).
Élection du pont racine (Root Bridge) : Les commutateurs s'échangent des BPDU contenant leur priorité et leur adresse MAC pour désigner le commutateur central de référence.
Calcul des chemins : Il sert à déterminer les ports à garder ouverts (transfert) et ceux à bloquer pour garantir un chemin unique sans boucle.
Remarque : les ports bloqués ne transmettent pas les trames utilisateur, mais ils peuvent toujours recevoir et traiter les BPDU. Cela permet au protocole STP de continuer à fonctionner et de réagir aux changements dans la topologie du réseau.
L'état Listening permet au switch de participer à la convergence STP sans transférer les trames utilisateur ni apprendre les adresses MAC. L'état Learning autorise l'apprentissage des adresses MAC, mais pas encore le transfert normal des trames utilisateur.
Enfin, l'état Forwarding autorise le transfert des trames et l'apprentissage des adresses MAC. Il existe aussi l'état Disabled pour un port qui ne participe pas au fonctionnement STP.
Attention : ces états correspondent au STP classique 802.1D. Avec Rapid Spanning Tree Protocol, ou RSTP, les états sont simplifiés et la convergence est généralement plus rapide.
Dans notre exercice, nous observerons le comportement de STP sur une topologie redondante.
Passage à la pratique
Nous allons maintenant passer à la pratique avec Cisco Packet Tracer. Nous allons créer une topologie composée de trois switches interconnectés en triangle.
Nous vérifierons d'abord le fonctionnement du protocole STP et l'élection du pont racine. Ensuite, nous observerons les rôles des ports et identifierons la liaison redondante qui ne transmet pas les trames utilisateur. Enfin, nous allons simuler une panne en coupant une liaison active.
Nous pourrons ainsi observer comment STP réagit et comment le réseau peut retrouver une topologie fonctionnelle.
Cette démonstration va nous permettre de visualiser concrètement les notions que nous venons d'étudier
Fichier Packet Tracer (.pkt) : Lien du protocole STP vierge
| Nom | Interface |
|---|---|
| PC-1 | 192.168.1.11/24 |
| PC-2 | 192.168.1.12/24 |
| Switch-SW1 | Interface 0/1 |
| Interface 0/2 | |
| Interface 0/3 | |
| Interface 0/4 | |
| PC-3 | 192.168.1.13/24 |
| PC-4 | 192.168.1.14/24 |
| Switch-SW2 | Interface 0/1 |
| Interface 0/2 | |
| Interface 0/3 | |
| Interface 0/4 | |
| PC-5 | 192.168.1.15/24 |
| PC-6 | 192.168.1.16/24 |
| Switch-SW3 | Interface 0/1 |
| Interface 0/2 | |
| Interface 0/3 | |
| Interface 0/4 |
Configuration et vérification des Switch
! ── Passer en mode privilégié ───────────
switch> enable
switch#
! ── Vérifier le fonctionnement de STP ───────────
switch# show spanning-tree
! ── Passer en mode privilégié ───────────
switch> enable
switch#
! ── Choisir volontairement le pont racine ───────────
switch(confi)# spanning-tree vlan 1 root primary
switch(config)# end
! ── vérifie le résultat ───────────
switch# show spanning-tree vlan 1
Sur SW2 et SW3, lancez également cette commande. Résultat attendu : les switches doivent identifier SW1 comme pont racine pour le VLAN 1.
Examine les résultats de show spanning-tree vlan 1 sur les trois switches.
Repère les ports dont les rôles sont notamment :
Root: port racine.Desg: port désigné.Altn: port alternatif, selon la version STP utilisée.
Dans le STP classique, un port bloqué ne transmet pas les trames utilisateur. Avec les variantes plus récentes, les états affichés peuvent être différents.
Conclusion
Nous arrivons à la fin de ce tutoriel consacré au Spanning Tree Protocol.
Retenons trois points essentiels.
- Premièrement, STP permet d'éviter les boucles de niveau 2 dans un réseau Ethernet commuté.
- Deuxièmement, il élit un pont racine et détermine les chemins à utiliser pour construire une topologie sans boucle.
- Troisièmement, il conserve les liaisons redondantes et peut réorganiser la topologie lorsqu'une liaison devient indisponible.
Dans un réseau professionnel, il est important de contrôler le choix du pont racine et de surveiller le fonctionnement de STP. Si ce tutoriel vous a aidé à mieux comprendre les réseaux, pensez à vous abonner à L'atelier d'Enrico et à partager la vidéo.
Dites-moi également dans le formulaire de Contact, quel protocole réseau vous aimeriez découvrir dans un prochain tutoriel.