R.27 · Spanning Tree et agrégation de liens
Pourquoi une boucle fait tomber un réseau
Leçon théorique · questionnaire de validation · gratuit, dans le navigateur
Un seul câble entre deux switchs, c'est un point unique de panne : qu'il soit arraché, et tout un étage est coupé. On double donc les liens. Mais Ethernet a un défaut de naissance : une trame n'a aucune durée de vie. Dès que les switchs forment une boucle, certaines trames tournent sans fin, se multiplient, et le réseau s'effondre en quelques secondes. Cette leçon explique le phénomène et le principe de sa solution, le Spanning Tree.
Ce que vous saurez à la fin : expliquer pourquoi la redondance crée des boucles, décrire une tempête de diffusion, l'instabilité de la table MAC et les trames dupliquées, et dire comment le Spanning Tree les empêche.
1. La redondance, et la boucle qu'elle crée
Avec ce triangle, PC1 joint PC2 par SW2 → SW3, ou par SW2 → SW1 → SW3 : si un câble tombe, l'autre chemin prend le relais. C'est exactement ce qu'on veut… pour les paquets IP, qui portent un compteur de sauts (TTL) et disparaissent au bout d'un certain nombre de routeurs. Une trame Ethernet, elle, ne porte rien de tel :
Un switch ne lit pas le paquet IP : il ne décrémente rien, il transmet. Dans une boucle, rien n'arrête une trame.
2. La tempête de diffusion
Une trame de diffusion (destination ff:ff:ff:ff:ff:ff, une requête ARP par exemple) est envoyée par chaque switch sur tous ses ports sauf celui d'arrivée :
- PC1 envoie une requête ARP ; SW2 la diffuse vers SW1 et vers SW3 ;
- SW1 la renvoie vers SW3 ; SW3 la renvoie vers SW1 (et vers PC2) ;
- Chaque copie revient à SW2, qui la rediffuse… dans les deux sens, à l'infini.
Chaque nouvelle diffusion (ARP, DHCP, découvertes de services…) ajoute des copies qui ne disparaissent jamais. En quelques secondes, les liens sont saturés, les processeurs des switchs sont à 100 % et plus rien ne passe : c'est la tempête de diffusion (broadcast storm). Seul remède sur un réseau sans protection : débrancher un câble.
3. Une table MAC qui perd la tête
Le switch apprend les adresses MAC d'après les trames qu'il reçoit (leçon « Comment un switch apprend les adresses MAC »). Dans une boucle, SW3 reçoit les copies de la trame de PC1 tantôt par SW1, tantôt par SW2 : il déplace sans cesse l'adresse de PC1 d'un port à l'autre. On parle de MAC flapping ; Cisco l'écrit dans ses journaux (%SW_MATM-4-MACFLAP_NOTIF). Le trafic destiné à PC1 part alors une fois sur deux du mauvais côté.
4. Des trames en double
Même une trame unicast souffre : tant qu'un switch ne connaît pas encore la destination, il la diffuse (flooding) ; dans une boucle, la destination reçoit plusieurs copies de la même trame. Les applications voient des doublons, TCP retransmet, les performances s'écroulent.
5. La solution : le Spanning Tree
Le Spanning Tree Protocol (STP, norme IEEE 802.1D, inventé par Radia Perlman en 1985) garde la redondance physique mais supprime les boucles logiques : les switchs échangent des messages (les BPDU), élisent l'un d'eux comme racine, calculent un arbre sans boucle qui la relie à tous, puis bloquent les ports en trop. Un port bloqué ne transmet aucune trame d'utilisateur, mais il continue d'écouter les BPDU : si un lien actif tombe, STP rouvre le port bloqué.
C'est le prix à payer : un lien sur trois ne sert à rien tant que tout va bien. La suite du parcours montre comment choisir la racine et les liens bloqués, comment STP réagit à une panne, comment l'accélérer (RSTP), et comment faire travailler tous les liens grâce à l'agrégation (LACP).
6. Retenir
| Phénomène | Cause | Effet |
|---|---|---|
| Tempête de diffusion | Les diffusions tournent sans fin, dans les deux sens | Liens saturés, switchs à 100 %, réseau à l'arrêt |
| Instabilité de la table MAC | La même adresse arrive par plusieurs ports | Trafic envoyé du mauvais côté |
| Trames dupliquées | L'inondation d'une trame inconnue emprunte plusieurs chemins | Doublons, retransmissions |
| Solution : STP | Une racine, un arbre, des ports bloqués en réserve | Redondance sans boucle |