Le but de spanning-tree est d'éviter le bouclage de trames, tempêtes de broadcast, instabilité des tables de forwarding MAC sur des réseaux redondants de switches.
Afin de résoudre les problèmes énoncés ci-dessus, il faut à partir d'un réseau
redondant former un réseau non bouclé.
Spanning-tree répond à cette exigence. Spanning-tree est définit par le standard
IEEE 802.1d-1998. 802.1d fonctionne sur une instance unique (un seul VLAN).
Afin d'éviter les boucles, le processus spanning-tree place les ports des switches dans un
état, soit 'FORWARDING', soit 'BLOCKING'.
En état 'FORWARDING', le switch forwarde les trames ethernet et
suit son processus normal d'apprentissage de sa table de forwarding.
En état 'BLOCKING', le switch ne forwarde pas les trames ethernet et n'est
pas dans un état d'apprentissage. Néanmoins, le switch est toujours capable de
recevoir des trames appelées BPDU (Bridge Protocol Data Unit).
Le passage d'un état 'BLOCKING' à 'FORWARDING' d'un port ne peut s'opérer qu'en passant
par les états 'LISTENING' et 'LEARNING'.
L'état 'LISTENING' correspond à un état où la table de correspondance MAC/interface de sortie
va expirer.
L'état 'LEARNING' correspond à un état où le switch va remplir sa table de correspondance
MAC/interface de sortie, mais ne forwardera toujours pas de trame.
Le passage d'un état 'LISTENING' à 'LEARNING' et de 'LEARNING' à 'FORWARDING' se fait dans
un délai de 15s. Ce délai est appelé : Forward Delay.
Une fois que le processus spanning-tree est complètement déroulé, une topologie stable est établie.
Cette topologie reste stable tant que les message BPDU envoyés tous les 2s
(Hello BPDU) indiquent toujours le même état et que le time
Max Age(20s) n'est pas expiré. Si la topologie n'est plus stable,
le processus de résolution et de création d'un topologie non-bouclée peut commencer après
le délai Max Age(20s) (avec Max Age = 10 * Hello BPDU, soit 10 * 2s).
Le temps de convergence d'une topologie à une autre est donc d'environ : 10 * 2 + 15 + 15 = 50s.
Afin d'établir une topologie le processus spanning-tree effectue les étapes suivantes :
Etape 1:
Sélectionner le 'Root Bridge' au moyen de son BID(Bridge ID)
Tous les switches émettent des BPDU avec pour Root ID leur Bridge ID.
Le root ID indique le switch qui est la racine de la topologie.
Celui qui a le plus bas BID gagne l'élection. Une fois, le 'Root Bridge' élu, celui-ci continue
d'émettre des BPDU, alors que les autres switchs re-transmettent ces derniers.
Etape 2:
Ensuite, pour les switchs non-root, il faut élire un 'Root-port (RP)'. Ce port est le port qui reçoit les BPDU avec un root-path-cost le plus faible. Le root-path-cost est le coût indiqué dans le BPDU afin d'atteindre le Root Bridge. Depuis le Root Bridge, le path-cost est de 0. Chaque port selon son type possède
un coût.
Coûts révisés IEEE:
Vitesse | Coût |
10Mbits | 100 |
100Mbits | 19 |
1Gbits | 4 |
10Gbits | 2 |
sw3# debug spanning-tree events sw3# 00:22:06: %LINK-3-UPDOWN: Interface FastEthernet0/13, changed state to down 00:22:06: ST: FastEthernet0/13 vlan 1 -> blocking 00:22:06: ST: Max-age timer has expired on port FastEthernet0/13 vlan 1 00:22:06: ST: FastEthernet0/24 vlan 1 -> listening 00:22:07: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/13, changed state to down 00:22:08: ST: sent Topology Change Notice on FastEthernet0/24 vlan 1 00:22:21: ST: FastEthernet0/24 vlan 1 -> learning 00:22:36: ST: sent Topology Change Notice on FastEthernet0/24 vlan 1 00:22:36: ST: FastEthernet0/24 vlan 1 -> forwardingCeci est le résultat que l'on peut obtenir en débranchant la jarretière ethernet sur le port Fa0/13 sur le sw3.
Blocking -> Listening -> Learning -> Forwaring
sw3# cont f sw3(conf)# int fa0/13 sw3(conf-if)# spanning-tree vlan 1 cost 39 sw3(conf-if)#Si vous voyez une coquille n'hésitez surtout pas à me joindre...
RSTP (Rapid Spanning Tree Protocol)(802.1w) vient au secours du problème du temps de convergence très long de STP (50s). RSTP tient son nom du fait que les états 'LISTENING' et 'LEARNING' sont réduits au minimum et que Max Age est maintenant de 3 * Hello BPDU (6s). Le temps de convergence n'est plus maintenant que d'environ 6s.
Tout ce qui a été expliqué est vrai pour une instance unique du processus spanning-tree.
Ceci implique que le processus ne fonctionne pas pour plusieurs VLANs sur ces mêmes
trois switchs.
MST (Multiple Spanning Tree) vient au secours de ce genre de problème. Il est
issue du standard 802.1s. Les modes de trunking utilisés sont : 802.1Q et ISL.
Je n'ai pas parlé ici de PVST, PVST+, RPVST+, ceux-ci étant uniquement utilisé et définit par Cisco.