Effizientes QoS auf MikroTik RouterOS einrichten
Bufferbloat mit CAKE reduzieren, die Warteschlange nach dem tatsächlichen Datenvolumen dimensionieren, nur nützliche Datenströme klassieren und verhindern, dass FastTrack das QoS umgeht.
Eine Internetverbindung kann bei einem Geschwindigkeitstest 500 Mbit/s anzeigen und dennoch eine Videokonferenz zur Qual machen, sobald ein Backup startet. Das Problem ist nicht immer mangelnde Bandbreite : Es rührt oft von einer zu langen Warteschlange her, die sich im Modem oder beim Anbieter befindet. Große Übertragungen füllen sie, kleine interaktive Pakete warten, und die Latenz explodiert. Dieses Phänomen trägt den Namen Bufferbloat.
QoS erzeugt keinen Durchsatz. Sie organisiert eine begrenzte Kapazität, sodass Sprache, interaktive Anwendungen und das Web reaktionsschnell bleiben, während Downloads das nutzen, was übrig bleibt. Unter RouterOS 7 vereint CAKE Traffic Shaping, aktives Warteschlangenmanagement, Fairness zwischen Datenströmen und die Unterstützung von DiffServ. Für viele kleine Netzwerke ermöglicht es ein besseres Ergebnis mit weniger Regeln als eine große, auf Ports basierende Baumstruktur.
Die richtige Warteschlange wählen
RouterOS bietet mehrere Disziplinen. Sie beantworten nicht alle dasselbe Problem.
| Typ | Was er gut kann | Wann man ihn wählt |
|---|---|---|
| FIFO | Verarbeitet Pakete in der Reihenfolge mit sehr wenig Rechenleistung | Unbelastete Verbindung oder sehr begrenzte Hardware ; kein echter Schutz gegen Bufferbloat |
| PCQ | Verteilt die Kapazität auf Unterströme, beispielsweise nach Quell- oder Zieladresse | Faire Aufteilung zwischen vielen Clients, insbesondere auf älterer Hardware |
| FQ-CoDel | Isoliert Datenströme und reduziert die persistente Warteschlange | Guter Kompromiss, wenn CAKE zu viel Prozessorleistung verbraucht oder DiffServ nicht erforderlich ist |
| CAKE | Kombiniert Fairness, AQM, Traffic Shaping, Host-Isolation und DiffServ-Klassen | Hier empfohlene Wahl für einen Heim-, Labor- oder Kleinunternehmens-Internetzugang |
CAKE, FQ-CoDel und CoDel sind in RouterOS seit Version 7.1 verfügbar. Ihre CPU-Kosten hängen vom Durchsatz, der Paketgröße und dem Routermodell ab. Es gibt daher keine universelle Tabelle, die garantiert, dass ein Gerät mit CAKE 500 Mbit/s oder 1 Gbit/s bewältigt : Messen Sie die Auslastung in Ihrer eigenen Konfiguration.
Gewählte Architektur
Dieser Leitfaden verwendet eine Simple Queue für ein IPv4-Netzwerk, mit einem separaten CAKE-Typ für Senden und Empfangen. Der Upload wendet dual-srchost an, damit ein Rechner, der viele Verbindungen öffnet, nicht die Upstream-Bandbreite monopolisiert. Der Download verwendet dual-dsthost, um die Daten fair unter den LAN-Clients aufzuteilen.
Die Beispiele gehen von Folgendem aus :
- einem LAN
192.168.88.0/24; - einem stabilen, gemessenen Durchsatz von 200 Mbit/s im Empfang und 20 Mbit/s im Senden ;
- einer WAN-Schnittstelle, die bereits in der Liste
WANenthalten ist, und lokalen Schnittstellen inLAN; - einem Router, der selbst das IPv4-NAT übernimmt.
Ersetzen Sie diese Werte durch Ihre eigenen. Die Reihenfolge upload/download einer Simple Queue ist wichtig : In unserem Beispiel bedeutet 19M/190M 19 Mbit/s zum Internet und 190 Mbit/s zum LAN.
1. Messen vor der Konfiguration
Schließen Sie einen Computer per Ethernet an, unterbrechen Sie Backups und wiederholen Sie mehrere Tests zu unterschiedlichen Tageszeiten. Behalten Sie den niedrigen Wert, der tatsächlich verfügbar bleibt, und nicht das beste Ergebnis des Tages. Messen Sie auch die Latenz im Ruhezustand und während einer sättigenden Übertragung.
/ping 1.1.1.1 interval=200ms count=100
Starten Sie gleichzeitig einen Download und dann einen Upload von einem Client. Wenn der Ping beispielsweise von 12 ms auf 150 ms steigt, leidet die Verbindung unter Wartezeit unter Last. Beginnen Sie bei einem Festanschluss mit 90–95 % des beobachteten niedrigen Durchsatzes. Hier wird aus 200/20 somit 190/19. Bei einer sehr variablen Funk- oder Mobilfunkverbindung kann ein größerer Spielraum erforderlich sein.
2. Sichern und im Safe Mode arbeiten
Ein Fehler bei FastTrack oder den Warteschlangen kann eine Remotesitzung unterbrechen. Führen Sie die erste Inbetriebnahme über das LAN durch, aktivieren Sie den Safe Mode mit Ctrl+X, und speichern Sie dann einen Export und ein binäres Backup.
/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. Die beiden CAKE-Typen erstellen
Das Profil diffserv4 bietet vier leicht zu prüfende Klassen : Bulk, Best Effort, Video und Voice. Es ist in der Regel einfacher zu verwalten als acht Stufen. Der Modus cake-nat=yes ermöglicht es CAKE, die internen Hosts hinter dem NAT zu finden, wenn es die Fairness anwendet.
/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
Die Werte cake-bandwidth müssen mit dem max-limit der Simple Queue konsistent bleiben. Das RTT-Schema internet entspricht 100 ms und eignet sich für die meisten Internetzugänge. Wählen Sie nicht lan, um eine Internetverbindung zu formen : Dieses Profil geht von einem lokalen Ethernet-Netzwerk von etwa 1 ms aus.
Wenn der Zugang PPPoE, VDSL, DOCSIS oder ein VLAN verwendet, kann die Overhead-Kompensation die Genauigkeit verbessern. Der richtige cake-overhead-scheme hängt von der tatsächlichen Kapselung ab. Kopieren Sie nicht blindlings einen Wert, der für eine andere Technologie gefunden wurde : Fragen Sie den Anbieter nach dem Zugriffsmodus oder beginnen Sie mit einem vorsichtigen Durchsatz-Spielraum.
4. Die Simple Queue erstellen
/queue simple
add name="QoS Internet CAKE" target=192.168.88.0/24 \
max-limit=19M/190M \
queue=cake-upload/cake-download
Vermeiden Sie target=0.0.0.0/0, wenn das lokale Subnetz bekannt ist : Ein präzises Ziel begrenzt Mehrdeutigkeiten mit dem Router-Verkehr, den VPNs und den anderen Netzwerken. Wenn mehrere VLANs denselben Zugang teilen müssen, fügen Sie deren Präfixe zum Ziel hinzu oder entwerfen Sie eine explizite Hierarchie, nachdem Sie die Richtung der Datenströme überprüft haben.
5. Verhindern, dass FastTrack die Warteschlange umgeht
FastTrack beschleunigt IPv4-TCP- und -UDP-Verbindungen, indem es mehrere RouterOS-Funktionen umgeht. Die MikroTik-Dokumentation stellt fest, dass es insbesondere Simple Queues und Queue Trees umgeht, deren übergeordnetes Element global ist. Solange die CAKE-Warteschlange den gesamten Internetzugang verarbeiten soll, muss die allgemeine FastTrack-Regel daher deaktiviert werden.
/ip firewall filter
disable [find where action=fasttrack-connection]
Löschen Sie die Regel nicht : Die Deaktivierung erleichtert den Rückgängig-Modus. Die CPU-Auslastung wird steigen, manchmal stark. Überwachen Sie diese während eines Tests mit voller Geschwindigkeit.
/tool profile cpu=all duration=30
/queue simple print stats-detail where name="QoS Internet CAKE"
/queue type print detail where name~"cake-"
Wenn der Prozessor vor dem Zieldurchsatz 100 % erreicht, reduzieren Sie die Geschwindigkeit, versuchen Sie FQ-CoDel, behalten Sie PCQ für die Aufteilung zwischen Clients bei oder verwenden Sie eine leistungsstärkere Hardware. Ein durch die CPU begrenzter Test validiert keine QoS.
6. DiffServ nur dort hinzufügen, wo es etwas bringt
CAKE funktioniert bereits ohne jegliche Klassifizierungsregeln : Jeder Datenstrom erhält eine faire Warteschlange. Beginnen Sie also mit dem Best-Effort-Modus und messen Sie. Fügen Sie dann einige Klassen hinzu, die auf einer klaren Richtlinie basieren, nicht auf hundert Ports.
Ports ermöglichen es nicht mehr, eine Anwendung sauber zu identifizieren. HTTPS bündelt zahlreiche Nutzungszwecke auf TCP 443, QUIC transportiert einen großen Teil des Web- und Videoverkehrs auf UDP 443, und Anwendungen können dynamische Bereiche verwenden. Port 443 insgesamt zu bevorzugen, käme darauf hinaus, verschlüsselten Backups dieselbe Priorität zu geben wie Besprechungen.
Eine robuste Methode besteht darin, dedizierte Endgeräte zu klassifizieren. Das folgende Beispiel gewährt einem IP-Telefon EF 46 und platziert einen Backup-Server in CS1 8. Die Verbindungsmarkierung macht die Entscheidung symmetrisch : Hin- und Rückpakete derselben Verbindung erhalten dasselbe DSCP. Die Regeln connection-mark=no-mark vermeiden es, eine Markierung zu überschreiben, die bereits durch Policy-Routing oder ein VPN verwendet wird.
/ip firewall address-list
add list=qos-voice address=192.168.88.20 comment="IP-Telefon"
add list=qos-bulk address=192.168.88.50 comment="Backup-Server"
/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: Sprachverbindung"
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: Backup-Verbindung"
add chain=prerouting connection-mark=qos_bulk \
action=change-dscp new-dscp=8 passthrough=no \
comment="QoS: sauvegarde CS1"
Reservieren Sie für eine Videokonferenz AF41 34 für ein Raum-Endgerät oder ein verwaltetes VLAN. Vermeiden Sie es, einen ganzen Universal-Computer zu bevorzugen : Dessen Synchronisierungen und Updates würden dieselbe Behandlung erben. DNS, das sehr leichtgewichtig ist, profitiert im Allgemeinen mehr von einer kurzen Warteschlange als von einer übermäßig hohen Prioritätsstufe.
7. Das Ergebnis testen
Der nützliche Test besteht nicht darin, genau den vertraglichen Durchsatz wiederzufinden. Er besteht darin, beide Richtungen zu sättigen, während die Latenz gemessen und ein Anruf getätigt wird.
- Messen Sie den Ping im Ruhezustand für eine Minute.
- Sättigen Sie den Download, dann den Upload, dann beide gleichzeitig.
- Kontrollieren Sie, ob die Zähler von
QoS Internet CAKEsteigen. - Überprüfen Sie Durchsatz, Latenz unter Last, Verluste und CPU-Auslastung.
- Wiederholen Sie dies mit einem echten Backup und einer echten Videokonferenz.
/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
Ein leichter Rückgang des maximalen Durchsatzes ist normal : Er erkauft die Kontrolle über die Warteschlange. Passen Sie die Obergrenze in Schritten von 1 bis 2 % an. Wenn die Latenz immer noch stark ansteigt, senken Sie sie. Wenn sie stabil bleibt und die Leitung unterutilisiert ist, erhöhen Sie sie mit Vorsicht.
Fall eines variablen Durchsatzes
CAKE bietet cake-autorate-ingress an, um eine variierende Eingangskapazität zu schätzen, beispielsweise bei einem Mobilfunkzugang. Diese Funktion kann jedoch unter allen Bedingungen eine weiter unten im Netzwerk liegende Begrenzung nicht korrekt erraten. Bei einer stabilen Verbindung bleibt eine gemessene Obergrenze vorhersehbarer. Bei einer variablen Verbindung testen Sie den Autorate über mehrere Tage und vergleichen Sie ihn mit einer konservativen Obergrenze.
PCQ-Alternative für einen bescheideneren Router
PCQ ersetzt nicht das AQM von CAKE, sondern verteilt einfach die Kapazität zwischen den Hosts. RouterOS bietet bereits pcq-upload-default mit dem Klassifikator src-address und pcq-download-default mit dst-address. Für ein begrenztes Gerät kann man dieselbe Obergrenze beibehalten und die Warteschlangen-Typen ersetzen :
/queue simple
set [find where name="QoS Internet CAKE"] \
queue=pcq-upload-default/pcq-download-default
Die Aufteilung zwischen Clients wird fairer sein, aber die Latenz unter Stauung kann weiterhin weniger gut beherrscht bleiben. FQ-CoDel stellt oft die Zwischenstufe dar : besseres Warteschlangenmanagement als PCQ, weniger integrierte Funktionen als CAKE.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Aktion |
|---|---|---|
| Warteschlangenzähler fast null | FastTrack aktiv oder falsches Ziel | FastTrack deaktivieren, Subnetz und Upload/Download-Richtung überprüfen |
| Durchsatz unter der Obergrenze, CPU bei 100 % | Router durch Softwareverarbeitung begrenzt | FQ-CoDel/PCQ ausprobieren, Geschwindigkeit reduzieren oder Hardware aufrüsten |
| Latenz stets hoch | Obergrenze zu nah am tatsächlichen Durchsatz oder variable Kapazität | max-limit reduzieren und zu mehreren Stunden messen |
| Stimme nimmt nicht die Voice-Klasse | Falsche Adresse, mangle-Reihenfolge oder Verbindungsmarkierung | Zähler, Schnittstellenlisten und bestehende Markierungen kontrollieren |
| Ein Rechner monopolisiert weiterhin die Verbindung | Falscher flowmode oder NAT nicht berücksichtigt | dual-srchost/dual-dsthost und cake-nat=yes überprüfen |
| Router wird instabil | Warteschlange zu kostspielig oder riskante Fernänderung | In den Safe Mode zurückkehren, FastTrack reaktivieren und vorherige Warteschlange wiederherstellen |
Rückgängig machen
Die Kommentare und expliziten Namen ermöglichen es, nur die Elemente dieses Leitfadens zu entfernen.
/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]
Der letzte Befehl reaktiviert alle deaktivierten FastTrack-Regeln. Wenn mehrere Richtlinien existieren, reaktivieren Sie stattdessen die genaue Regel, die Sie sich vor der Änderung notiert haben.
Fazit
Eine effektive QoS beruht zunächst auf einer realistischen Obergrenze und einer Warteschlange, die Bufferbloat bekämpft. CAKE kann bereits Datenströme und Hosts aufteilen ; es ist nicht notwendig, jeden Dienst im Netzwerk zu erkennen. Einige zuverlässige Klassifizierungen — verwaltetes Telefon, Besprechungsraum, Backup — sind besser als eine lange, mittlerweile falsche Portliste.
Das Ergebnis beurteilt sich an der Latenz unter Last, den Verlusten, der Qualität der Anrufe und der CPU-Auslastung, nicht nur an der Zahl eines Speedtests. Mit einer Simple Queue, die knapp unter der tatsächlichen Kapazität liegt, zwei CAKE-Profilen, die an die Verkehrsrichtung angepasst sind, und einem beherrschten FastTrack, kann RouterOS eine Verbindung reaktionsschnell halten, selbst wenn sie voll ausgelastet ist.
Technische Referenzen
- MikroTik : RouterOS-Warteschlangen, Simple Queue, Queue Tree, PCQ, FQ-CoDel und CAKE
- MikroTik : CAKE-Parameter, Flow-Modi, DiffServ und Overhead-Kompensation
- MikroTik : Connection Tracking und von FastTrack umgangene Funktionen
- MikroTik : Bandbreitenaufteilung mit PCQ
- IETF RFC 4594 : Empfehlungen für DiffServ-Klassen
Diskussion
Kommentare
Noch kein Kommentar. Eröffnen Sie die Diskussion gern mit einer Frage oder Ihrem eigenen Erfahrungsbericht.