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 :
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 :
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 passante | Coût STP | Coût RSTP |
10 Mbps | 250 | 5.000.000 |
100 Mbps | 19 | 200.000 |
1 Gbps | 4 | 20.000 |
10 Gbps | 2 | 2.000 |
100 Gbps | 1 | 200 |
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#