Skip to main content

Configuration du STP

Spanning Tree Protocol

Introduction

Le Spanning Tree est un protocole qui permet d'éviter les boucles réseau.

Par défaut, le Spanning Tree est activé sur tous les switchs Cisco. 

switch#sh run | include spanning-tree
spanning-tree mode pvst
spanning-tree extend system-id
switch#

Pour l'exemple, je vais utiliser le schéma ci-dessous :

cisco-stp-1.png

Je possède de 3 switchs, un 3750, un 3550 et un 2960. Je les ai relié entre eux comme ci-dessus.

Comme le STP est activé par défaut, nous voyons que le port 1/0/23 du 3750 a été shutdown par le STP pour éviter une boucle réseau.

Dans cette configuration, le 3550 a été élu RootBridge. Mais comment se déroule cette élection ? 

Par défaut, les switchs ont tous la même priorité qui est de 32769 donc ils sont tous égaux.

3750#sh spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    32769
             Address     000e.83c5.be80

Quand les priorités des switchs sont les mêmes, l'élection va se baser sur la plus petite adresse mac. Dans mon cas c'est le 3550 qui a la plus petite donc qui gagne le rôle de RootBridge.

Le 2960 n'a pas de liaison active vers le 3750, donc les flux doivent passer par le 3550 pour atteindre le 3750.

Au niveau des switch :

3750#sh spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    32769
             Address     000e.83c5.be80
             Cost        19
             Port        26 (FastEthernet1/0/24)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     2037.0606.7480
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa1/0/23         Altn BLK 19        128.25   P2p
Fa1/0/24         Root FWD 19        128.26   P2p

3750#
2960#sh spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    32769
             Address     000e.83c5.be80
             Cost        19
             Port        7 (FastEthernet0/7)
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     0027.0c3a.fc00
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/7               Root FWD 19        128.7    P2p
Fa0/8               Desg FWD 19        128.8    P2p


2960#
3550#sh spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    32769
             Address     000e.83c5.be80
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    32769  (priority 32768 sys-id-ext 1)
             Address     000e.83c5.be80
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time  300 sec

Interface           Role Sts Cost      Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Fa0/23              Desg FWD 19        128.23   P2p
Fa0/24              Desg FWD 19        128.24   P2p


3550#

Ici nous avons les informations :

  • Les deux ports du 3550 sont en mode DESG "Désigné"
  • Le port 0/7 du 2960 est en mode ROOT et le 0/8 en DESG
  • Le port 1/0/24 du 3750 est en mode ROOT et le 1/0/23 en ALTN "Alternatif" 

Les ports qui font face au switch RootBridge sont automatiquement en mode ROOT.

Nous apprenons aussi que le switch 3550 est le RootBridge [This bridge is the root] . 

Dans cette configuration, si le câble RJ45 entre les switch 3550 et 2960 est déconnecté, le rétablissement du port 1/0/23 du 3750 va prendre un certain temps. Cependant, nous pouvons accélérer le processus.

Mode rapid-pvst

Afin de rendre le processus Spanning Tree plus rapide, nous allons mettre en place le protocole Rapid PVST.

Cette commande sera à passer sur tous les switchs

Switch(config)#spanning-tree mode rapid-pvst

Une fois le rapid-pvst activé, le rétablissement de port alternatif prend maximum 15sec

Mode port-fast

Nous pouvons désactiver le STP sur les ports où sont connectés les PC / Serveur pour éviter que le port mette 30sec à monter.

switch#conf t
switch(config)#interface fastEthernet 0/1
switch(config-if)#spanning-tree portfast
%Warning: portfast should only be enabled on ports connected to a single
 host. Connecting hubs, concentrators, switches, bridges, etc... to this
 interface  when portfast is enabled, can cause temporary bridging loops.
 Use with CAUTION

%Portfast has been configured on FastEthernet1/0/1 but will only
 have effect when the interface is in a non-trunking mode.
Storm Control

Il existe une fonctionnalité qui permet de limiter les tempêtes de broadcast.

Cette commande permet de limiter à 10% la bande passante utilisée par le broadcast

switch(config)#interface FastEthernet 0/1
switch(config-if)#storm-control broadcast level 10

En cas d'excès de broadcast, nous pouvons bloquer le port en question

switch(config)#interface FastEthernet 0/1
switch(config-if)#storm-control action shutdown

Avec cette commande, le trafic de broadcast sera bloqué s’il dépasse 30%, et ne sera autorisé à nouveau que s’il tombe en dessous de 10%

switch(config)#interface FastEthernet 0/1
switch(config-if)#storm-control broadcast level 30 10
Choisir le switch RootBridge
switch#conf t
switch(config)#spanning-tree vlan 1 root primary
switch(config)#do show run | include priority
spanning-tree vlan 1 priority 24576
switch(config)#

On peut aussi fixer la priorité à la main

switch(config)#spanning-tree vlan 1 priority 4096

Je viens de passer le 3750 RootBrigde, voici ce qu'il ce passe :

cisco-stp-2.pngcisco-stp-3.png

Le 3750 est bien passé RootBridge et sa priorité est passée de 32769 à 24576

switch#show run | include priority
spanning-tree vlan 1 priority 24576
Coût des interfaces
Bande passanteCoût STPCoût RSTP
10 Mbps2505.000.000
100 Mbps19200.000
1 Gbps420.000
10 Gbps22.000
100 Gbps1200

Encore une fois avec la commande show spanning-tree, nous pouvons voir le coût des interfaces.

3750#sh spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    24577
             Address     2037.0606.7480
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)
             Address     2037.0606.7480
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa1/0/23         Desg FWD 19        128.25   P2p
Fa1/0/24         Desg FWD 19        128.26   P2p

3750#

Mes deux liens sont en 100 Mbps ce qui correspond à un coût de 19.

Nous pouvons modifier ce coût avec la commande 

switch#conf t
switch(config)#interface FastEthernet 1/0/23
switch(config-if)#spanning-tree cost 50
switch(config-if)#exit

résultat :

3750#sh spanning-tree

VLAN0001
  Spanning tree enabled protocol rstp
  Root ID    Priority    24577
             Address     2037.0606.7480
             This bridge is the root
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec

  Bridge ID  Priority    24577  (priority 24576 sys-id-ext 1)
             Address     2037.0606.7480
             Hello Time   2 sec  Max Age 20 sec  Forward Delay 15 sec
             Aging Time 300

Interface        Role Sts Cost      Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa1/0/23         Desg FWD 50        128.25   P2p
Fa1/0/24         Desg FWD 19        128.26   P2p

3750#
BPDU "Bridge Protocol  Data Unit"

Les trames BPDU sont utilisées par le STP pour vérifier l'état des liens entre les switchs. Elle ne sont cependant pas utiles sur les ports faisant face à des machines. 

En activant le BPDU Guard sur un port, ce dernier va se désactiver s’il reçoit une trame BPDU.

switch#conf t
switch(config)#interface fastEthernet 0/1
switch(config-if)#spanning-tree bpduguard enable

Nous pouvons aussi désactiver l'envoie de trames 

switch#conf t
switch(config)#interface fastEthernet 0/1
switch(config-if)#spanning-tree bpdufilter enable
Commandes utiles
3750#sh spanning-tree summary
Switch is in rapid-pvst mode
Root bridge for: VLAN0001
EtherChannel misconfig guard is enabled
Extended system ID           is enabled
Portfast Default             is disabled
PortFast BPDU Guard Default  is disabled
Portfast BPDU Filter Default is disabled
Loopguard Default            is disabled
UplinkFast                   is disabled
BackboneFast                 is disabled
Configured Pathcost method used is short

Name                   Blocking Listening Learning Forwarding STP Active
---------------------- -------- --------- -------- ---------- ----------
VLAN0001                     0         0        0          3          3
---------------------- -------- --------- -------- ---------- ----------
1 vlan                       0         0        0          3          3
3750#