Es ist kein Geheimnis, dass MikroTik Software-Baser-Router herstellt und die CPU den größten Teil der Verkehrsverarbeitung übernimmt. Dieser Ansatz hat einen Vorteil, weil Sie können nahezu jede Funktionalität programmieren und ein relativ einheitliches System für alle Geräte beibehalten. In der Geschwindigkeit bleiben sie jedoch immer hinter Routern mit speziellen Chips zurück.
Die Verarbeitung von Softwarepaketen hat mehrere Nachteile:
- Fehlende Drahtgeschwindigkeit - Ein Prozessor (insbesondere ein einzelner Kern) kann nicht schneller laufen als spezialisierte Chips.
- Schlösser. Bei sehr großen Verkehrsmengen (z. B. DoS / DDoS) können Sie möglicherweise auch über die Konsolenschnittstelle keine Verbindung zum Router herstellen, da Die gesamte Prozessorzeit wird von der Verkehrsverarbeitung belegt.
- Die Komplexität der Skalierung. Sie können kein Modul hinzufügen, das die Verarbeitungsgeschwindigkeit von Paketen in der Hardware erhöht.
Entwickler gehen zu verschiedenen Hardware- und Softwarelösungen, um die Situation zu verbessern:
- Mit Switch-Chip bei kostengünstigen Modellen können Sie den Layer2-Verkehr unter Umgehung der CPU verarbeiten.
- SoC mit einem guten Netzwerkchip (CCR-Leitung).
- Verwenden der Hardwareverschlüsselung
- Verschiedene Technologien, die die Anzahl der Softwareverarbeitungen für Pakete reduzieren (FastPath und FastTrack), werden diskutiert.
SlowPath gegen FastPath
SlowPath ist der grundlegende Verkehrspfad durch die internen MikroTik-Subsysteme. Er kann sehr unterschiedlich sein. Je länger der Pfad, desto höher die CPU-Belastung und desto geringer die Geschwindigkeit.
FastPath - Algorithmen, mit denen Sie Datenverkehr unter Umgehung relativ großer Verarbeitungseinheiten übertragen können.
Arbeitsumgebung und Geräteunterstützung
Die meisten modernen Router und Boards von MikroTik unterstützen FastPath, aber das Wiki enthält eine detaillierte Liste:
Modell | Unterstützung für Ethernet-Schnittstellen |
---|
RB6xx-Serie | Äther1,2 |
Die meisten der RB7xx-Serie | alle Ethernet-Ports |
RB800 | Äther1,2 |
RB9xx-Serie | alle Ethernet-Ports |
RB1000 | alle Ethernet-Ports |
RB1100 Serie | ether1-11 |
RB2011-Serie | alle Ethernet-Ports |
RB3011 Serie | alle Ethernet-Ports |
Router der CRS-Serie | alle Ethernet-Ports |
Router der CCR-Serie | alle Ethernet-Ports |
Andere Geräte | Wird nicht unterstützt |
Und eine separate Liste für Nicht-Ethernet-Schnittstellen:
Schnittstelle | Fastpath-Unterstützung | Hinweis |
---|
Drahtlos | Ja |
Brücke | Ja | Ab 6.29 |
VLAN, VRRP | Ja | Ab 6.30 Uhr |
Verklebung | Ja | Nur RX-Verkehr ab 6.30 Uhr |
EoIP, GRE, IPIP | Ja | Ab 6.33. Wenn diese Option aktiviert ist, wird nicht der gesamte Tunnelverkehr über FastPath geleitet |
L2TP, PPPoE | Ja | Ab 6.35 Uhr |
MPLS | Ja | Derzeit gilt der MPLS-Fast-Path nur für MPLS-Switched-Verkehr. Der Ein- und Ausgang von MPLS funktioniert wie zuvor. |
Andere | Nein |
FastPath erfordert vollständige Unterstützung für eingehende und ausgehende Schnittstellen. Auf Schnittstellen sollten nur Hardware-Warteschlangen aktiviert sein.

Schließlich mag FastPath fragmentierten Datenverkehr wirklich nicht. Wenn das Paket fragmentiert ist, bleibt es definitiv auf der CPU hängen.
FastPath und Bridge
Bridge ist eine Softwareschnittstelle, mit der Layer2-Kommunikation zwischen mehreren Hardware- (oder Software-) Schnittstellen erstellt wird. Wenn Sie 4 Ethernet-Schnittstellen in der Bridge des Routers kombinieren (und hw=yes
aktivieren) und eine drahtlose Schnittstelle, wird der Datenverkehr zwischen den Ethernet-Schnittstellen die Softwareschnittstelle umgehen und der Datenverkehr zwischen Ethernet und drahtloser Verbindung verwendet die Software-Bridge. Auf Routern mit mehreren Chips (z. B. RB2011) nutzt der Verkehr zwischen Schnittstellen von verschiedenen Chips die Funktionen der Softwarebrücke (manchmal kombinieren die Schnittstellen einfach das Patchkabel, um die Last zu verringern, und im Allgemeinen funktioniert es).
FatsPath - bezieht sich nur auf Datenverkehr durch die CPU (Software Bridge). In der Regel handelt es sich um Datenverkehr zwischen Schnittstellen von verschiedenen Chips, oder die Option hw=yes
ist deaktiviert.
Im Paketfluss ist der Datenverkehr über Bridge wie folgt:

Und noch mehr Details:

Es ist in den Bridge-Einstellungen enthalten (die Einstellung ist für alle Bridge-Schnittstellen gleich) [Bridge] -> [Einstellungen] -> [FastPath zulassen], dort können Sie auch die Zähler sehen.

Damit FastPath in Bridge funktioniert, müssen die folgenden Bedingungen erfüllt sein:
- Es gibt keine vlan-Konfiguration für Bridge-Schnittstellen (ich denke, dies ist nicht relevant für die CRS-Serie, bei der vlan auf Hardwareebene konfiguriert ist, aber ich kann mich irren).
- Es gibt keine Regeln im
/interface bridge filter
und in /interface bridge nat
. Dies sind dieselben Blöcke aus der zweiten Schaltung, die der Frame durchläuft. - Nicht aktivierte IP-Firewall (
use-ip-firwall=no
). Eine gute Funktion zum Erfassen des Datenverkehrs und zum Debuggen des Netzwerks, die jedoch nur selten dauerhaft aktiviert wird. - Verwenden Sie kein Netz und keinen Metarouter
- Auf der Schnittstelle laufen nicht: Schnüffler, Taschenlampe und Verkehrsgenerator.
FastPath und Tunnel
Kurz gesagt: Die Tunnelschnittstelle ist die Kapselung einiger Pakete in den Lastteil anderer Pakete. Wenn Sie sich für PacketFlow entscheiden, wird das Originalpaket mit roten Linien markiert. Das Originalpaket ist im Tunnelprotokollpaket (z. B. ipip oder gre; eoip wird bei der Überbrückungsentscheidung eingekapselt). Das Tunnelpaket ist noch interessanter, aber nicht verwandt Fastpath).

Der Tunnelverkehr in FastPath ist nicht sichtbar in: Firewall, Warteschlangen, Hotspot, VRF, IP-Kontoführung. Einige der Pakete werden jedoch weiterhin über SlowPath übertragen. Dies sollte bei der Konfiguration der Firewall berücksichtigt werden.
Damit FastPath in Tunnelschnittstellen funktioniert, müssen die folgenden Bedingungen erfüllt sein:
- Verwenden Sie keine IPSec-Verschlüsselung
- Vermeiden Sie Paketfragmentierung (konfigurieren Sie mtu korrekt)
- Aktivieren Sie
allow-fast-path=yes
auf der Tunnelschnittstelle
FastPath und Layer3
Layer3 ist die Übertragung von Paketen zwischen Subnetzen. Der Router erstellt Routing-Tabellen und leitet sie an den nächsten Hop weiter.
In Packet Flow sieht der Transitverkehr auf Netzwerkebene folgendermaßen aus:

geh tief

und noch tiefer

Um FastPath auf Layer3 verwenden zu können, müssen die folgenden Bedingungen erfüllt sein:
- Fügen Sie der Firewall keine Regeln hinzu (auch nicht nat).
- Fügen Sie keine Einträge zu Adresslisten hinzu.
- Konfigurieren Sie Simple Queues und Queues Tree nicht für
parent=global
oder die Schnittstellen, auf denen Sie einen funktionierenden FastPath erhalten möchten. - Verwenden Sie kein Netz und keinen Metarouter.
- Deaktivieren Sie den Verbindungs-Tracker. Die Auto-Option wurde speziell für FastPath eingeführt, damit sie funktioniert, wenn die Firewall keine Regeln enthält.
- Verwenden Sie keine
/ip accounting
. - Verwenden Sie nicht
/ip route vrf
. - Konfigurieren Sie
/ip hotspot
. - Fügen Sie keine IPSec-Richtlinien hinzu.
- Der Routen-Cache muss aktiviert sein.
- Nicht aktiv verwenden:
/tool mac-scan
und /tool ip-scan
. - Laufender Sniffer, Taschenlampe und Verkehrsgenerator stören FastPath.
Es ist in den IP-Einstellungen enthalten: [IP] -> [Einstellungen], dort können Sie auch die Zähler erfolgreich verarbeiteter Pakete sehen.

Screenshot von einem Heimrouter. Ich habe eine ziemlich geladene Firewall, mehrere permanent aktivierte L2TP / IPSec-Verbindungen und Warteschlangen. Sie können nicht einmal von FastPath träumen.
Fasttrack
Etikettiertechnologie für IP-Pakete für den schnellen Durchgang durch Packet Flow.
Damit FastTrack funktioniert, müssen die folgenden Bedingungen beachtet werden:
- Route Cache und FastPath müssen aktiviert und aktiv sein.
- Die richtige Konfiguration für die Verkehrsbeschriftung.
- Funktioniert nur für UDP- und TCP-Verkehr.
- Verwenden Sie kein Netz und keinen Metarouter.
- Nicht aktiv verwenden:
/tool mac-scan
und /tool ip-scan
. - Laufender Schnüffler, Taschenlampe und Verkehrsgenerator stören FastTrack.
Als Fasttrack gekennzeichneter Verkehr wird nicht verarbeitet in:
- Firewall-Filter (obwohl dies umstritten ist, werde ich im Beispiel zeigen, warum);
- Firewall Mangle;
- IPsec
- Warteschlangen mit parrent = global;
- Hotspot;
- VRF
Wenn etwas das Paket stört, das den Fasttrack durchläuft, wird es wie alle verbleibenden Pakete auf dem langsamen Pfad übertragen.
Sie wird durch Hinzufügen einer Regel (siehe unten) in der Firewall aktiviert. FastTrack-Pakete von der hergestellten Verbindung werden markiert (Sie können neue markieren, aber dann treten Probleme mit NAT auf). Die Filtertabelle wird verwendet, weil Beim Markieren von Fasttrack in Prerouting treten erneut Probleme mit NAT auf.
Synthesetest

Fastpath | Verbindungs-Tracker | NAT | Fasttrack | Geschwindigkeit | CPU |
---|
- - | - - | - - | - - | ~ 932 MBit / s | 100% (Vernetzung, Ethernet) |
+ | - - | - - | - - | ~ 923 Mbit / s | 65-75% (Netzwerk, Ethernet, nicht klassifiziert) |
+ | + | - - | - - | ~ 680 MB / s | 100% (Netzwerk, Firewall, Ethernet) |
+ | + | + | - - | ~ 393 MBit / s | 100% (Netzwerk, Firewall, Ethernet) |
+ | + | + | + | ~ 911 Mbit / s | 60-80% (Netzwerk, Ethernet, nicht klassifiziert) |
Und (für den letzten Test) was konfiguriert wurde und wie es funktionierte:
Die Filterregeln verarbeiteten weiterhin Datenverkehr (wenn Sie das Zulassen von etabliertem, verwandtem Datenverkehr deaktivieren), wurden Pakete, die nicht in FastTrack gelangten, in Postrouting + Mangle abgefangen.



In Connection Tracker können Sie FastTrack-Verbindungen anhand des gleichnamigen Flags verfolgen.

In den Zählern [IP] -> [Einstellungen] können Sie sehen, dass FastTrack aktiv ist und funktioniert, FastPath jedoch nicht.

/ip firewall filter add action=fasttrack-connection chain=forward connection-state=established,related add action=accept chain=forward connection-state=established,related add action=accept chain=forward connection-state=new add action=drop chain=forward /ip firewall mangle add action=mark-packet chain=postrouting connection-state=established,related new-packet-mark=q1 passthrough=no src-address=20.20.20.0/24 /ip firewall nat add action=masquerade chain=srcnat out-interface=ether1
Anstelle einer Schlussfolgerung
Verwenden oder nicht?
- FastPath for Bridge - Auf jeden Fall ja. Reduziert zumindest die Belastung der CPU.
- FastPath für Tunnel - Nein. Es funktioniert schlammig, es schaltet sich aus, wenn es eine Verschlüsselung gibt.
- FastPath für Layer3 - Umstritten ist, dass die meisten Funktionen des Routers verloren gehen. In einem großen, vom wilden Internet geschlossenen Netzwerk kann das Netzwerk seine eigenen (kleinen) Gewinne erzielen.
- FastPath für MPLS / VLAN / Bonding / VRRP - Wird nach Möglichkeit automatisch aktiviert. Es gibt keine separate Option für die Steuerung.
- FastTrack - Für Heim- und SOHO-Konfigurationen ohne Warteschlangen und mit einer paranoiden Firewall geeignet. Synthetische Tests mit einem einzelnen Client sehen gut aus. In der Praxis müssen Sie den Datenverkehr, der an FastTrack vorbeigegangen ist, sorgfältig überwachen und nach der Ursache suchen.
Links zusätzlich
https://wiki.mikrotik.com/wiki/Manual:Fast_Path
https://wiki.mikrotik.com/wiki/Manual:IP/Fasttrack
http://mum.mikrotik.com/presentations/UA15/presentation_3077_1449654925.pdf