Er is een overvloed aan overstappaden beschikbaar voor verschillende Cisco routers en Cisco IOS® releases. Dat is de beste voor je netwerk, en hoe werken ze allemaal? Dit witboek is een poging om elk van de volgende overstappaden te verklaren zodat u de beste beslissing kunt maken over welke overstappad op uw netwerk past.
Ten eerste, onderzoek het proces zelf. Er zijn drie stappen om een pakket door een router te verzenden:
Bepaal of de bestemming van het pakket bereikbaar is.
Bepaal de volgende hop naar de bestemming, en de interface waardoor die volgende hop bereikbaar is.
Herschrijft de Media Access Control (MAC)-header op het pakket zodat deze met succes de volgende hop kan bereiken.
Elk van deze stappen is essentieel voor het pakket om zijn bestemming te bereiken.
N.B.: In dit document wordt het IP-switchpad als voorbeeld gebruikt; vrijwel alle hier verstrekte informatie is van toepassing op gelijkwaardige wisselpaden voor andere protocollen , indien deze bestaan .
Processwitching is de laagste gemene noemer in wisselpaden; Het is beschikbaar op elke versie van IOS, op elk platform, en voor elk type verkeer dat wordt geschakeld. Processwitching wordt gedefinieerd door twee essentiële concepten:
De verzendende beslissing en informatie die wordt gebruikt om de MAC-header op het pakket te herschrijven worden genomen van de routingtabel (vanaf de routing Information Base, of RIB) en het Adretoen Protocol (ARP) cache, of van een andere tabel die de MAC-headerinformatie bevat die in kaart is gebracht naar het IP-adres van elke host en die rechtstreeks is aangesloten op de router.
Het pakket wordt geschakeld door een normaal proces dat binnen IOS loopt. In andere woorden, het door:sturen besluit wordt gemaakt door een proces dat door de IOS planner gepland is en als peer aan andere processen op de router loopt, zoals het routeren van protocollen. Processen die normaal op de router worden uitgevoerd, worden niet onderbroken om switch van een pakje te verwerken.
Het onderstaande figuur illustreert het proces-switching pad.
Bekijk dit diagram in detail:
De interfaceprocessor detecteert eerst een pakje op de netwerkmedia en zet dit pakje over naar het input/output geheugen op de router.
De interfaceprocessor genereert een onderbreking. Tijdens dit onderbreken bepaalt de centrale processor welk pakkettype dit is (neem aan dat het een IP-pakket is) en kopieert het indien nodig in het processorgeheugen (dit besluit is afhankelijk van het platform). Ten slotte plaatst de processor het pakje op de aangegeven invoerwachtrij en wordt de pauze losgelaten.
De volgende keer dat de planner draait, noteert de server het pakje in de invoerwachtrij van ip_input en organiseert deze procedure om te starten.
Wanneer ip_input run draait, raadpleegt het de RIB om de volgende hop en de output interface te bepalen, dan raadpleegt u het ARP cache om het juiste fysieke laagadres voor deze volgende hop te bepalen.
ip_input schrijft vervolgens de MAC-header van het pakket opnieuw en plaatst het pakket in de uitvoerwachtrij van de juiste uitgaande interface.
Het pakket wordt gekopieerd van de uitvoerwachtrij van de uitgaande interface naar de verzendwachtrij van de uitgaande interface; tussen deze twee wachtrijen vindt elke uitgaande kwaliteit van de dienstverlening plaats .
De uitvoerinterfaceprocessor detecteert het pakket in de verzendwachtrij en brengt het pakket over op de netwerkmedia.
Bijna alle functies die pakketswitching uitvoeren, zoals NAT (Network Address Translation) en Policy Routing, maken hun basis in het proces-switching pad. Zodra ze zijn bewezen, en geoptimaliseerd, zouden deze eigenschappen kunnen, of niet, in onderbreken context omschakeling kunnen verschijnen.
Onderbreek context-switching is de tweede van de primaire switchmethoden die door Cisco routers worden gebruikt. De primaire verschillen tussen interrupte context omschakeling en procesomschakeling zijn:
Het proces dat momenteel op de processor wordt uitgevoerd, wordt onderbroken om het pakket te switches. Packets worden op de vraag ingeschakeld, in plaats van alleen ingeschakeld wanneer het ip_input proces kan worden gepland.
De processor gebruikt een of andere vorm van routecache om alle informatie te vinden die nodig is om het pakket te switches.
Dit getal illustreert interrupte contextswitching:
Bekijk dit diagram in detail:
De interfaceprocessor detecteert eerst een pakje op de netwerkmedia en zet dit pakje over naar het input/output geheugen op de router.
De interfaceprocessor genereert een onderbreking. Tijdens dit onderbreken bepaalt de centrale processor welk pakkettype dit is (ervan uitgaande dat het een IP-pakje is) en begint het pakje te switches.
De processor zoekt de routecache om te bepalen of de bestemming van het pakket bereikbaar is, wat de uitvoerinterface zou moeten zijn, wat de volgende hop naar deze bestemming is, en ten slotte, wat MAC-header het pakket met succes de volgende hop moet bereiken. De processor gebruikt deze informatie om de MAC-header van het pakket te herschrijven.
Het pakket wordt nu gekopieerd naar de verzendings- of uitvoerwachtrij van de uitgaande interface (afhankelijk van verschillende factoren). Ontvang onderbreken nu terugkeert, en het proces dat op de processor liep voordat het onderbreken voorkwam blijft lopen.
De uitvoerinterfaceprocessor detecteert het pakket in de verzendwachtrij en brengt het pakket over op de netwerkmedia.
De eerste vraag die opkomt na het lezen van deze beschrijving is "Wat zit er in de cache?" Er zijn drie mogelijke antwoorden, afhankelijk van het type interrupte context-omschakeling:
Snelle switching slaat de verzendende informatie op en MAC header herschrijven string met behulp van een binaire boom voor snelle raadpleging en referentie. Dit getal illustreert een binaire boom:
In Snelle switching wordt de bereikbaarheidsinformatie aangegeven door het bestaan van een knooppunt in de binaire boom voor de bestemming van het pakket. De MAC-header en de uitgaande interface voor elke bestemming worden opgeslagen als deel van de informatie van het knooppunt binnen de boom. De binaire boom kan 32 niveaus hebben (de boom hierboven is extreem afgekort voor illustratie).
Om een binaire boom te zoeken, start u eenvoudig van links (met het belangrijkste cijfer) in het (binaire) getal dat u zoekt, en takt rechts of links in de boom op basis van dat aantal. Bijvoorbeeld, als u de informatie met betrekking tot nummer 4 in deze boom zoekt, zou u door rechts te vertakken beginnen, omdat het eerste binaire cijfer 1 is. U zou de boom beneden volgen, door het volgende cijfer in het (binaire) getal te vergelijken, tot u het eind bereikt.
Fast Switching heeft verschillende eigenschappen die het gevolg zijn van de binaire boomstructuur en de opslag van de MAC-header herschrijft informatie als deel van de boomknooppunten.
Omdat er geen correlatie is tussen de routingtabel en de snelle cache-inhoud (MAC header reschrijf bijvoorbeeld), impliceren de opbouw van cache-items alle verwerking die moet worden uitgevoerd in het proces-switching pad. Daarom worden de snelle cache-items gebouwd terwijl de pakketten worden verzonden.
Omdat er geen correlatie is tussen de MAC headers (gebruikt voor herschrijft) in het ARP cache en de structuur van het fast cache, wanneer de ARP tabel verandert, moet een deel van het snelle cache ongeldig worden gemaakt (en opnieuw gecreëerd worden door de processwitching van pakketten).
Het snelle cache kan alleen items op één diepte (één prefixlengte) bouwen voor een bepaalde bestemming in de routingtabel.
Er is geen manier om van de ene ingang naar de andere te wijzen binnen het snelle cache (de MAC header en de uitgaande interface informatie wordt verwacht in het knooppunt), dus alle routingherwaarderingen moeten worden opgelost terwijl een snelle cache-ingang wordt gebouwd. Met andere woorden, recursieve routes kunnen niet worden opgelost binnen de snelle cache zelf.
Om te voorkomen dat de snelle schakelingangen hun synchronisatie met de routingtabel en het ARP cache verliezen, en om ongebruikte items in de snelle cache te behouden, zodat het geheugen op de router niet onnodig wordt geconsumeerd, wordt 1/20th van de snelle cache ongeldig, willekeurig, elke minuut. Als het routergeheugen onder een zeer laag watermerk daalt, wordt 1/5 van de snelle cache items elke minuut ongeldig gemaakt.
Welke prefix lengte bouwt de snelle overschakeling waarden voor als het slechts aan één prefix lengte voor elke bestemming kan bouwen? Binnen de bepalingen van de snelle omschakeling, is een bestemming één bereikbare bestemming binnen de routingtabel, of een belangrijk netwerk. De regels voor het bepalen van de lengte van een voorvoegsel om een bepaalde cache te bouwen zijn:
Bij het bouwen van een snelle beleidsingang, altijd cache naar /32.
Als u een ingang tegen een Multiprotocol-over-ATM virtueel circuit (MPOA VC) bouwt, altijd cache tot /32.
Als het netwerk niet gesubneteerd is (het is een belangrijk netwerkingang):
Indien het rechtstreeks is verbonden, gebruik /32;
Gebruik anders het hoofdnetmasker.
Als het een supernet is, gebruik dan het masker van de supernet.
Als het netwerk is gesubneteerd:
Gebruik, indien rechtstreeks aangesloten, /32;
Als er meerdere paden zijn naar dit subnet, gebruik /32;
Gebruik in alle andere gevallen de langste prefix lengte in dit belangrijke net.
Snelle switching is geheel op de bestemming gebaseerd; de verdeling van de lasten geschiedt per bestemming . Als er meerdere gelijke kostenpaden zijn voor een bepaald doelnetwerk, heeft het snelle cache één ingang voor elke host bereikbaar binnen dat netwerk, maar al het verkeer voorbestemd voor een bepaalde host volgt één link.
Optimale switching slaat de verzendende informatie op en de MAC header herschrijven informatie op een 256 manieren multiway boom (256 way boom). Gebruik van een boom beperkt het aantal stappen die moeten worden genomen wanneer u een voorvoegsel opgezocht hebt, zoals in het volgende cijfer wordt weergegeven.
Elke octet wordt gebruikt om te bepalen welke van de 256 takken op elk niveau van de boom moeten worden genomen, wat betekent dat er hooguit 4 lookups zijn betrokken bij het vinden van een bestemming. Voor kortere prefix lengtes kan slechts 1-3 raadpleging nodig zijn. De MAC header herschrijven en output interface informatie wordt opgeslagen als deel van het boomknooppunt, zodat cache niet-validatie en veroudering nog steeds voorkomen als in de snelle switching.
Optimum Switching bepaalt ook de prefix lengte voor elke cache ingang op dezelfde manier als snelle switching.
Cisco Express Forwarding, gebruikt ook een 256 manier gegevensstructuur om het verzenden op te slaan en MAC header herschrijven informatie, maar het gebruikt geen boom. Cisco Express Forwarding gebruikt een reeks, wat betekent dat de eigenlijke informatie waarnaar wordt gezocht niet in de gegevensstructuur is; in plaats daarvan worden de gegevens in een afzonderlijke gegevensstructuur opgeslagen , en de drie wijst er alleen op . In andere woorden, in plaats van het opslaan van de uitgaande interface en MAC header herschrijven binnen de boom zelf, slaat Cisco Express Forwarding deze informatie op in een afzonderlijke gegevensstructuur die de nabijheidstabel wordt genoemd.
Deze scheiding van de bereikbaarheidsinformatie (in de Cisco Express Forwarding tabel) en de transportinformatie (in de nabijheidstabel) biedt een aantal voordelen:
De nabijheidstabel kan afzonderlijk van de Cisco Express Forwarding-tabel worden gebouwd, zodat beide kunnen worden gebouwd zonder processwitching.
De MAC header herschrijven dat gebruikt wordt om een pakje door te sturen is niet opgeslagen in cache items, dus voor veranderingen in een MAC header reschrijf string hoeft de cache items niet ongeldig te worden gemaakt.
U kunt rechtstreeks wijzen naar de verzendende informatie, in plaats van naar de terugkerende volgende hop, om terugkerende routes op te lossen.
In wezen wordt alle cache veroudering geëlimineerd, en het cache is voorgebouwd op basis van de informatie in de routingtabel en het ARP-cache. Er is geen behoefte om switch een pakket te verwerken om een cache-ingang te bouwen.
De nabijheidstabel kan andere items bevatten dan MAC header herschrijven strings en outbound interface informatie. Enkele verschillende types van ingangen die in de nabijheidslijst kunnen worden geplaatst omvatten:
cache-Een MAC header herschrijven string en uitgaande interface gebruikt om een bepaalde host of router te bereiken.
ontvangt-Packets die voor dit IP-adres zijn bestemd zouden door de router moeten worden ontvangen. Dit omvat uitzendadressen en adressen die op de router zelf worden gevormd.
de daling—pakketten die voor dit IP-adres zijn bestemd moeten worden ingetrokken. Dit zou voor verkeer kunnen worden gebruikt dat door een toegangslijst wordt ontkend, of naar een NULL-interface worden verstuurd.
Plaat-Cisco Express Doorsturen kan dit pakket niet switches; Geef het door naar de volgende best geschakelde methode (over het algemeen snelle omschakeling) voor verwerking.
Glein-De volgende hop is direct in bijlage, maar er zijn momenteel geen MAC header herschrijven strings beschikbaar.
Een mager nabijheidsingang wijst erop dat een bepaalde volgende hop direct zou moeten worden aangesloten, maar er is geen MAC header herschrijven informatie beschikbaar. Hoe worden deze gebouwd en gebruikt? Een router die door doorsturen van Cisco Express en aan een uitgezonden netwerk, zoals getoond in de afbeelding hieronder, loopt een aantal nabijheidslijsten door standaard.
De vier instelbare nabijheidslijsten die standaard gebouwd worden zijn:
10.1.1.0/24, version 17, attached, connected 0 packets, 0 bytes via Ethernet2/0, 0 dependencies valid glean adjacency 10.1.1.0/32, version 4, receive 10.1.1.1/32, version 3, receive 10.1.1.255/32, version 5, receive
Er zijn vier items: drie krijgt ze, en één leun. Elke ingang ontvangt een uitzending of een adres dat op de router wordt gevormd, terwijl de Gleense ingang de rest van de adresruimte op het aangesloten netwerk vertegenwoordigt. Als een pakket voor host 10.1.1.50 wordt ontvangen, probeert de router het te switches en vindt het opgelost aan deze grote nabijheid. Cisco Express Forwarding geeft dan aan dat een ARP cache-ingang nodig is voor 10.1.1.50, het ARP-proces verstuurt een ARP-pakket en de juiste nabijheidstabel-ingang wordt opgebouwd uit de nieuwe ARP cache-informatie. Nadat deze stap is voltooid, heeft de nabijheidstabel een vermelding voor 10.1.1.50.
10.1.1.0/24, version 17, attached, connected 0 packets, 0 bytes via Ethernet2/0, 0 dependencies valid glean adjacency 10.1.1.0/32, version 4, receive 10.1.1.1/32, version 3, receive 10.1.1.50/32, version 12, cached adjacency 208.0.3.2 0 packets, 0 bytes via 208.0.3.2, Ethernet2/0, 1 dependency next hop 208.0.3.2, Ethernet2/0 valid cached adjacency 10.1.1.255/32, version 5, receive
Het volgende pakket dat de router bestemd is voor 10.1.1.50 wordt door deze nieuwe nabijheid geschakeld.
Cisco Express Forwarding maakt ook gebruik van de scheiding tussen de Cisco Express Forwarding-tabel en de nabijheidstabel om een betere vorm van lading delen te bieden dan een andere interrupte context-switching-modus. Er wordt een tabel met opladen tussen de tabel met doorsturen van Cisco Express en de tabel met nabijheid ingevoegd, zoals in deze afbeelding wordt weergegeven:
De Cisco Express Forwarding-tabelpunten naar deze loadsharing tabel, die tips bevat voor de verschillende items in de nabijheidstabel voor beschikbare parallelle paden. De bron- en doeladressen worden door een hash-algoritme doorgegeven om te bepalen welke lading tabel in te voeren voor elk pakket. Per pakket kan het delen van lading worden gevormd, in welk geval elk pakket een andere lading tabelingang gebruikt.
Elke loadtoken tabel heeft 16 waarden waaronder de beschikbare paden zijn verdeeld op basis van de verkeerselingteller in de routingtabel. Als het verkeersaandeel tellers in de routeringslijst alle 1 (zoals in het geval van meerdere gelijke kostenpaden) zijn, ontvangt elke mogelijke volgende hop een gelijk aantal wijzers van de ladingsdelingstabel. Als het aantal beschikbare paden niet gelijkmatig verdeeld is in 16 (omdat er 16 items in de tabel zijn opgeslagen), zullen sommige paden meer items hebben dan andere.
Beginnend in Cisco IOS-softwarerelease 12.0, wordt het aantal items in de tabel met loaddelen verminderd om te zorgen dat elk pad een proportioneel aantal waarden in de tabel met loaddelen heeft. Als er bijvoorbeeld drie gelijke kostenpaden in de routingtabel zijn, worden alleen 15 waarden in de tabel met laden gebruikt.
Als het mogelijk is, wilt u dat uw routers in de interrupte context overschakelen omdat het ten minste een orde van grootte sneller is dan procesniveau-switching. Cisco Express Forwarding-switching is absoluut sneller en beter dan elke andere switchmodus. We raden u aan om Cisco Express Forwarding te gebruiken als het protocol en IOS dat u uitvoert, dit ondersteunen. Dit is in het bijzonder waar als u een aantal parallelle verbindingen hebt waardoorheen het verkeer moet worden gedeeld. Toegang tot de Cisco Functie Navigator (alleen geregistreerde klanten) pagina om te bepalen welke IOS u CEF-ondersteuning nodig hebt.