informatique:cisco:stp
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:cisco:stp [2011/05/31 13:46] – Extended System ID pteu | informatique:cisco:stp [2016/02/15 15:41] (current) – [STP Root Guard] pteu | ||
---|---|---|---|
Line 5: | Line 5: | ||
Le **Spanning-Tree Protocol** ou **CST** (Common Spanning-Tree) est un protocole de niveau 2 normalisé par l'IEEE en tant que **802.1D**. Il permet de découvrir la topologie du réseau, d'en détecter les changements et d' | Le **Spanning-Tree Protocol** ou **CST** (Common Spanning-Tree) est un protocole de niveau 2 normalisé par l'IEEE en tant que **802.1D**. Il permet de découvrir la topologie du réseau, d'en détecter les changements et d' | ||
- | Les communications entre les commutateurs se font par des paquets appelés BPDUs, qui sont notamment composés du " | + | Les communications entre les commutateurs se font par des paquets appelés BPDUs, qui sont notamment composés du " |
* 100 pour 10 Mbps | * 100 pour 10 Mbps | ||
Line 13: | Line 13: | ||
On peut influer sur l' | On peut influer sur l' | ||
- | | + | <code bash> |
- | Switch(config-if)# | + | Switch(config)# |
+ | Switch(config-if)# | ||
+ | </ | ||
====Extended System ID==== | ====Extended System ID==== | ||
- | Pour les commutateurs qui utilisent le Per-VLAN STP, il faut distinguer chaque BPDU par VLAN ; on utilise donc dans ce cas l' | + | Pour les commutateurs qui utilisent le **Per-VLAN STP** (= constituer un arbre recouvrant pour chaque VLAN), il faut distinguer chaque BPDU en fonction de son VLAN ; on utilise donc dans ce cas l' |
Contenu d'un BPDU : | Contenu d'un BPDU : | ||
<code bash> | <code bash> | ||
Sans activer l' | Sans activer l' | ||
- | +-------------------------------------------------------------------------+----------------------------+ | + | +-------------------------------------------------------------------------+---------------//----------+ |
| Bridge-ID : 2 octets | | Bridge-ID : 2 octets | ||
- | +-------------------------------------------------------------------------+----------------------------+ | + | +-------------------------------------------------------------------------+---------------//-----------+ |
En activant l' | En activant l' | ||
- | +--------------------------+----------------------------------------------+----------------------------+ | + | +--------------------------+----------------------------------------------+---------------//-----------+ |
| Bridge Priority : 4 bits | Extended System ID : 12 bits (= VLAN ID) | @ MAC du switch : 6 octets | | | Bridge Priority : 4 bits | Extended System ID : 12 bits (= VLAN ID) | @ MAC du switch : 6 octets | | ||
- | +--------------------------+----------------------------------------------+----------------------------+ | + | +--------------------------+----------------------------------------------+---------------//-----------+ |
</ | </ | ||
Line 42: | Line 44: | ||
spanning-tree extend system-id | spanning-tree extend system-id | ||
- | # je configure une priorité de 4096 (en décimal : " | + | # je configure une priorité de 4096 (en décimal : " |
+ | # de poids fort du champs de 16 bits) pour le VLAN 100 et 16384 pour le VLAN 200 | ||
spanning-tree vlan 100 priority 4096 | spanning-tree vlan 100 priority 4096 | ||
spanning-tree vlan 200 priority 16384 | spanning-tree vlan 200 priority 16384 | ||
</ | </ | ||
- | Ma priorité (la valeur des 2 octets du champ " | + | La priorité |
* pour le VLAN 100 elle vaudra (en décimal) 4096 + 100 = 4196 | * pour le VLAN 100 elle vaudra (en décimal) 4096 + 100 = 4196 | ||
* pour le VLAN 200 elle vaudra (en décimal) 16384 + 200 = 16584 | * pour le VLAN 200 elle vaudra (en décimal) 16384 + 200 = 16584 | ||
Line 53: | Line 56: | ||
====STP BPDU Guard==== | ====STP BPDU Guard==== | ||
+ | |||
Désactive le port sur lequel il reçoit des BPDUs si le portfast est activé sur le port. Il faut réactiver manuellement le port. | Désactive le port sur lequel il reçoit des BPDUs si le portfast est activé sur le port. Il faut réactiver manuellement le port. | ||
Pour activer le BPDU guard, on se met en config-if : | Pour activer le BPDU guard, on se met en config-if : | ||
- | '' | + | <code bash> |
+ | spanning-tree bpduguard enable | ||
+ | </ | ||
- | NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale | + | NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale |
+ | <code bash> | ||
+ | spanning-tree portfast bpduguard default | ||
+ | </ | ||
====STP BPDU filter==== | ====STP BPDU filter==== | ||
- | '' | ||
- | NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale | + | Il permet d' |
+ | <code bash> | ||
+ | spanning-tree bpdufilter enable | ||
+ | </ | ||
+ | |||
+ | NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale | ||
+ | <code bash> | ||
+ | spanning-tree portfast bpdufilter default | ||
+ | </ | ||
====STP Root Guard==== | ====STP Root Guard==== | ||
+ | |||
Désactive le port si un BPDU de plus faible priorité est reçu (= si le switch de l' | Désactive le port si un BPDU de plus faible priorité est reçu (= si le switch de l' | ||
Pour activer le root guard, on se met en config-if : | Pour activer le root guard, on se met en config-if : | ||
- | '' | + | <code bash> |
+ | spanning-tree guard root | ||
+ | </ | ||
http:// | http:// | ||
====Loop guard==== | ====Loop guard==== | ||
+ | |||
Le **loop guard** est une sécurité supplémentaire pour éviter les boucles ST. Lorsqu' | Le **loop guard** est une sécurité supplémentaire pour éviter les boucles ST. Lorsqu' | ||
- | | + | <code bash> |
+ | SPANTREE-2-LOOPGUARDBLOCK: | ||
+ | </ | ||
Lorsque le port recevra à nouveau des BPDUs, il se débloquera automatiquement. | Lorsque le port recevra à nouveau des BPDUs, il se débloquera automatiquement. | ||
Line 82: | Line 104: | ||
Permet à un switch de basculer rapidement sur un port alternatif vers le root bridge lorsque son root port tombe. Typiquement, | Permet à un switch de basculer rapidement sur un port alternatif vers le root bridge lorsque son root port tombe. Typiquement, | ||
- | | + | <code bash> |
+ | (config-if)# | ||
+ | </ | ||
C'est une fonctionnalité qui est reprise dans le RST. | C'est une fonctionnalité qui est reprise dans le RST. | ||
Line 91: | Line 115: | ||
Cette fonctionnalité Cisco au switch de détecter la perte du root port de son voisin quand il reçoit des BPDUs inférieurs de sa part, ceci avant le Max age (qui est de 20 secondes) et de provoquer une renégociation ST immédiate. | Cette fonctionnalité Cisco au switch de détecter la perte du root port de son voisin quand il reçoit des BPDUs inférieurs de sa part, ceci avant le Max age (qui est de 20 secondes) et de provoquer une renégociation ST immédiate. | ||
- | | + | <code bash> |
+ | (config-if)# | ||
+ | </ | ||
=====RST===== | =====RST===== | ||
- | Le **Rapid Spanning-Tree** (normalisé **802.1w**) est une modification du ST qui permet une convergence bien plus rapide que le standart | + | Le **Rapid Spanning-Tree** (normalisé **802.1w**) est une modification du ST qui permet une convergence bien plus rapide que le standard |
Par rapport au simple ST, le RST apporte un état supplémentaire : | Par rapport au simple ST, le RST apporte un état supplémentaire : | ||
Line 101: | Line 128: | ||
Cependant les IOS actuels affichent l' | Cependant les IOS actuels affichent l' | ||
- | | + | <code bash> |
+ | Po22 Altn BLK 1 | ||
+ | </ | ||
... ainsi que des rôles de ports supplémentaires : | ... ainsi que des rôles de ports supplémentaires : | ||
- | * **alternative** : c'est un port qui offre un chemin alternatif vers le root bridge ; il est à l' | + | * **alternate** : c'est un port qui offre un chemin alternatif vers le root bridge ; il est à l' |
* **backup** : c'est un port additionnel présent sur un switch désigné qui possède un lien redondant vers le segment sur le lequel il est désigné. C'est donc le cas quand un switch a 2 ports sur le même segment : si l'un devient le port désigné du segment, l' | * **backup** : c'est un port additionnel présent sur un switch désigné qui possède un lien redondant vers le segment sur le lequel il est désigné. C'est donc le cas quand un switch a 2 ports sur le même segment : si l'un devient le port désigné du segment, l' | ||
Line 123: | Line 151: | ||
États des ports (schémas trouvés chez [[http:// | États des ports (schémas trouvés chez [[http:// | ||
- | {{http://www.cisco.com/ | + | {{:informatique: |
- | {{http://www.cisco.com/ | + | {{:informatique: |
- | {{http://www.cisco.com/ | + | {{:informatique: |
- | {{http://www.cisco.com/ | + | {{:informatique: |
C'est actuellement cette version de ST qui est utilisée partout. Partout vous dis-je. | C'est actuellement cette version de ST qui est utilisée partout. Partout vous dis-je. | ||
Line 138: | Line 166: | ||
Le **Per VLAN Spanning-Tree** est une amélioration propriétaire de Cisco qui permet d' | Le **Per VLAN Spanning-Tree** est une amélioration propriétaire de Cisco qui permet d' | ||
- | Cependant son inconvénient est que ce n'est pas un standart | + | Cependant son inconvénient est que ce n'est pas un standard |
Comme ce protocole utilise une instance par VLAN, chaque BID doit contenir le numéro de VLAN : la priorité du STP (**bridge priority**, sur 16 bits) a été décomposée en 2 champs pour devenir l' | Comme ce protocole utilise une instance par VLAN, chaque BID doit contenir le numéro de VLAN : la priorité du STP (**bridge priority**, sur 16 bits) a été décomposée en 2 champs pour devenir l' | ||
Line 155: | Line 183: | ||
On active le RPVST : | On active le RPVST : | ||
- | | + | <code bash> |
- | Switch2(config)# | + | Switch1(config)# |
+ | Switch2(config)# | ||
+ | </ | ||
La priorité par défaut est de 32768 : on va déclarer le Switch1 en "root primaire" | La priorité par défaut est de 32768 : on va déclarer le Switch1 en "root primaire" | ||
- | | + | <code bash> |
- | Switch2(config)# | + | Switch1(config)# |
+ | Switch2(config)# | ||
+ | </ | ||
NB : quand on configure un switch en '' | NB : quand on configure un switch en '' | ||
On aurait pu gérer les priorités statiques à la main : | On aurait pu gérer les priorités statiques à la main : | ||
- | | + | <code bash> |
- | Switch2(config)# | + | Switch1(config)# |
+ | Switch2(config)# | ||
+ | </ | ||
Vérification : | Vérification : | ||
- | | + | <code bash> |
+ | Switch1#sh spanning-tree vlan 445 | ||
+ | </ | ||
=====MSTP===== | =====MSTP===== | ||
Line 194: | Line 229: | ||
On va créer 2 instances dans la région region1 avec un n° de révision de 1 : | On va créer 2 instances dans la région region1 avec un n° de révision de 1 : | ||
- | | + | <code bash> |
- | Switch(config-mst)# | + | Switch(config)# |
- | Switch(config-mst)# | + | Switch(config-mst)# |
- | Switch(config-mst)# | + | Switch(config-mst)# |
- | Switch(config-mst)# | + | Switch(config-mst)# |
- | Switch(config-mst)# | + | Switch(config-mst)# |
+ | Switch(config-mst)# | ||
+ | </ | ||
Puis on active le MST : | Puis on active le MST : | ||
- | | + | <code bash> |
+ | Switch(config)# | ||
+ | </ | ||
- | Chaque commutateur doit avoir la même configuration de région sous peine de ne pas pouvoir communiquer avec les autres commutateurs "régionnaux". | + | Chaque commutateur doit avoir la même configuration de région sous peine de ne pas pouvoir communiquer avec les autres commutateurs "régionaux". |
Pour réinitialiser la détection des protocoles ST, il faut passer la commande : | Pour réinitialiser la détection des protocoles ST, il faut passer la commande : | ||
- | | + | <code bash> |
+ | clear spanning-tree detected-protocols | ||
+ | </ | ||
Dans certains cas (à déterminer) il faut passer la directive suivante sur les interfaces physiques reliées à certains commutateurs : | Dans certains cas (à déterminer) il faut passer la directive suivante sur les interfaces physiques reliées à certains commutateurs : | ||
- | | + | <code bash> |
+ | Switch(config-if)# | ||
+ | </ | ||
====Vérification==== | ====Vérification==== | ||
- | | + | <code bash> |
- | show spanning-tree mst | + | show spanning-tree mst configuration |
+ | show spanning-tree mst | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Désactiver le STP===== | ||
+ | |||
+ | On peut désactiver le Spanning-tree sur un VLAN donné (par ex. le 2) avec la commande : | ||
+ | <code bash> | ||
+ | no spanning-tree vlan 2 | ||
+ | |||
+ | # vérification | ||
+ | show spanning-tree vlan 2 | ||
+ | Spanning tree instance(s) for vlan 2 does not exist. | ||
+ | </ |
informatique/cisco/stp.txt · Last modified: 2016/02/15 15:41 by pteu