kubenow
Se connecterCommencer gratuitement

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

lien de secoursSW1cœurSW2SW3PC1PC2
Trois switchs reliés en triangle : un lien peut tomber sans couper personne… et une boucle

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 :

2 · LiaisonMAC destination6 octets
2 · LiaisonMAC source6 octets
2 · LiaisonType0x0800, 0x0806…
3 · RéseauPaquet IP (avec TTL)le TTL est dans le paquet, que les switchs ne regardent pas
2 · LiaisonFCScontrôle d'erreur
L'en-tête Ethernet n'a pas de compteur : rien n'arrête une trame qui tourne en rond

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 :

  1. PC1 envoie une requête ARP ; SW2 la diffuse vers SW1 et vers SW3 ;
  2. SW1 la renvoie vers SW3 ; SW3 la renvoie vers SW1 (et vers PC2) ;
  3. Chaque copie revient à SW2, qui la rediffuse… dans les deux sens, à l'infini.
copie →copie ←copies ⇄SW1SW2ARP de PC1SW3
Une diffusion dans un triangle : deux copies qui tournent en sens inverse, pour toujours

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é.

bloqué par STPport bloquéSW1racineSW2SW3PC1PC2
Avec STP : SW1 est la racine, un port du lien SW2 – SW3 est bloqué ; plus de boucle

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

Contenu aligné sur les programmes publiés par la CNCF (KCNA, CKAD, CKA, CKS), par le Linux Professional Institute (LPIC-1) et par Cisco (CCNA 200-301). KubeNow n'est ni affilié ni approuvé par la CNCF, la Linux Foundation, le LPI ou Cisco ; CKA, CKAD, CKS et KCNA sont des marques de la Linux Foundation, LPIC-1 est une marque du Linux Professional Institute, Cisco et CCNA sont des marques de Cisco Systems.