La Figura 6-8 mostra una rete mesh completa. Una buona configurazione ridondante in cui, se un collegamento non riesce, ci sarebbero altri due collegamenti per il passaggio del traffico. Tuttavia, questo potrebbe portare a problemi? Supponiamo che un host sia connesso alla porta fa0 / 1 su SwitchA (non mostrato) e questo switch invii una trasmissione alla rete. SwitchA deve inoltrare questo frame su ogni porta eccetto fa0 / 1. Di seguito viene mostrata una parte di ciò che accade dopo:
- SwitchB riceve il pacchetto su fa0 / 10 e lo invia su tutte le porte tranne quella.
- SwitchD riceve il pacchetto su fa0 / 10 e lo invia su ogni porta tranne quella, ma include fa0 / 11.
- SwitchA riceve il pacchetto su fa0 / 11 e lo invia su ogni porta eccetto fa0 / 11 ma include fa0 / 1 e fa0 / 10!
Quello che vediamo qui è che non solo la fonte originale ha ricevuto il frame, ma ora SwitchA deve inviare anche il pacchetto fa0 / 10. Torna al passaggio da uno a tre che va avanti all’infinito.
Figura 6-8 Rete commutata a maglia intera
Come già sapete, quello che abbiamo appena visto è un loop e tali loop possono portare una rete a un arresto anomalo. I protocolli LAN di livello 2 non hanno alcun metodo per fermare il traffico che viaggia senza fine, eventualmente portando informazioni imprecise. A livello 3 possiamo far scadere i pacchetti dopo un certo periodo di tempo o dopo aver percorso una certa distanza (usando ad esempio il route poisoning – vedi il modulo di routing per maggiori informazioni).
Con la crescita delle reti di livello 2, è diventato rapidamente evidente che un sistema per prevenire i loop era necessario se le LAN dovevano continuare a funzionare. Digital Equipment Corporation ha creato un protocollo chiamato Spanning Tree Protocol (STP) per prevenire broadcast storm e loop di rete a livello 2. L’IEEE secondo lo standard 802.1d ora regola STP.
STP consente a bridge e switch di comunicare tra loro in modo che possano creare una topologia senza loop. Ogni bridge esegue lo Spanning Tree Algorithm che calcola come prevenire un loop. Quando STP viene applicato a una topologia LAN con loop, tutti i segmenti saranno raggiungibili ma tutte le porte aperte che creerebbero un loop di traffico vengono bloccate. Quando vede un loop nella rete, blocca uno o più percorsi ridondanti impedendo la formazione di un loop. STP monitora continuamente la rete alla ricerca di guasti sulle porte dello switch o modifiche nella topologia di rete. Se viene rilevata una modifica sulla LAN, STP può rendere rapidamente disponibili porte ridondanti e chiudere altre porte per garantire che la rete continui a funzionare normalmente.
Prima di saperne di più su STP, dobbiamo comprendere alcuni dei termini comuni ad esso associati.
ID bridge : questo è un numero di identificazione univoco di ogni switch nella rete. Consiste nella priorità del bridge e nell’indirizzo MAC di base dello switch. La priorità bridge predefinita di uno switch Cisco è 32768. Si tratta di un valore configurabile compreso tra 0 e 61440 ma il valore deve essere in incrementi di 4096. 4096, 8192, 12288 e così via sono valori accettabili. La priorità gioca un ruolo molto importante in STP e quanto bene funzionerà la rete.
Root Bridge : tutti gli switch della rete eleggono la radice dell’albero. A questo punto tutte le decisioni come quale percorso ridondante bloccare e quale aprire vengono prese dal punto di vista del root switch (comunemente chiamato Root Bridge). Lo switch con l’ID Bridge più basso vince l’elezione. Gli switch che non diventano Root Bridge sono chiamati NonRoot Bridge.
BPDU : Bridge Protocol Data Unit (BPDU) è l’informazione scambiata tra gli switch per selezionare il Root Bridge e configurare la rete in seguito. Una decisione su quale porta bloccare viene presa dopo aver esaminato le BPDU dei vicini. Gli switch Cisco inviano BPDU ogni 2 secondi per impostazione predefinita. Questo valore può essere configurato da 1 secondo a 10 secondi.
Porta root : ogni switch deve avere un percorso per il bridge root, se non connesso direttamente. La porta root è il collegamento connesso direttamente o il percorso più veloce al bridge root da un bridge non root.
Costo porta : ogni porta ha un costo determinato dalla larghezza di banda del collegamento. Il costo della porta determina quale dei collegamenti ridondanti non verrà bloccato. Più basso è il costo, meglio è. Il costo della porta determina anche quale porta diventerà la porta root se esistono più percorsi per il bridge root. Di seguito sono riportati i costi delle porte predefinite.
Tabella 6-1 Costo STP predefinito
Porta designata : i bridge su un segmento di rete determinano collettivamente quale bridge ha il percorso meno costoso dal segmento di rete alla radice. La porta che collega questo bridge al segmento di rete è quindi la porta designata per il segmento. Le porte che non sono selezionate Porte designate sono chiamate porte non designate.
Stati di approdo nello Spanning Tree
Le porte dello switch che eseguono STP possono trovarsi in uno dei cinque stati.
- Bloccato
- Ascoltando
- Apprendimento
- Inoltro
- Disabilitato
Gli stati delle porte STP sono molto importanti. Dovresti ricordare questi stati e cosa significano. Ciascuno di essi è discusso di seguito.
Bloccato
Nessuna delle porte trasmetterà o riceverà alcun dato, ma ascolterà i BPDU. Il BPDU trasporta varie informazioni che vengono utilizzate da STP per determinare in quale stato dovrebbero trovarsi le porte e quale dovrebbe essere la topologia STP.
Ascoltando
L’interruttore ascolta i frame ma non li apprende né agisce su di essi. Lo switch riceve i frame ma li elimina prima di intraprendere qualsiasi azione. Gli indirizzi MAC non vengono inseriti nella tabella CAM mentre la porta è in ascolto.
Apprendimento
Lo switch inizierà ad apprendere gli indirizzi MAC che può vedere e popolerà la sua tabella CAM con gli indirizzi e le porte su cui sono stati trovati. In questo stato, lo switch inizierà a trasmettere le proprie BPDU.
Inoltro
Lo switch ha acquisito gli indirizzi MAC e le porte corrispondenti e inserisce questi dati nella tabella CAM. Lo switch può ora inoltrare il traffico.
Disabilitato
Nello stato Disabilitato, la porta riceverà BPDU ma non le inoltrerà al processore dello switch. Elimina tutti i frame in entrata sia dalla porta che da altre porte di inoltro sullo switch.
Gli stati delle porte sono transitori e consentono ad altri BPDU di arrivare in tempo utile da altri switch. I tempi di transizione delle porte sono in genere:
- Inizializzazione al blocco
- Blocco dell’ascolto (20 secondi)
- Ascoltare l’apprendimento (15 secondi)
- Imparare a inoltrare (15 secondi)
- Inoltro a disabilitato (in caso di errore)
Tutte le porte iniziano nello stato di blocco (ci sono alcune eccezioni discusse in seguito). Dopo la convergenza STP, alcune porte passeranno all’ascolto, all’apprendimento e infine all’inoltro mentre il resto rimarrà in uno stato bloccato. Quindi il tempo necessario per passare da una fase all’altra; troviamo che una rete di livello 2 che esegue STP impiega 50 secondi per avviare la commutazione dei dati! Questo è noto come tempo di convergenza.
Convergenza STP
Ricorda che lo Spanning Tree funziona selezionando un root bridge sulla LAN. Viene selezionato confrontando l’ID Bridge di ogni switch.
L’STP si considera convergente dopo che sono avvenute tre fasi:
- Eleggere root bridge
- Scegli le porte root
- Eleggere le porte designate
Ciascuno dei tre passaggi precedenti è discusso in dettaglio di seguito. La rete mostrata nella figura 6-9 verrà utilizzata per spiegare il processo di convergenza STP.
Eleggere Root Bridge
Il bridge con il Bridge ID (BID) più basso diventa il root bridge. Il BID è costituito da due valori in un campo di 8 byte. La priorità del bridge (32.768 per impostazione predefinita) costituisce due byte e l’indirizzo MAC del backplane o del modulo supervisore (a seconda del modello di switch) costituisce il resto dei sei byte.
Il root bridge su una LAN viene selezionato da un’elezione. Ogni switch che esegue STP trasmette le informazioni in un formato noto come BPDU (Bridge Protocol Data Unit). I BPDU sono frame multicast che possono essere considerati messaggi di saluto tra switch abilitati per STP e vengono inviati ogni due secondi da ogni porta. Ciò è necessario per mantenere una topologia senza loop. Quando le priorità dello switch o del bridge combinate con il relativo indirizzo MAC vengono tutte scambiate; il bridge con l’ID più basso viene selezionato come root bridge.
Figura 6-9 Convergenza STP
Tutte le porte sul bridge root vengono impostate come designato e quindi sono sempre impostate su uno stato di inoltro.
Nella nostra rete, la priorità di tutti gli interruttori è stata lasciata al valore predefinito. Quindi lo switch con l’indirizzo MAC più basso verrà selezionato come root bridge. In questo caso sarà SwitchA.
Per verificarlo, emettiamo il comando ” show spanning tree vlan (vlan #) ” su SwitchA:
SwitchA#show spanning-tree vlan 5
VLAN0005
Spanning tree enabled protocol ieee
Root ID Priority 32773
Address 0013.c3e8.2500
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32773 (priority 32768 sys-id-ext 5)
Address 0013.c3e8.2500
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
——————- —- — ——— ——– ——————————–
Fa0/15 Desg FWD 19 128.15 P2p
Fa0/18 Desg FWD 19 128.18 P2p
Nell’output precedente si noti che la quarta riga indica che questo bridge è il root bridge. In questa fase non preoccuparti per il numero 5 utilizzato nel comando. Questo è l’id VLAN e verrà discusso nel capitolo 7.
Ora se vogliamo che SwitchC sia il root bridge, allora dovremo dargli una priorità migliore usando il seguente comando:
SwitchC(config)#spanning-tree vlan 5 priority 8192
Controlliamo ora l’output “show spanning-tree” su SwitchC e SwitchA
SwitchC#show spanning-tree vlan 5
VLAN0005
Spanning tree enabled protocol ieee
Root ID Priority 8197
Address 0014.a93f.8380
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 8197 (priority 8192 sys-id-ext 5)
Address 0014.a93f.8380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
SwitchA#show spanning-tree vlan 5
VLAN0005
Spanning tree enabled protocol ieee
Root ID Priority 8197
Address 0014.a93f.8380
Cost 19
Port 18 (FastEthernet0/18)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32773 (priority 32768 sys-id-ext 5)
Address 0013.c3e8.2500
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Nell’output precedente si noti che:
- SwitchC mostra che ora è il root bridge.
- SwitchA mostra l’indirizzo MAC di SwitchC come quello del bridge root insieme alla nuova priorità di SwitchC.
Nel caso ti stia chiedendo perché la priorità di SwitchC è 8197 invece di 8192, arriveremo a questo punto a breve. Reimpostiamo la priorità su SwitchC su 32768 e rendiamo SwitchA il root bridge per le seguenti sezioni.
Eleggere le porte di root
Per i bridge non root ci sarà solo una porta root. La porta root sarà la porta con il costo del percorso più basso per il root bridge. Anche la porta root verrà impostata sullo stato di inoltro.
Il costo del percorso è il costo di trasmissione di un frame al bridge root. Il valore viene impostato in base alla larghezza di banda del collegamento sulla LAN. Più lento è il collegamento, maggiore è il costo.
Nella nostra rete, le porte fa0 / 15 di SwitchB e SwitchC saranno le porte root perché sono collegate direttamente a SwitchA.
Switch D ha due opzioni: fa0 / 17 verso SwitchB e fa0 / 20 verso SwitchC. Il costo totale del collegamento su fa0 / 17 è 200 (2 × 10 Mbps = 100 × 2). Il costo totale del collegamento su fa0 / 20 è 119 (10 Mbps = 100 e 100 Mbps = 19). Quindi fa0 / 20 sarà la porta root per SwitchD e fa0 / 17 sarà bloccato. Ricorda che un costo predefinito è associato alla larghezza di banda di un collegamento. Il costo predefinito può essere visualizzato nella tabella 6-1.
Cerchiamo di verificare la porta root di SwitchD utilizzando il comando “show spanning-tree”:
SwitchD#show spanning-tree vlan 5
VLAN0005
Spanning tree enabled protocol ieee
Root ID Priority 32773
Address 0013.c3e8.2500
Cost 23
Port 20 (FastEhternet0/20)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32773 (priority 32768 sys-id-ext 5)
Address 0018.1841.7680
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
——————- —- — ——— ——– ——————————–
fa0/17 Altn BLK 200 128.17 P2p
fa0/20 Root FWD 119 128.20 P2p
Si noti che il ruolo per l’interfaccia fa0 / 20 viene mostrato come Root mentre lo stato è inoltrato. D’altra parte, fa0 / 17 è nello stato bloccato.
Se vogliamo rendere fa0 / 17 su SwitchD come porta root invece di fa0 / 20, allora dovremo cambiare il costo su fa0 / 17 con qualcosa di migliore (inferiore) a 119. Per fare ciò, lo ” spanning-tree Il comando ” cost ” può essere utilizzato su fa0 / 17. Guarda il seguente output
SwitchC#show spanning-tree vlan 5
VLAN0005
Spanning tree enabled protocol ieee
Root ID Priority 32773
Address 0013.c3e8.2500
Cost 19
Port 15 (Fasthernet0/15)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32773 (priority 32768 sys-id-ext 5)
Address 0014.a93f.8380
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300
Interface Role Sts Cost Prio.Nbr Type
——————- —- — ——— ——– ——————————–
fa0/15 Root FWD 100 128.15 P2p
fa0/20 Desg FWD 19 128.20 P2p
Si noti che fa0 / 20 ha un ruolo di porta designata con lo stato come inoltro. L’elezione del porto designato può essere influenzato modificando il costo del porto. Questo conclude una panoramica di base di STP. L’STP può essere difficile da comprendere e le sezioni seguenti ne approfondiscono i vari aspetti. Quindi, ti consiglio caldamente di fare una pausa e rileggere questa sezione per avere una solida conoscenza di STP prima di continuare.