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#