Problématique
Les réseaux avec des switchs ont souvent des liens redondants pour la tolérance aux pannes. Problème : Les boucles créent des tempêtes de broadcast (broadcast storm). Les trames tournent indéfiniment dans le réseau, saturant la bande passante.
Principe
Le Spanning Tree Protocol construit un arbre couvrant le réseau. Désactive logiquement certains liens pour éliminer les boucles. Maintient la redondance : les liens désactivés peuvent être réactivés en cas de panne.
Algorithme
Étape 1 : Élection du Root Bridge
Chaque switch a un Bridge ID (priorité + adresse MAC). Le switch avec le plus petit Bridge ID devient le Root Bridge. Par défaut, priorité = 32768 pour tous, donc la plus petite MAC gagne.
Étape 2 : Calcul des coûts
Chaque switch calcule le coût du chemin le plus court vers le Root Bridge. Coût basé sur la bande passante des liens :
10 Mbps → Coût 100
100 Mbps → Coût 19
1 Gbps → Coût 4
10 Gbps → Coût 2
Étape 3 : Sélection des ports
Pour chaque switch (sauf Root) :
- Root Port (RP) : port avec le coût le plus faible vers le Root Bridge
- Designated Port (DP) : sur chaque segment, le port du switch avec le meilleur coût vers Root
- Blocked Port (BP) : tous les autres ports (pour éviter les boucles)
États des ports
- Blocking : n’écoute que les BPDU, ne transmet rien
- Listening : participe à l’élection, ne transfère pas de données (15s)
- Learning : apprend les adresses MAC, ne transfère pas encore (15s)
- Forwarding : transmet normalement les données
- Disabled : port administrativement désactivé
Temps de convergence standard : environ 50 secondes (20s + 15s + 15s)
BPDU (Bridge Protocol Data Unit)
Messages échangés entre switches toutes les 2 secondes. Contiennent :
- Bridge ID de l’émetteur
- Bridge ID du Root connu
- Coût du chemin vers le Root
- Port ID
Exemple
graph TD A[Switch A<br/>Priority: 32768<br/>MAC: 00:00:00:00:00:01<br/>ROOT BRIDGE] B[Switch B<br/>Priority: 32768<br/>MAC: 00:00:00:00:00:02] C[Switch C<br/>Priority: 32768<br/>MAC: 00:00:00:00:00:03] D[Switch D<br/>Priority: 32768<br/>MAC: 00:00:00:00:00:04] A -->|Coût: 4<br/>DP| B A -->|Coût: 4<br/>DP| C B -->|Coût: 4<br/>RP| A B -.->|Coût: 4<br/>BLOCKED| D C -->|Coût: 4<br/>RP| A C -->|Coût: 4<br/>DP| D D -->|Coût: 4<br/>RP| C D -.->|Coût: 4<br/>BLOCKED| B style A fill:#90EE90 style B fill:#FFE4B5 style C fill:#FFE4B5 style D fill:#FFE4B5
Légende :
- Switch A devient Root Bridge (plus petite MAC)
- Liens en trait plein : actifs (Forwarding)
- Liens en pointillés : bloqués (Blocking)
- RP : Root Port, DP : Designated Port
Convergence après panne
Si un lien actif tombe :
- Détection de la panne (par absence de BPDU pendant 20s par défaut)
- Les switches recalculent l’arbre
- Un port bloqué peut passer en Forwarding si nécessaire
- Temps de convergence : environ 50 secondes
Variantes modernes
RSTP (Rapid Spanning Tree Protocol - 802.1w)
Améliore le temps de convergence : moins de 6 secondes au lieu de 50. Nouveaux états de ports :
- Discarding : remplace Blocking, Listening et Disabled
- Learning : identique
- Forwarding : identique
Nouveaux rôles de ports :
- Alternate Port : backup du Root Port
- Backup Port : backup du Designated Port
MSTP (Multiple Spanning Tree Protocol - 802.1s)
Permet plusieurs instances de spanning tree. Un spanning tree différent par VLAN (ou groupe de VLANs). Meilleure utilisation de la bande passante (load balancing).
Configuration basique (Cisco)
Définir la priorité pour forcer un switch à devenir Root :
Switch(config)# spanning-tree vlan 1 priority 4096
Les valeurs de priorité doivent être des multiples de 4096. Plage : 0 à 61440.
Vérifier l’état :
Switch# show spanning-tree
Activer RSTP :
Switch(config)# spanning-tree mode rapid-pvst
Avantages et limites
Avantages :
- Prévention automatique des boucles
- Redondance maintenue
- Aucune configuration minimale requise
Limites :
- Temps de convergence lent (STP classique)
- Sous-utilisation de la bande passante (liens bloqués)
- Un seul arbre pour tous les VLANs (sauf PVST/MSTP)
Solutions alternatives modernes :
- TRILL (Transparent Interconnection of Lots of Links)
- SPB (Shortest Path Bridging)
- Protocols de routage niveau 3 (OSPF, BGP dans les datacenters)