Sommario

Introduzione

Sfondo

Prerequisiti

Topologia

Configurazione

Flusso traffico

Risoluzione dei problemi

Soluzione alternativa

Introduzione

Questo documento spiega gli scenari in cui potrebbe verificarsi la polarizzazione nel bilanciamento del carico del canale della porta e fornisce suggerimenti su come evitarli.

Sfondo

Polarizzazione è un problema in cui l'algoritmo hash seleziona determinati percorsi nella rete e lascia inutilizzati i percorsi ridondanti

Prerequisiti

Si consiglia di conoscere gli argomenti seguenti.

Protocollo di controllo aggregazione link

Piattaforme Cisco Nexus

Topologia

Configurazione

N7K1 e N7K2 collegati in VPC e Po100, Po200, Po300 e Po301 sono in VPC port-channel.

N7K1 e N7K2 funzionano come switch L2 puro senza routing su questi switch.

Tutti gli switch eseguono lo stesso algoritmo di bilanciamento del carico del canale della porta

Il problema della polarizzazione viene rilevato sul traffico in uscita dalle N7K1 e N7K2, a prescindere dal fatto che il traffico dall'origine alla destinazione si trovi sulla stessa vlan (senza routing) o su vlan diverse con il routing in uso sulle N7K3 o N7k4.

Flusso traffico

L'origine invia più flussi alla destinazione (con più indirizzi IP di origine e destinazione e le informazioni sulla porta L4 variano anche da pacchetto a pacchetto). Per garantire che in una situazione ideale il traffico venga distribuito equamente tra le interfacce membro del canale della porta, viene usata una buona combinazione di traffico.

Il traffico dalla sorgente atterra sulla N7k3/N7k4 e poi passare sulla N7K1/N7K2 fino alla destinazione.

Un collegamento tra i collegamenti membri di Po100 e Po200 su ciascuno dei N7K1 e N7K2 sta inviando quasi il 99% del traffico e l'altro rimane inattivo. (ossia, su ciascuno switch N7K1 e N7K2, un collegamento tra 4/2 e 4/3 trasporta il 99% del traffico unicast e l'altro meno dell'1%, analogamente un collegamento tra 9/2 e 9/3 trasporta il 99% del traffico e l'altro meno dell'1%. l'output nella sezione risoluzione dei problemi mostra il traffico sulle interfacce membro po100 e po200 su N7K1, un output simile può essere rilevato su N7K2).

Indipendentemente dal tipo di algoritmo di bilanciamento del carico del canale della porta utilizzato, il problema può essere considerato a condizione che lo stesso algoritmo di bilanciamento del carico del canale della porta venga utilizzato su coppie N7K1/N7K2 e N7K3/N7K4. Di seguito è riportato il comando per verificare l'algoritmo di bilanciamento del carico del canale della porta.

N7K1# show port-channel load-balance

Warning: Per Packet Load balance configuration has higher precedence

System config:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Port Channel Load-Balancing Configuration for all modules:

Module 1:

Non-IP: src-dst mac

IP: src-dst ip rotate 0

Module 2:

Non-IP: src-dst mac

IP: src-dst ip rotate 0

Module 3:

Non-IP: src-dst mac

IP: src-dst ip rotate 0

Module 4:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Module 7:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Module 8:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Module 9:

Non-IP: src-dst mac

IP: src-dst ip-l4port-vlan rotate 0

Risoluzione dei problemi

Se il bilanciamento del carico non è uniforme su una porta-canale, può essere dovuto alla polarizzazione.

Quando il traffico raggiunge gli switch N7K3 e N7K4, viene inoltrato agli switch N7K1/N7K2 tramite Po301 di N7K4 e Po300 di N7K3. In questo caso, viene attivato l'algoritmo di bilanciamento del carico e alcuni flussi vengono inoltrati all'N7K1 e ad altri flussi inoltrati all'N7K2.

Inizialmente, tutto il traffico arriva negli switch N7K3/N7K4 su eth1/1 e, in base alle informazioni sulla porta ip e l4 della destinazione src, viene eseguito l'hashing di alcuni flussi sul collegamento in direzione N7K1 e di altri flussi sul collegamento in direzione N7K2. L'hashing viene eseguito in base al valore rbh calcolato dallo switch. Per semplicità, si supponga che, in base all'algoritmo di bilanciamento del carico utilizzato, lo switch separi il traffico in entrata in due flussi (flusso X e flusso Y). Il flusso X inviato da un collegamento membro del canale della porta e il flusso Y inviato dall'altro collegamento membro del canale della porta.

Ora, quando il traffico sta atterrando sulla coppia N7K1/N7K2, ci possono essere due possibilità. (considerando X e Y intercambiabili)

Caso 1:

N7K3 ha inviato il flusso X a N7K1 e il flusso Y a N7K2

e

N7K4 ha inviato il flusso Y a N7K1 e il flusso X a N7K2

Caso2:

N7K3 ha inviato il flusso X a N7K1 e il flusso Y a N7K2

e

N7K4 ha inviato il flusso X a N7K1 e il flusso Y a N7K2

Nel caso 1, N7K1 e N7K2 ricevono entrambi i tipi di flussi (flusso X e flusso Y) e anche dopo aver utilizzato lo stesso algoritmo di bilanciamento del carico del canale della porta utilizzato da N7K3/N7K4, nessuna polarizzazione sarebbe vista come i flussi in uscita da Po100 e Po200 su collegamenti diversi e, quindi, vediamo una migliore distribuzione del traffico tra le interfacce membro del canale della porta.

Nel caso 2, N7K1 riceve solo il flusso X e N7K2 riceve solo il flusso Y e ciò potrebbe creare polarizzazione se l'algoritmo di bilanciamento del carico del canale della porta usato su questi switch è lo stesso usato nella coppia N7K3/N7K4. Poiché N7K1 e N7K2 utilizzano lo stesso algoritmo di bilanciamento del carico del canale della porta, N7K1 invia il flusso X su un solo collegamento membro di Po100/Po200 e l'altro collegamento membro non inoltrerà alcun traffico. Analogamente, N7K2 invia il flusso Y su un solo collegamento membro di Po100/Po200 e l'altro collegamento membro non inoltrerà alcun traffico.

Poiché il traffico che riceve gli switch N7K1 e N7K2 è già classificato come traffico iniziale, solo un collegamento membro porta-canale verrà utilizzato per inviare tutto il traffico in entrata dallo switch N7K1/N7K2 e non verrà inviato nulla dall'altro collegamento membro. Nel caso in cui la velocità del traffico in entrata superi la larghezza di banda del collegamento a canale singolo, il traffico aggiuntivo può essere interrotto in quanto l'altro collegamento a membro del canale della porta non inoltrerebbe questo traffico.

Un problema simile può essere rilevato quando si usano più di due collegamenti nel canale della porta. Ad esempio, se in un canale porta vengono utilizzati quattro collegamenti, a seconda dell'hashing non si verifica alcuna polarizzazione oppure si verifica una polarizzazione parziale in cui solo due dei quattro collegamenti membri del canale porta vengono utilizzati per inoltrare tutto il traffico in entrata e gli altri due collegamenti non inoltrano nulla

La polarizzazione è causata dal progetto ed è quindi importante analizzare il progetto per assicurarsi che non avvenga alcuna polarizzazione. L'output che indica la polarizzazione in corso Po100 e Po200 su N7k1 è riportato di seguito (output simile può essere visto anche su N7K2).

N7K1# show port-channel summary | i 200

200   Po200(SU)   Eth      LACP      Eth9/2(P)    Eth9/3(P)

N7K1# show port-channel traffic interface port-channel 200

NOTE: Clear the port-channel member counters to get accurate statistics

ChanId      Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst

------ --------- ------- ------- ------- ------- ------- -------

200    Eth9/2    0.0%  99.99%  44.44%   4.00%    0.0% 100.00%

200    Eth9/3    0.0%   0.00%  55.55%  96.00%    0.0%    0.0%

N7K1# show port-channel summary | i 100

100   Po100(SU)   Eth      LACP      Eth4/2(P)    Eth4/3(P)

N7K1# show port-channel traffic interface port-channel 100

NOTE: Clear the port-channel member counters to get accurate statistics

ChanId      Port Rx-Ucst Tx-Ucst Rx-Mcst Tx-Mcst Rx-Bcst Tx-Bcst

------ --------- ------- ------- ------- ------- ------- -------

100    Eth4/2    0.0%  99.99%  40.55%   7.00%    0.0% 100.00%

100    Eth4/3    0.0%   0.00%  54.44%  93.00%    0.0%    0.0%

CSCvq26885 è stato archiviato per la documentazione esterna.

Soluzione alternativa

Seguire alcune delle soluzioni che possono essere utilizzate per assicurarsi che la polarizzazione non avvenga.

1. Progettazione adeguata: Poiché la causa principale della polarizzazione è una progettazione errata, è consigliabile modificare la progettazione della rete per assicurarsi che non vi sia spazio per la polarizzazione nella topologia

Se non è possibile apportare modifiche al progetto, è possibile eseguire le operazioni seguenti.

2. Utilizzare algoritmi di bilanciamento del carico del canale della porta diversi a ciascun livello di switch (un algoritmo su coppia N7K1/N7k2 e un algoritmo diverso su coppia N7K3/N7k4). Quando si modifica l'algoritmo di bilanciamento del carico, gli switch N7k1/N7k2 eseguono ora l'hashing del traffico in entrata in base ad alcune informazioni diverse da quelle utilizzate dagli switch N7k3/N7k4, quindi il traffico in uscita utilizza tutti i collegamenti membro del canale della porta. (la decisione sull'algoritmo da scegliere dipende dal tipo di traffico ricevuto dallo switch)

3. Se il cliente desidera utilizzare lo stesso algoritmo di bilanciamento del carico, utilizzare valori di rotazione diversi a ogni livello di switch. Il comando Rotate introduce l'casualità nell'algoritmo di hash compensando l'input hash con i byte configurati dall'utente e contribuisce a evitare la polarizzazione. (Usare un valore di rotazione per la coppia N7k1/N7k2 e un valore di rotazione diverso per la coppia N7k3/N7k4)