Spanning Tree Protocol : réseaux Ethernet sans connexions parallèles
Le Spanning Tree Protocol empêche les tempêtes de diffusion et autres perturbations de la communication dans un réseau. Cependant, le temps d’arrêt relativement long qui résulte de la réorganisation du réseau rend le procédé vulnérable aux attaques.
Qu’est-ce que le Spanning Tree Protocol ?
Le Spanning Tree Protocol (STP) est un procédé utilisé dans les réseaux Ethernet pour empêcher la formation de trames en double. Le STP a été inventé par Radia Perlman, technicienne de réseau et développeuse de logiciels américaine, et défini en 1990 par l’Institut des ingénieurs électriciens et électroniciens (IEEE) comme norme 802.1D. En vérifiant si le réseau comporte des chemins redondants et en les désactivant, le Spanning Tree Protocol empêche la création de trames en double ou multiples parallèles car cela entraînerait par exemple des boucles. Le procédé étend le réseau physique en une arborescence qui ne nécessite pas de connexions multiples entre la source et la destination.
Pourqoi le Spanning Tree Protocol est important ?
Le problème auquel le Spanning Tree Protocol remédie survient lorsque plusieurs chemins de données simultanés sont créés entre deux commutateurs dans un réseau. S’il existe plusieurs trames par lesquelles les paquets de données peuvent être acheminés, cela peut entraîner un dysfonctionnement de l’ensemble du système. L’une des conséquences possibles de l’existence d’au moins deux chemins simultanés entre deux points est ce que l’on appelle une tempête de diffusion (broadcast storm en anglais). Dans ce cas, l’ensemble du trafic de diffusion ou de multidiffusion est transmis et accumulé simultanément dans un réseau, ce qui peut entraîner un effet boule de neige et, dans le pire des cas, paralyser l’ensemble de la communication. L’utilisation d’un Spanning Tree Protocol permet d’éviter ce phénomène et de préserver l’intégrité du réseau.
La topologie en arborescence de STP
Afin de garantir qu’il n’y ait pas de trames en double, le Spanning Tree Protocol établit un arbre couvrant (spanning tree en anglais). Dans cet arbre, la connexion entre deux points du réseau ne se fait que par un seul chemin. Cette méthode permet en plus de trouver la meilleure connexion possible. Si une trame devait toutefois tomber en panne ou être affectée par une perturbation, la connexion est réorganisée le plus rapidement possible par le Spanning Tree Protocol et un nouveau chemin est ouvert. Ainsi, les délais sont minimes et la connexion entre les différents commutateurs est maintenue.
Comment fonctionne le Spanning Tree Protocol ?
Avec le Spanning Tree Protocol, la communication entre deux commutateurs ou ponts au sein d’un réseau s’effectue via des Bridge Protocol Data Units (BPDU). Celles-ci sont échangées à intervalles très courts et envoyées sous forme de trames multicast à l’adresse MAC 01-80-C2-00-00-10. Une telle transmission a lieu vers le pont le plus proche et le plus bas toutes les deux secondes. Ainsi, le Spanning Tree Protocol n’obtient pas seulement une vue d’ensemble de tous les chemins disponibles, mais peut également déterminer la connexion la plus rapide. Pour cela, le débit de données et la distance entre deux points jouent un rôle décisif. Une fois le meilleur chemin déterminé, les autres ports sont désactivés jusqu’à nouvel ordre.
Si, dans le cas du Spanning Tree Protocol, un Bridge Protocol Data Unit attendue fait défaut, le commutateur cible l’interprète comme une défaillance de la connexion et initie une réorientation de la topologie du réseau. En cas de dispositions compliquées, le recalcul peut prendre 30 secondes, voire plus. Si le réseau a été redéployé, la transmission peut être effectuée via une connexion de remplacement jusqu’alors désactivée. Ainsi, malgré une panne, la transmission de données la plus rapide possible est garantie.
Le Rapid Spanning Tree Protocol
Ce nouveau calcul et le temps d’arrêt plus long qui en résulte sont malheureusement une porte d’entrée pour les attaques sur le réseau. Si une trame erronée est introduite et n’est pas bloquée par le système, cela peut déclencher une réorganisation qui mettrait le réseau hors service pendant 30 secondes ou plus. C’est pour cette raison que le Rapid Spanning Tree Protocol (IEEE 802.1w) a été développé en 2003. Celui-ci est rétrocompatible et veille à ce que la structure actuelle du réseau soit maintenue jusqu’à ce que le tronçon défaillant soit remplacé. Ce n’est qu’à ce moment-là que l’arborescence est restructurée. Cette réorganisation ne prend qu’une seconde environ.
Les états de port dans le Spanning Tree Protocol
Le Spanning Tree Protocol compte cinq états de port au total. Cela évite la formation d’une boucle et garantit qu’aucune information sur la topologie du réseau ne soit perdue. Les différents états sont les suivants :
- Forwarding : les ports listés comme forwarding peuvent transmettre des trames, apprendre des adresses et recevoir, traiter et transmettre des Bridge Protocol Data Units.
- Blocking : les ports listés comme blocking rejettent les trames et n’apprennent pas d’adresses, mais reçoivent et traitent les Bridge Protocol Data Units.
- Listening : les ports d’écoute rejettent les trames, n’apprennent pas d’adresses, mais reçoivent, traitent et transmettent des unités de données de protocole de pont.
- Learning : les ports d’apprentissage rejettent les trames, mais apprennent les adresses et reçoivent, traitent et transmettent des unités de données de protocole de pont.
- Disabled : les ports réglés sur disabled rejettent les trames, n’apprennent pas les adresses et ne peuvent ni recevoir ni traiter les Bridge Protocol Data Units.
Lorsque le Spanning Tree Protocol est activé, chaque port passe successivement par les états Blocking, Listening, Learning et Forwarding.
Le pont racine dans le Spanning Tree Protocol
La première étape du Spanning Tree Protocol consiste à choisir un pont racine qui servira de point de départ au réseau. Les différents chemins sont ensuite développés à partir de là, l’algorithme activant ou désactivant les ports. Seul le pont racine permet de modifier les paramètres et de réajuster les temporisateurs suivants.
- Hello : ce temporisateur définit le délai entre deux Bridge Protocol Data Units, en général deux secondes.
- Forward-Delay : le deuxième temporisateur définit le temps dans les états Listening et Learning, qui est de 30 secondes au total.
- Maximum Age : le troisième temporisateur indique la durée pendant laquelle un port conserve les informations de configuration. Cette valeur est de 20 secondes par défaut.
Avantages et inconvénients du Spanning Tree Protocol
Le grand avantage du Spanning Tree Protocol est qu’il permet d’éviter les surcharges ou les perturbations au sein d’un réseau. Les boucles sont exclues et les trajets parallèles sont ainsi évités. L’identification de la connexion la plus courte est également un avantage pour le réseau. L’inconvénient du Spanning Tree Protocol est son temps de convergence relativement long, qui favorise les attaques. L’introduction du Rapid Spanning Tree Protocol et de son évolution, le Multiple Spanning Tree Protocol, qui permet de créer plusieurs trames indépendantes au sein d’un réseau local, permet toutefois de minimiser ces temps d’arrêt. Cela protège le réseau contre d’éventuelles attaques.
Découvrez d’autres types de réseaux et de normes de protocole dans notre Digital Guide :