Inhoud

Inleiding

Achtergrond

Voorwaarden

Topologie

Configuratie

verkeersstroom

Probleemoplossing

Werken

Inleiding

Dit document legt de scenario's uit waaronder polarisatie in het taakverdeling tussen poorten en kanalen kan voorkomen en geeft een suggestie over hoe deze te voorkomen.

Achtergrond

polarisatie is een probleem waar het hash-algoritme bepaalde paden in het netwerk selecteert en overbodige paden ongebruikt laat

Voorwaarden

Aanbevolen wordt om kennis te hebben over de volgende onderwerpen.

Link aggregation Control-protocol

Cisco Nexus-platforms

Topologie

Configuratie

N7K1 en N7K2 verbonden in VPC en Po100, Po200, Po300 en Po301 zijn in VPC havenkanaal.

N7K1 en N7K2 handelen als pure L2 switch zonder routing op deze switches.

Alle switches voeren hetzelfde port-channel load-balanceeralgoritme uit

Het polarisatieprobleem wordt gezien bij verkeer dat N7K1 en N7K2 verlaat, ongeacht of het verkeer van bron naar bestemming in hetzelfde VLAN was (geen routing) of dat het verkeer in een ander VLAN plaatsvond met de routing op N7K3 of N7k4.

verkeersstroom

De bron stuurt meerdere stromen naar de bestemming (met meerdere bron- en doeladressen, en de L4 poortinformatie verschilt ook van pakket tot pakket). Er wordt een goede mix van verkeer gebruikt om ervoor te zorgen dat in een ideale situatie het verkeer gelijkmatig verdeeld zou worden tussen de interfaces van de lidstaten van het havenkanaal.

Het verkeer van bronland op N7k3/N7k4 en gaat vervolgens via N7K1/N7K2 naar de bestemming.

Een link tussen de lidstaten Po100 en Po200 op elk van N7K1 en N7K2 verstuurt bijna 99% van het verkeer en de andere verbinding blijft stilstaan. ( d.w.z. op elke schakelaar N7K1 en N7K2 heeft één verbinding tussen 4/2 en 4/3 99% eenastverkeer en de andere verbinding minder dan 1%, vergelijkbaar één verbinding tussen 9/2 en 9/3 heeft 99% verkeer en de andere verbinding heeft minder dan 1%. De output in de sectie Problemen oplossen toont verkeer op Po100 en Po20000lidstaten interfaces N7K1, vergelijkbare output kan worden gezien op N7K2).

Ongeacht het type van het gebruikte laadbalanceringsalgoritme van het havenkanaal, kan de kwestie worden gezien zolang hetzelfde algoritme van het laadbalancerend vermogen van het havenkanaal wordt gebruikt op N7K1/N7K2 paar en N7K3/N7K4 paar. De opdracht om het laadalgoritme voor het poortkanaal te controleren wordt hieronder gegeven.

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

Probleemoplossing

Als er op een havenkanaal een ongelijkmatige taakverdeling wordt gezien, kan dat door de polarisatie ontstaan.

Wanneer het verkeer N7K3 en N7K4-switches bereikt, worden zij doorgestuurd naar de N7K1/N7K2-switches via Po301 van N7K4 en Po300 van N7K3. Hier wordt algoritme voor het afwegen van de belasting ingebracht en worden sommige stromen doorgestuurd naar N7K1 en andere stromen doorgestuurd naar N7K2.

Aanvankelijk komt al het verkeer in de schakel N7K3/N7K4 op eth1/1 en op basis van src-dest ip en l4 port information, worden bepaalde stromen op de verbinding naar N7K1 gehashed en andere stromen op de verbinding naar N7K2. De hashing wordt verricht op basis van de rbh-waarde die door de switch wordt berekend. Voor eenvoud, laten we ervan uitgaan dat op basis van het gebruikte laadbalansalgoritme het inkomende verkeer in twee stromen (flow X en flow Y) scheidt. Flow X verzonden uit één poort-kanaal aangesloten verbinding en stroom Y verzonden uit de andere haven-kanaal aangesloten verbinding.

Nu, wanneer het verkeer landt op N7K1/N7K2 paar, kunnen er twee mogelijkheden zijn. (Beschouwt X en Y als verwisselbaar)

Zaak 1:

N7K3 verstuurd stroom X naar N7K1 en stromen Y naar N7K2

en

N7K4 verzonden stroom Y naar N7K1 en stromen X naar N7K2

Zaak2:

N7K3 verstuurd stroom X naar N7K1 en stromen Y naar N7K2

en

N7K4 verzonden stroom X naar N7K1 en stromen Y naar N7K2

In geval 1, N7K1 en N7K2 ontvangen beide soorten stromen (flow X en flow Y) en zelfs na gebruik van hetzelfde algoritme voor het in evenwicht brengen van de lading in de haven als N7K3/N7K4, zou geen polarisatie worden gezien als de stroomuitstroom uit Po100 en Po200 op verschillende verbindingen en daarom zien we een betere verkeersverdeling tussen de lidstaten.

In geval 2 ontvangt N7K1 alleen flow X en N7K2 alleen flow Y en kan dit leiden tot polarisatie indien het op deze switches gebruikte "port-channel load-balances" algoritme hetzelfde is als het op N7K3/N7K4 paar gebruikte. Aangezien N7K1 en N7K2 hetzelfde algoritme voor het in evenwicht brengen van de lading van het havenkanaal gebruiken, verstuurt N7K1 flow X op slechts één verbinding van de Po100/Po200 en de andere verbinding van de lidstaten geen verkeer door. Op dezelfde manier stuurt N7K2 flow Y op slechts één link van de leden van Po100/Po200 en zal de andere link geen verkeer doorgeven.

Aangezien het verkeer dat de switches N7K1 en N7K2 ontvangt reeds is geclassificeerd om te beginnen, zal slechts één verbinding van de havenkanaallid worden gebruikt om al het inkomende verkeer uit de schakelaar N7K1/N7K2 te sturen en zal er niets uit de andere verbinding worden verstuurd. Als het binnenkomende verkeerstarief de bandbreedte van de enige haven-kanaalverbinding overschrijdt, kan het extra verkeer worden gedropt zoals de andere verbinding van het havenkanaal lid dit verkeer niet door zou sturen.

Een soortgelijk probleem doet zich voor wanneer in het havenkanaal meer dan twee koppelingen worden gebruikt. Bijvoorbeeld, als vier links gebruikt worden in een haven-kanaal, dan zou, afhankelijk van het gebeuren, geen polarisatie plaatsvinden of we zullen een gedeeltelijke polarisatie zien, waarbij slechts twee van de vier port-kanaalverbindingen gebruikt zouden worden om al het inkomende verkeer door te sturen en de andere twee verbindingen zouden niets doorsturen

De polarisatie wordt veroorzaakt door het ontwerp en daarom is het belangrijk om het ontwerp te analyseren om te voorkomen dat polarisatie optreedt. Uitvoer die wijst op polarisatie die Po100 en Po200 op N7k1 plaatsvindt, wordt hieronder gegeven (soortgelijke output kan ook op N7K2 worden waargenomen).

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%

CSCvq2685 voor externe documentatie is ingediend.

Werken

Volg een aantal pijnpunten die kunnen worden gebruikt om ervoor te zorgen dat er geen polarisatie plaatsvindt.

1. Correct ontwerp: Omdat de belangrijkste oorzaak voor polarisatie onfatsoenlijk ontwerp is, best om te verzekeren dat we het netwerkontwerp veranderen om ervoor te zorgen dat er geen ruimte is voor polarisatie in de topologie

Als er geen verandering in het ontwerp mogelijk is, kunnen we het volgende doen.

2. Gebruik verschillende "port-channel load balances" algoritmen op elk niveau van switches (één algoritme op N7K1/N7k2-paar en een ander algoritme op N7K3/N7k4-paar). Wanneer het belastingsbalanceringsalgoritme wordt gewijzigd, hash de N7k1/N7k2 nu het inkomende verkeer op basis van een andere informatie dan die gebruikt door N7k3/N7k4-switches en dus het uitgaande verkeer gebruikt alle verbindingen van het havenkanaal. (De beslissing op wat algoritme om te kiezen hangt af van het type verkeer dat door de schakelaar wordt ontvangen)

3. Als de klant hetzelfde taakverdeling-algoritme wilt gebruiken, gebruik dan verschillende rotatiewaarden op elk niveau van switches. De opdracht Rotate voert randomness in het hashing-algoritme in door de hash-invoer door gebruiker geconfigureerde bytes te compenseren en door polarisatie te voorkomen. (Gebruik één rotate waarde voor N7k1/N7k2 paar en een andere roterende waarde voor N7k3/N7k4 paar)