Dit document legt uit hoe u een Cisco 12000 Series lijnkaart kunt configureren voor Weighted Random Early Detection (WRED), beschreven in RFC 2309 , in een multiservice omgeving.
Lezers van dit document moeten op de hoogte zijn van:
De betekenis en de configuratie van MDRR en WRED op Cisco 12000 Series Internet-router
Type service in het Internet Protocol Suite, voorrang (RFC-1349)
De informatie in dit document is gebaseerd op de volgende software- en hardwareversies:
Elke Cisco IOS® softwarerelease die de Cisco 12000 Series Internet Router ondersteunt. Dit zijn meestal de 12.0S- en 12.0ST-releases.
Alle Cisco 12000-platforms worden door dit document gedekt. Daartoe behoren de jaren 12008, 12012, 12016, 12404, 12406, 12410 en 12416.
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.
Zie de Cisco Technical Tips Convention voor meer informatie over documentconventies.
Cisco 12000 Series is een van de meest populaire platforms die worden gebruikt om een hoog IP-kernnetwerk met grote bandbreedte te bouwen. Dit platform biedt de exclusieve mogelijkheid om Quality of Service (QoS) te configureren.
Aangezien het steeds vaker voorkomt om verschillende typen IP-verkeer (zoals Voice-over-IP - VoIP en multicast) op hetzelfde netwerk te combineren, zijn de vereisten voor prioritering en een gecontroleerd afdruppelgedrag uiterst belangrijk, en in veel gevallen het verschil tussen succes en falen wanneer een nieuwe service zoals VoIP wordt gestart.
De netwerkvereisten voor verschillende typen IP-verkeer vallen buiten het toepassingsgebied van dit document. Dit document concentreert zich op laboratoriumtests die worden uitgevoerd om een configuratie te vinden die van toepassing is op verschillende lijnkaarten, inclusief Cisco 12000 Series, 3-poorts Gigabit Ethernet (3-poorts GbE) lijnkaart. Uit de resultaten van deze tests blijkt dat de 3-poorts GbE Engine 2 lijnkaart goed geschikt is voor een netwerkomgeving met een mix van spraak-, gegevens- en multicast-verkeer. Het bewijst ook dat het configureren van QoS een reëel verschil maakt in een geblokkeerd netwerk.
De prioriteitswaarden die aan verschillende klassen zijn toegewezen, moeten hetzelfde zijn in het gehele netwerk. Je moet een algemeen beleid bepalen.
Klasse | voorrang | verkeer |
---|---|---|
kwaal | Alle niet-geïdentificeerde vormen van netto-verkeer (off-net) | |
Aan netto — op net | 1 | Verkeer dat binnen het SP-netwerk blijft (on-net) |
Internet Service Provider (ISP)-services | 2 | ISP-verkeer, MTP, POP, FTP, DNS, Telnet, SSH, www, https |
MKB (MKB en MKB) | 3 | Enterprise-klanten, goudservice |
Realtime, niet-spraak | 4 | TV, real-time gaming |
Spraak | 5 | RTP VOIP-verkeer |
Netwerkbeheerberichten | 6-7 | Border Gateway Protocol (BGP) en andere controleberichten |
Als QoS in de kern van een netwerk moet worden geïmplementeerd, is een voorwaarde dat de Serviceprovider de volledige controle heeft over de prioriteitswaarde van alle IP-pakketten die in het netwerk worden vervoerd. Dit kan alleen worden gedaan door alle pakketten te markeren wanneer ze het netwerk binnengaan, zonder onderscheid te maken of ze van de klant/eindgebruiker kant of van internet komen. In de kern mogen geen merktekens of kleurstoffen worden aangebracht.
Het doel van dit ontwerp is om echt WRED-gedrag te hebben in de klassen 0-3. Dit betekent dat we graag een situatie zouden willen hebben waarin we beginnen met het laten vallen van precedent 0-pakketten tijdens congestie. Daarna zouden we ook moeten beginnen met afstappen van voorrang 1 als de congestie aanhoudt, en dan ook voorrang 2 en 3. Dit wordt allemaal beschreven in de grafiek hieronder.
U dient de laagst mogelijke latentie te hebben voor spraakpakketten en helemaal geen druppels voor spraak- en multicast verkeer.
Om de configuratie te testen en te evalueren, gebruikten we een Cisco 12410 samen met een pakketgenerator van AGilant. De Cisco 12000 router voert een technische release uit op basis van Cisco IOS-softwarerelease 12.0(21)S1.
Engine 2 kaarten hebben normaal acht lange wachtrijen en één rij met lage latentie, en acht werkbalwachtrijen per doelsleuf. Er is ook een aparte tofab multicast wachtrij. Op de 3-poorts GbE-kaart staat er slechts één keer in de rij per fysieke poort. In de test, specificeert de configuratie die werd toegepast meer rijen. Uit de resultaten blijkt dat de 3-poorts GbE-kaart deze configuratie accepteert en dat de wachtrijen automatisch worden toegewezen aan de beschikbare wachtrijen.
U moet het algoritme volledig begrijpen dat voor WRED in de lijnkaart van Engine 2 wordt gebruikt bij het configureren van de minimum en maximum wachtdiepte waarden. De code geeft niet om de ingestelde minimumwaarde. in plaats daarvan gebruikt zij haar eigen formule ( gebaseerd op de geconfigureerde maximumwaarde ) om de minimumwaarde vast te stellen .
Formule:
Minimale waarde = Maximale waarde - (het hoogste vermogen van 2 dat geen negatief resultaat genereert)
De in deze test gebruikte waarden resulteerden in de volgende, voor de Application-Specific Integrated Circuit (ASIC) geprogrammeerde minimumwaarden:
voorrang | Minimaal ingesteld | Maximum ingesteld | Highest van 2 | Minimumwaarde in ASIC |
---|---|---|---|---|
0 | 50 | 5000 | 4096 | 5000-4096=904 |
1 | 60 | 6000 | 4096 | 6000-4096=1904 |
2 | 70 | 7000 | 4096 | 7000-4096=2904 |
3 | 80 | 8000 | 4096 | 8000-4096=3904 |
Door deze formule te gebruiken om de minimumwaarde te berekenen betekent dit dat u een onjuist pakketverwerkingsgedrag kunt vertonen als u hiermee geen rekening houdt bij het configureren van uw WRED-parameters. Dit wordt in het volgende voorbeeld getoond:
voorrang | Minimaal ingesteld | Maximum ingesteld | Highest van 2 | Minimumwaarde in ASIC |
---|---|---|---|---|
0 | 50 | 150 | 128 | 150-128=22 |
1 | 75 | 225 | 128 | 225-128=97 |
2 | 100 | 300 | 256 | 300-256=44 |
3 | 125 | 375 | 256 | 375-256=119 |
Dit betekent dat, ook al zijn de waarden ingesteld om te beginnen vallen volgens regel 0 eerst, dan 1, 2 en laatste 3 (hierboven), wanneer de waarden worden geschreven naar de ASIC, je eigenlijk begint voorrang 0, dan voorrang 2, dan voorrang 1 en laatste voorrang 3 te laten vallen. Er is geen manier om te zien welke waarden zijn geconfigureerd in de ASIC op een motor 2 kaart. Als u de configuratie op een Engine 3 kaart toepast, zullen de waarden die in de configuratie verschijnen de echte waarden zijn (de herberekende minimumwaarde).
Voor meer informatie over de QoS Configuration leest u Begrip en het configureren van MDRR en WRED op de Cisco 12000 Series Internet Router.
rx-cos-slot 2 B2-Table rx-cos-slot 3 B2-Table rx-cos-slot 6 B2-Table
In de meeste gevallen kunt u de rx-cos-sleuf voor alle opdrachten gebruiken. In onze testcase hadden we een paar kaarten die tofab wachtrijen niet ondersteunden, dus we konden niet altijd de rx-cos-sleuf gebruiken, alle opdracht. In plaats daarvan hebben we onze sleuftabel toegewezen aan de lijnkaarten die gebruikt worden in de test.
! slot-table-cos B2-Table destination-slot all B2 multicast B2 !--- If you don't fulfill the steps above, you will not be able to reach the goal of 0 drops for Multicast traffic. With no rx-cos configured, multicast will be treated in the default queue, meaning it will drop as soon as there is congestion. !
U kunt nu uw belastingdienst configureren. Kies een naam voor uw belasting qos, zoals "cos-wachtrij-groep B2".
Elke prioriteitswaarde die u een valgedrag wilt configureren waarvoor u een afzonderlijk willekeurig detectie-label wilt instellen.
precedence 0 random-detect-label 0 precedence 1 random-detect-label 1 precedence 2 random-detect-label 2 precedence 3 random-detect-label 3
Voor Modified Deficit round Robin (MDRR), kaart elke voorrang aan een MDRR rij in. In ons voorbeeld, hebben we voorrang 0-3 aan de zelfde MDRR rij in kaart gebracht om bandbreedte voor video (multicast verkeer) te bewaren. Deze afbeelding geeft het gevraagde gedrag.
precedence 0 queue 0 precedence 1 queue 0 precedence 2 queue 0 precedence 3 queue 0 precedence 4 queue 4
Spraak is gemarkeerd met voorrang 5 en dit is waarom voorrang 5 in kaart is gebracht in de rij met lage latentie.
precedence 5 queue low-latency precedence 6 queue 6 precedence 7 queue 6
Nu moet u het uitdruppelgedrag configureren voor elk van de willekeurige detectie-labels. Tijdens testen werden deze getallen gewijzigd totdat waarden werden gevonden die het gewenste druppelpatroon gaven. Zie voor meer informatie het gedeelte Verwachte resultaten. De wachtrijdiepte wordt gemeten in de fysieke rij, en niet in de rij van de MDRR of van het ROOD-Label.
random-detect-label 0 50 5000 1 random-detect-label 1 60 6000 1 random-detect-label 2 70 7000 1 random-detect-label 3 80 8000 1
Op Cisco 12000 is het mogelijk om op klasse gebaseerde, Weighted Fair Queuing (CBWFQ) gedrag te maken door de verschillende MDRR-wachtrij een gewicht te geven. Het standaardgewicht is 10 per rij. Het aantal bytes die elk MDRR-programma worden verzonden, is een functie van de gewichtswaarde. Een waarde van 1 betekent 1500 bytes per programma. Een waarde van 10 betekent 1500+ (9*512) bytes per programma."
queue 0 20 queue 4 20 queue 6 20 !
Elke interface moet voor WRED worden geconfigureerd. Dit gebeurt met de opdrachten:
aanvalsterrein
interfacegids 6/0
belastingdruk B2
De gegenereerde stroom gebruikt de volgende waarden, tenzij er iets anders wordt aangegeven:
MTU all three data streams 300byte, MTU voice 80byte, MTU MC 1500byte 126Mb MC, 114Mb voip
Dit levert een achtergrondstroom van 240Mb (VoIP en multicast) op.
We voegen vervolgens vier datastromen van dezelfde grootte toe, maar met voorrang 0-3 (één prioriteitswaarde per stream).
Deze configuratie geeft een totale bandbreedte van 844 MB. De grafiek hieronder toont dat er 0 pakketdruppels zijn, en een zeer lage latentie (ongeveer 50 us - microseconden - voor elke stroom, inclusief spraak).
Deze configuratie geeft een totale bandbreedte van 880 MB. De grafiek hieronder toont dat de pakketten van prioriteitsklasse 0 beginnen te dalen, en de latentie voor Spraak is verhoogd tot 6 ms - milliseconden.
Deze configuratie geeft een totale bandbreedte van 908MB. De druppels beginnen nu ook voor de prioriteitsklasse 1. De vertraging van het spraakverkeer is nog steeds hetzelfde.
Opmerking: de stream werd niet gestopt voordat hij werd verhoogd, dus het verschil tussen het aantal druppels in stream 0 en 1 is cumulatief.
Wanneer de totale bandbreedte wordt verhoogd, beginnen pakketten ook uit de prioriteitswachtrij 2 te vallen. De totale bandbreedte die we proberen te bereiken voor de Gigabit Ethernet-interface is nu 1004MB. Dit wordt geïllustreerd in de sequentietellers in de grafiek hieronder.
De sequentiefouten voor precedent 3 beginnen ook te stijgen. Dit is het eerste teken dat druppels uit die rij beginnen. De totale hoeveelheid bandbreedte die we proberen de GbE interface te verzenden is nu 1216 Mb. Merk op dat de druppels op de multicast (MC) en de spraakwachtrij nog steeds nul zijn, en dat de latentie van de spraakwachtrij niet is toegenomen.
Stoppen en starten
Alle stromen werden gestopt en begonnen een grafiek te genereren die tellers heeft ontruimd. Dit laat zien hoe het eruit zal zien tijdens zware congestie. Zoals je hieronder kunt zien, is het gedrag het gewenste.
Om te bewijzen dat QoS de prestaties tijdens een congestie echt verbetert, is QoS nu verwijderd en is de interface geblokkeerd. De resultaten zijn hieronder (de gegenereerde stroom gebruikt de volgende waarden, tenzij er iets anders is aangegeven).
MTU all three data streams 300byte, MTU voice 80byte, MTU MC 1500byte 126Mb MC, 114Mb VoIP
Dit levert een achtergrondstroom van 240Mb (VoIP en multicast) op.
We voegen vervolgens vier datastromen van dezelfde grootte toe, maar met voorrang 0-3 (één prioriteitswaarde per stream).
Dit levert in totaal 852 MB op. Er zijn 0 druppels, en een latentie van minder dan 50 van ons.
We beginnen te vallen bij ongeveer hetzelfde gebruik als wanneer WRED wordt toegepast (872 MB). Het verschil is nu dat er een latentie is van spraakpakketten van 14 ms (meer dan twee keer zoveel als in de WRED-test), en dat er druppels in alle klassen, waaronder VoIP en multicast, plaatsvinden.
Tot nu toe hebben alle testen alleen het doorgeven door de Gigabit Ethernet interfaces opgenomen. Om te verifiëren hoe de interface reageert in een situatie waarin we de interface ook in de andere richting samenvatten, werden de volgende tests uitgevoerd.
Voor deze test, hebben we de Gigabit Ethernet interface geladen met een totale hoeveelheid 1056 Mb. Dit resulteerde in een afname van het aantal voorvallen 0-2, geen druppels op het prioriteitsniveau 3 verkeer. (MC en VOIP bleven hetzelfde, dat wil zeggen, geen druppels). Vervolgens voegden we verkeer in de andere richting toe, evenveel verkeer als de pakketgenerator kon uitzenden via de Gigabit Ethernet-interface. Het resultaat is vrij indrukwekkend: De ontvangende congestie interfereert helemaal niet met de verzendende rij, en de latentie voor het ontvangende verkeer is extreem laag, minder dan 13 ons voor Voice.
U kunt de lading op de Gigabit link controleren met de opdracht tonen interfaces:
Router#show interfaces gig 6/0 GigabitEthernet6/0 is up, line protocol is up Hardware is GigMac 3 Port GigabitEthernet, address is 0004.de56.c264 (bia 0004.de56.c264) Internet address is 178.6.0.1/24 MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec, rely 255/255, load 232/255 Encapsulation ARPA, loopback not set Keepalive set (10 sec) Full-duplex mode, link type is force-up, media type is SX output flow-control is unsupported, input flow-control is off ARP type: ARPA, ARP Timeout 04:00:00 Last input 00:00:05, output 00:00:05, output hang never Last clearing of "show interface" counters 08:52:40 Queueing strategy: random early detection (WRED) Output queue 0/40, 2174119522 drops; input queue 0/75, 0 drops 30 second input rate 838969000 bits/sec, 792079 packets/sec 30 second output rate 910819000 bits/sec, 464704 packets/sec 7584351146 packets input, 1003461987270 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored 0 watchdog, 514 multicast, 0 pause input 11167110605 packets output, 2241229569668 bytes, 0 underruns 0 output errors, 0 collisions, 0 interface resets 0 babbles, 0 late collision, 0 deferred 0 lost carrier, 0 no carrier, 0 pause output 0 output buffer failures, 0 output buffers swapped out
Om te verifiëren dat de testresultaten niet toe te schrijven zijn aan de bandbreedte die voor alle stromen hetzelfde is, veranderden we de stromen zodat ze verschillende hoeveelheden gegevens doorgaven. We hebben ook geprobeerd de maximale transmissieeenheid (MTU) te wijzigen, zodat deze voor elke stroom anders was. Met de geconfigureerde wachtrijwaarden was het resultaat nog steeds hetzelfde, waarbij voorrang 0 eerst werd weggelaten, vervolgens 1, dan 2, en uiteindelijk voorrang 3.
Aangezien de latentie van de VoIP-wachtrij (de rij met lage latentie) in de test vrij hoog was, hebben we dezelfde test uitgevoerd met de lijnkaart met 10-poorts Gigabit Ethernet Engine 4. Zoals verwacht was het resultaat met deze lijnkaart veel beter met betrekking tot latentie in de lage latentiewachtrij. De resultaten waren dezelfde als wat betreft de manier waarop de druppel plaatsvond. De latentie voor de LLQ was rond 10us, wat 1:1000 van de latentie is in de 3-poorts Gigabit Ethernet Engine 2 lijnkaart.