Questo documento offre la teoria del bilanciamento del carico VLAN tra i trunk e fornisce anche esempi di configurazione per gli switch con CatOS e Integrated IOS.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
Non sono previsti prerequisiti specifici per questo documento.
Il documento può essere consultato per tutte le versioni software o hardware.
I comandi menzionati in questo documento sono disponibili sulle famiglie Catalyst 4000, 5000 e 6000 con software CatOS e IOS integrato. Le sezioni teoriche di questo documento sono relative al protocollo Spanning-Tree Protocol (STP) e sono indipendenti dalla piattaforma.
La configurazione mostrata nella figura 1 seguente, in cui due switch sono collegati direttamente tramite più di un trunk, è molto comune ai fini della ridondanza. Se uno dei due collegamenti non riesce, il secondo diventa presto disponibile per trasmettere il traffico. Quando entrambi i collegamenti sono attivi, l'algoritmo spanning-tree (STA) disabilita uno di essi per evitare un loop di bridging tra i due switch.
Nella configurazione della figura 1, con due trunk Fast Ethernet che collegano Catalyst R e Catalyst D, l'STP seleziona la stessa porta di blocco per tutte le VLAN configurate. In questo caso, Catalyst R è il bridge radice e Catalyst D decide di bloccare la porta D2 per entrambe le VLAN 1 e VLAN 2. Il problema principale di questa progettazione è che il collegamento R2-D2 viene semplicemente sacrificato e tra i due switch sono disponibili solo 100 MB/s. Per sfruttare entrambi i collegamenti, è possibile modificare la configurazione e consentire la VLAN 1 solo sul collegamento R1-D1 e la VLAN 2 solo sul collegamento R2-D2.
La rete risultante, illustrata nella figura 2, ha perso la sua ridondanza. Ora è possibile inoltrare entrambi i collegamenti contemporaneamente e in pratica usare 200 Mb/s tra i due switch. Tuttavia, se un collegamento ha esito negativo, la connettività per una VLAN viene completamente interrotta. La soluzione ideale è quella descritta nella figura 3:
Nella figura 3, i trunk vengono conservati tra i due switch, ma la porta D1 blocca la VLAN 1 e inoltra la VLAN 2; la porta D2 blocca la VLAN 2 e inoltra la VLAN 1. Con questo progetto vengono mantenute le migliori funzionalità della figura 1 e della figura 2:
Entrambi i collegamenti vengono inoltrati, fornendo una connettività aggregata di 200 Mb/s tra i due switch.
Se un collegamento ha esito negativo, l'altro sblocca la VLAN corrispondente e mantiene la connettività di entrambe le VLAN tra gli switch.
Questo documento spiega come ottenere una tale configurazione, dopo una breve spiegazione delle operazioni STP.
La descrizione dettagliata del funzionamento di STA esula dalle finalità del presente documento. Tuttavia, mostra brevemente in che modo l'algoritmo decide, in questo caso, se una porta viene bloccata o inoltrata. e si concentra sulla configurazione più semplice possibile con una sola VLAN; Catalyst R è il bridge radice in questa VLAN e Catalyst D ha più connessioni ridondanti a Catalyst R. Catalyst D blocca tutte le sue porte a Catalyst R, ma alla sua porta radice. In che modo Catalyst D seleziona la porta radice? Bridge che eseguono unità BPDU (Bridge Protocol Data Unit) di tipo STA sui collegamenti. Tali unità BPDU possono essere classificate in base al contenuto. Una BPDU è superiore a un'altra se ha:
ID bridge radice inferiore.
Un percorso più economico alla radice.
ID bridge di invio inferiore.
Un ID porta di invio inferiore.
Questi quattro parametri vengono esaminati in ordine, ovvero il parametro 2 è importante solo se il parametro 1 è lo stesso nelle due BPDU confrontate. La porta selezionata come porta principale sul Catalyst D è la porta che riceve la migliore BPDU.
In questo caso specifico, illustrato nella figura 4, tutti i BPDU inviati da Catalyst R hanno lo stesso ID bridge radice, lo stesso costo di percorso alla radice e lo stesso ID bridge di invio. L'unico parametro rimasto per selezionare quello migliore è l'ID della porta di invio. L'ID porta di invio è un parametro a 16 bit suddiviso in due campi: la priorità della porta e un indice delle porte. Il valore predefinito per la priorità della porta è 32 e l'indice della porta è univoco su ciascuna porta dello switch.
Priorità porta | Indice porta | |
---|---|---|
Dimensioni in bit | 6 | 10 |
Valore predefinito | 32 | Valore univoco fisso |
La Figura 4 rappresenta il parametro ID porta nelle BPDU. In questo caso, Catalyst D sceglie la porta D1 come porta radice perché l'indice della porta R2 è inferiore a R1. Se si desidera che D2 venga inoltrato, è necessario forzarlo come porta radice. L'unico modo per eseguire questa operazione è ridurre il valore di priorità della porta R2 (o aumentare il valore di priorità della porta R1). Questo è quello che è stato fatto nella figura 5.
Per ottenere il bilanciamento del carico tra due trunk, è necessario regolare la priorità della porta sul Catalyst R sulla base della VLAN.
Di seguito è riportato lo stato STP corrente di Catalyst R. Si tratta della radice per entrambe le VLAN 1 e 2, quindi tutte le sue porte sono in inoltro.
Catalyst_R> (enable) show spantree 3/1 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/1 1 forwarding 19 32 disabled 0 3/1 2 forwarding 19 32 disabled 0 Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 32 disabled 0 3/2 2 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Su Catalyst D, come previsto, la porta 5/2 è bloccata sia per le VLAN 1 che per la VLAN 2.
Catalyst_D> (enable) show spantree 5/1 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/1 1 forwarding 19 32 disabled 5/1 2 forwarding 19 32 disabled Catalyst_D> (enable) show spantree 5/2 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/2 1 blocking 19 32 disabled 5/2 2 blocking 19 32 disabled Catalyst_D> (enable)
Si sta per diminuire il livello di priorità della porta per la VLAN 1 sulla porta 3/2. In questo modo, la porta 5/2 corrispondente sul Catalyst D riceve BPDU migliori di quelle inviate sulla porta 5/1 (che ha ancora un livello di priorità della porta pari a 32).
Catalyst_R> (enable) set spantree portvlanpri 3/2 16 1 Port 3/2 vlans 1 using portpri 16. Port 3/2 vlans 2-1004 using portpri 32. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable)
È possibile controllare che il livello di priorità della porta sia stato modificato per la VLAN 1:
Catalyst_R> (enable) show spantree 3/1 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/1 1 forwarding 19 32 disabled 0 3/1 2 forwarding 19 32 disabled 0 Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Sul Catalyst D, è possibile vedere che, per la VLAN 1, la porta 5/1 è ora bloccata e la porta 5/2 è in inoltro, come previsto.
Catalyst_D> (enable) show spantree 5/1 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/1 1 blocking 19 32 disabled 5/1 2 forwarding 19 32 disabled Catalyst_D> (enable) show spantree 5/2 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/2 1 forwarding 19 32 disabled 5/2 2 blocking 19 32 disabled Catalyst_D> (enable)
Sono disponibili solo due valori possibili per la priorità della porta VLAN per trunk e solo uno di essi può essere configurato utilizzando il comando portvlanpri. Ciò significa che su un determinato trunk, si hanno due gruppi di VLAN:
Quelli con il valore di priorità della porta "globale" (32 per impostazione predefinita).
Quelli con un valore "personalizzato" immesso con il comando portvlanpri.
Un esempio chiarisce questo aspetto. Nell'esempio, considerare l'aggiunta di una terza VLAN. Per impostazione predefinita, questa VLAN appartiene al gruppo con il valore di priorità della porta globale (predefinito: 32).
Catalyst_R> (enable) set vlan 3 Vlan 3 configuration successful Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 32 disabled 0 3/2 3 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Modificare la priorità globale della porta, utilizzando il comando set spantree portpri:
Catalyst_R> (enable) set spantree portpri 3/2 48 Bridge port 3/2 port priority set to 48. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 48 disabled 0 Catalyst_R> (enable)
Si noti che tutte le VLAN che appartengono al gruppo "globale" hanno cambiato la priorità a 48. Assegnare ora la VLAN 3 all'altro gruppo "personalizzato" di VLAN, assegnandogli il valore 8 con il comando portvlanpri:
Catalyst_R> (enable) set spantree portvlanpri 3/2 8 3 Port 3/2 vlans 1,3 using portpri 8. Port 3/2 vlans 2,4-1004 using portpri 48. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 8 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 8 disabled 0 Catalyst_R> (enable)
Si noti che tutte le VLAN nel gruppo "personalizzato" hanno cambiato la priorità in 8, non solo la VLAN 3. Per riassegnare la VLAN 3 al gruppo predefinito, usare il comando clear spantree portvlanpri:
Catalyst_R> (enable) clear spantree portvlanpri 3/2 3 Port 3/2 vlans 1 using portpri 8. Port 3/2 vlans 2-1004 using portpri 48. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 8 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 48 disabled 0 Catalyst_R> (enable)
Esiste un ultimo vincolo per questo comando. Il valore assegnato al gruppo "globale" deve essere superiore a quello configurato nel gruppo "personalizzato".
Catalyst_R> (enable) set spantree portvlanpri 3/2 62 3 Portvlanpri must be less than portpri. Portpri for 3/2 is 48.
Per riepilogare:
gruppo "globale" | gruppo "personalizzato" |
---|---|
Per impostazione predefinita, tutte le VLAN appartengono a questo gruppo. | Le VLAN selezionate con il comando set spantree portvlanpri appartengono a questo gruppo. |
La priorità per queste VLAN è impostata con il comando set spantree port priority. | Il livello di priorità di tutte queste VLAN è impostato con il comando set spantree portvlanpri. |
Il livello di priorità configurato per il gruppo "globale" deve essere superiore a quello configurato per il gruppo "personalizzato". | Il comando clear spantree portvlanpri permette di ripristinare una VLAN da questo gruppo all'altro. |
Nota: questo esempio di configurazione è valido per gli switch con IOS - Catalyst 2900/3500XL, Catalyst 2950, Catalyst 3550, Catalyst 4000 supervisor III/IV e Catalyst 6000.
Di seguito è riportato lo stato STP corrente di Catalyst R. Si tratta della radice per entrambe le VLAN 1 e 2, quindi tutte le sue porte sono in inoltro.
Catalyst_R#show spanning-tree interface FastEthernet 3/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN0002 Desg FWD 19 128.129 P2p Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.130 P2p VLAN0002 Desg FWD 19 128.130 P2p
Su Catalyst D, come previsto, la porta 5/2 è bloccata sia per le VLAN 1 che per la VLAN 2.
Catalyst_D#show spanning-tree interface FastEthernet 5/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Root FWD 19 128.129 P2p VLAN0002 Root FWD 19 128.129 P2p Catalyst_D#show spanning-tree interface FastEthernet 5/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Altn BLK 19 128.130 P2p VLAN0002 Altn BLK 19 128.130 P2p
Si sta per diminuire il livello di priorità della porta per la VLAN 1 sulla porta 3/2. In questo modo, la porta 5/2 corrispondente sul Catalyst D riceve BPDU migliori di quelle inviate sulla porta 5/1 (che ha ancora un livello di priorità della porta di 128).
Catalyst_R#config terminal Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree vlan 1 port-priority 64 Catalyst_R(config-if)#end Catalyst_R#
È possibile controllare che il livello di priorità della porta sia stato modificato per la VLAN 1:
Catalyst_R#show spanning-tree interface FastEthernet 3/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN0002 Desg FWD 19 128.129 P2p Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 128.130 P2p
Sul Catalyst D, è possibile vedere che, per la VLAN 1, la porta 5/1 è ora bloccata e la porta 5/2 è in inoltro, come previsto.
Catalyst_D#show spanning-tree interface FastEthernet 5/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Altn BLK 19 128.129 P2p VLAN0002 Root FWD 19 128.129 P2p Catalyst_D#show spanning-tree interface FastEthernet 5/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Root FWD 19 128.130 P2p VLAN0002 Altn BLK 19 128.130 P2p
Per definire la priorità della porta VLAN, è possibile procedere in due modi:
Il valore di priorità della porta "globale" (128 per impostazione predefinita) che può essere modificato per ciascuna interfaccia con il comando port-priority
Il valore di priorità della porta "per VLAN" che può essere modificato per interfaccia e per VLAN con il comando VLAN port-priority
Un esempio chiarisce questo aspetto. In questo esempio, è possibile aggiungere una terza VLAN. Per impostazione predefinita, questa VLAN appartiene al gruppo con il valore di priorità della porta globale (predefinito: 128).
Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 128.130 P2p VLAN0003 Desg FWD 19 128.130 P2p
Modificare la priorità globale della porta, utilizzando il comando di configurazione dell'interfaccia spanning-tree port-priority:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree port-priority 160 Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 160.130 P2p
Si noti che tutte le VLAN che appartengono al gruppo "globale" hanno cambiato la priorità a 160. Assegnare ora la VLAN 3 alla propria priorità 48 con il comando spanning-tree vlan port-priority interface:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree vlan 3 port-priority 48 Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 48.130 P2p
Si noti che solo la VLAN 3 ha cambiato la sua priorità in 48. Per riportare la VLAN 3 nel gruppo predefinito, usare il comando no spanning-tree vlan port-priority interface:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#no spanning-tree vlan 3 port-priority Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 160.130 P2p
La configurazione del bilanciamento del carico VLAN appena completata ottimizza l'uso di trunk ridondanti tra due Catalyst.
Se si mantengono i valori STP predefiniti, tutti i collegamenti ridondanti tra i due Catalyst finiscono in modalità di blocco. Regolando la priorità STP è possibile usare più collegamenti contemporaneamente per VLAN diverse. Ciò aumenta la larghezza di banda complessiva disponibile tra i due dispositivi. In caso di errore di un collegamento, l'STP invia nuovamente le VLAN ai trunk rimanenti durante la riconversione.
L'unico inconveniente di questo progetto è che può bilanciare il carico solo del traffico su una base VLAN. Se nell'esempio precedente il traffico passava attraverso la VLAN 1 a 130 Mb/s e sulla VLAN 2 a soli 10 Mb/s, i pacchetti vengono comunque scartati sulla VLAN 1, anche se in teoria esistono 200 Mb/s tra Catalyst R e Catalyst D. La funzione EtherChanneling affronta questo problema, offrendo il bilanciamento del carico tra diversi collegamenti su una base di pacchetto. Se l'hardware in uso lo supporta, utilizzare FastEtherchannel (o Gigabit EtherChannel) anziché la configurazione descritta in questo documento.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
02-Dec-2013 |
Versione iniziale |