Inleiding
Dit document beschrijft hoe polarisatie van Cisco Express Forwarding (CEF) suboptimaal gebruik van redundante paden naar een doelnetwerk kan veroorzaken. CEF-polarisatie is het effect wanneer een hash-algoritme een bepaald pad kiest en de redundante paden volledig ongebruikt blijven.
Voorwaarden
Vereisten
Er zijn geen specifieke vereisten van toepassing op dit document.
Gebruikte componenten
De informatie in dit document is gebaseerd op een Cisco Catalyst 6500-switch die op een Supervisor Engine 720 draait.
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 de potentiële impact van elke opdracht begrijpen.
Achtergrondinformatie
CEF verandert de pakketten die op de routingtabel worden gebaseerd die door de routingprotocollen wordt bevolkt, zoals het Uitgebreide Interior Gateway Protocol (DHCP) en Open Kortste Pad Eerst (OSPF). CEF voert load-balances uit nadat de routingtabel (RIB) is berekend. In een hiërarchisch netwerkontwerp, kan er veel Layer 3 (L3) gelijk-kosten overtollige paden zijn. Neem deze topologie in overweging waar het verkeer van de toegangslaag over de distributie en kern en in het datacenter stroomt.
Stel dat om het netwerk 10.1.1.1 te bereiken vanaf router 1 (R1) [Linksboven] er twee gelijke-kosten paden zijn (L1, L2). De beslissing over welke van de twee links wordt gebruikt, wordt genomen door een hashing-algoritme. Standaard worden de Bron-IP (SIP) en de bestemmings-IP (DIP) gebruikt als de parameters in het hashing-algoritme.
Hier volgt een beschrijving van de manier waarop het hashing-algoritme werkt:
Wanneer er slechts twee paden zijn, voert de switch/router een exclusieve-OR (XOR) operatie uit op de lager-bestelbits (één bit wanneer een van de twee links moet worden geselecteerd, twee bits voor 3-4 links, enzovoort) van SIP en DIP. De XOR-werking van hetzelfde SIP en dezelfde DIP levert altijd het pakketgebruik van dezelfde link op.
Het pakket gaat vervolgens over op de distributielaag, waar hetzelfde hashing-algoritme wordt gebruikt samen met dezelfde hash-ingang, en kiest een enkele link voor alle stromen, waardoor de andere link niet optimaal wordt gebruikt. Dit proces wordt CEF-polarisatie genoemd (gebruik van hetzelfde hashalgoritme en dezelfde hashinginput die resulteert in het gebruik van één EQUAL-Cost Multi-Path (ECMP)-link voor ALLE stromen).
Dit voorbeeld illustreert dit proces meer in detail:
- Het verkeer dat van 10.240.18.1 is afkomstig en bestemd is voor 10.240.20.1 komt in het netwerk van router A en is CEF-switched. Omdat er twee gelijke-kostenpaden zijn aan het 10.240.20.0/24 netwerk, gaan de bron en de doeladressen in het pakje door het algoritme van het hash, en het resultaat is een specifiek pad dat wordt gebruikt om de bestemming te bereiken. In dit geval, is het pad van de pakketten naar router C. Van daar, gaan de pakketten naar router F, en op hun eindbestemming.
- Het verkeer dat van 10.240.18.2 is afkomstig en bestemd is voor 10.240.20.1 komt in het netwerk bij router A en is ook CEF-switched. Omdat er twee gelijke-kostenpaden zijn aan het 10.240.20.0/24 netwerk, gaan de bron en de doeladressen in het pakje door het hashalgoritme, en CEF kiest een pad. In dit geval, is het pad van de pakketten naar router B.
- Het verkeer dat van 10.240.18.3 is afkomstig en bestemd is voor 10.240.20.1 komt in het netwerk van router A en is ook CEF-switched. Omdat er twee gelijke-kostenpaden zijn aan het 10.240.20.0/24 netwerk, gaan de bron en de doeladressen in het pakje door het hashalgoritme, en CEF kiest een pad. In dit geval, is het pad van de pakketten naar router B.
- De pakketten die van 10.240.18.2 en 10.240.18.3 worden bron-B aankomen, die opnieuw twee gelijke-kostenpaden heeft om 10.240.20.1 te bereiken. Het voert opnieuw deze reeksen bron- en doelparen door het hash algoritme, dat de zelfde resultaten voortbrengt die het hash algoritme op router A produceerde. Dit betekent dat beide stromen pakketten langs één pad gaan - in dit geval, de link naar Router E. De link naar router D ontvangt geen verkeer.
- Nadat het verkeer dat van 10.240.18.2 en 10.240.18.3 is binnengekomen op router E is ontvangen, wordt het langs het pad naar router F geschakeld en dan op zijn eindbestemming.
Hoe CEF-polarisatie te voorkomen
- Alternatief voor het hashen van de invoerconfiguratie op elke laag van het netwerk tussen standaard (SIP en DIP) en volledige (SIP + DIP + Layer 4-poorten).
Catalyst 6500 biedt een aantal keuzes voor het hashing-algoritme:
- Standaard - gebruik het IP-adres van de bron en de bestemming, met ongelijke gewichten die aan elke link worden gegeven om polarisatie te voorkomen.
- Eenvoudig - gebruik het bron- en doeladres van het IP-adres, met hetzelfde gewicht voor elke link.
- Volledig - Gebruik het bron- en doeladres en Layer 4 poortnummer, met ongelijke gewichten.
- Volledig eenvoudig - gebruik het bron- en bestemming IP-adres en Layer 4 poortnummer, met gelijk gewicht voor elke link.
6500(config)#mls ip cef load-sharing ?
full load balancing algorithm to include L4 ports
simple load balancing algorithm recommended for a single-stage CEF router
6500(config)#mls ip cef load-sharing full ?
simple load balancing algorithm recommended for a single-stage CEF router
<cr>
Op dit moment bestaat er geen opdracht om het load-sharing algoritme in gebruik te controleren. De beste manier om te weten te komen welke methode in gebruik is is de huidige configuratie via het tonen in werking stellen-configuratie bevel te controleren. Als er geen configuratie aanwezig is beginnend met mls ip de lading-sharing, is de standaard bron en de bestemming ongelijk gewichtsalgoritme in gebruik.
Opmerking: 1) Catalyst 6500 biedt geen ondersteuning voor het delen van pakketten. 2) De volledige optie bevat GEEN universele ID in hash. Als het op elke laag van een meerlaagse topologie wordt gebruikt, is polarisatie mogelijk. Het is raadzaam de eenvoudige optie met deze opdracht te gebruiken om een betere taakverdeling te bereiken en minder hardware nabijheid te gebruiken.
- Alternatief tussen een even en oneven aantal ECMP-links op elke laag van het netwerk.
De CEF lading-in-evenwicht is niet afhankelijk van hoe de protocolroutes in de Routing Tabel worden ingevoegd. Daarom tonen de OSPF-routes hetzelfde gedrag als wanneer wanneer wanneer u een EHRM toepast. In een hiërarchisch netwerk waar verscheidene routers zijn die lading-delen in een rij uitvoeren, gebruiken zij allemaal hetzelfde algoritme om te laden.
De lading-evenwichtigheden van het hashalgoritme lopen standaard op:
1: 1
2: 7-8
3: 1-1-1
4: 1-1-1-2
5: 1-1-1-1-1
6: 1-2-2-2-2-2
7: 1-1-1-1-1-1-1
8: 1-1-1-2-2-2-2-2
Het getal vóór de kolom vertegenwoordigt het aantal gelijke-kostenpaden. Het nummer na de komma vertegenwoordigt het aandeel van het verkeer dat per pad wordt doorgestuurd.
Dit betekent dat:
- Voor twee gelijke kostenpaden is het delen van de lading 46,66% - 53,33%, niet 50% - 50%.
- Voor drie gelijke kostenpaden is het delen van de lading 33,33%-33,33%-33,33% (zoals verwacht).
- Voor vier gelijke kostenpaden is het delen van de lading 20%-20%-20%-40% en niet 25%-25%-25%-25%-25%.
Dit illustreert dat wanneer er zelfs een aantal ECMP-verbindingen is, het verkeer niet in evenwicht is
Een manier om CEF-polarisatie uit te schakelen is antipolarisatiegewicht, dat is geïntroduceerd in versie 12.2(17d)SXB2.
Typ deze opdracht om het antipolarisatiegewicht in te schakelen:
6500(config)# mls ip cef load-sharing full simple
Gebruik deze opdracht als er twee gelijke kostenpaden zijn en beide gelijk moeten worden gebruikt. De toevoeging van het sleutelwoord eenvoudig staat de hardware toe om het zelfde aantal nabijheden te gebruiken zoals in de nabijheid van Cisco IOS® CEF. Zonder het eenvoudige sleutelwoord, installeert de hardware extra nabijheidsingangen om platform polarisatie te vermijden.
- Cisco IOS introduceerde een concept dat uniek-ID/universal-ID wordt genoemd en dat CEF-polarisatie helpt voorkomen. Dit algoritme, het universele algoritme genoemd (het standaard in huidige Cisco IOS versies), voegt een 32-bits router-specifieke waarde toe aan de hashfunctie (de universele ID genoemd - dit is een willekeurig gegenereerde waarde op het moment van de schakelaar opstart die handmatig kan worden ingesteld). Dit ontdooit de hashfunctie op elke router met een unieke ID, die ervoor zorgt dat hetzelfde bron-/doelpaar in een andere waarde op verschillende routers langs het pad wordt opgeslagen. Dit proces biedt een betere taakverdeling voor het hele netwerk en omzeilt de polarisatie. Dit unieke-ID concept werkt niet voor een even groot aantal gelijkwaardige paden door een hardwarebeperking, maar het werkt perfect voor een vreemd aantal gelijkwaardige paden. Om dit probleem te overwinnen, voegt Cisco IOS één link toe aan de lijst van de hardwarenabijheid wanneer er een even aantal gelijke-kostenpaden is om het systeem te laten geloven dat er een vreemd aantal gelijk-kosten links is.
Om een op maat gesneden waarde voor de universele ID te configureren gebruikt u:
6500(config)ip cef load-sharing algorithm universal