È essenziale interpretare bene il codice prima di applicarlo al tuo progetto e se hai qualcosa da contribuire puoi commentarlo.
Soluzione:
Soluzione 1:
Si osservano i log degli switch per gli eventi di spanning tree o si configurano gli switch per inviare trap SNMP quando STP chiude una porta.
Soluzione 2:
Test. Se si vuole sapere che qualcosa funziona, lo si prova.
Una volta abilitato STP, programmare la manutenzione della rete e inserire un cavo in un loop. Se la rete funziona ancora, il loop è stato rilevato da STP. Se la rete si interrompe, allora STP non funziona.
Soluzione 3:
Spanning tree non ritiene che un loop sia un "errore". Sono parte del protocollo e troverà le porte che causano loop e quindi disabiliterà l'inoltro su di esse. Credo che si stia cercando di usare un protocollo per scoprire se esiste una certa condizione, ma questo non è il suo scopo principale. Una rete "ben progettata" può benissimo avere normalmente dei loop (per la ridondanza). Oltre ad attivare la registrazione dello stato di spanning-tree degli eventi (o l'equivalente sulla vostra piattaforma), pensate fuori dagli schemi. Un loop nella rete (se non disattivato dallo spanning tree) causerà grandi livelli di traffico in una tempesta di broadcast. Quindi, tracciate un grafico di questi livelli e, nella vostra piattaforma di monitoraggio, se notate un forte aumento del traffico, probabilmente si tratta di un loop.
Soluzione 4:
Ecco alcuni elementi aggiuntivi da considerare nell'implementazione di STP/RSTP/MSTP e nei test:
- Impostare le priorità degli switch per garantire che uno switch predeterminato sia eletto come root e che un secondario sia designato per assumere il ruolo di root in caso di guasto del primario. Questo è l'errore più comune che vedo nelle implementazioni di spanning tree.
- Tutte le porte in cui è presente un dispositivo collegato in modo permanente (ad esempio un server, una stampante, un NAS) dovrebbero essere messe in modalità port fast (terminologia Cisco; in HP ProCurve si chiama edge port) per garantire che non abbiano un lungo tempo di attesa per la convergenza STP all'avvio.
- Qualsiasi porta in cui ci si connette a un dispositivo edge (compresi PC, stampanti, server e così via) dovrebbe avere il root guard abilitato. In questo modo si evita di collegare uno switch mal configurato o non autorizzato e di causare una riconvergenza inaspettata.
- Qualsiasi porta che non sia un collegamento da switch a switch nel vostro controllo (compresi i PC, le stampanti, i router dei fornitori di servizi) dovrebbe avere BPDU guard abilitato, preferibilmente impostato per disabilitare la porta quando viene ricevuta una BPDU STP. In questo modo si scopre immediatamente quando le persone iniziano a fare cose sbagliate sulle porte edge.
Soluzione 5:
Oltre ai suggerimenti diagnostici precedenti, si dovrebbe anche imparare a interpretare l'output del comando "show spanning-tree" del proprio switch (o equivalente). Il comando mostra la porta root, le porte designate e una serie di altre importanti informazioni diagnostiche.
Ecco un esempio di rete appena configurata con 2 Cisco 2950 e 1 HP 3400cl. Le connessioni della rete sono le seguenti:
- hp3400cl [24] -> c2950 [g0/2] (1000 Mbps)
- c2950 [f0/23] -> c2950b [f0/47] (100 Mbps)
- c2950b [f0/45] -> hp3400cl [23] (100 Mbps)
Gli switch sono tutti in modalità MSTP, con solo l'istanza di spanning tree comune impostata. hp3400cl ha priorità 0, c2950 ha la priorità più alta a 8192 e c2950b è l'ultimo con priorità 12288. Quindi hp3400cl dovrebbe essere la radice. Ecco come appare l'output di "show spanning-tree":
hp3400cl# show spanning-tree
Multiple Spanning Tree (MST) Information
STP Enabled : Yes
Force Version : MSTP-operation
IST Mapped VLANs : 1-4094
Switch MAC Address : 001871-8bd020
Switch Priority : 0
Max Age : 6
Max Hops : 20
Forward Delay : 4
Topology Change Count : 4
Time Since Last Change : 4 mins
CST Root MAC Address : 001871-8bd020
CST Root Priority : 0
CST Root Path Cost : 0
CST Root Port : This switch is root
IST Regional Root MAC Address : 001871-8bd020
IST Regional Root Priority : 0
IST Regional Root Path Cost : 0
IST Remaining Hops : 20
Root Guard Ports :
TCN Guard Ports :
BPDU Protected Ports :
BPDU Filtered Ports :
| Prio | Designated Hello
Port Type | Cost rity State | Bridge Time PtP Edge
----- --------- + --------- ----- ---------- + ------------- ----- --- ----
1 100/1000T | Auto 128 Disabled |
...
22 100/1000T | Auto 128 Disabled |
23 100/1000T | 200000 128 Forwarding | 001871-8bd020 1 Yes No
24 100/1000T | 20000 128 Forwarding | 001871-8bd020 1 Yes No
c2950#show spanning-tree
MST00
Spanning tree enabled protocol mstp
Root ID Priority 0
Address 0018.718b.d020
Cost 20000
Port 26 (GigabitEthernet0/2)
Hello Time 1 sec Max Age 6 sec Forward Delay 4 sec
Bridge ID Priority 8192 (priority 8192 sys-id-ext 0)
Address 000c.308f.7f80
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
...
Fa0/24 Desg FWD 200000 128.24 P2p
Gi0/2 Root FWD 20000 128.26 P2p Bound(RSTP)
c2950b#show spanning-tree
MST00
Spanning tree enabled protocol mstp
Root ID Priority 0
Address 0018.718b.d020
Cost 20000
Port 47 (FastEthernet0/47)
Hello Time 1 sec Max Age 6 sec Forward Delay 4 sec
Bridge ID Priority 12288 (priority 12288 sys-id-ext 0)
Address 000a.b7e3.30c0
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Interface Role Sts Cost Prio.Nbr Type
---------------- ---- --- --------- -------- --------------------------------
Fa0/45 Altn BLK 200000 128.45 P2p Bound(RSTP)
Fa0/47 Root FWD 200000 128.47 P2p
Le cose importanti da notare sugli stati delle porte nell'elenco precedente sono:
- I collegamenti dello switch root agli altri switch sono in inoltro
- I collegamenti degli switch non root alla radice sono "Root FWD" in entrambi i casi
- I collegamenti degli switch non root sono "Altn BLK" da un lato e "Desg FWD" dall'altro; ciò significa che c2950b sa che f0/45 è un percorso alternativo alla radice e l'ha bloccata per evitare il loop. Se la porta root (f0/47) si guasta, c2950b imposterà f0/45 come porta root senza riconvertire.
Ti invitiamo ad aggiungere valore ai nostri contenuti collaborando con la tua esperienza nelle recensioni.