← Retour au portail

Fiche 6 - STP — Spanning Tree Protocol

Comprendre le protocole STP et ses variantes (RSTP, PVST+) pour éviter les boucles réseau sur les switches Cisco.

Intermédiaire — SISR 2ème année ⏱️ 25 min 📁 Cisco

🎯 Objectifs de la fiche

  1. Pourquoi STP ? — Boucles réseau, broadcast storm, problème
  2. Fonctionnement de STP — Root bridge, port states, élection
  3. RSTP et PVST+ — Versions améliorées de STP
  4. Configuration sur Cisco — Root primaire, secondaire, port priority
  5. Vérification et dépannage — show spanning-tree, debug

Prérequis

Connaître les bases des switches Cisco (fiches 2 et 3). Comprendre les VLANs. Avoir accès à Packet Tracer ou GNS3 pour les exercices pratiques.

1. Pourquoi STP ?

Dans un réseau commuté redondant (plusieurs switches interconnectés), il existe des chemins multiples entre deux points. Sans protection, les trames Ethernet peuvent boucler indéfiniment (broadcast storm) car il n'y a pas de TTL au niveau couche 2.

Problème sans STPConséquence
Broadcast stormUne trame broadcast se duplique à l'infini — sature le réseau en secondes
Table MAC instableLes switches voient la même MAC sur plusieurs ports — instabilité totale
Duplication de tramesUn hôte reçoit plusieurs copies du même paquet
ℹ️ STP (Spanning Tree Protocol — IEEE 802.1D) résout ce problème en bloquant certains ports pour n'avoir qu'un seul chemin actif entre deux switches. Les ports bloqués restent en veille et prennent le relais si le chemin principal tombe.

2. Fonctionnement de STP

2.1 Élection du Root Bridge

STP élit un switch central appelé Root Bridge. Tous les autres switches calculent le chemin le plus court vers ce Root Bridge et bloquent les chemins redondants.

Critère d'électionValeurRemarque
Bridge Priority0 à 65535 (default: 32768)Plus la valeur est basse, plus le switch est préféré
MAC AddressAdresse MAC du switchDépartage en cas d'égalité de priorité — la plus basse gagne
Bridge ID = Priority (2 octets) + MAC Address (6 octets)

Switch A : Priority 32768 + MAC 00:11:22:33:44:01
Switch B : Priority 32768 + MAC 00:11:22:33:44:02
Switch C : Priority 4096  + MAC 00:11:22:33:44:03

→ Switch C élu Root Bridge (priorité la plus basse)

2.2 États des ports STP

ÉtatDuréeTraficDescription
BlockingMax Age : 20sNonPort bloqué — écoute uniquement les BPDUs
ListeningForward Delay : 15sNonÉcoute les BPDUs, pas encore de trafic
LearningForward Delay : 15sNonApprend les MACs, pas encore de trafic
ForwardingPermanentOuiPort actif — transmet le trafic normalement
DisabledNonPort désactivé administrativement

Temps de convergence STP classique : 20s (Max Age) + 15s (Listening) + 15s (Learning) = 50 secondes avant qu'un port bloqué devienne actif.

2.3 Types de ports

Type de portDescription
Root Port (RP)Port avec le meilleur chemin vers le Root Bridge (un par switch non-root)
Designated Port (DP)Port qui transmet le trafic vers un segment (un par segment)
Non-Designated (Blocked)Port bloqué — chemin redondant mis en veille

3. RSTP et PVST+

ProtocoleStandardConvergenceDescription
STPIEEE 802.1D30-50 secondesVersion originale — lente
RSTPIEEE 802.1w1-2 secondesRapid STP — convergence très rapide
PVST+Cisco30-50 secondesPer-VLAN STP — une instance STP par VLAN
RPVST+Cisco1-2 secondesRapid PVST+ — RSTP par VLAN — défaut sur switches Cisco récents
MSTPIEEE 802.1s1-2 secondesMultiple STP — regroupe plusieurs VLANs par instance
ℹ️ Sur les switches Cisco modernes (IOS 12.2+), PVST+ est activé par défaut. RSTP (rapid-pvst) est recommandé pour la plupart des déploiements grâce à sa convergence rapide.

4. Configuration STP sur Cisco

4.1 Définir le Root Bridge manuellement

Switch(config)# spanning-tree mode rapid-pvst    # Activer RSTP

# Méthode 1 : définir la priorité manuellement (multiple de 4096)
Switch(config)# spanning-tree vlan 1 priority 4096

# Méthode 2 : utiliser la macro "root primary" (définit la priorité à 24576)
Switch(config)# spanning-tree vlan 1 root primary

# Définir un Root Bridge secondaire (priorité 28672)
Switch(config)# spanning-tree vlan 1 root secondary

4.2 PortFast et BPDU Guard (ports d'accès)

# PortFast : passe immédiatement en Forwarding (pour ports vers PC)
Switch(config)# interface fastethernet 0/1
Switch(config-if)# spanning-tree portfast

# BPDU Guard : désactive le port s'il reçoit un BPDU (protection)
Switch(config-if)# spanning-tree bpduguard enable

# Activer PortFast globalement sur tous les ports d'accès
Switch(config)# spanning-tree portfast default
⚠️ N'activez JAMAIS PortFast sur un port trunk connecté à un autre switch. Si un BPDU est reçu sur un port PortFast, BPDU Guard désactivera le port (err-disabled) pour protéger la topologie.

5. Vérification

# Voir l'état STP global
show spanning-tree

# STP pour un VLAN spécifique
show spanning-tree vlan 10

# Résumé des ports STP
show spanning-tree summary

# Voir le Root Bridge élu
show spanning-tree vlan 1 | include Root

# Voir les ports en état Blocking
show spanning-tree blockedports
Exemple de sortie show spanning-tree vlan 1 :

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    4097
             Address     0011.2233.4403
             This bridge is the root   ← Ce switch est le Root Bridge

  Bridge ID  Priority    4097 (priority 4096 sys-id-ext 1)
             Address     0011.2233.4403

Interface    Role  Sts   Cost   Prio.Nbr  Type
Gi0/1        Desg  FWD   4      128.1     P2p
Gi0/2        Desg  FWD   4      128.2     P2p
Fa0/1        Desg  FWD   19     128.3     P2p Edge
Quel est le critère principal pour élire le Root Bridge STP ?
  • La vitesse des interfaces
  • La bridge priority (la plus basse gagne)
  • Le nombre de ports actifs
  • L'adresse IP du switch

✅ Réponse : La bridge priority (la plus basse gagne)

Quelle est la durée de convergence de RSTP (Rapid STP) ?
  • 50 secondes
  • 30 secondes
  • 1 à 2 secondes
  • 15 secondes

✅ Réponse : 1 à 2 secondes

À quoi sert PortFast sur un port Cisco ?
  • Accélérer la convergence STP globale
  • Faire passer immédiatement un port d'accès en état Forwarding
  • Bloquer les BPDUs sur le port
  • Augmenter la priorité du switch

✅ Réponse : Faire passer immédiatement un port d'accès en état Forwarding

Que fait BPDU Guard quand il reçoit un BPDU sur un port PortFast ?
  • Ignore le BPDU
  • Passe le port en mode trunk
  • Désactive le port (err-disabled)
  • Élit un nouveau Root Bridge

✅ Réponse : Désactive le port (err-disabled)

Quelle valeur de priorité STP la commande spanning-tree vlan 1 root primary configure-t-elle ?
  • 0
  • 4096
  • 24576
  • 32768

✅ Réponse : 24576