Protocole STP

 

Protocole STP

 

Le Spanning-Tree est un gros chapitre !

Pour ce faire , j’ai du diviser ce sujet en plusieurs articles :

00 – Introduction

01 – Protocole STP

02 – Protocole RSTP

03 – Type de Spanning-Tree

031 – PVST+
032 – Rapid-PVST+
033 – MST

04 – Sécurisation

041 – Portfast
042 – Root Guard
043 – BPDU Guard
044 – Loop Guard
045 – UDLD

 

Pour une bonne compréhension :

Les articles  00 – Introduction , 01 – Protocole STP et 02 – Protocole RSTP sont à lire dans cet ordre.

Après avoir lu ces 3 articles, vous pouvez naviguer librement dans les catégories 03 – Type de Spanning-Tree et 04 – Sécurisation

 


 

01 – Protocole STP

 

 

Fonctionnement du STP


 

Le but du Spanning-Tree est d’obtenir une architecture LAN SANS BOUCLE.

Le premier protocole permettant de faire du Spanning-Tree est le protocole STP (Spanning-Tree Protocol).

Pour transformer une architecture maillée en architecture sans boucle , STP va devoir désactiver certaines liaisons.

Pour ce faire, Il a la possibilité de mettre les ports d’un switch dans un de ces deux états (State) stables :

 

Forwarding (FWD): Fonctionnement normal du port

Blocking (BLK):

– Le port n’émet rien sauf des trames STP.

– Le port reçoit tout mais ne traite que les trames STP.

 

Pour prendre ce type de décision, il va falloir que tout les switchs se mettent d’accord sur l’architecture logique à adopter.

Nos Switchs vont échanger des informations STP via des trames BPDU

Pour qu’il soit tous d’accord , il vont dans un premier temps devoir élire un Chef !!

Le Chef sera appelé le Root-Bridge !

 

 

Communication STP


 

Nos switchs échanges des informations concernant le STP via des trames BPDU.

BPDU = (Bridge Protocol Data Units).

 

Il existe deux type de trames BPDU :

Configuration BPDU : Permet de tenir au courant ses voisins de l’état de santé de la topologie STP

Topologie Change Notification BPDU (TCN BPDU) : Permet d’annoncer un changement de topologie STP

Par défaut , un Switchs envoie une trame BPDU toutes les 2 secondes sur tout ses ports .

 

Élection du « ROOT-BRIDGE »


Comment le Root-Bridge est élu ? Grâce au Bridge-ID (BID).

Le Bridge-ID est généré automatiquement par nos switchs. Il est composé de deux choses:

  • Bridge Priority
    • Sur 2 octets
    • Peut être modifié par l’administrateur
    • Compris entre 0 et 65 535
    • Possède un pas de 4096 (4096, 8192, 12228, … , 28672, 32 768, 36864, … , 57344 ou 61440)
    • Par défaut : 32 768
  • MAC Address
    • Sur 6 octets
    • Correspond à l’adresse MAC de notre switch.

 

Grâce aux trames BPDU , nos switchs vont chercher l’équipement actif possédant la valeur de Bridge Priority la plus faible. Si tout le monde à la même valeur de Bridge Priority. Ils vont chercher qui à la MAC Address la plus faible.

Par défaut , le switch possédant l’adresse Mac la plus faible va être le Root-Bridge !

 

Conclusion : Ce sera donc le switch le plus vieux de votre réseau qui sera le Chef de votre topologie de niveau 2 !

Il est primordiale de mettre votre cœur de réseau en tant que Root-Bridge (#Chef) en jouant sur son Bridge-Priority

 

Dès que le « Root-Bridge » est élu, tout les liens vont se mettre soit en Forwarding, soit en Blocking en suivant la logique suivante :

– Tout les ports du switch « Root-Bridge » (#Chef) vont être obligatoirement dans l’état Forwarding

– Le port de chaque « Non-Root Bridge » (#LesAutresSwitchs) qui à le coût administratif le plus petit pour aller vers le « Root-Bridge » est dans l’état Forwarding

Les autres liaisons seront inactives. Sur une liaison inactive , il y aura toujours un port dans l’état Forwarding et un autre dans l’état Blocking.

 

Si un lien actif tombe, il sera remplacé par un lien Inactif en suivant la logique ci dessus.

 

Élection des  « ROOT-PORT »


Nous avons vu que les ports de nos Switchs peuvent prendre 2 états :

  • Forwarding
  • Blocking

Le protocole STP va aussi définir un rôle pour chaque ports, il existe 3 rôles :

  • Root-Port
  • Designated Port
  • Blocking port

 

 

Pour définir quel port de notre switch va devenir le root-port

 

– Le coût administratif le plus bas

Si égalité

– La valeur du Bridge-ID la plus faible

Si égalité

– Le numéro de port le plus faible

 

 

 

Le coût administratif le plus bas


 

Nous avons vu plus haut que chaque switchs « non-Root bridge » va mettre le port qui à le coût administratif le plus bas pour discuter avec le Root-Bridge dans l’état « Forwarding ». Ce port aura le rôle de  « Root-port« .

Comment calcule t’il le coût administratif ? en prenant en compte le tableau suivant :

  • 10Mbps = 100
  • 100Mbps = 19
  • 1 Gbps = 4
  • 10 Gbps = 2

 

Étape 1 : Le Root-Bridge envoi une trame BPDU sur tout ces ports avec une valeur de « root path cost » (Coût du chemin vers le root bridge) égale à 0

Étape 2 : Les switchs recevant cette trame BPDU mettent cette valeur de « path cost » sur l’interface physique de réception.

Étape 3 : Ces derniers renvoient sur leurs autres interfaces une trame BPDU avec un « root path cost » égale à 0 + la valeur de l’interface de sortie

 

     Exemple : Le Switch 1 possède uniquement des interfaces FastEthernet. Il reçoit sur l’interface FastEthernet 0/1 un message BPDU possédant un « root path cost » égal à 0. il va donc envoyer une trame BPDU sur ces autres ports FastEthernet avec une valeur de « root path cost » égale à 19 (0+19)

 

L’interface physique de chaque « non-root switch » possédant la valeur « root path cost » la plus faible aura le rôle de « root-port »

 

Pour illustrer cela , nous allons nous baser sur la même architecture vu précédemment. Le seul point qui va différer sur les deux architectures sont le coût des liaisons.

 

Maintenant , mettons sur ces architectures nos « Root-port »

Les Switchs C et D on trouvés un chemin plus court en passant respectivement vers B et E.

 

La valeur du Bridge-ID la plus faible


Le numéro de port le plus faible


 sur le root bridge !!!!

 

Élection des « DESIGNATED-PORT »


 

Un port qui à le rôle de « Designated-port » est dans l’état Forwarding.

Tout les ports du Root-Bridge (#Chef) ont le rôle de « Designated-port ».

Seul les liaisons entre « Root-port » et « Designated-Port » seront actives.

Les autres liaisons posséderons un port en « Designated-Port » et un port en « Blocking-port ». Afin de déterminer le quel des deux ports aura le rôle de « Designated-Port », on va définir le quel des deux switchs possèdent :

  • La liaison avec le coût le plus faible pour atteindre le « Root-Bridge » (root path cost)

En cas d’égalité

  • La Priorité la plus faible ( Bridge ID : par défaut 32 768)

En cas d’égalité

  • L’adresse MAC la plus faible

 

 

Les autres ports seront dans l’état Blocking:

État des ports STP


Nos ports STP peuvent prendre plusieurs états. Il existe de différents types d’états :

État Stable

Disabled (Avec la commande Shutdown)

Blocking (Le protocole à pris la décision de bloquer ce port pour éviter une boucle, il reçoit et traite toujours les trames BPDU qu’il reçois  )

Forwarding (Le port est actif)

État Transitoire

Listening (Le port peut envoyer et recevoir des trames BPDU) = 15s

Learning (idem que l’état « Listening » , sauf qu’il va en même temps remplir sa table ARP) = 15s

 

Réaction du protocole STP en cas de panne


 

Afin de maintenir notre architecture à jour et à prêt à basculer en cas de panne , le « Root-Bridge » envoi sur tout ses ports et toute les 2 secondes une trame « Hello BPDU« 

Cette trame contient :

– Le Root Bridge ID

– Le Bridge ID (dans ce cas , il sera identique au Root Bridge ID)

– Le coût pour atteindre le Root-Bridge (Dans ce cas, il sera égal à zéro)

Chaque Non-Root Bridge (#PasChef) remplace le Bridge ID et le coût pour atteindre le Root-Bridge (#Chef) par les sien et retransmet cette trame sur tout ses ports « Designated-Port ».

Si un Switch ne reçoit plus de trame Hello BPDU pendant 20secondes (10 x 2sec) , il va commencer à essayer de changer la topologie STP. Cette intervalle de temps s’appelle le « MaxAge« .

Lorsque que la topologie STP commence à changer et que cela nécessite qu’un port précédemment en mode Blocking doit passer en mode Forwarding. Il va passer dans les stades d’écoute (Listening) et d’apprentissage (Learning).

Dans le guide officiel du CCNA 200-125 , nous pouvons trouver ce tableau :

Il nous indique que les états Blocking , Forwarding et Disable (shutdown, éteint) sont des états stable et que les états Listening et Learning sont des états transitoires. Chacun de ses états transitoires durent 15 secondes.

Il va falloir 50 secondes (20+15+15) à notre topologie STP afin de palier à une panne réseau.

Ce temps est beaucoup trop important. Le protocole RSTP (Rapid STP) est né.

 

 

Prochain Article : 02 – Protocole RSTP

Noël NICOLAS

Administrateur Réseau
10 ans d’expérience
CCNA Routing and Switching
Fondateur du site FingerInTheNet

14 thoughts on “Protocole STP”

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *