Grundlagen des statischen Routings in Mikrotik RouterOS

Routing ist der Prozess, den besten Pfad für die Übertragung von Paketen über TCP/IP-Netzwerke zu finden. Jedes mit einem IPv4-Netzwerk verbundene Gerät enthält einen Prozess und Routing-Tabellen.

Dieser Artikel ist kein HOWTO, er beschreibt statisches Routing in RouterOS anhand von Beispielen, die restlichen Einstellungen (z. B. srcnat für den Zugriff auf das Internet) habe ich bewusst weggelassen, daher erfordert das Verständnis des Materials ein gewisses Maß an Kenntnissen über Netzwerke und RouterOS.

Switching und Routing

Grundlagen des statischen Routings in Mikrotik RouterOS

Beim Switching handelt es sich um den Austausch von Paketen innerhalb eines Layer2-Segments (Ethernet, PPP, ...). Wenn das Gerät erkennt, dass sich der Empfänger des Pakets im selben Ethernet-Subnetz wie es befindet, erfährt es mithilfe des ARP-Protokolls die MAC-Adresse und überträgt das Paket direkt und unter Umgehung des Routers. Eine PPP-Verbindung (Punkt-zu-Punkt) kann nur zwei Teilnehmer haben und das Paket wird immer an eine Adresse 0xff gesendet.

Routing ist der Prozess der Übertragung von Paketen zwischen Layer2-Segmenten. Wenn ein Gerät ein Paket senden möchte, dessen Empfänger sich außerhalb des Ethernet-Segments befindet, schaut es in seine Routing-Tabelle und leitet das Paket an das Gateway weiter, das weiß, wohin es das Paket als nächstes senden soll (oder möglicherweise nicht den ursprünglichen Absender des Pakets kennt). ist sich dessen nicht bewusst).

Der einfachste Weg, sich einen Router vorzustellen, ist ein Gerät, das mit zwei oder mehr Layer2-Segmenten verbunden ist und in der Lage ist, Pakete zwischen ihnen weiterzuleiten, indem es die beste Route aus der Routing-Tabelle ermittelt.

Wenn Sie alles verstanden haben oder es bereits wussten, dann lesen Sie weiter. Im Übrigen empfehle ich Ihnen dringend, sich mit einem kleinen, aber sehr geräumigen Gerät vertraut zu machen Artikel.

Routing in RouterOS und PacketFlow

Fast alle mit dem statischen Routing verbundenen Funktionen sind im Paket enthalten System. Plastiktüte Routing fügt Unterstützung für dynamische Routing-Algorithmen (RIP, OSPF, BGP, MME), Routing-Filter und BFD hinzu.

Hauptmenü zum Einrichten des Routings: [IP]->[Route]. Komplexe Schemata erfordern möglicherweise die Vorkennzeichnung von Paketen mit einer Routing-Markierung in: [IP]->[Firewall]->[Mangle] (Ketten PREROUTING и OUTPUT).

Es gibt drei Stellen auf PacketFlow, an denen IP-Paket-Routing-Entscheidungen getroffen werden:
Grundlagen des statischen Routings in Mikrotik RouterOS

  1. Vom Router empfangene Pakete weiterleiten. In dieser Phase wird entschieden, ob das Paket an den lokalen Prozess gelangt oder weiter an das Netzwerk gesendet wird. Transitpakete erhalten Ausgangs-Schnittstelle
  2. Lokale ausgehende Pakete weiterleiten. Ausgehende Pakete werden empfangen Ausgangs-Schnittstelle
  3. Zusätzlicher Routing-Schritt für ausgehende Pakete, ermöglicht es Ihnen, die Routing-Entscheidung zu ändern [Output|Mangle]

  • Der Paketpfad in den Blöcken 1, 2 hängt von den Regeln in ab [IP]->[Route]
  • Der Paketpfad in den Punkten 1, 2 und 3 hängt von den Regeln in ab [IP]->[Route]->[Rules]
  • Der Paketpfad in den Blöcken 1, 3 kann über beeinflusst werden [IP]->[Firewall]->[Mangle]

RIB, FIB, Routing-Cache

Grundlagen des statischen Routings in Mikrotik RouterOS

Routing-Informationsbasis
Die Basis, in der Routen aus dynamischen Routing-Protokollen, Routen aus PPP und DHCP sowie statische und verbundene Routen gesammelt werden. Diese Datenbank enthält alle Routen, mit Ausnahme der vom Administrator gefilterten.

Bedingt, davon können wir ausgehen [IP]->[Route] zeigt RIB an.

Weiterleitungsinformationsbasis
Grundlagen des statischen Routings in Mikrotik RouterOS

Die Basis, in der die besten Routen von RIB gesammelt sind. Alle Routen im FIB sind aktiv und werden zur Weiterleitung von Paketen verwendet. Wenn die Route inaktiv wird (vom Administrator (System) deaktiviert oder die Schnittstelle, über die das Paket gesendet werden soll, nicht aktiv ist), wird die Route aus dem FIB entfernt.

Um eine Routing-Entscheidung zu treffen, verwendet die FIB-Tabelle die folgenden Informationen zu einem IP-Paket:

  • Quelladresse
  • Zieladresse
  • Quellschnittstelle
  • Routing-Markierung
  • ToS (DSCP)

Der Einstieg in das FIB-Paket durchläuft die folgenden Phasen:

  • Ist das Paket für einen lokalen Router-Prozess gedacht?
  • Unterliegt das Paket den PBR-Regeln des Systems oder des Benutzers?
    • Wenn ja, wird das Paket an die angegebene Routing-Tabelle gesendet
  • Das Paket wird an die Haupttabelle gesendet

Bedingt, davon können wir ausgehen [IP]->[Route Active=yes] zeigt FIB an.

Routing-Cache
Routen-Caching-Mechanismus. Der Router merkt sich, wohin die Pakete gesendet wurden, und wenn es ähnliche Pakete gibt (vermutlich von derselben Verbindung), lässt er sie über dieselbe Route laufen, ohne die FIB einzuchecken. Der Routencache wird regelmäßig geleert.

Für RouterOS-Administratoren haben sie keine Tools zum Anzeigen und Verwalten des Routing-Cache erstellt, aber wenn er deaktiviert werden kann [IP]->[Settings].

Dieser Mechanismus wurde aus dem Linux 3.6-Kernel entfernt, aber RouterOS verwendet immer noch Kernel 3.3.5, vielleicht ist Routing Cahce einer der Gründe.

Dialog „Route hinzufügen“.

[IP]->[Route]->[+]
Grundlagen des statischen Routings in Mikrotik RouterOS

  1. Subnetz, für das Sie eine Route erstellen möchten (Standard: 0.0.0.0/0)
  2. Gateway-IP oder Schnittstelle, an die das Paket gesendet wird (es können mehrere sein, siehe ECMP unten)
  3. Überprüfung der Gateway-Verfügbarkeit
  4. Aufnahmetyp
  5. Entfernung (metrisch) für eine Route
  6. Routing-Tabelle
  7. IP für lokal ausgehende Pakete über diese Route
  8. Der Zweck von Scope und Target Scope wird am Ende des Artikels beschrieben.

Routenflaggen
Grundlagen des statischen Routings in Mikrotik RouterOS

  • X – Die Route wurde vom Administrator deaktiviert (disabled=yes)
  • A – Die Route wird zum Senden von Paketen verwendet
  • D – Route dynamisch hinzugefügt (BGP, OSPF, RIP, MME, PPP, DHCP, Verbunden)
  • C – Das Subnetz ist direkt mit dem Router verbunden
  • S – Statische Route
  • r,b,o,m – Route, die von einem der dynamischen Routing-Protokolle hinzugefügt wurde
  • B,U,P – Route filtern (Pakete verwerfen statt übertragen)

Was muss im Gateway angegeben werden: IP-Adresse oder Schnittstelle?

Das System ermöglicht Ihnen, beides anzugeben, flucht jedoch nicht und gibt keine Hinweise, wenn Sie etwas falsch gemacht haben.

IP-Adresse
Die Gateway-Adresse muss über Layer2 erreichbar sein. Für Ethernet bedeutet dies, dass der Router eine Adresse aus demselben Subnetz auf einer der aktiven IP-Schnittstellen haben muss, für PPP, dass die Gateway-Adresse auf einer der aktiven Schnittstellen als Subnetzadresse angegeben ist.
Wenn die Zugänglichkeitsbedingung für Layer2 nicht erfüllt ist, gilt die Route als inaktiv und fällt nicht in die FIB.

Schnittstelle
Alles ist komplizierter und das Verhalten des Routers hängt von der Art der Schnittstelle ab:

  • Eine PPP-Verbindung (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) setzt nur zwei Teilnehmer voraus und das Paket wird immer zur Übertragung an das Gateway gesendet. Wenn das Gateway erkennt, dass der Empfänger es selbst ist, überträgt es das Paket an sein lokaler Prozess.
    Grundlagen des statischen Routings in Mikrotik RouterOS
  • Ethernet setzt die Anwesenheit vieler Teilnehmer voraus und sendet Anfragen mit der Adresse des Empfängers des Pakets an die ARP-Schnittstelle. Dies ist ein erwartetes und ganz normales Verhalten für verbundene Routen.
    Wenn Sie jedoch versuchen, die Schnittstelle als Route für ein Remote-Subnetz zu verwenden, erhalten Sie die folgende Situation: Die Route ist aktiv, der Ping an das Gateway ist erfolgreich, erreicht aber den Empfänger aus dem angegebenen Subnetz nicht. Wenn Sie die Schnittstelle durch einen Sniffer betrachten, werden Sie ARP-Anfragen mit Adressen aus einem Remote-Subnetz sehen.
    Grundlagen des statischen Routings in Mikrotik RouterOS

Grundlagen des statischen Routings in Mikrotik RouterOS

Versuchen Sie nach Möglichkeit, die IP-Adresse als Gateway anzugeben. Die Ausnahme bilden verbundene Routen (automatisch erstellt) und PPP-Schnittstellen (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*).

OpenVPN enthält keinen PPP-Header, aber Sie können den OpenVPN-Schnittstellennamen verwenden, um eine Route zu erstellen.

Spezifischere Route

Grundlegende Routing-Regel. Die Route, die das kleinere Subnetz (mit der größten Subnetzmaske) beschreibt, hat bei der Routing-Entscheidung des Pakets Vorrang. Die Position der Einträge in der Routing-Tabelle ist für die Auswahl nicht relevant – die Hauptregel lautet „Mehr Spezifisch“.

Grundlagen des statischen Routings in Mikrotik RouterOS

Alle Routen aus dem angegebenen Schema sind aktiv (befindet sich in FIB). verweisen auf unterschiedliche Subnetze und stehen nicht in Konflikt miteinander.

Wenn eines der Gateways nicht verfügbar ist, gilt die zugehörige Route als inaktiv (aus der FIB entfernt) und Pakete werden von den verbleibenden Routen durchsucht.

Der Route mit dem Subnetz 0.0.0.0/0 wird manchmal eine besondere Bedeutung beigemessen und als „Standardroute“ oder „Gateway des letzten Auswegs“ bezeichnet. Eigentlich ist darin nichts Magisches und es enthält einfach alle möglichen IPv4-Adressen, aber diese Namen beschreiben seine Aufgabe gut – es zeigt dem Gateway an, wohin Pakete weitergeleitet werden sollen, für die es keine anderen, genaueren Routen gibt.

Die maximal mögliche Subnetzmaske für IPv4 ist /32, diese Route zeigt auf einen bestimmten Host und kann in der Routing-Tabelle verwendet werden.

Das Verständnis spezifischerer Routen ist für jedes TCP/IP-Gerät von grundlegender Bedeutung.

Entfernung

Entfernungen (oder Metriken) sind für die administrative Filterung von Routen zu einem einzelnen Subnetz erforderlich, auf das über mehrere Gateways zugegriffen werden kann. Eine Route mit einer niedrigeren Metrik gilt als Priorität und wird in die FIB aufgenommen. Wenn eine Route mit einer niedrigeren Metrik nicht mehr aktiv ist, wird sie im FIB durch eine Route mit einer höheren Metrik ersetzt.
Grundlagen des statischen Routings in Mikrotik RouterOS

Wenn es mehrere Routen zum selben Subnetz mit derselben Metrik gibt, fügt der Router anhand seiner internen Logik nur eine davon zur FIB-Tabelle hinzu.

Die Metrik kann einen Wert von 0 bis 255 annehmen:
Grundlagen des statischen Routings in Mikrotik RouterOS

  • 0 – Metrik für verbundene Routen. Der Abstand 0 kann vom Administrator nicht eingestellt werden
  • 1-254 – Für den Administrator verfügbare Metriken zum Festlegen von Routen. Metriken mit einem niedrigeren Wert haben eine höhere Priorität
  • 255 – Metrik, die dem Administrator zum Festlegen von Routen zur Verfügung steht. Im Gegensatz zu 1-254 bleibt eine Route mit einer Metrik von 255 immer inaktiv und fällt nicht in die FIB
  • spezifische Kennzahlen. Von dynamischen Routing-Protokollen abgeleitete Routen verfügen über Standardmetrikwerte

Überprüfen Sie das Gateway

Check Gateway ist eine MikroTik RoutesOS-Erweiterung zum Überprüfen der Verfügbarkeit des Gateways über ICMP oder ARP. Einmal alle 10 Sekunden (kann nicht geändert werden) wird eine Anfrage an das Gateway gesendet. Wenn die Antwort nicht zweimal empfangen wird, gilt die Route als nicht verfügbar und wird aus dem FIB entfernt. Wenn das Check-Gateway deaktiviert wurde, wird der Prüfpfad fortgesetzt und die Route wird nach einer erfolgreichen Prüfung wieder aktiv.
Grundlagen des statischen Routings in Mikrotik RouterOS

„Gateway prüfen“ deaktiviert den Eintrag, in dem es konfiguriert ist, und alle anderen Einträge (in allen Routing-Tabellen und ECMP-Routen) mit dem angegebenen Gateway.

Im Allgemeinen funktioniert die Überprüfung des Gateways einwandfrei, solange keine Probleme mit Paketverlusten beim Gateway auftreten. Das Check-Gateway weiß nicht, was mit der Kommunikation außerhalb des überprüften Gateways geschieht. Dies erfordert zusätzliche Tools: Skripte, rekursives Routing, dynamische Routing-Protokolle.

Die meisten VPN- und Tunnelprotokolle enthalten integrierte Tools zur Überprüfung der Verbindungsaktivität. Die Aktivierung der Gateway-Überprüfung stellt für sie eine zusätzliche (aber sehr geringe) Belastung für die Netzwerk- und Geräteleistung dar.

ECMP-Routen

Equal-Cost Multi-Path – Senden von Paketen an den Empfänger über mehrere Gateways gleichzeitig unter Verwendung des Round-Robin-Algorithmus.

Eine ECMP-Route wird vom Administrator erstellt, indem er mehrere Gateways für ein Subnetz angibt (oder automatisch, wenn zwei gleichwertige OSPF-Routen vorhanden sind).
Grundlagen des statischen Routings in Mikrotik RouterOS

ECMP wird für den Lastausgleich zwischen zwei Kanälen verwendet. Wenn die ECMP-Route zwei Kanäle enthält, sollte der ausgehende Kanal theoretisch für jedes Paket unterschiedlich sein. Aber der Routing-Cache-Mechanismus sendet Pakete von der Verbindung entlang der Route, die das erste Paket genommen hat. Dadurch erhalten wir eine Art Ausgleich basierend auf Verbindungen (Lastausgleich pro Verbindung).

Wenn Sie den Routing-Cache deaktivieren, werden die Pakete in der ECMP-Route korrekt geteilt, es liegt jedoch ein Problem mit NAT vor. Die NAT-Regel verarbeitet nur das erste Paket der Verbindung (der Rest wird automatisch verarbeitet), und es stellt sich heraus, dass Pakete mit derselben Quelladresse unterschiedliche Schnittstellen verlassen.
Grundlagen des statischen Routings in Mikrotik RouterOS

Überprüfen Sie, ob das Gateway in ECMP-Routen nicht funktioniert (RouterOS-Fehler). Sie können diese Einschränkung jedoch umgehen, indem Sie zusätzliche Validierungsrouten erstellen, die Einträge in ECMP deaktivieren.

Filterung mittels Routing

Die Option Typ bestimmt, was mit dem Paket geschehen soll:

  • Unicast – an das angegebene Gateway (Schnittstelle) senden
  • Blackhole – ein Paket verwerfen
  • verbieten, nicht erreichbar – verwerfen Sie das Paket und senden Sie eine ICMP-Nachricht an den Absender

Filterung wird normalerweise verwendet, wenn es notwendig ist, das Senden von Paketen über den falschen Pfad zu sichern. Natürlich können Sie dies durch die Firewall filtern.

Ein paar Beispiele

Um die grundlegenden Dinge zum Routing zu festigen.

Typischer Heimrouter
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1

  1. Statische Route zu 0.0.0.0/0 (Standardroute)
  2. Verbundene Route auf der Schnittstelle mit dem Anbieter
  3. Verbundene Route über LAN-Schnittstelle

Typischer Heimrouter mit PPPoE
Grundlagen des statischen Routings in Mikrotik RouterOS

  1. Statische Route zur Standardroute, automatisch hinzugefügt. Es wird in den Verbindungseigenschaften angegeben
  2. Verbundene Route für PPP-Verbindung
  3. Verbundene Route über LAN-Schnittstelle

Typischer Heimrouter mit zwei Anbietern und Redundanz
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

  1. Statische Route zur Standardroute über den ersten Anbieter mit Metrik 1 und Gateway-Verfügbarkeitsprüfung
  2. Statische Route zur Standardroute über zweiten Anbieter mit Metrik 2
  3. Verbundene Routen

Der Datenverkehr zu 0.0.0.0/0 läuft über 10.10.10.1, solange dieses Gateway verfügbar ist, andernfalls wechselt er zu 10.20.20.1

Ein solches Schema kann als Kanalreservierung betrachtet werden, ist jedoch nicht ohne Nachteile. Kommt es zu einer Unterbrechung außerhalb des Gateways des Anbieters (z. B. innerhalb des Netzwerks des Betreibers), erfährt Ihr Router nichts davon und betrachtet die Route weiterhin als aktiv.

Typischer Heimrouter mit zwei Anbietern, Redundanz und ECMP
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1

  1. Statische Routen zur Überprüfung des Hack-Gateways
  2. ECMP-Route
  3. Verbundene Routen

Zu überprüfende Routen sind blau (die Farbe inaktiver Routen), dies beeinträchtigt jedoch nicht das Prüf-Gateway. Die aktuelle Version (6.44) von RoS gibt der ECMP-Route automatisch Priorität, es ist jedoch besser, Testrouten zu anderen Routing-Tabellen hinzuzufügen (Option). routing-mark)

Auf Speedtest und anderen ähnlichen Websites wird es keine Geschwindigkeitssteigerung geben (ECMP teilt den Datenverkehr nach Verbindungen, nicht nach Paketen), aber P2P-Anwendungen sollten schneller heruntergeladen werden.

Filterung über Routing
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole

  1. Statische Route zur Standardroute
  2. Statische Route zu 192.168.200.0/24 über den IPIP-Tunnel
  3. Statische Route zu 192.168.200.0/24 über den ISP-Router verbieten

Eine Filteroption, bei der der Tunnelverkehr nicht zum Router des Anbieters geleitet wird, wenn die IPIP-Schnittstelle deaktiviert ist. Solche Systeme sind selten erforderlich, weil Sie können eine Blockierung durch die Firewall implementieren.

Routing-Schleife
Routing-Schleife – eine Situation, in der ein Paket zwischen Routern läuft, bevor die TTL abläuft. Normalerweise ist es die Folge eines Konfigurationsfehlers, in großen Netzwerken wird es durch die Implementierung dynamischer Routing-Protokolle behandelt, in kleinen - mit Vorsicht.

Es sieht ungefähr so ​​aus:
Grundlagen des statischen Routings in Mikrotik RouterOS

Ein (einfachstes) Beispiel, wie man ein ähnliches Ergebnis erhält:
Grundlagen des statischen Routings in Mikrotik RouterOS

Das Routing-Loop-Beispiel hat keinen praktischen Nutzen, zeigt aber, dass Router keine Ahnung von der Routing-Tabelle ihres Nachbarn haben.

Richtlinienbasiertes Routing und zusätzliche Routing-Tabellen

Bei der Auswahl einer Route verwendet der Router nur ein Feld aus dem Paket-Header (Dst. Address) – das ist Basis-Routing. Routing basierend auf anderen Bedingungen, wie Quelladresse, Art des Datenverkehrs (ToS), Balancing ohne ECMP, gehört zum Policy Base Routing (PBR) und nutzt zusätzliche Routing-Tabellen.

Grundlagen des statischen Routings in Mikrotik RouterOS

Spezifischere Route ist die wichtigste Routenauswahlregel innerhalb der Routing-Tabelle.

Standardmäßig werden alle Routingregeln zur Haupttabelle hinzugefügt. Der Administrator kann beliebig viele zusätzliche Routing-Tabellen erstellen und Pakete an diese weiterleiten. Regeln in verschiedenen Tabellen stehen nicht im Widerspruch zueinander. Wenn das Paket in der angegebenen Tabelle keine passende Regel findet, wechselt es zur Haupttabelle.

Beispiel mit Verteilung über Firewall:
Grundlagen des statischen Routings in Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. Der Datenverkehr von 192.168.100.10 wird gekennzeichnet via-isp1 в [Prerouting|Mangle]
    2. In der Routing-Phase in der Tabelle via-isp1 sucht nach einer Route zu 8.8.8.8
    3. Route gefunden, Datenverkehr wird an Gateway 10.10.10.1 gesendet
  • 192.168.200.20 -> 8.8.8.8
    1. Der Datenverkehr von 192.168.200.20 wird gekennzeichnet via-isp2 в [Prerouting|Mangle]
    2. In der Routing-Phase in der Tabelle via-isp2 sucht nach einer Route zu 8.8.8.8
    3. Route gefunden, Datenverkehr wird an Gateway 10.20.20.1 gesendet
  • Wenn eines der Gateways (10.10.10.1 oder 10.20.20.1) nicht verfügbar ist, wird das Paket in die Tabelle verschoben Haupt- und werde dort nach einer geeigneten Route suchen

Terminologieprobleme

Bei RouterOS gibt es bestimmte Terminologieprobleme.
Beim Arbeiten mit Regeln in [IP]->[Routes] Die Routing-Tabelle wird angezeigt, obwohl geschrieben steht, dass das Etikett:
Grundlagen des statischen Routings in Mikrotik RouterOS

В [IP]->[Routes]->[Rule] Alles ist korrekt, in der Etikettenbedingung in der Tabellenaktion:
Grundlagen des statischen Routings in Mikrotik RouterOS

So senden Sie ein Paket an eine bestimmte Routing-Tabelle

RouterOS bietet mehrere Tools:

  • Regeln in [IP]->[Routes]->[Rules]
  • Routenmarkierungen (action=mark-routing) Im [IP]->[Firewall]->[Mangle]
  • VRF

Regeln [IP]->[Route]->[Rules]
Regeln werden nacheinander verarbeitet. Wenn das Paket die Bedingungen der Regel erfüllt, wird es nicht weitergegeben.

Mit Routing-Regeln können Sie die Routing-Möglichkeiten erweitern und dabei nicht nur auf der Empfängeradresse, sondern auch auf der Quelladresse und der Schnittstelle basieren, auf der das Paket empfangen wurde.

Grundlagen des statischen Routings in Mikrotik RouterOS

Regeln bestehen aus Bedingungen und einer Aktion:

  • Bedingungen. Wiederholen Sie praktisch die Liste der Zeichen, anhand derer das Paket im FIB überprüft wird, nur ToS fehlt.
  • Aktionen
    • Lookup – Senden Sie ein Paket an eine Tabelle
    • Suche nur in der Tabelle – Sperren Sie das Paket in der Tabelle. Wenn die Route nicht gefunden wird, wird das Paket nicht in die Haupttabelle verschoben
    • fallen lassen – ein Paket fallen lassen
    • nicht erreichbar – Paket mit Absenderbenachrichtigung verwerfen

In FIB wird der Datenverkehr zu lokalen Prozessen unter Umgehung der Regeln verarbeitet [IP]->[Route]->[Rules]:
Grundlagen des statischen Routings in Mikrotik RouterOS

Markierung [IP]->[Firewall]->[Mangle]
Mit Routing-Labels können Sie das Gateway für ein Paket unter nahezu allen Firewall-Bedingungen festlegen:
Grundlagen des statischen Routings in Mikrotik RouterOS

Praktisch, denn nicht alle davon sind sinnvoll und einige funktionieren möglicherweise instabil.

Grundlagen des statischen Routings in Mikrotik RouterOS

Es gibt zwei Möglichkeiten, ein Paket zu kennzeichnen:

  • Sofort setzen Fräsmarkierung
  • Zuerst setzen Verbindungsmarke, dann basierend auf Verbindungsmarke zu setzen Fräsmarkierung

In einem Artikel über Firewalls habe ich geschrieben, dass die zweite Option vorzuziehen ist. Reduziert die Belastung der CPU, bei der Markierung von Routen ist das nicht ganz richtig. Diese Markierungsmethoden sind nicht immer gleichwertig und werden normalerweise zur Lösung verschiedener Probleme verwendet.

Примеры использования

Kommen wir zu den Beispielen für die Verwendung von Policy Base Routing. Sie zeigen viel einfacher, warum dies alles erforderlich ist.

MultiWAN und ausgehender (Ausgabe-)Rückverkehr
Ein häufiges Problem bei einer MultiWAN-Konfiguration: Mikrotik ist aus dem Internet nur über einen „aktiven“ Anbieter verfügbar.
Grundlagen des statischen Routings in Mikrotik RouterOS

Dem Router ist es egal, an welche IP-Adresse die Anfrage kam. Beim Generieren einer Antwort sucht er in der Routing-Tabelle nach einer Route, auf der die Route über ISP1 aktiv ist. Darüber hinaus wird ein solches Paket höchstwahrscheinlich auf dem Weg zum Empfänger gefiltert.

Ein weiterer interessanter Punkt. Wenn ein „einfaches“ Quell-NAT auf der Schnittstelle ether1 konfiguriert ist: /ip fi nat add out-interface=ether1 action=masquerade Das Paket wird mit src online gestellt. Adresse=10.10.10.100, was die Sache noch schlimmer macht.

Es gibt mehrere Möglichkeiten, das Problem zu beheben, aber jede davon erfordert zusätzliche Routing-Tabellen:
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2

Verwenden [IP]->[Route]->[Rules]
Geben Sie die Routing-Tabelle an, die für Pakete mit der angegebenen Quell-IP verwendet wird.
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2

Sie können verwenden action=lookup, aber für lokalen ausgehenden Datenverkehr schließt diese Option Verbindungen von der falschen Schnittstelle vollständig aus.

  • Das System generiert ein Antwortpaket mit Src. Adresse: 10.20.20.200
  • Der Schritt „Routing Decision(2)“ prüft [IP]->[Routes]->[Rules] und das Paket wird an die Routing-Tabelle gesendet über-isp2
  • Laut Routing-Tabelle muss das Paket über die Ether10.20.20.1-Schnittstelle an das Gateway 2 gesendet werden

Grundlagen des statischen Routings in Mikrotik RouterOS

Für diese Methode ist im Gegensatz zur Verwendung der Mangle-Tabelle kein funktionierender Connection Tracker erforderlich.

Verwenden [IP]->[Firewall]->[Mangle]
Die Verbindung beginnt mit einem eingehenden Paket, daher markieren wir es (action=mark-connection), legen Sie für ausgehende Pakete von einer markierten Verbindung das Routing-Label fest (action=mark-routing).
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip firewall mangle
#Маркировка входящих соединений
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#Маркировка исходящих пакетов на основе соединений
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Wenn mehrere IPs auf einer Schnittstelle konfiguriert sind, können Sie die Bedingung ergänzen dst-address um sicher zu sein.

  • Ein Paket öffnet die Verbindung auf der Ether2-Schnittstelle. Das Paket geht rein [INPUT|Mangle] was besagt, dass alle Pakete von der Verbindung als markiert werden sollen from-isp2
  • Das System generiert ein Antwortpaket mit Src. Adresse: 10.20.20.200
  • In der Routing-Entscheidung(2)-Stufe wird das Paket gemäß der Routing-Tabelle über die Ether10.20.20.1-Schnittstelle an das Gateway 1 gesendet. Sie können dies überprüfen, indem Sie die Pakete anmelden [OUTPUT|Filter]
  • Auf der Bühne [OUTPUT|Mangle] Die Verbindungsbezeichnung wird überprüft from-isp2 und das Paket erhält ein Routenlabel über-isp2
  • Der Schritt Routing Adjusment(3) prüft, ob ein Routing-Label vorhanden ist, und sendet es an die entsprechende Routing-Tabelle
  • Laut Routing-Tabelle muss das Paket über die Ether10.20.20.1-Schnittstelle an das Gateway 2 gesendet werden

Grundlagen des statischen Routings in Mikrotik RouterOS

MultiWAN und Return-DST-NAT-Verkehr

Ein komplizierteres Beispiel ist, was zu tun ist, wenn sich hinter dem Router in einem privaten Subnetz ein Server (z. B. ein Web) befindet und Sie über einen der Anbieter Zugriff darauf gewähren müssen.

/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100

Der Kern des Problems wird derselbe sein, die Lösung ähnelt der Option „Firewall Mangle“, nur werden andere Ketten verwendet:
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Grundlagen des statischen Routings in Mikrotik RouterOS
Das Diagramm zeigt kein NAT, aber ich denke, alles ist klar.

MultiWAN und ausgehende Verbindungen

Sie können die PBR-Funktionen verwenden, um mehrere VPN-Verbindungen (im Beispiel SSTP) von verschiedenen Router-Schnittstellen aus zu erstellen.

Grundlagen des statischen Routings in Mikrotik RouterOS

Zusätzliche Routing-Tabellen:

/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3

add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3

Verpackungsmarkierungen:

/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no

Einfache NAT-Regeln, sonst verlässt das Paket die Schnittstelle mit dem falschen Src. Adresse:

/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade

Parsen:

  • Der Router erstellt drei SSTP-Prozesse
  • In der Routing-Entscheidungsphase (2) wird eine Route für diese Prozesse basierend auf der Haupt-Routing-Tabelle ausgewählt. Von derselben Route empfängt das Paket Src. An die Ether1-Schnittstelle gebundene Adresse
  • В [Output|Mangle] Pakete von verschiedenen Verbindungen erhalten unterschiedliche Labels
  • Pakete werden in der Routing-Anpassungsphase in die Tabellen eingegeben, die den Labels entsprechen, und erhalten eine neue Route zum Senden von Paketen
  • Aber Pakete haben immer noch Src. Adresse von ether1, auf der Bühne [Nat|Srcnat] Die Adresse wird entsprechend der Schnittstelle ersetzt

Interessanterweise sehen Sie auf dem Router die folgende Verbindungstabelle:
Grundlagen des statischen Routings in Mikrotik RouterOS

Connection Tracker funktioniert früher [Mangle] и [Srcnat], also kommen alle Verbindungen von derselben Adresse, wenn man genauer hinschaut, dann in Replay Dst. Address Es wird Adressen nach NAT geben:
Grundlagen des statischen Routings in Mikrotik RouterOS

Auf dem VPN-Server (ich habe einen auf dem Prüfstand) sieht man, dass alle Verbindungen von den richtigen Adressen kommen:
Grundlagen des statischen Routings in Mikrotik RouterOS

Warte eine Weile
Es geht auch einfacher: Sie können einfach für jede der Adressen ein bestimmtes Gateway angeben:

/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1

Solche Routen werden jedoch nicht nur den ausgehenden, sondern auch den Transitverkehr beeinträchtigen. Wenn Sie außerdem nicht benötigen, dass der Datenverkehr zum VPN-Server über ungeeignete Kommunikationskanäle geleitet wird, müssen Sie sechs weitere Regeln hinzufügen [IP]->[Routes]с type=blackhole. In der vorherigen Version - 3 Regeln in [IP]->[Route]->[Rules].

Verteilung der Benutzerverbindungen nach Kommunikationskanälen

Einfache, alltägliche Aufgaben. Auch hier werden zusätzliche Routing-Tabellen benötigt:

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2

Mit [IP]->[Route]->[Rules]
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2

Wenn verwenden action=lookupWenn dann einer der Kanäle deaktiviert ist, wird der Datenverkehr zur Haupttabelle weitergeleitet und über den Arbeitskanal geleitet. Ob dies notwendig ist oder nicht, hängt von der Aufgabenstellung ab.

Verwendung der Markierungen in [IP]->[Firewall]->[Mangle]
Ein einfaches Beispiel mit Listen von IP-Adressen. Prinzipiell können nahezu alle Bedingungen verwendet werden. Der einzige Nachteil von Layer 7 besteht darin, dass selbst in Verbindung mit Verbindungsbezeichnungen der Eindruck entsteht, dass alles ordnungsgemäß funktioniert, ein Teil des Datenverkehrs jedoch dennoch in die falsche Richtung geleitet wird.
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2

Sie können Benutzer in einer Routing-Tabelle „sperren“. [IP]->[Route]->[Rules]:

/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2

Entweder durch [IP]->[Firewall]->[Filter]:

/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject

Retreat-Profi dst-address-type=!local
Zusätzlicher Zustand dst-address-type=!local Es ist notwendig, dass der Datenverkehr der Benutzer die lokalen Prozesse des Routers erreicht (DNS, Winbox, SSH, ...). Wenn mehrere lokale Subnetze an den Router angeschlossen sind, muss sichergestellt werden, dass der Datenverkehr zwischen ihnen nicht ins Internet gelangt, z. B. über dst-address-table.

Im Beispiel mit [IP]->[Route]->[Rules] Es gibt keine solchen Ausnahmen, aber der Datenverkehr erreicht lokale Prozesse. Tatsache ist, dass der Einstieg in das FIB-Paket markiert ist [PREROUTING|Mangle] hat eine Routenbezeichnung und geht in eine andere Routing-Tabelle als main, wo es keine lokale Schnittstelle gibt. Bei Routing-Regeln wird zunächst geprüft, ob das Paket für einen lokalen Prozess bestimmt ist und gelangt erst im User-PBR-Schritt in die angegebene Routing-Tabelle.

Mit [IP]->[Firewall]->[Mangle action=route]
Diese Aktion funktioniert nur in [Prerouting|Mangle] und ermöglicht Ihnen, den Datenverkehr ohne Verwendung zusätzlicher Routing-Tabellen zum angegebenen Gateway zu leiten, indem Sie die Gateway-Adresse direkt angeben:

/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1

Aktion route hat eine niedrigere Priorität als Routing-Regeln ([IP]->[Route]->[Rules]). Bei Streckenmarkierungen hängt alles von der Position der Regeln ab, wenn die Regel mit action=route mehr wert als action=mark-route, dann wird es verwendet (unabhängig von der Flagge). passtrough), andernfalls Markierung der Route.
Im Wiki gibt es nur sehr wenige Informationen zu dieser Aktion und alle Schlussfolgerungen wurden experimentell gewonnen. Ich habe jedenfalls keine Optionen gefunden, wenn die Verwendung dieser Option Vorteile gegenüber anderen bietet.

PPC-basiertes dynamisches Auswuchten

Per Connection Classifier – ist ein flexibleres Analogon von ECMP. Im Gegensatz zu ECMP wird der Datenverkehr strenger nach Verbindungen aufgeteilt (ECMP weiß nichts über Verbindungen, aber in Kombination mit Routing Cache erhält man etwas Ähnliches).

PCC nimmt angegebenen Felder aus dem IP-Header, wandelt sie in einen 32-Bit-Wert um und dividiert durch Nenner. Der Rest der Division wird mit dem angegebenen verglichen Rest und wenn sie übereinstimmen, wird die angegebene Aktion angewendet. mehr. Klingt verrückt, aber es funktioniert.
Grundlagen des statischen Routings in Mikrotik RouterOS

Beispiel mit drei Adressen:

192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1

Ein Beispiel für die dynamische Verteilung des Datenverkehrs nach src.address zwischen drei Kanälen:
Grundlagen des statischen Routings in Mikrotik RouterOS

#Таблица маршрутизации
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3

#Маркировка соединений и маршрутов
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3

add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3

Beim Markieren von Routen gibt es eine zusätzliche Bedingung: in-interface=br-lan, ohne es darunter action=mark-routing Der Antwortverkehr aus dem Internet wird empfangen und gemäß den Routing-Tabellen an den Anbieter zurückgesendet.

Kommunikationskanäle wechseln

Check-Ping ist ein gutes Tool, aber es überprüft nur die Verbindung mit dem nächstgelegenen IP-Peer. Anbieternetzwerke bestehen normalerweise aus einer großen Anzahl von Routern und eine Verbindungsunterbrechung kann außerhalb des nächstgelegenen Peers auftreten, und dann gibt es Backbone-Telekommunikationsbetreiber, die dies möglicherweise auch tun Probleme haben, zeigt die Ping-Prüfung im Allgemeinen nicht immer aktuelle Informationen über den Zugriff auf das globale Netzwerk an.
Wenn Anbieter und große Unternehmen über das dynamische Routing-Protokoll BGP verfügen, müssen Heim- und Bürobenutzer selbstständig herausfinden, wie sie den Internetzugang über einen bestimmten Kommunikationskanal überprüfen.

Typischerweise werden Skripte verwendet, die über einen bestimmten Kommunikationskanal die Verfügbarkeit einer IP-Adresse im Internet prüfen und dabei etwas Zuverlässiges auswählen, zum Beispiel Google DNS: 8.8.8.8. 8.8.4.4. Aber in der Mikrotik-Community wurde dafür ein interessanteres Tool angepasst.

Ein paar Worte zum rekursiven Routing
Rekursives Routing ist beim Aufbau von Multihop-BGP-Peering erforderlich und ich bin nur auf den Artikel über die Grundlagen des statischen Routings gekommen, weil schlaue MikroTik-Benutzer herausgefunden haben, wie man rekursive Routen gepaart mit Check Gateway verwendet, um Kommunikationskanäle ohne zusätzliche Skripte zu wechseln.

Es ist an der Zeit, die Scope-/Ziel-Scope-Optionen im Allgemeinen zu verstehen und zu verstehen, wie die Route an die Schnittstelle gebunden ist:
Grundlagen des statischen Routings in Mikrotik RouterOS

  1. Die Route sucht anhand ihres Bereichswerts und aller Einträge in der Haupttabelle mit kleineren oder gleichen Zielbereichswerten nach einer Schnittstelle zum Senden des Pakets
  2. Aus den gefundenen Schnittstellen wird diejenige ausgewählt, über die Sie ein Paket an das angegebene Gateway senden können
  3. Die Schnittstelle des gefundenen verbundenen Eintrags wird ausgewählt, um das Paket an das Gateway zu senden

Bei einer rekursiven Route geschieht alles auf die gleiche Weise, jedoch in zwei Schritten:
Grundlagen des statischen Routings in Mikrotik RouterOS

  • 1-3 Zu den verbundenen Routen wird eine weitere Route hinzugefügt, über die das angegebene Gateway erreicht werden kann
  • 4-6 Finden der mit der Route verbundenen Route für das „Zwischen“-Gateway

Alle Manipulationen bei der rekursiven Suche erfolgen im RIB und nur das Endergebnis wird an den FIB übergeben: 0.0.0.0/0 via 10.10.10.1 on ether1.

Ein Beispiel für die Verwendung von rekursivem Routing zum Wechseln von Routen
Grundlagen des statischen Routings in Mikrotik RouterOS

Konfiguration:
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

Sie können überprüfen, ob Pakete an 10.10.10.1 gesendet werden:
Grundlagen des statischen Routings in Mikrotik RouterOS

Check Gateway weiß nichts über rekursives Routing und sendet einfach Pings an 8.8.8.8, auf das (basierend auf der Haupttabelle) über Gateway 10.10.10.1 zugegriffen werden kann.

Kommt es zu einem Kommunikationsverlust zwischen 10.10.10.1 und 8.8.8.8, wird die Route getrennt, aber Pakete (einschließlich Test-Pings) an 8.8.8.8 laufen weiterhin über 10.10.10.1:
Grundlagen des statischen Routings in Mikrotik RouterOS

Wenn die Verbindung zu Ether1 verloren geht, kommt es zu einer unangenehmen Situation, wenn Pakete vor 8.8.8.8 über den zweiten Anbieter laufen:
Grundlagen des statischen Routings in Mikrotik RouterOS

Dies ist ein Problem, wenn Sie NetWatch zum Ausführen von Skripts verwenden, wenn 8.8.8.8 nicht verfügbar ist. Wenn die Verbindung unterbrochen ist, arbeitet NetWatch einfach über den Backup-Kommunikationskanal und geht davon aus, dass alles in Ordnung ist. Gelöst durch Hinzufügen einer zusätzlichen Filterroute:

/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole

Grundlagen des statischen Routings in Mikrotik RouterOS

Es gibt auf Habré Beitrag, wo die Situation mit NetWatch genauer betrachtet wird.

Und ja, wenn eine solche Reservierung verwendet wird, ist die Adresse 8.8.8.8 fest mit einem der Anbieter verknüpft, sodass es keine gute Idee ist, sie als DNS-Quelle auszuwählen.

Ein paar Worte zum Virtual Routing and Forwarding (VRF)

Die VRF-Technologie dient dazu, mehrere virtuelle Router innerhalb eines physischen Routers zu erstellen. Diese Technologie wird häufig von Telekommunikationsbetreibern (normalerweise in Verbindung mit MPLS) verwendet, um Clients mit überlappenden Subnetzadressen L3VPN-Dienste bereitzustellen:
Grundlagen des statischen Routings in Mikrotik RouterOS

Aber VRF in Mikrotik ist auf der Grundlage von Routing-Tabellen organisiert und hat eine Reihe von Nachteilen, zum Beispiel sind lokale IP-Adressen des Routers von allen VRFs verfügbar, Sie können mehr darüber lesen Link.

Beispiel für eine VRF-Konfiguration:
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0

Von dem mit Ether2 verbundenen Gerät sehen wir, dass Ping von einem anderen VRF an die Router-Adresse geht (und das ist ein Problem), während Ping nicht ins Internet geht:
Grundlagen des statischen Routings in Mikrotik RouterOS

Um auf das Internet zuzugreifen, müssen Sie eine zusätzliche Route registrieren, die auf die Haupttabelle zugreift (in der VRF-Terminologie wird dies als Routenleck bezeichnet):
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2

Es gibt zwei Möglichkeiten, Routen zu verlieren: mithilfe der Routing-Tabelle: 172.17.0.1@main und unter Verwendung des Schnittstellennamens: 172.17.0.1%wlan1.

Und eine Markierung für den Rückverkehr einrichten [PREROUTING|Mangle]:
Grundlagen des statischen Routings in Mikrotik RouterOS

/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no 
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no 

Grundlagen des statischen Routings in Mikrotik RouterOS

Subnetze mit derselben Adresse
Organisation des Zugriffs auf Subnetze mit gleicher Adressierung auf dem gleichen Router mittels VRF und Netmap:
Grundlagen des statischen Routings in Mikrotik RouterOS

Basiseinstellung:

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0

Firewall-Regeln:

#Маркируем пакеты для отправки в правильную таблицу маршрутизации
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no

#Средствами netmap заменяем адреса "эфимерных" подсетей на реальные подсети
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24

Routingregeln für den Rückverkehr:

#Указание имени интерфейса тоже может считаться route leaking, но по сути тут создается аналог connected маршрута
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2

Hinzufügen von über DHCP empfangenen Routen zu einer bestimmten Routing-Tabelle
VRF kann interessant sein, wenn Sie automatisch eine dynamische Route (z. B. von einem DHCP-Client) zu einer bestimmten Routing-Tabelle hinzufügen müssen.

Schnittstelle zu VRF hinzufügen:

/ip route vrf
add interface=ether1 routing-mark=over-isp1

Regeln zum Senden von Datenverkehr (ausgehend und Transit) über die Tabelle über-isp1:

/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no

Zusätzliche, gefälschte Route für die ausgehende Weiterleitung zur Arbeit:

/interface bridge
add name=bare

/ip route
add dst-address=0.0.0.0/0 gateway=bare

Diese Route wird nur benötigt, damit lokal ausgehende Pakete zuvor die Routing-Entscheidung (2) passieren können [OUTPUT|Mangle] und rufen Sie das Routing-Label ab. Wenn vor 0.0.0.0/0 in der Haupttabelle andere aktive Routen auf dem Router vorhanden sind, ist dies nicht erforderlich.
Grundlagen des statischen Routings in Mikrotik RouterOS

Ketten connected-in и dynamic-in в [Routing] -> [Filters]

Die Routenfilterung (eingehend und ausgehend) ist ein Tool, das normalerweise in Verbindung mit dynamischen Routing-Protokollen verwendet wird (und daher erst nach der Installation des Pakets verfügbar ist). Routing), aber es gibt zwei interessante Ketten in den eingehenden Filtern:

  • connected-in – Filtern verbundener Routen
  • Dynamic-In – Filterung dynamischer Routen, die von PPP und DCHP empfangen werden

Durch das Filtern können Sie nicht nur Routen verwerfen, sondern auch eine Reihe von Optionen ändern: Entfernung, Routing-Markierung, Kommentar, Bereich, Zielbereich, ...

Dies ist ein sehr präzises Tool. Wenn Sie etwas ohne Routing-Filter (aber ohne Skripte) tun können, dann verwenden Sie keine Routing-Filter. Verwirren Sie sich und diejenigen, die den Router nach Ihnen konfigurieren, nicht. Im Kontext des dynamischen Routings werden Routing-Filter deutlich häufiger und produktiver eingesetzt.

Festlegen der Routing-Markierung für dynamische Routen
Ein Beispiel von einem Heimrouter. Ich habe zwei VPN-Verbindungen konfiguriert und der Datenverkehr darin sollte gemäß den Routing-Tabellen umgebrochen werden. Gleichzeitig möchte ich, dass die Routen automatisch erstellt werden, wenn die Schnittstelle aktiviert wird:

#При создании vpn подключений указываем создание default route и задаем дистанцию
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y  add-default-route=yes default-route-distance=100 ...

#Фильтрами отправляем маршруты в определенные таблицы маршрутизации на основе подсети назначения и дистанции
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2

Ich weiß nicht warum, wahrscheinlich ein Fehler, aber wenn Sie eine VRF für die PPP-Schnittstelle erstellen, wird die Route zu 0.0.0.0/0 trotzdem in die Haupttabelle gelangen. Sonst wäre alles noch einfacher.

Deaktivieren verbundener Routen
Manchmal ist dies erforderlich:

/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject

Debugging-Tools

RouterOS bietet eine Reihe von Tools zum Debuggen des Routings:

  • [Tool]->[Tourch] - Ermöglicht die Anzeige von Paketen auf Schnittstellen
  • /ip route check – ermöglicht Ihnen zu sehen, an welches Gateway das Paket gesendet wird, funktioniert nicht mit Routing-Tabellen
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - Ping und Trace mithilfe der angegebenen Routing-Tabelle
  • action=log в [IP]->[Firewall] - ein hervorragendes Tool, mit dem Sie den Pfad eines Pakets entlang des Paketflusses verfolgen können. Diese Aktion ist in allen Ketten und Tabellen verfügbar

Source: habr.com

Kommentar hinzufügen