Ein paar Worte zu FastPath und FastTrack bei MikroTik

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:


  1. Fehlende Drahtgeschwindigkeit - Ein Prozessor (insbesondere ein einzelner Kern) kann nicht schneller laufen als spezialisierte Chips.
  2. 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.
  3. 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:


  1. Mit Switch-Chip bei kostengünstigen Modellen können Sie den Layer2-Verkehr unter Umgehung der CPU verarbeiten.
  2. SoC mit einem guten Netzwerkchip (CCR-Leitung).
  3. Verwenden der Hardwareverschlüsselung
  4. 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:


ModellUnterstützung für Ethernet-Schnittstellen
RB6xx-SerieÄther1,2
Die meisten der RB7xx-Seriealle Ethernet-Ports
RB800Äther1,2
RB9xx-Seriealle Ethernet-Ports
RB1000alle Ethernet-Ports
RB1100 Serieether1-11
RB2011-Seriealle Ethernet-Ports
RB3011 Seriealle Ethernet-Ports
Router der CRS-Seriealle Ethernet-Ports
Router der CCR-Seriealle Ethernet-Ports
Andere GeräteWird nicht unterstützt

Und eine separate Liste für Nicht-Ethernet-Schnittstellen:


SchnittstelleFastpath-UnterstützungHinweis
DrahtlosJa
BrückeJaAb 6.29
VLAN, VRRPJaAb 6.30 Uhr
VerklebungJaNur RX-Verkehr ab 6.30 Uhr
EoIP, GRE, IPIPJaAb 6.33. Wenn diese Option aktiviert ist, wird nicht der gesamte Tunnelverkehr über FastPath geleitet
L2TP, PPPoEJaAb 6.35 Uhr
MPLSJaDerzeit gilt der MPLS-Fast-Path nur für MPLS-Switched-Verkehr. Der Ein- und Ausgang von MPLS funktioniert wie zuvor.
AndereNein

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:


  1. 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).
  2. 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.
  3. 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.
  4. Verwenden Sie kein Netz und keinen Metarouter
  5. 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:


  1. Verwenden Sie keine IPSec-Verschlüsselung
  2. Vermeiden Sie Paketfragmentierung (konfigurieren Sie mtu korrekt)
  3. 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:


  1. Fügen Sie der Firewall keine Regeln hinzu (auch nicht nat).
  2. Fügen Sie keine Einträge zu Adresslisten hinzu.
  3. Konfigurieren Sie Simple Queues und Queues Tree nicht für parent=global oder die Schnittstellen, auf denen Sie einen funktionierenden FastPath erhalten möchten.
  4. Verwenden Sie kein Netz und keinen Metarouter.
  5. 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.
  6. Verwenden Sie keine /ip accounting .
  7. Verwenden Sie nicht /ip route vrf .
  8. Konfigurieren Sie /ip hotspot .
  9. Fügen Sie keine IPSec-Richtlinien hinzu.
  10. Der Routen-Cache muss aktiviert sein.
  11. Nicht aktiv verwenden: /tool mac-scan und /tool ip-scan .
  12. 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:


  1. Route Cache und FastPath müssen aktiviert und aktiv sein.
  2. Die richtige Konfiguration für die Verkehrsbeschriftung.
  3. Funktioniert nur für UDP- und TCP-Verkehr.
  4. Verwenden Sie kein Netz und keinen Metarouter.
  5. Nicht aktiv verwenden: /tool mac-scan und /tool ip-scan .
  6. Laufender Schnüffler, Taschenlampe und Verkehrsgenerator stören FastTrack.

Als Fasttrack gekennzeichneter Verkehr wird nicht verarbeitet in:


  1. Firewall-Filter (obwohl dies umstritten ist, werde ich im Beispiel zeigen, warum);
  2. Firewall Mangle;
  3. IPsec
  4. Warteschlangen mit parrent = global;
  5. Hotspot;
  6. 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



FastpathVerbindungs-TrackerNATFasttrackGeschwindigkeitCPU
- -- -- -- -~ 932 MBit / s100% (Vernetzung, Ethernet)
+- -- -- -~ 923 Mbit / s65-75% (Netzwerk, Ethernet, nicht klassifiziert)
++- -- -~ 680 MB / s100% (Netzwerk, Firewall, Ethernet)
+++- -~ 393 MBit / s100% (Netzwerk, Firewall, Ethernet)
++++~ 911 Mbit / s60-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

Source: https://habr.com/ru/post/de435372/


All Articles