LE PROTOCOLE SPANNNG TREE (STP)
1- Fonctionnement d’un Switch
L’architecture est montée avec au centre un switch et les segments A, B et C
qui lui sont connectés.
L’ordinateur A sur le segment A, l’ordinateur B sur le segment B et
l’ordinateur C sur le segment C.
Un ordinateur A (nœuds A) dans le premier segment envoies les données sur
l’ordinateur présent sur un autre segment (segment B).
Le switch prend ce premier paquet du nœud, il lit l’adresse MAC et comme il
ne la connait pas, il la sauve dans sa lookup. Le switch A sait maintenant que le
nœud A se trouve sur le segment A. cette étape s’appelle L’apprentissage.
Vu que le switch ne sait pas où se trouve le nœuds B, il va se comporter
comme un hub et envoies le paquet a toutes les interfaces du réseau (segments B
et C). C’est l’étape d’inondation.
Le nœuds B tout comme le nœuds C reçoit le paquet et répond au nœuds A.
Le nœuds C voyant que le paquet ne lui ai pas destinés, il l’ignore où le détruit
Certes le message est bien arrivé au nœuds B mais cela résulte d’une
saturation énorme du réseau. Dans le cas d’un réseau à grande échelle les choses
s’empiront comme l’illustre la figure suivante.
SWITCH A SWITCH B
NŒUDS A
NOEUDS B
SWITCH C
La figure ci-dessus représente une forme nette d’application du
fonctionnement d’un switch lors de la première communication. Nous
remarquons alors qu’il y a une boucle infinie entre les différents switchs du
réseau et cet envoies de trames conduira à la congestion du réseau et rendra le
réseau défaillant. C’est pour résoudre ce probleeme que le protocole STP(arbre
recouvrant) a vu le jour.
2- C’EST QUOI LE PROTOCOLE STP ?
En s’illustrant de la figure ci-dessus, nous allons expliquer ce que c’est
qu’une boucle et quel sera alors l’utilité du protocole STP.
Si le nœud A veut transmettre un paquet vers le nœuds B, il envoie le paquet
vers le switch A (flèche orange) qui ne sais pas où se trouve le nœuds B. Il
inonde donc le réseau en envoyant le paquet vers les switchs B et C (flèches
vertes). Le switch C fait suivre ce paquet à B qui le reçoit donc une fois par le
switch C, et une fois par le switch A. Comme le switch B ne sait pas où se
trouve le nœuds B, il renvoie le paquet reçu par le switch C vers le segment où
se trouve le nœuds B (flèche violète), et vers le switch A (flèche rouge). Et pour
le paquet envoyé par le switch A, il est envoyé au nœuds B (flèche noire) et vers
le switch C (flèche bleue).
Le paquet est bien reçu par le nœuds B, mais il résulte de cet envoie une
tempête de broadcasts qui peut rapidement congestionner le réseau. Pour
résoudre ce problème, il est nécessaire d’utiliser le spanning tree.
Le but du « spanning tree protocol » est d’éliminer les boucles dans un réseau
informatique.
De plus cet algorithme élit un pont unique : le pont racine. A cette fin, les
ponts se transmettent des trames spéciales appelées BPDU (BRIDGE
PROTOCOL DATA UNIT) ou trame de configuration.
Les trames de configuration BPDU
Une BPDU est transmise par un pont sur un port. Elle est reçue et interprétée
par tous les ponts reliés au réseau local. Une BPDU est constituée comme suite
Identité du pont Distance a la Identité su pont Numéro du pont
racine racine émetteur
Fonctionnement de l’algorithme d’arbre recouvrant.
Chaque switch lance une découverte du réseau pour choisir le meilleur à
utiliser pour contacter les différents segments. Cette information est partagée
entre tous les switchs grâce a des trames réseaux spécifiques. Ce sont les PBDU
constituées de la façon suivante :
- Root BID : c’est l’identité du switch racine
- Le cout du chemin vers le switch root : il détermine à quelle distance se
trouve le switch racine par rapport au switch qui a envoyé la trame.
- Le BID de l’émetteur : c’est l’identité du switch émetteur
- L’identité du port : c’est le port utilisé par lequel le switch qui a envoyé
initialement la BPDU.
NB : Tous les switchs envoient régulièrement les BPDU entre eux pour
recalculer les meilleurs chemins.
Lorsqu’un switch reçoit une BPDU qui propose un meilleur chemin que celle
qu’il est en train d’envoyer pour le même chemin, il arrête son broadcast. A la
place, il stocke la BPDU de l’autre switch comme référence et la renvoie en
broadcast aux autres sous-segments., plus éloigné encore du switch root.
Le switch root est choisi après échange du BPDU entre les switchs.
Initialement, chaque switch se considère comme un switch root.
Comment s’effectue alors le choix du switch root puisqu’il ne peut u en avoir
qu’un seul ? Lorsqu’un switch reçoit la BPDU avec un nouveau ID racine, il
compare cette valeur avec celle qu’il avait déjà en mémoire. Di le nouveau ID
racine à une valeur moins élevée, il prendra cette nouvelle valeur et mettra donc
à jour sa table conséquente.
Les autre switchs calculent alors par quel port ils veulent contacter le switch
root en passant par le chemin le plus court. Ce port l’est alors appelé port root, et
chaque switch en définit un (sauf le switch root)
En suite les switchs définissent un unique port, le port désigné, par lequel les
données seront reçues et émises sur un segment, et donc quel switch possèdera
ce port pour un segment donné. Ainsi chaque segment a un seul et unique port
désigné, et donc une seule et unique porte de communication avec le reste du
réseau, ce qui empêche la présence d’une boucle logique. Comme l’on peut s’en
douter, le port désigné est choisi pour son faible cout de chemin par rapport aux
autres chemins possibles pour y accéder. Si plusieurs chemins ont le même cout
le plus bas, alors c’est le switch avec l’ID racine le plus faible qui est choisi.
Etant donné que tous les segments qui sont connectés au switch root ont un
chemin nul, tous les ports de ce chemin sont des ports désignés. En ce qui
concerne les autres switchs , le cout des chemins sont comparés pour un
segments donné.
Une fois choisi le port desiqné pour un segment donné, tous les autres ports
connectés à ce même segment deviennent des ports non-désignés. Ils bloqueront
tout trafic voulant passer par ces ports.
Chaque switch possède une table BPDU qui est constamment mise à jour. Le
réseau est maintenant configuré avec un unique spanning tree. Le switch root
sert donc de tronc, et tous les autre switchs de branches. Tous les switchs
communiquent avec le switch racine par leurs ports root, et au travers de chaque
port désigné pour chaque segment traversé. Donc l’arbre ne représente pas de
boucle.
Dans le cas où le switch root soit défaillant, le STP permet aux autres switchs
de reconfigurer le réseau pour définir une nouvelle architecture logique autour
d’un nouveau switch root élu. Ce processus permet à une entrepris d’obtenir un
réseau complexe mais tolérant aux pannes et avec une maintenance élevée.