Netwerken en prestaties 17 min. leestijd

Een efficiënte QoS configureren op MikroTik RouterOS

Bufferbloat verminderen met CAKE, de wachtrij dimensioneren onder de werkelijke doorvoer, alleen de nuttige stromen classificeren en vermijden dat FastTrack de QoS omzeilt.

Een internetverbinding kan 500 Mbit/s behalen op een snelheidstest en toch een videovergadering pijnlijk traag maken zodra een back-up start. Het probleem is niet altijd een gebrek aan bandbreedte : het komt vaak door een te lange wachtrij, die zich in de modem of bij de operator bevindt. Grote overdrachten vullen deze, kleine interactieve pakketten wachten, en de latentie explodeert. Dit fenomeen wordt bufferbloat genoemd.

QoS creëert geen bandbreedte. Het organiseert een beperkte capaciteit zodat stem, interactieve toepassingen en het web reactief blijven terwijl downloads gebruiken wat overblijft. Op RouterOS 7 combineert CAKE shaping, actief wachtrijbeheer (AQM), eerlijkheid tussen stromen en ondersteuning voor DiffServ. Voor veel kleine netwerken maakt het het mogelijk om een beter resultaat te bereiken met minder regels dan een grote boomstructuur gebaseerd op poorten.

De juiste wachtrij kiezen

RouterOS biedt verschillende disciplines. Ze lossen niet allemaal hetzelfde probleem op.

TypeWat het goed doetWanneer kiezen
FIFOBehandelt pakketten in volgorde met zeer weinig rekenkrachtNiet-verzadigde verbinding of zeer beperkte hardware ; geen echte bescherming tegen bufferbloat
PCQVerdeelt de capaciteit over substromen, bijvoorbeeld op basis van bron- of bestemmingsadresEerlijke verdeling tussen veel clients, vooral op oudere hardware
FQ-CoDelIsoleert stromen en vermindert de persistente wachtrijGoed compromis wanneer CAKE te veel processor vraagt of wanneer DiffServ niet nodig is
CAKECombineert eerlijkheid, AQM, shaping, host-isolatie en DiffServ-klassenAanbevolen keuze hier voor een internetverbinding voor thuis, lab of klein bedrijf

CAKE, FQ-CoDel en CoDel zijn beschikbaar in RouterOS sinds tak 7.1. Hun CPU-kost hangt af van de snelheid, de grootte van de pakketten en het routermodel. Er bestaat dus geen universele tabel die garandeert dat een apparaat 500 Mbit/s of 1 Gbit/s zal aankunnen met CAKE : meet de belasting op uw eigen configuratie.

Behouden architectuur

Deze gids gebruikt een Simple Queue voor een IPv4-netwerk, met een afzonderlijk CAKE-type voor zenden en ontvangen. De upload past dual-srchost toe zodat een werkstation dat veel verbindingen opent niet de upload monopoliseert. De download gebruikt dual-dsthost om de gegevens eerlijk te verdelen over de LAN-clients.

Schema van een CAKE-wachtrij geplaatst onder de werkelijke capaciteit, met vier verkeersklassen en FastTrack uitgeschakeld
Het plafond creëert een gecontroleerde congestie in RouterOS ; CAKE verdeelt vervolgens de stromen en houdt de latentie onder belasting aanvaardbaar.

De voorbeelden gaan ervan uit :

  • een LAN 192.168.88.0/24 ;
  • een stabiele gemeten snelheid van 200 Mbit/s bij ontvangst en 20 Mbit/s bij zenden ;
  • een WAN-interface die al in de lijst WAN is geplaatst en de lokale interfaces in LAN ;
  • een router die zelf zorgt voor IPv4-NAT.

Vervang deze waarden door de uwe. De volgorde upload/download van een Simple Queue is belangrijk : in ons voorbeeld betekent 19M/190M 19 Mbit/s naar het internet en 190 Mbit/s naar het LAN.

1. Meten voor het configureren

Sluit een computer aan via Ethernet, onderbreek de back-ups en herhaal verschillende tests op verschillende tijdstippen. Behoud de lage waarde die werkelijk beschikbaar blijft, niet het beste resultaat van de dag. Meet ook de latentie in rust en tijdens een verzadigende overdracht.

/ping 1.1.1.1 interval=200ms count=100

Start tegelijkertijd een download en vervolgens een upload vanaf een client. Als de ping bijvoorbeeld stijgt van 12 ms naar 150 ms, lijdt de verbinding aan wachttijd onder belasting. Voor een vaste verbinding begint u best op 90–95 % van de waargenomen lage snelheid. Hier wordt 200/20 dus 190/19. Op een zeer variabele radio- of mobiele verbinding kan een grotere marge nodig zijn.

2. Back-up maken en werken in Safe Mode

Een fout op FastTrack of de wachtrijen kan een externe sessie verbreken. Voer de eerste ingebruikname uit vanuit het LAN, activeer de Safe Mode met Ctrl+X, en sla vervolgens een export en een binaire back-up op.

/export file=avant-qos
/system backup save name=avant-qos
/system resource print
/queue type print
/queue simple print
/ip firewall filter print where action=fasttrack-connection

3. De twee CAKE-types aanmaken

Het profiel diffserv4 biedt vier klassen die gemakkelijk te auditen zijn : Bulk, Best Effort, Video en Voice. Het is over het algemeen eenvoudiger te onderhouden dan acht niveaus. De modus cake-nat=yes laat CAKE de interne hosts achter de NAT terugvinden wanneer het de eerlijkheid toepast.

/queue type
add name=cake-upload kind=cake \
    cake-bandwidth=19M \
    cake-flowmode=dual-srchost cake-nat=yes \
    cake-diffserv=diffserv4 cake-rtt-scheme=internet
add name=cake-download kind=cake \
    cake-bandwidth=190M \
    cake-flowmode=dual-dsthost cake-nat=yes \
    cake-diffserv=diffserv4 cake-rtt-scheme=internet

De waarden cake-bandwidth moeten coherent blijven met de max-limit van de Simple Queue. Het schema RTT internet komt overeen met 100 ms en is geschikt voor de meerderheid van de internetverbindingen. Kies niet voor lan om een internetverbinding te shapen : dit profiel veronderstelt een lokaal Ethernet-netwerk van ongeveer 1 ms.

Als de verbinding PPPoE, VDSL, DOCSIS of een VLAN gebruikt, kan overheadcompensatie de nauwkeurigheid verbeteren. De juiste cake-overhead-scheme hangt af van de werkelijke inkapseling. Kopieer niet zomaar een waarde die voor een andere technologie is gevonden : vraag de toegangsmodus aan de operator of begin met een voorzichtige snelheidsmarge.

4. De Simple Queue aanmaken

/queue simple
add name="QoS Internet CAKE" target=192.168.88.0/24 \
    max-limit=19M/190M \
    queue=cake-upload/cake-download

Vermijd target=0.0.0.0/0 wanneer het lokale subnet bekend is : een precies doel beperkt de ambiguïteiten met het verkeer van de router, de VPN's en de andere netwerken. Als meerdere VLAN's dezelfde verbinding moeten delen, voeg dan hun prefixen toe aan het doel of ontwerp een expliciete hiërarchie nadat u de richting van de stromen hebt gecontroleerd.

5. Voorkomen dat FastTrack de wachtrij omzeilt

FastTrack versnelt IPv4 TCP- en UDP-verbindingen door verschillende RouterOS-functies te omzeilen. De MikroTik-documentatie specificeert dat het onder andere de Simple Queues en Queue Trees waarvan de parent global is, omzeilt. Zolang de CAKE-wachtrij de volledige internetverbinding moet verwerken, moet de algemene FastTrack-regel dus worden uitgeschakeld.

/ip firewall filter
disable [find where action=fasttrack-connection]

Verwijder de regel niet : het uitschakelen vergemakkelijkt het terugdraaien. De CPU-belasting zal stijgen, soms sterk. Controleer dit tijdens een test op volle snelheid.

/tool profile cpu=all duration=30
/queue simple print stats-detail where name="QoS Internet CAKE"
/queue type print detail where name~"cake-"

Als de processor 100 % bereikt vóór de doelsnelheid, verlaag dan de snelheid, probeer FQ-CoDel, behoud PCQ voor de verdeling tussen clients of gebruik krachtigere apparatuur. Een test die beperkt wordt door de CPU valideert de QoS niet.

6. DiffServ alleen toevoegen waar het iets oplevert

CAKE werkt al zonder enige classificatieregel : elke stroom krijgt een eerlijke wachtrij. Begin dus met de Best Effort-modus en meet. Voeg vervolgens enkele klassen toe die op een duidelijk beleid zijn gebaseerd, niet op honderd poorten.

Poorten maken het niet meer mogelijk om een toepassing correct te identificeren. HTTPS groepeert talloze toepassingen op TCP 443, QUIC transporteert een groot deel van het web en video via UDP 443, en toepassingen kunnen dynamische poortbereiken gebruiken. Alle verkeer op poort 443 voorrang geven, zou betekenen dat u aan versleutelde back-ups dezelfde prioriteit geeft als aan vergaderingen.

Een robuuste methode bestaat erin toegewijde terminals te classificeren. Het volgende voorbeeld kent EF 46 toe aan een IP-telefoon en plaatst een back-upserver in CS1 8. De verbindingsmarkering maakt de beslissing symmetrisch : de heen- en terugpakketten van dezelfde verbinding krijgen dezelfde DSCP. De regels connection-mark=no-mark vermijden het overschrijven van een markering die al door policy routing of een VPN wordt gebruikt.

/ip firewall address-list
add list=qos-voice address=192.168.88.20 comment="IP-telefoon"
add list=qos-bulk address=192.168.88.50 comment="Back-upserver"

/ip firewall mangle
add chain=prerouting in-interface-list=LAN \
    src-address-list=qos-voice connection-state=new \
    connection-mark=no-mark action=mark-connection \
    new-connection-mark=qos_voice passthrough=yes \
    comment="QoS: spraakverbinding"
add chain=prerouting connection-mark=qos_voice \
    action=change-dscp new-dscp=46 passthrough=no \
    comment="QoS: voix EF"

add chain=prerouting in-interface-list=LAN \
    src-address-list=qos-bulk connection-state=new \
    connection-mark=no-mark action=mark-connection \
    new-connection-mark=qos_bulk passthrough=yes \
    comment="QoS: back-upverbinding"
add chain=prerouting connection-mark=qos_bulk \
    action=change-dscp new-dscp=8 passthrough=no \
    comment="QoS: sauvegarde CS1"

Voor een videovergadering reserveert u AF41 34 voor een zaalterminal of een beheerd VLAN. Vermijd het prioriteit geven aan een volledige veelzijdige computer : zijn synchronisaties en updates zouden dezelfde behandeling erven. DNS, zeer licht, profiteert over het algemeen meer van een korte wachtrij dan van een overdreven hoog niveau.

7. Het resultaat testen

De nuttige test bestaat er niet in om exact de contractuele snelheid terug te vinden. Ze bestaat erin om beide richtingen te verzadigen terwijl u de latentie meet en een oproep doet.

  1. Meet de ping in rust gedurende één minuut.
  2. Verzadig de download, dan de upload, dan beide tegelijk.
  3. Controleer of de tellers van QoS Internet CAKE toenemen.
  4. Verifieer de snelheid, de latentie onder belasting, de verliezen en de CPU-belasting.
  5. Herhaal met een echte back-up en videovergadering.
/queue simple print stats-detail where name="QoS Internet CAKE"
/ip firewall mangle print stats where comment~"QoS:"
/ip firewall connection print where connection-mark~"qos_"
/system resource print

Een lichte daling van de maximale snelheid is normaal : ze koopt de controle over de wachtrij. Pas het plafond aan in stappen van 1 tot 2 %. Als de latentie nog sterk oploopt, verlaag het. Als ze stabiel blijft en de lijn onderbenut is, verhoog het dan met voorzichtigheid.

Geval van een variabele snelheid

CAKE biedt cake-autorate-ingress om een variërende inkomende capaciteit in te schatten, bijvoorbeeld op een mobiele verbinding. Deze functie kan echter in alle omstandigheden geen verdere beperking in het netwerk correct raden. Op een stabiele verbinding blijft een gemeten plafond voorspelbaarder. Op een variabele verbinding test u de autorate gedurende meerdere dagen en vergelijkt u deze met een conservatief plafond.

PCQ-alternatief voor een bescheidener router

PCQ vervangt de AQM van CAKE niet, maar verdeelt gewoon de capaciteit tussen de hosts. RouterOS biedt al pcq-upload-default met de classificator src-address en pcq-download-default met dst-address. Voor een beperkt apparaat kan men hetzelfde plafond behouden en de wachtrijtypes vervangen :

/queue simple
set [find where name="QoS Internet CAKE"] \
    queue=pcq-upload-default/pcq-download-default

De verdeling tussen clients zal eerlijker zijn, maar de latentie bij congestie kan minder goed beheersbaar blijven. FQ-CoDel vormt vaak de tussenstap : beter wachtrijbeheer dan PCQ, minder ingebouwde functies dan CAKE.

Probleemoplossing

SymptoomWaarschijnlijke oorzaakActie
Wachtrijtellers bijna nulFastTrack actief of verkeerd doelFastTrack uitschakelen, subnet en richting upload/download controleren
Snelheid lager dan plafond, CPU op 100 %Router beperkt door softwareverwerkingFQ-CoDel/PCQ proberen, snelheid verlagen of hardware versterken
Latentie altijd hoogPlafond te dicht bij werkelijke snelheid of variabele capaciteitMax-limit verlagen en op meerdere uren meten
Stem neemt de Voice-klasse nietVerkeerd adres, mangle-volgorde of verbindingsmarkeringTellers, interfacelijsten en bestaande markeringen controleren
Een werkstation monopoliseert nog steeds de verbindingVerkeerde flowmode of NAT niet in aanmerking genomenDual-srchost/dual-dsthost en cake-nat=yes controleren
De router wordt instabielWachtrij te kostelijk of riskante externe wijzigingTerugkeren naar Safe Mode, FastTrack heractiveren en vorige wachtrij herstellen

Terugdraaien

De opmerkingen en expliciete namen maken het mogelijk om enkel de elementen van deze gids te verwijderen.

/queue simple remove [find where name="QoS Internet CAKE"]
/ip firewall mangle remove [find where comment~"QoS:"]
/ip firewall address-list remove [find where list~"qos-"]
/queue type remove [find where name="cake-upload"]
/queue type remove [find where name="cake-download"]
/ip firewall filter enable [find where action=fasttrack-connection]

De laatste opdracht heractiveert alle uitgeschakelde FastTrack-regels. Als er meerdere beleidsregels bestaan, heractiveer dan liever de exacte regel die u vóór de wijziging had genoteerd.

Conclusie

Een efficiënte QoS berust eerst en foremost op een realistisch plafond en een wachtrij die bufferbloat bestrijdt. CAKE kan al stromen en hosts delen : het is niet nodig om elke dienst van het netwerk te herkennen. Enkele betrouwbare classificaties — beheerde telefoon, vergaderruimte, back-up — zijn beter dan een lange lijst van poorten die in onbruik is geraakt.

Het resultaat wordt beoordeeld op de latentie onder belasting, de verliezen, de kwaliteit van de oproepen en de CPU-belasting, niet alleen op het cijfer van een speedtest. Met een Simple Queue die net onder de werkelijke capaciteit is geplaatst, twee CAKE-profielen die op de verkeersrichting zijn afgestemd en een beheerste FastTrack, kan RouterOS een reactieve verbinding behouden, zelfs wanneer deze volledig wordt benut.

Technische referenties

Over de auteur

Jeremy Kraft beheert de infrastructuur en de zelfgehoste diensten van het IBCSC. Deze gidsen beschrijven configuraties die echt zijn uitgerold en voor publicatie opnieuw zijn nagekeken.

Discussie

Reacties

0

Nog geen reacties. U kunt de discussie openen met een vraag of uw eigen ervaring.

Hebt u een account? Aanmelden

Platte tekst, maximaal 2 000 tekens. Nieuwe reacties worden gemodereerd. Uw naam wordt bij de reactie getoond. Er wordt geen e-mailadres gevraagd; alleen een onomkeerbare vingerafdruk van uw IP-adres wordt bewaard tegen spam.