Inleiding
In dit document worden scenario's beschreven waaronder polarisatie in de taakverdeling tussen poorten en kanalen zou kunnen optreden en worden suggesties gedaan om deze te voorkomen.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
Gebruikte componenten
Dit document is niet beperkt tot specifieke software- en hardware-versies.
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrond
Polarisatie is een probleem waarbij het hashalgoritme bepaalde paden in het netwerk selecteert en redundante paden ongebruikt laat.
Topologie
Configuratie
N7K1 en N7K2 zijn verbonden in VPC en Po100, Po200, Po300 en Po301 zijn verbonden in VPC poortkanaal.
N7K1 en N7K2 fungeren als een pure L2 switch, zonder routing die op deze switches plaatsvindt.
Alle switches werken met hetzelfde poortkanaal voor taakverdeling.
De polarisatie kwestie wordt gezien op verkeer dat uit N7K1 en N7K2 gaat, ongeacht of het verkeer van de bron naar de bestemming in het zelfde VLAN (geen routing) was of als ze in verschillende VLAN's waren met de routing die op N7K3 of N7k4 plaatsvindt.
Traffic Flow
De bron verzendt meerdere stromen naar de bestemming (met meerdere IP-adressen van bron en bestemming en de L4-poortinformatie verschilt ook van pakket tot pakket). Een goede mix van verkeer wordt gebruikt om ervoor te zorgen dat in een ideale situatie het verkeer gelijkmatig is verdeeld over de haven-kanaal lidinterfaces.
Het verkeer landt vanaf de bron op N7k3/N7k4 en gaat dan via N7K1/N7K2 naar de bestemming.
Eén link tussen de links van de leden van de Po100 en de Po200 op elk van de N7K1 en N7K2 stuurt bijna 99% van het verkeer uit en de andere link blijft inactief. Dat wil zeggen dat op elke switch N7K1 en N7K2 één link tussen 4/2 en 4/3 99% unicastverkeer vervoert en de andere link minder dan 1%. Op dezelfde manier vervoert één verbinding tussen 9/2 en 9/3 99% verkeer en de andere verbinding minder dan 1%. De output in de sectie van het oplossen van problemen toont verkeer op Po100 en Po200 lidinterfaces op N7K1. Een soortgelijk resultaat is te zien op de N7K2.
Ongeacht het gebruikte type poortkanaal-load-balancing algoritme kan de kwestie worden gezien zolang hetzelfde poortkanaal-load-balancing algoritme wordt gebruikt voor het N7K1/N7K2 paar en het N7K3/N7K4 paar. De opdracht voor het controleren van het poortkanaal-taakverdelingsalgoritme wordt hier weergegeven:
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 poortkanaal sprake is van ongelijke taakverdeling, kan dit te wijten zijn aan polarisatie.
Wanneer het verkeer N7K3 en N7K4 switches bereikt, worden ze doorgestuurd naar de N7K1/N7K2 switches via Po301 van N7K4 en Po300 van N7K3. Hier komt het load balancing algoritme in werking en worden sommige stromen doorgestuurd naar N7K1 en andere stromen worden doorgestuurd naar N7K2.
Aanvankelijk komt al het verkeer in de switches N7K3/N7K4 op eth1/1, en gebaseerd op het src-dst IP adres en l4 poortinformatie, worden bepaalde stromen gehakt op de link die naar N7K1 gaat en andere stromen die op de link naar N7K2 gehakt worden. De hashing gebeurt op basis van de rbh-waarde die door de switch wordt berekend. Laten we er voor de eenvoud van uitgaan dat gebaseerd op het gebruikte load-balance algoritme, de switch het inkomende verkeer in twee stromen (flow X en flow Y) scheidt. Flow X wordt verzonden uit één poort-kanaal lidlink en flow Y wordt verzonden uit de andere poort-kanaal lidlink.
Nu, als het verkeer landt op het N7K1/N7K2 paar, kunnen er twee mogelijkheden zijn. (Beschouw X en Y als uitwisselbaar.)
Geval1:
N7K3 verstuurde stroom X naar N7K1 en stroom Y naar N7K2
N7K4 Verzonden stroom Y naar N7K1 en stroom X naar N7K2
Geval2:
N7K3 verstuurde stroom X naar N7K1 en stroom Y naar N7K2
N7K4 Verzonden stroom X naar N7K1 en stroom Y naar N7K2
In geval 1, N7K1 en N7K2 ontvangen beide typen stromen (flow X en flow Y) en zelfs na het gebruik van dezelfde poortkanaal-taakverdeling algoritme als die gebruikt door N7K3/N7K4, geen polarisatie zou worden gezien als de stromen uit Po100 en Po200 op verschillende koppelingen. Daarom zien we een betere verkeersverdeling onder de poortkanaallidinterfaces.
In geval 2 ontvangt N7K1 alleen stroom X en N7K2 ontvangt alleen stroom Y en dit kan polarisatie veroorzaken als het poortkanaal-load-balancing algoritme dat gebruikt wordt op deze switches hetzelfde is als het algoritme dat gebruikt wordt in het N7K3/N7K4 paar. Aangezien N7K1 en N7K2 hetzelfde poortkanaaltaakverdelingsalgoritme gebruiken, stuurt N7K1 flow X op slechts één lidlink van Po100/Po200 en de andere lidlink doorstuurt geen verkeer. Op dezelfde manier stuurt N7K2 stroom Y op slechts één lidlink van Po100/Po200 en de andere lidlink stuurt geen verkeer door.
Aangezien het verkeer dat de switches N7K1 en N7K2 ontvangen al geclassificeerd is om mee te beginnen, wordt slechts één poortkanaal-lidverbinding gebruikt om al het inkomende verkeer uit switch N7K1/N7K2 te verzenden en niets zou worden verzonden uit de andere lidverbinding. In het geval dat het inkomende verkeerstarief de bandbreedte van de enkele poort-kanaal link overschrijdt, kan het extra verkeer worden gedropt omdat de andere poort-kanaal lidlink dit verkeer niet zou doorsturen.
Een soortgelijk probleem doet zich voor wanneer in het havenkanaal meer dan twee verbindingen worden gebruikt. Bijvoorbeeld, als vier verbindingen in een haven-kanaal worden gebruikt, dan afhankelijk van het hakken gebeuren, of geen polarisatie zou gebeuren of wij zien gedeeltelijke polarisatie waar slechts twee van de vier haven-kanaal lidverbindingen worden gebruikt om al inkomend verkeer door te sturen. De andere twee links zouden niets doorgeven
De polarisatie wordt veroorzaakt door het ontwerp en daarom is het belangrijk om het ontwerp te analyseren om ervoor te zorgen geen polarisatie voorkomt. Daarna wordt de polarisatie op de Po100 en de Po200 op de N7k1 getoond (soortgelijke output kan ook op de N7K2 worden gezien).
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%
Voorwendselen
In deze sectie worden een aantal omzeilingen beschreven die zijn gebruikt om te voorkomen dat er polarisatie optreedt.
- Juiste Ontwerp: Aangezien de belangrijkste oorzaak voor polarisatie onjuist ontwerp is, is het best om ervoor te zorgen dat wij het netwerkontwerp veranderen om ervoor te zorgen dat er geen ruimte voor polarisatie in de topologie is.
Als er geen wijzigingen in het ontwerp mogelijk zijn, kunnen we het volgende doen.
- Gebruik verschillende poortkanaal-load balancing algoritmen op elk niveau van switches (één algoritme op het N7K1/N7k2 paar en een ander algoritme op het N7K3/N7k4 paar). Wanneer het algoritme voor taakverdeling wordt gewijzigd, hakken de N7k1/N7k2-switches nu het inkomende verkeer op basis van wat andere informatie dan die gebruikt door de N7k3/N7k4-switches. Vandaar, gebruikt het uitgaande verkeer alle haven-kanaal lidverbindingen. (De beslissing welk algoritme je kiest, is afhankelijk van het soort verkeer dat de switch ontvangt.)
- Als u hetzelfde algoritme voor taakverdeling wilt gebruiken, gebruikt u verschillende roterende waarden op elk niveau van switches. De
rotate opdracht introduceert willekeur in het hashingalgoritme door de hash-invoer te compenseren door door de gebruiker ingestelde bytes en helpt polarisatie te voorkomen. (Gebruik één roterende waarde voor het N7k1/N7k2 paar en een andere roterende waarde voor N7k3/N7k4 paar.)