User Tools

Site Tools


informatique:cisco:stp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatique:cisco:stp [2012/11/03 00:01] – modification externe 127.0.0.1informatique: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'éviter les boucles en établissant un chemin unique d'un point à un autre du réseau grâce à un algorithme d'arbre recouvrant (spanning tree). 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'éviter les boucles en établissant un chemin unique d'un point à un autre du réseau grâce à un algorithme d'arbre recouvrant (spanning tree).
  
-Les communications entre les commutateurs se font par des paquets appelés BPDUs, qui sont notamment composés du "bridge priority" sur 2 octets suivi de la MAC adresse du commutateur qui parle (donc au total 2 + 6 = 8 octets). Ces 8 octets forment le BID (bridge ID) et servent à déterminé qui sera le **root bridge**. **La priorité la plus basse est la meilleure** ; à priorité égale, le switch qui a la plus petite @ MAC devient le root bridge. A partir de son élection, tous les autres switchs du réseau vont déterminer le chemin le plus court vers celui-ci, en additionnant les coûts des liens traversés :+Les communications entre les commutateurs se font par des paquets appelés BPDUs, qui sont notamment composés du "bridge priority" sur 2 octets suivi de la MAC adresse du commutateur qui parle (donc au total 2 + 6 = 8 octets). Ces 8 octets forment le BID (bridge ID) et servent à déterminer qui sera le **root bridge**. **La priorité la plus basse est la meilleure** ; à priorité égale, le switch qui a la plus petite @ MAC devient le root bridge. A partir de son élection, tous les autres switchs du réseau vont déterminer le chemin le plus court vers celui-ci, en additionnant les coûts des liens traversés :
  
   * 100 pour 10 Mbps   * 100 pour 10 Mbps
Line 21: Line 21:
 ====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'**extended system ID**, c'est à dire qu'on transforme le champ "bridge priority" sur 16 bits en 4 bit de bridge priority + 12 bits codant le VLAN ID (ne pas modifier la taille globale permet une compatibilité ascendante). 4 bits pour configurer la priorité c'est 2^4 = 16 possibilités ; et en tenant compte du poids de ces 4 bits dans le champ de 16 bits, cela donne les valeurs décimales suivantes pour la priorité : 4096, 8192, etc... jusqu'à 61440).+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'**extended system ID**, c'est à dire qu'on transforme le champ "bridge priority" de 16 bits en 4 bit de bridge priority + 12 bits codant le VLAN ID (ne pas modifier la taille de ce champ permet une compatibilité ascendante). 4 bits pour configurer la priorité c'est 2^4 = 16 possibilités ; et en tenant compte du poids (fort) de ces 4 bits dans le champ de 16 bits, cela donne les valeurs décimales suivantes pour la priorité : 4096, 8192, etc... jusqu'à 61440 (ce sont ces chiffres qui apparaissent donc comme priorité dans les configurations des commutateurs).
  
 Contenu d'un BPDU : Contenu d'un BPDU :
 <code bash> <code bash>
 Sans activer l'extended system-id : 2^16 valeurs pour configurer la priorité : Sans activer l'extended system-id : 2^16 valeurs pour configurer la priorité :
-+-------------------------------------------------------------------------+----------------------------+++-------------------------------------------------------------------------+---------------//----------+
 | Bridge-ID : 2 octets                                                    | @ MAC du switch : 6 octets | | Bridge-ID : 2 octets                                                    | @ MAC du switch : 6 octets |
-+-------------------------------------------------------------------------+----------------------------+++-------------------------------------------------------------------------+---------------//-----------+
  
 En activant l'extended system-id : 2^4 valeurs pour coder la priorité + 12 bits codant le VLAN ID En activant l'extended system-id : 2^4 valeurs pour coder la priorité + 12 bits codant le VLAN ID
-+--------------------------+----------------------------------------------+----------------------------+++--------------------------+----------------------------------------------+---------------//-----------+
 | 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 |
-+--------------------------+----------------------------------------------+----------------------------+++--------------------------+----------------------------------------------+---------------//-----------+
 </code> </code>
  
Line 44: Line 44:
 spanning-tree extend system-id spanning-tree extend system-id
  
-# je configure une priorité de 4096 (en décimal : "0001" sur les 4 bits de poids fort) pour le VLAN 100 et 8192 pour le VLAN 200+# je configure une priorité de 4096 (en décimal : "0001" sur les 4 bits 
 +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
 </code> </code>
  
-Ma priorité (la valeur des 2 octets du champ "bridge priority" de mes BPDUs) sera différente pour chaque VLAN (normal, c'est du PVST) :+La priorité du commutateur (la valeur des 2 octets du champ "bridge priority" de mes BPDUs = Bridge Priority + Extended System) sera différente pour chaque VLAN (normal, c'est du PVST !) :
   * 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 58: Line 59:
 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 :
-''spanning-tree bpduguard enable''+<code bash> 
 +spanning-tree bpduguard enable 
 +</code>
  
-NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale ''spanning-tree portfast bpduguard default''+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 
 +</code>
  
 ====STP BPDU filter==== ====STP BPDU filter====
  
-''spanning-tree bpdufilter enable'' permet d'ignorer les BPDUs venant de cette interface (drop) sans pour autant la désactiver.+Il permet d'ignorer les BPDUs venant de cette interface (drop) sans pour autant la désactiver. 
 +<code bash> 
 +spanning-tree bpdufilter enable 
 +</code>
  
-NB : on peut activer par défaut sur tous les ports __configurés en portfast__ avec la commande globale ''spanning-tree portfast bpdufilter default''.+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 
 +</code>
  
 ====STP Root Guard==== ====STP Root Guard====
Line 73: Line 85:
  
 Pour activer le root guard, on se met en config-if : Pour activer le root guard, on se met en config-if :
-''spanning-tree guard root''+<code bash> 
 +spanning-tree guard root 
 +</code>
  
 http://www.cisco.com/warp/public/473/74.html http://www.cisco.com/warp/public/473/74.html
  
 ====Loop guard==== ====Loop guard====
 +
 Le **loop guard** est une sécurité supplémentaire pour éviter les boucles ST. Lorsqu'un port "blocking" cesse de recevoir des BPDUs, il passe normalement aux états listening-learning et forwarding. Si le loop guard est activé, ce dernier passera à l'état loop-inconsistent blocking et le message suivant sera écrit dans les logs : Le **loop guard** est une sécurité supplémentaire pour éviter les boucles ST. Lorsqu'un port "blocking" cesse de recevoir des BPDUs, il passe normalement aux états listening-learning et forwarding. Si le loop guard est activé, ce dernier passera à l'état loop-inconsistent blocking et le message suivant sera écrit dans les logs :
  
Line 249: Line 264:
 show spanning-tree mst configuration show spanning-tree mst configuration
 show spanning-tree mst show spanning-tree mst
 +</code>
 +
 +
 +=====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.
 </code> </code>
informatique/cisco/stp.1351900913.txt.gz · Last modified: 2013/10/14 20:52 (external edit)