Le Spanning Tree Protocol (STP), parfois appelé simplement Spanning Tree, est comparable à Waze ou à MapQuest pour les réseaux Ethernet modernes. Il dirige le trafic sur l'itinéraire le plus efficace en fonction des conditions en temps réel. Basé sur un algorithme créé en 1985 par l'informaticienne américaine Radia Perlman alors qu’elle travaillait pour Digital Equipment Corporation (DEC), l'objectif principal du Spanning Tree est d'éviter les liens redondants et le bouclage des voies de communication dans les configurations de réseau complexes. En tant que fonction secondaire, le Spanning Tree peut acheminer les paquets autour des points de tension afin de s'assurer que les communications parviennent à traverser les réseaux qui pourraient subir des perturbations.

Topologie Spanning Tree vs. topologie Ring

Quand, dans les années 80, les entreprises ont commencé à mettre leurs ordinateurs en réseau, l'une des configurations les plus populaires était le réseau en anneau. Par exemple, c‘est en 1985 qu’IBM a introduit sa technologie propriétaire Token Ring. Dans une topologie de réseau en anneau, chaque nœud est connecté à deux autres nœuds, l'un étant situé devant lui sur l'anneau et l'autre derrière. Les signaux ne circulent autour de l'anneau que dans une seule direction, chaque nœud transmettant tous les paquets qui tournent en boucle autour de l'anneau. Si les réseaux en anneau simples fonctionnent bien avec peu d'ordinateurs, les anneaux deviennent inefficaces quand des centaines ou des milliers de dispositifs sont ajoutés au réseau. Un ordinateur peut avoir besoin d'envoyer des paquets à travers des centaines de nœuds simplement pour partager des informations avec un autre système dans une pièce adjacente. La bande passante et le débit finissent aussi par devenir problématiques quand le trafic ne peut circuler que dans un seul sens, sans plan de secours si un nœud tombe en panne sur le chemin ou qu’il est trop encombré. Dans les années 90, alors que l’Ethernet devenait de plus en plus rapide (le Fast Ethernet à 100 Mbits/sec. a été introduit en 1995) et que le coût d'un réseau Ethernet (ponts, commutateurs, câblage) devenait nettement inférieur à celui du Token Ring, le Spanning Tree a remporté la guerre de la topologie des réseaux LAN et le Token Ring a rapidement disparu.

Fonctionnement du Spanning Tree Protocol

Le Spanning Tree est un protocole de transfert de paquets de données. C'est à la fois un agent de la circulation et un ingénieur civil pour les autoroutes du réseau par lesquelles transitent les données. Il se situe au niveau de la couche Layer 2 - la couche de liaison des données - et s'occupe donc simplement d'acheminer les paquets vers leur destination appropriée, sans se soucier du type de paquets envoyés ou des données qu'ils contiennent. Le Spanning Tree est devenu tellement omniprésent que son utilisation est définie dans la norme de réseau IEEE 802.1D. Selon cette norme, il ne peut exister qu'un seul chemin actif entre deux points d'extrémité ou stations pour qu'ils fonctionnent correctement. Le Spanning Tree a été spécifiquement conçu pour que les données passant entre les segments du réseau ne soient pas bloquées dans une boucle. En général, les boucles perturbent l'algorithme de transfert installé dans les périphériques réseau, de sorte que le périphérique ne sait plus où envoyer les paquets. Cela peut entraîner la duplication de trames ou le transfert de paquets dupliqués vers plusieurs destinations. Les messages peuvent être répétés. Les communications peuvent rebondir vers un expéditeur. Un réseau peut même tomber en panne si trop de boucles se produisent, consommant la bande passante sans gain appréciable tout en empêchant le trafic non bouclé de passer.

Le protocole Spanning Tree empêche les boucles de se former en fermant tous les chemins possibles, sauf un, pour chaque paquet de données. Les commutateurs d'un réseau utilisent le protocole Spanning Tree pour définir les chemins « root » et les ponts par lesquels les données peuvent transiter, et ferment fonctionnellement les chemins en double, les rendant inactifs et inutilisables tant qu'un chemin principal est disponible. Ainsi, les communications réseau peuvent s'effectuer de manière transparente, quelle que soit la complexité ou l'étendue du réseau. D'une certaine manière, le Spanning Tree crée des chemins uniques à travers un réseau pour que les données puissent circuler à l'aide d'un logiciel, de la même manière que les ingénieurs réseau utilisaient du matériel sur les anciens réseaux en boucle.

Autres avantages du Spanning Tree Protocol

Le Spanning Tree sert principalement à supprimer les potentielles boucles de routage dans un réseau. Mais le STP présente également d'autres avantages. Étant donné que le Spanning Tree recherche et définit en permanence les chemins de réseau disponibles pour le transport des paquets de données, il peut détecter si un nœud situé le long de l'un de ces chemins primaires a été désactivé. Cette désactivation peut avoir plusieurs origines, depuis une panne matérielle jusqu’à une nouvelle configuration du réseau. Elle peut être temporaire, quand elle est liée par exemple à un déficit de bande passante ou à d'autres facteurs. Quand le protocole Spanning Tree détecte qu'un chemin primaire n'est plus actif, il peut rapidement ouvrir un autre chemin qui avait été précédemment fermé. Il peut alors envoyer des données autour du point de tension, en désignant éventuellement le détour comme nouveau chemin primaire, ou en renvoyant des paquets vers le pont d'origine s'il redevient disponible.

Si le Spanning Tree original était relativement rapide pour établir ces nouvelles connexions selon les besoins, l'IEEE a introduit en 2001 le Rapid Spanning Tree Protocol (RSTP). Cette version dite 802.1w du protocole permet une récupération beaucoup plus rapide en cas de modifications du réseau, de pannes temporaires ou de défaillance pure et simple de composants. Et si le protocole RSTP a introduit de nouveaux comportements de convergence des chemins et de nouveaux rôles de port de pont pour accélérer le processus, il est aussi entièrement rétrocompatible avec le Spanning Tree original. Il est donc possible pour des dispositifs utilisant les deux versions du protocole de fonctionner ensemble sur le même réseau.

Inconvénients du Spanning Tree Protocol

Même si le Spanning Tree est devenu omniprésent depuis son introduction en 1985, d'aucuns estiment que son heure est venue. Le plus grand défaut du Spanning Tree Protocol, c’est qu'il ferme les boucles potentielles au sein d'un réseau en fermant les voies potentielles par lesquelles les données pourraient transiter. Dans un réseau donné utilisant le Spanning Tree, environ 40% des chemins potentiels du réseau sont fermés aux données. Dans les environnements réseau extrêmement complexes, comme ceux des datacenters, la capacité de s'adapter rapidement à la demande est essentielle. Sans les limitations imposées par le Spanning Tree, les datacenters pourraient ouvrir beaucoup plus de bande passante sans avoir besoin de matériel réseau supplémentaire. C'est une situation plutôt ironique, parce que le protocole Spanning Tree a été spécifiquement créé pour les environnements réseau complexes. Or il se trouve que la protection fournie par le protocole contre le bouclage empêche, d'une certaine manière, ces environnements de réaliser leur plein potentiel.

Une version améliorée du protocole, appelée Multiple-Instance Spanning Tree (MSTP), a été développée pour permettre l’utilisation des réseaux locaux virtuels et à un plus grand nombre de chemins de réseau d'être ouverts en même temps, tout en empêchant la formation de boucles. Mais, même avec le MSTP, un grand nombre de chemins de données potentiels restent fermés sur un réseau donné utilisant le protocole. Au fil des ans, de nombreuses tentatives indépendantes et non standardisées ont été menées pour améliorer les restrictions de bande passante du Spanning Tree. Même si les concepteurs de certaines de ces alternatives ont revendiqué un certain succès, la plupart de ces tentatives ne sont pas totalement compatibles avec le protocole de base, ce qui signifie que les entreprises doivent soit employer les modifications non standardisées sur tous leurs dispositifs, soit trouver un moyen de fonctionner avec les commutateurs exécutant le STP standard. Dans la plupart des cas, les coûts de maintenance et de prise en charge de plusieurs versions de Spanning Tree ne valent pas la peine.

Avenir du Spanning Tree Protocol

Mis à part les limitations de bande passante résultant de la fermeture des chemins du réseau par le Spanning Tree, le remplacement du protocole ne fait pas l’objet de beaucoup de réflexion ou d'efforts. Même si l'IEEE livre occasionnellement des mises à jour pour essayer de le rendre plus efficace, celles-ci restent toujours rétrocompatibles avec les versions existantes du protocole. D’une certaine façon, le Spanning Tree semble se satisfaire de la règle « si ça marche, il ne faut pas y toucher ». Le protocole STP fonctionne de manière autonome en arrière-plan de la plupart des réseaux afin de maintenir la fluidité du trafic, d'empêcher la formation de boucles génératrices d'accidents et d'acheminer le trafic autour des zones de perturbation, de sorte que les utilisateurs finaux ne savent jamais si leur réseau subit des perturbations temporaires dans le cadre de ses opérations quotidiennes. Pendant ce temps, en arrière-plan, les administrateurs peuvent ajouter de nouveaux périphériques à leurs réseaux sans trop se demander s'ils pourront ou non communiquer avec le reste du réseau ou avec le monde extérieur. Pour toutes ces raisons, il est probable l’on continuera à utiliser le Spanning Tree Protocol pendant de nombreuses années encore. Il pourrait y avoir quelques mises à jour mineures de temps à autre, mais le protocole Spanning Tree initial et toutes les fonctions essentielles qu'il assure font qu’il devrait perdurer un certain temps encore.