CCNA 200-301 · Switching

Le protocole STP (Spanning-Tree Protocol)

Le Spanning-Tree évite les boucles dans un LAN redondant. Élection du root bridge, rôles et états des ports, calcul du coût administratif : tout le STP expliqué avec schémas.

Introduction

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 tous mais ne traite que les trames STP

Pour prendre ce type de décision, il va falloir que tous 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, ils vont dans un premier temps devoir élire un chef !!

Le Chef sera appelé le root-bridge !

Élection des bridges

Comment le root bridge est-il élu ?

Grâce au Bridge ID (BID).

Comment est généré le Bridge-ID ?

Le Bridge ID est généré automatiquement par nos switchs. Il est composé de 2 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, …, 57344 ou 61440)
  • par défaut : 32 768

MAC Address

  • sur 6 octets
  • correspond à l’adresse MAC de notre switch

Quel est le rôle des trames BPDU ?

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 a la même valeur de bridge priority, ils vont chercher qui a 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 primordial 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, tous les liens vont se mettre soit en forwarding, soit en blocking, en suivant la logique suivante :

Protocole STP - Root Bridge
Protocole STP – Root bridge
  • Tous les ports du switch « root bridge » (#chef) vont être obligatoirement dans l’état forwarding
  • Le port de chaque « non root bridge » (#lesautresswitchs) qui a 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.

Comment les non-root bridge sont-ils élus ?

Les switchs qui ne seront pas ROOT-BRIDGE seront des NON-ROOT-BRIDGE 😉

Le rôle des ports dans une architecture STP

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 port, 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.

Comment se définit le root-port ?

L’élection du root-port va se dérouler de cette manière :

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

Comment se définissent les designated-port ?

Un port qui a le rôle de « designated port » est dans l’état forwarding. Tous les ports du root bridge (#chef) ont le rôle de « designated port ». Seules les liaisons entre « root port » et « designated port » seront actives.

Protocole STP - Designated port
Protocole STP – Designated port

Les autres liaisons posséderont un port en « designated port » et un port en « blocking port ». Afin de déterminer lequel des deux ports aura le rôle de « designated port », on va définir lequel des deux switchs possède :

  • 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
Protocole STP - Designated Port - Schéma 01
Protocole STP – Designated port – Schéma 01

Les autres ports seront dans l’état Blocking :

Protocole STP - Designated Port - Schéma 02
Protocole STP – Designated port – Schéma 02

Comment se définissent les blocking-port ?

C’est les autres ports.

Élection des rôles

Le coût administratif le plus bas

Nous avons vu plus haut que chaque switchs « non-root bridge » va mettre le port qui a 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 :

  • 10 Mbps = 100
  • 100 Mbps = 19
  • 1 Gbps = 4
  • 10 Gbps = 2
Étape 1 : le root bridge envoie une trame BPDU sur tous 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 est le coût des liaisons.

Protocole STP - Coût administratif - Schema 01
Protocole STP – Coût administratif – Schema 01

Maintenant, mettons sur ces architectures nos « root-port » :

Protocole STP - Coût administratif - Schema 02
Protocole STP – Coût administratif – Schema 02

Les switchs C et D ont trouvé un chemin plus court en passant respectivement vers B et E.

La valeur du Bridge ID la plus faible

Protocole STP - Bridge ID
Protocole STP – Bridge ID

Imaginons ce cas de figure : un de nos switchs reçoit sur deux de ses ports une trame BPDU possédant le même coût administrative. Du coup quelle liaison va-t-il choisir de mettre en mode Forwarding ?

Dans notre trame BPDU, nous avons vu plus haut que chaque switch intègre son Bridge ID.

Vu que le coût administratif est égal pour ces deux trames BPDU, notre switch va regarder la valeur du Bridge ID de ces deux trames et va décider de mettre en mode forwarding l’interface qui a reçu le BDPU avec le Bridge ID le plus faible.

Dans notre cas, tout notre Bridge ID ont une valeur par défaut.

Le switch B possède une adresse mac plus faible que le switch C. Le switch D va donc passer par le switch B afin d’atteindre le root bridge.

Le numéro de port le plus faible

Protocole STP - Numéro de port

Notre switch D reçoit deux trames BPDU sur 2 ports différents :

  • Les coûts administratifs sont égaux
  • Les bridges ID sont égaux (vu qu’ils proviennent du même switch).

Notre switch va donc devoir choir une liaison a mettre en forwarding et l’autre en blocking.

Le numéro de port le plus faible sera mis en actif.

État des ports STP

É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 a pris la décision de bloquer ce port pour éviter une boucle, il reçoit et traite toujours les trames BPDU qu’il reçoit)
  • 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
Etats des ports STP
États des ports STP

Communication STP

Nos switchs échanges des informations concernant le STP via des trames BPDU (Bridge Protocol Data Units). Il existe 2 types 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 tous ses ports.

En cas de panne

Afin de maintenir notre architecture à jour et à prêt à basculer en cas de panne, le « root bridge » envoie sur tous ses ports et toutes 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 siens et retransmet cette trame sur tous ses ports « designated port ».

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

Lorsque la topologie STP commence à changer et que cela nécessite qu’un port précédemment en mode blocking doive 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 :

Tableau des états STP - guide CCNA

Il nous indique que les états blocking, forwarding et disable (shutdown, éteint) sont des états stables et que les états listening et learning sont des états transitoires. Chacun de ses états transitoires dure 15 secondes.

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

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

Questions fréquentes sur le protocole STP

À quoi sert le protocole STP ?

Le protocole STP (Spanning Tree Protocol) sert à éviter les boucles de commutation dans un réseau Ethernet redondant. Il bloque logiquement certains liens pour ne garder qu’un seul chemin actif entre deux points, tout en conservant les liens de secours en cas de panne.

Comment se déroule l’élection du root bridge ?

Chaque switch possède un Bridge ID (priorité + adresse MAC). Le switch ayant le Bridge ID le plus faible devient le root bridge. En cas d’égalité de priorité, c’est l’adresse MAC la plus basse qui départage.

Quels sont les rôles des ports en STP ?

On distingue le Root Port (chemin le plus court vers le root bridge), le Designated Port (port désigné sur chaque segment) et le Blocking/Non-Designated Port (port bloqué pour éviter les boucles).

Quels sont les états des ports STP ?

Un port STP passe par les états : Blocking (bloqué), Listening (écoute), Learning (apprentissage), puis Forwarding (transmission). En STP classique, la convergence prend environ 30 à 50 secondes.

Quelle différence entre STP et RSTP ?

RSTP (Rapid Spanning Tree Protocol, 802.1w) est une évolution de STP qui converge beaucoup plus vite (quelques secondes au lieu de 30 à 50). Il reste compatible avec STP mais utilise des états et des rôles de ports simplifiés.

Portrait d'Eric Jouffrion, contributeur du site FingerInTheNet

Eric JOUFFRILLON

Co-auteur de l'article

Expert SATCOM
Technicien Réseau
17 ans d’éxpérience déploiement réseau SATCOM
Spécialisé LFN (Long Fat Network).Diffusion vidéo et QOS.

Photo en noir et blanc de Noël Nicolas

Noël NICOLAS

Auteur de l'article

Expert Réseau
15 ans d’expérience
CCNP Routing and Switching
Fondateur du site FingerInTheNet

Formation CCNA 200-301Formation CCNA

Devenez certifié CCNA 200-301

La formation complète Cisco, à votre rythme et accès à vie.

Voir la formation →