# Réseau : Cours 2 : STP

## Introduction

SPT (Spanning Tree Protocole) est un protocole réseau de la couche 2 (norme IEEE 802.1D). Solution au problème des boucles dans les réseaux commutés comme Ethernet.

## Le problème

Pour aller d'un point à un autre un réseau Ethernet doit avoir deux chemin : un principal et un alternatif en cas de coupure du chemin principal / panne d'un switch (redondance).
Problème : cela crée des boucles qui génère des tempêtes de diffusion (broadcast storm) qui sature le réseau et finissent par le paralyser.

STP permet d'avoir un réseau redondant sans boucles.

## Solution

STP utilise des trames BPDU (Bridge Protocol Data Units) échangées toutes les 2 sec sur l'adresse multicast.
Les infos contenues dans la BPDU sont utilisées pour activer/desactiver des ports selon la topologie du réseau requise. Quand un switch/point est connecté il commence par envoyer des BPDU pour déterminer la topologie du résau avant de pouvoir transférer des données.

### Trois types de BPDU

- CBPDU (config) : utilisé pour le calcul du spanning tree
- TCN BPDU : utilisé pour annoncer les changements topologiques
- TCA BPDY : utilisé pour l'acquittemenet de changement de notification de la topologie

### Phases du protocole STP : 

- Election du commutateur racine (Root Bridge)
- Determination du port racine (Root Port) sur chaque switch
- Détermination du port désigné (Designated Port) sur chaque segment
- Blocage des autres ports

### Election du commutateur racine

Le root Bridge est choisi selon le Bridge Identifier (BID). Il est constitué de l'adresse MAC et de la priorité de ce switch (nombre codé sur 12 bits).
On peut configurer la priorité du switch.

Le switch avec la priorité la plus basse est élu Root Bridge, et en cas d'égalité on prend celui avec l'adresse MAC la plus basse.

### Détermination du port racine sur chaque commutateur

Chacun des switchs restants détermine ses ports actifs et un Root Port. Ce dernière est celui qui possède la distance la plus courte vers le Root Bridge. Le coût dépend de la bande passante de chaque lien.
En cas d'égalité c'est le port avec le Port ID le plus faible qui est élu.

### Détermination du Port désigné (Designated Port ou DP) sur chaque segment

Pour chaque segment réseau reliant des switchs, un DP est déterminé. C'est celui qui est relié le plus rapidement à la racine (somme total des couts des segments traversé la + petite).

### Blocage des autres ports

Les ports ni RP ni DP sont bloqués (BP : Blocked POrt). Un port bloquer peut recevoir des BPDU mais pas en émettre.

### Changements de topologie

Quand un lien est coupé l'algo est exécuté à nouveau et une nouvelle tpologie est mise en place.