Qu’est-ce que le protocole spanning-tree


Introduction du protocole spanning-tree

Le spanning-tree est un protocole réseau de couche 2 dans le modèle OSI (la couche de liaison « adressage physique »). Il permet de déterminer une topologie réseau sans avoir de boucle. Radia Perlman a inventé ce protocole et l’a basé sur un algorithme décrit par celle-ci. Il est aussi appelé protocole STP.

La norme IEEE 802.1 définit ce protocole. Cette norme appartient au groupe de travaill IEEE 802. Elle étudie dans les grandes lignes les architectures réseau et la sécurité de celle-ci.

Le problème qui a fait la création du protocole spanning-tree

Les réseaux locaux à commutation de paquets (Ethernet) ne doivent pas avoir de boucle. Ils doivent avoir qu’un seul chemin entre eux. Les boucles créées des « tempêtes ». Ces tempêtes peuvent paralyser tout le réseau, tout tourne en rond et le réseau n’est donc plus entièrement opérationnel.

Mais pour des raisons de redondances, il faut avoir plusieurs « chemins » entre les commutateurs. C’est ici qu’intervient le protocole spanning-tree qui bloque administrativement les liens en surnombre pour en rendre seulement un fonctionnel. Si ce lien fonctionnel est coupé alors le protocole débloque un autre port pour garder un lien entre les commutateurs. Et ainsi ne pas avoir d’impacts sur le réseau.

Mode de fonctionnement

Le protocole a plusieurs étapes de fonctionnement. Tout d’abord il fait une élection du commutateur racine. L’élection se fait par le commutateur qui a la priorité la plus basse. mais dans la plupart des cas l’administrateur qui gère le réseau choisit un commutateur qui est au plus près du cœur de réseau. Ensuite il détermine le port racine sur chaque commutateur (c’est-à-dire qu’il détermine le port avec la distance la moins élevée vers le commutateur racine). Puis il détermine le port désigné sur chaque segment (c’est le port qui relie le plus rapidement le commutateur du commutateur racine). Pour finir il bloque le reste des ports.

Sur cette image, un exemple du blocage d'un port pour éviter la formation d'une boucle.
Sur la photo ci-dessus, un exemple du blocage d’un port pour éviter la formation d’une boucle.

Pour savoir si un port peut être activé ou non il procède en plusieurs étapes. Il va d’abord écouteur le port pour savoir ce que s’est pendant 20 secondes environ on appelle cette étape l’étape de listening. Ensuite il détermine la topologie puis il construit une table de correspondance avec les adresses physiques cette étape s’appelle le learning. Et pour finir il active ou sinon il désactive le port en fonction de ce qui est connecté derrière celui-ci.

Cette sous-partie de ce protocole s’appelle le BPDU Guard il sert à éviter que des boucles soient accidentellement créées. Si c’est sûr qu’il n’y aura pas plus d’un appareil derrière ce port il est possible d’activer sur le commutateur le protocole portfast. Ce protocole enlève la vérification du BPDU pour éviter toutes ces vérifications et donc garantir une connexion plus rapide sur le commutateur. Il faut être très vigilant avec ce protocole car comme expliqué plus haut il ne vérifie pas les boucles dans la topologie.

Lien de la page présentant Radia Perlman (inventrice de ce protocole)

Retrouvez mon autre article sur la communication entre deux machines virtuelles en cliquant ici