Basisprincipes van statische routering in Mikrotik RouterOS

Routing is het proces van het vinden van het beste pad voor het verzenden van pakketten via TCP/IP-netwerken. Elk apparaat dat op een IPv4-netwerk is aangesloten, bevat een proces- en routeringstabellen.

Dit artikel is geen HOWTO, het beschrijft statische routering in RouterOS met voorbeelden. Ik heb opzettelijk de rest van de instellingen weggelaten (bijvoorbeeld srcnat voor toegang tot internet), dus het begrijpen van het materiaal vereist een bepaald niveau van kennis van netwerken en RouterOS.

Schakelen en routeren

Basisprincipes van statische routering in Mikrotik RouterOS

Switchen is het proces van het uitwisselen van pakketten binnen één Layer2-segment (Ethernet, ppp, ...). Als het apparaat ziet dat de ontvanger van het pakket zich op hetzelfde Ethernet-subnet bevindt, leert het het mac-adres met behulp van het arp-protocol en verzendt het pakket rechtstreeks, waarbij de router wordt omzeild. Een ppp (point-to-point) verbinding kan slechts twee deelnemers hebben en het pakket wordt altijd naar één adres 0xff verzonden.

Routing is het proces van het overbrengen van pakketten tussen Layer2-segmenten. Als een apparaat een pakket wil verzenden waarvan de ontvanger zich buiten het Ethernet-segment bevindt, kijkt het in de routeringstabel en geeft het het pakket door aan een gateway die weet waar het vervolgens naartoe moet worden gestuurd (of misschien niet weet, de oorspronkelijke afzender van het pakket is hier niet van op de hoogte).

De eenvoudigste manier om een ​​router te zien, is als een apparaat dat is verbonden met twee of meer Layer2-segmenten en in staat is om pakketten daartussen door te geven door de beste route uit de routeringstabel te bepalen.

Als je alles begrijpt, of je wist het al, lees dan verder. Voor de rest raad ik je ten zeerste aan om vertrouwd te raken met een kleine, maar zeer ruime Lidwoord.

Routing in RouterOS en PacketFlow

Bijna alle functionaliteit met betrekking tot statische routering zit in het pakket system. Plastieken zak routing voegt ondersteuning toe voor dynamische routeringsalgoritmen (RIP, OSPF, BGP, MME), routeringsfilters en BFD.

Hoofdmenu voor het instellen van routing: [IP]->[Route]. Complexe schema's vereisen mogelijk dat pakketten vooraf worden gelabeld met een routeringsmarkering in: [IP]->[Firewall]->[Mangle] (kettingen PREROUTING и OUTPUT).

Er zijn drie plaatsen op PacketFlow waar beslissingen over IP-pakketroutering worden genomen:
Basisprincipes van statische routering in Mikrotik RouterOS

  1. Pakketten routeren die door de router zijn ontvangen. In dit stadium wordt besloten of het pakket naar het lokale proces gaat of verder naar het netwerk wordt verzonden. Transitpakketten ontvangen Output Interface
  2. Routering van lokale uitgaande pakketten. Uitgaande pakketten ontvangen Output Interface
  3. Extra routeringsstap voor uitgaande pakketten, hiermee kunt u de routeringsbeslissing wijzigen in [Output|Mangle]

  • Het pakketpad in blokken 1, 2 is afhankelijk van de regels in [IP]->[Route]
  • Het pakketpad in de punten 1, 2 en 3 is afhankelijk van de regels in [IP]->[Route]->[Rules]
  • Het pakketpad in blok 1, 3 kan worden beïnvloed met behulp van [IP]->[Firewall]->[Mangle]

RIB, FIB, routeringscache

Basisprincipes van statische routering in Mikrotik RouterOS

Routing informatiebank
De basis waarin routes worden verzameld uit dynamische routeringsprotocollen, routes uit ppp en dhcp, statische en verbonden routes. Deze database bevat alle routes, behalve degene die door de beheerder zijn gefilterd.

Voorwaardelijk, daar kunnen we van uitgaan [IP]->[Route] geeft RIB weer.

Informatiebasis doorsturen
Basisprincipes van statische routering in Mikrotik RouterOS

De basis waarin de beste routes van RIB worden verzameld. Alle routes in de FIB zijn actief en worden gebruikt om pakketten door te sturen. Als de route inactief wordt (uitgeschakeld door de beheerder (systeem), of de interface waarlangs het pakket moet worden verzonden is niet actief), wordt de route verwijderd van de FIB.

Om een ​​routeringsbeslissing te nemen, gebruikt de FIB-tabel de volgende informatie over een IP-pakket:

  • Bron adres
  • Bestemmingsadres
  • broninterface
  • Routeringsmarkering
  • Servicevoorwaarden (DSCP)

Toegang krijgen tot het FIB-pakket doorloopt de volgende fasen:

  • Is het pakket bedoeld voor een lokaal routerproces?
  • Is het pakket onderworpen aan systeem- of gebruikers-PBR-regels?
    • Zo ja, dan wordt het pakket naar de gespecificeerde routeringstabel gestuurd
  • Het pakket wordt naar de hoofdtafel gestuurd

Voorwaardelijk, daar kunnen we van uitgaan [IP]->[Route Active=yes] geeft FIB weer.

Routeringscache
Route caching mechanisme. De router onthoudt waar de pakketten naartoe zijn gestuurd en als er vergelijkbare pakketten zijn (vermoedelijk van dezelfde verbinding), laat hij ze dezelfde route volgen, zonder de FIB in te checken. De routecache wordt periodiek gewist.

Voor RouterOS-beheerders hebben ze geen tools gemaakt voor het bekijken en beheren van de Routing Cache, maar wanneer deze kan worden uitgeschakeld in [IP]->[Settings].

Dit mechanisme is verwijderd uit de linux 3.6-kernel, maar RouterOS gebruikt nog steeds kernel 3.3.5, misschien is Routing cahce een van de redenen.

Routedialoogvenster toevoegen

[IP]->[Route]->[+]
Basisprincipes van statische routering in Mikrotik RouterOS

  1. Subnet waarvoor u een route wilt maken (standaard: 0.0.0.0/0)
  2. Gateway-IP of interface waarnaar het pakket wordt verzonden (er kunnen er meerdere zijn, zie ECMP hieronder)
  3. Toegangscontrole gateway
  4. Opnametype
  5. Afstand (metrisch) voor een route
  6. Routeringstabel
  7. IP voor lokale uitgaande pakketten via deze route
  8. Het doel van Scope en Target Scope staat aan het einde van het artikel.

Route vlaggen
Basisprincipes van statische routering in Mikrotik RouterOS

  • X - De route is uitgeschakeld door de beheerder (disabled=yes)
  • A - De route wordt gebruikt om pakketten te verzenden
  • D - Route dynamisch toegevoegd (BGP, OSPF, RIP, MME, PPP, DHCP, Connected)
  • C - Het subnet is rechtstreeks verbonden met de router
  • S - Statische route
  • r,b,o,m - Route toegevoegd door een van de dynamische routeringsprotocollen
  • B,U,P - Filterroute (laat pakketten vallen in plaats van verzenden)

Wat te specificeren in gateway: ip-adres of interface?

Het systeem stelt je in staat om beide te specificeren, terwijl het niet vloekt en geen hints geeft als je iets verkeerd hebt gedaan.

IP-adres
Het gateway-adres moet toegankelijk zijn via Layer2. Voor Ethernet betekent dit dat de router een adres van hetzelfde subnet op een van de actieve ip-interfaces moet hebben, voor ppp dat het gateway-adres op een van de actieve interfaces als subnetadres is opgegeven.
Indien niet aan de bereikbaarheidsvoorwaarde voor Laag2 wordt voldaan, wordt de route als inactief beschouwd en valt deze niet onder de FIB.

interface
Alles is ingewikkelder en het gedrag van de router hangt af van het type interface:

  • PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) verbinding gaat ervan uit dat er slechts twee deelnemers zijn en het pakket wordt altijd naar de gateway gestuurd voor verzending. Als de gateway detecteert dat de ontvanger zichzelf is, dan zal hij het pakket naar zijn lokale proces.
    Basisprincipes van statische routering in Mikrotik RouterOS
  • Ethernet gaat uit van de aanwezigheid van veel deelnemers en stuurt verzoeken naar de arp-interface met het adres van de ontvanger van het pakket, dit is normaal gedrag voor verbonden routes.
    Maar wanneer u de interface probeert te gebruiken als route voor een extern subnet, krijgt u de volgende situatie: de route is actief, ping naar de gateway passeert, maar bereikt de ontvanger niet vanuit het opgegeven subnet. Als je via een sniffer naar de interface kijkt, zie je arp-verzoeken met adressen van een extern subnet.
    Basisprincipes van statische routering in Mikrotik RouterOS

Basisprincipes van statische routering in Mikrotik RouterOS

Probeer waar mogelijk het IP-adres als gateway op te geven. De uitzondering zijn verbonden routes (automatisch aangemaakt) en PPP-interfaces (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*).

OpenVPN bevat geen PPP-header, maar u kunt de OpenVPN-interfacenaam gebruiken om een ​​route te maken.

Meer specifieke route

Basisrouteringsregel. De route die het kleinere subnet beschrijft (met het grootste subnetmasker) heeft voorrang bij de routeringsbeslissing van het pakket. De positie van de items in de routeringstabel is niet relevant voor de keuze - de hoofdregel is Specifieker.

Basisprincipes van statische routering in Mikrotik RouterOS

Alle routes van het gespecificeerde schema zijn actief (bevinden zich in FIB). wijzen naar verschillende subnetten en conflicteren niet met elkaar.

Als een van de gateways niet meer beschikbaar is, wordt de bijbehorende route als inactief beschouwd (verwijderd uit de FIB) en worden pakketten doorzocht van de resterende routes.

De route met subnet 0.0.0.0/0 krijgt soms een speciale betekenis en wordt de "Standaardroute" of "Gateway of last resort" genoemd. In feite is er niets magisch aan en het bevat gewoon alle mogelijke IPv4-adressen, maar deze namen beschrijven zijn taak goed - het geeft de gateway aan waar pakketten naartoe moeten worden doorgestuurd waarvoor geen andere, nauwkeurigere routes zijn.

Het maximaal mogelijke subnetmasker voor IPv4 is /32, deze route wijst naar een specifieke host en kan gebruikt worden in de routeringstabel.

Meer specifieke routes begrijpen is van fundamenteel belang voor elk TCP/IP-apparaat.

Afstand

Afstanden (of statistieken) zijn vereist voor administratieve filtering van routes naar een enkel subnet dat toegankelijk is via meerdere gateways. Een route met een lagere metriek wordt als een prioriteit beschouwd en wordt opgenomen in de FIB. Als een route met een lagere metric niet meer actief is, wordt deze vervangen door een route met een hogere metric in de FIB.
Basisprincipes van statische routering in Mikrotik RouterOS

Als er meerdere routes zijn naar hetzelfde subnet met dezelfde statistiek, zal de router er slechts één toevoegen aan de FIB-tabel, geleid door zijn interne logica.

De metriek kan een waarde aannemen van 0 tot 255:
Basisprincipes van statische routering in Mikrotik RouterOS

  • 0 - Metriek voor verbonden routes. Afstand 0 kan niet worden ingesteld door de beheerder
  • 1-254 - Metrics beschikbaar voor de beheerder voor het instellen van routes. Statistieken met een lagere waarde hebben een hogere prioriteit
  • 255 - Metric beschikbaar voor de beheerder voor het instellen van routes. In tegenstelling tot 1-254 blijft een route met een metriek van 255 altijd inactief en valt niet in de FIB
  • specifieke maatstaven. Routes die zijn afgeleid van dynamische routeringsprotocollen hebben standaard metrische waarden

poort controleren

Check gateway is een MikroTik RoutesOS-extensie voor het controleren van de beschikbaarheid van de gateway via icmp of arp. Elke 10 seconden (kan niet worden gewijzigd) wordt een verzoek naar de gateway gestuurd, als het antwoord twee keer niet wordt ontvangen, wordt de route als niet beschikbaar beschouwd en wordt deze verwijderd van de FIB. Als de controlegateway is uitgeschakeld, gaat de controleroute verder en wordt de route na één geslaagde controle weer actief.
Basisprincipes van statische routering in Mikrotik RouterOS

Check gateway schakelt het item uit waarin het is geconfigureerd en alle andere items (in alle routeringstabellen en ecmp-routes) met de opgegeven gateway.

Over het algemeen werkt check gateway prima zolang er geen problemen zijn met pakketverlies naar de gateway. Check gateway weet niet wat er gebeurt met communicatie buiten de gecontroleerde gateway, hiervoor zijn extra tools nodig: scripts, recursieve routering, dynamische routeringsprotocollen.

De meeste VPN- en tunnelprotocollen bevatten ingebouwde tools voor het controleren van de verbindingsactiviteit, het inschakelen van de checkgateway voor hen is een extra (maar zeer kleine) belasting van het netwerk en de apparaatprestaties.

ECMP-routes

Equal-Cost Multi-Path - pakketten naar de ontvanger verzenden via meerdere gateways tegelijkertijd met behulp van het Round Robin-algoritme.

Een ECMP-route wordt gemaakt door de beheerder door meerdere gateways op te geven voor één subnet (of automatisch, als er twee equivalente OSPF-routes zijn).
Basisprincipes van statische routering in Mikrotik RouterOS

ECMP wordt gebruikt voor taakverdeling tussen twee kanalen. Als er in theorie twee kanalen in de ecmp-route zijn, dan zou voor elk pakket het uitgaande kanaal anders moeten zijn. Maar het routeringcachemechanisme stuurt pakketten van de verbinding langs de route die het eerste pakket heeft afgelegd, met als resultaat dat we een soort balancering krijgen op basis van verbindingen (loadbalancing per verbinding).

Als u Routing Cache uitschakelt, worden de pakketten in de ECMP-route correct gedeeld, maar is er een probleem met NAT. De NAT-regel verwerkt alleen het eerste pakket van de verbinding (de rest wordt automatisch verwerkt), en het blijkt dat pakketten met hetzelfde bronadres verschillende interfaces verlaten.
Basisprincipes van statische routering in Mikrotik RouterOS

Controleer of gateway niet werkt in ECMP-routes (RouterOS-bug). Maar u kunt deze beperking omzeilen door aanvullende validatieroutes te maken die vermeldingen in ECMP uitschakelen.

Filteren door middel van Routing

De optie Type bepaalt wat er met het pakket moet gebeuren:

  • unicast - stuur naar de opgegeven gateway (interface)
  • blackhole - gooi een pakket weg
  • verbieden, onbereikbaar - gooi het pakket weg en stuur een icmp-bericht naar de afzender

Filteren wordt meestal gebruikt wanneer het nodig is om het verzenden van pakketten langs het verkeerde pad te beveiligen, u kunt dit natuurlijk door de firewall filteren.

Een paar voorbeelden

Om de basisdingen over routering te consolideren.

Typische thuisrouter
Basisprincipes van statische routering in Mikrotik RouterOS

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

  1. Statische route naar 0.0.0.0/0 (standaardroute)
  2. Verbonden route op de interface met de provider
  3. Verbonden route op LAN-interface

Typische thuisrouter met PPPoE
Basisprincipes van statische routering in Mikrotik RouterOS

  1. Statische route naar standaardroute, automatisch toegevoegd. het wordt gespecificeerd in verbindingseigenschappen
  2. Verbonden route voor PPP-verbinding
  3. Verbonden route op LAN-interface

Typische thuisrouter met twee providers en redundantie
Basisprincipes van statische routering 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 naar standaardroute via de eerste provider met metriek 1 en gatewaybeschikbaarheidscontrole
  2. Statische route naar standaardroute via tweede provider met metriek 2
  3. Verbonden trajecten

Verkeer naar 0.0.0.0/0 gaat via 10.10.10.1 zolang deze gateway beschikbaar is, anders schakelt hij over naar 10.20.20.1

Zo'n schema kan worden beschouwd als een kanaalreservering, maar het is niet zonder nadelen. Als er een storing optreedt buiten de gateway van de provider (bijvoorbeeld binnen het netwerk van de provider), weet uw router dit niet en blijft hij de route als actief beschouwen.

Typische thuisrouter met twee providers, redundantie en ECMP
Basisprincipes van statische routering 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 routes voor het controleren van de hackgateway
  2. ECMP-route
  3. Verbonden trajecten

Te controleren routes zijn blauw (de kleur van inactieve routes), maar dit heeft geen invloed op de controlegateway. De huidige versie (6.44) van RoS geeft automatisch voorrang aan de ECMP-route, maar het is beter om testroutes toe te voegen aan andere routeringstabellen (optie routing-mark)

Op Speedtest en andere vergelijkbare sites zal de snelheid niet toenemen (ECMP verdeelt het verkeer door verbindingen, niet door pakketten), maar p2p-applicaties zouden sneller moeten downloaden.

Filteren via routering
Basisprincipes van statische routering 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 naar standaardroute
  2. Statische route naar 192.168.200.0/24 via ipip-tunnel
  3. Statische route naar 192.168.200.0/24 via ISP-router verboden

Een filteroptie waarbij tunnelverkeer niet naar de router van de provider gaat als de ipip-interface is uitgeschakeld. Dergelijke schema's zijn zelden nodig, omdat u kunt blokkering implementeren via de firewall.

Routeringslus
Routeringslus - een situatie waarin een pakket tussen routers loopt voordat de ttl verloopt. Meestal is het het resultaat van een configuratiefout, in grote netwerken wordt het behandeld door de implementatie van dynamische routeringsprotocollen, in kleine - met zorg.

Het ziet er ongeveer zo uit:
Basisprincipes van statische routering in Mikrotik RouterOS

Een (eenvoudigste) voorbeeld van hoe u een vergelijkbaar resultaat krijgt:
Basisprincipes van statische routering in Mikrotik RouterOS

Het voorbeeld van de routeringslus heeft geen praktisch nut, maar het laat zien dat routers geen idee hebben van de routeringstabel van hun buren.

Beleidsbasisroutering en aanvullende routeringstabellen

Bij het kiezen van een route gebruikt de router slechts één veld uit de pakketkop (Dst. Address) - dit is basisroutering. Routering op basis van andere voorwaarden, zoals bronadres, type verkeer (ToS), balanceren zonder ECMP, behoort tot Policy Base Routing (PBR) en maakt gebruik van aanvullende routeringstabellen.

Basisprincipes van statische routering in Mikrotik RouterOS

Meer specifieke route is de belangrijkste routeselectieregel binnen de routeringstabel.

Standaard worden alle routeringsregels toegevoegd aan de hoofdtabel. De beheerder kan een willekeurig aantal extra routeringstabellen maken en pakketten ernaartoe routeren. Regels in verschillende tabellen zijn niet met elkaar in strijd. Als het pakket geen geschikte regel vindt in de gespecificeerde tabel, gaat het naar de hoofdtabel.

Voorbeeld met distributie via Firewall:
Basisprincipes van statische routering in Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. Verkeer van 192.168.100.10 wordt gelabeld via-isp1 в [Prerouting|Mangle]
    2. In de Routing-fase in de tabel via-isp1 zoekt naar een route naar 8.8.8.8
    3. Route gevonden, verkeer wordt naar gateway 10.10.10.1 gestuurd
  • 192.168.200.20 -> 8.8.8.8
    1. Verkeer van 192.168.200.20 wordt gelabeld via-isp2 в [Prerouting|Mangle]
    2. In de Routing-fase in de tabel via-isp2 zoekt naar een route naar 8.8.8.8
    3. Route gevonden, verkeer wordt naar gateway 10.20.20.1 gestuurd
  • Als een van de gateways (10.10.10.1 of 10.20.20.1) niet meer beschikbaar is, gaat het pakket naar de tafel hoofd- en zal daar een geschikte route zoeken

Terminologiekwesties

RouterOS heeft bepaalde terminologieproblemen.
Bij het werken met regels in [IP]->[Routes] de routeringstabel wordt aangegeven, hoewel er staat geschreven dat het label:
Basisprincipes van statische routering in Mikrotik RouterOS

В [IP]->[Routes]->[Rule] alles klopt, in de labelconditie in de tabelactie:
Basisprincipes van statische routering in Mikrotik RouterOS

Hoe een pakket naar een specifieke routeringstabel te sturen

RouterOS biedt verschillende tools:

  • Regels erin [IP]->[Routes]->[Rules]
  • Routemarkeringen (action=mark-routing) in [IP]->[Firewall]->[Mangle]
  • VRF-extensie

reglement [IP]->[Route]->[Rules]
Regels worden opeenvolgend verwerkt, als het pakket overeenkomt met de voorwaarden van de regel, gaat het niet verder.

Met routeringsregels kunt u de routeringsmogelijkheden uitbreiden, waarbij u niet alleen vertrouwt op het adres van de ontvanger, maar ook op het bronadres en de interface waarop het pakket is ontvangen.

Basisprincipes van statische routering in Mikrotik RouterOS

Regels bestaan ​​uit voorwaarden en een actie:

  • Voorwaarden. Herhaal praktisch de lijst met tekens waarmee het pakket in de FIB wordt gecontroleerd, alleen ToS ontbreekt.
  • acties
    • lookup - stuur een pakket naar een tafel
    • alleen opzoeken in tabel - vergrendel het pakket in de tabel, als de route niet wordt gevonden, gaat het pakket niet naar de hoofdtabel
    • drop - laat een pakket vallen
    • onbereikbaar - verwijder het pakket met melding van de afzender

In FIB wordt verkeer naar lokale processen verwerkt waarbij de regels worden omzeild [IP]->[Route]->[Rules]:
Basisprincipes van statische routering in Mikrotik RouterOS

het merken [IP]->[Firewall]->[Mangle]
Met routeringslabels kunt u de gateway voor een pakket instellen met bijna alle Firewall-voorwaarden:
Basisprincipes van statische routering in Mikrotik RouterOS

Praktisch, omdat ze niet allemaal logisch zijn en sommige instabiel kunnen werken.

Basisprincipes van statische routering in Mikrotik RouterOS

Er zijn twee manieren om een ​​pakket te labelen:

  • Meteen gezet routeringsmarkering
  • Eerst zetten verbindingsmerk, dan op basis van verbindingsmerk zetten routeringsmarkering

In een artikel over firewalls schreef ik dat de tweede optie de voorkeur verdient. vermindert de belasting van de cpu, in het geval van het markeren van routes - dit is niet helemaal waar. Deze markeermethoden zijn niet altijd gelijkwaardig en worden meestal gebruikt om verschillende problemen op te lossen.

Gebruiksvoorbeelden

Laten we verder gaan met de voorbeelden van het gebruik van Policy Base Routing, ze zijn veel gemakkelijker om te laten zien waarom dit allemaal nodig is.

MultiWAN en retour uitgaand (Output) verkeer
Een veelvoorkomend probleem met een MultiWAN-configuratie: Mikrotik is alleen via internet beschikbaar via een "actieve" provider.
Basisprincipes van statische routering in Mikrotik RouterOS

Het maakt de router niet uit naar welk ip-adres het verzoek is gekomen, bij het genereren van een antwoord zal hij in de routeringstabel zoeken naar een route waar de route via isp1 actief is. Verder zal zo'n pakket hoogstwaarschijnlijk onderweg naar de ontvanger worden gefilterd.

Nog een interessant punt. Als een "eenvoudige" source nat is geconfigureerd op de ether1-interface: /ip fi nat add out-interface=ether1 action=masquerade het pakket gaat online met src. adres=10.10.10.100, wat de zaken nog erger maakt.

Er zijn verschillende manieren om het probleem op te lossen, maar voor elk daarvan zijn extra routeringstabellen nodig:
Basisprincipes van statische routering 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

Gebruiken [IP]->[Route]->[Rules]
Geef de routeringstabel op die wordt gebruikt voor pakketten met het opgegeven bron-IP.
Basisprincipes van statische routering 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

Kan gebruiken action=lookup, maar voor lokaal uitgaand verkeer sluit deze optie volledig verbindingen van de verkeerde interface uit.

  • Het systeem genereert een responspakket met Src. Adres: 10.20.20.200
  • De Routing Decision(2) stapcontroles [IP]->[Routes]->[Rules] en het pakket wordt naar de routeringstabel gestuurd over-isp2
  • Volgens de routeringstabel moet het pakket via de ether10.20.20.1-interface naar de gateway 2 worden verzonden

Basisprincipes van statische routering in Mikrotik RouterOS

Deze methode vereist geen werkende Connection Tracker, in tegenstelling tot het gebruik van de Mangle-tabel.

Gebruiken [IP]->[Firewall]->[Mangle]
De verbinding begint met een inkomend pakket, dus we markeren het (action=mark-connection), stel voor uitgaande pakketten van een gemarkeerde verbinding het routeringslabel in (action=mark-routing).
Basisprincipes van statische routering 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

Als er meerdere ip's op één interface zijn geconfigureerd, kunt u aan de voorwaarde toevoegen dst-address om zeker te zijn.

  • Een pakket opent de verbinding op de ether2-interface. Het pakket gaat in [INPUT|Mangle] die zegt om alle pakketten van de verbinding te markeren als van-isp2
  • Het systeem genereert een responspakket met Src. Adres: 10.20.20.200
  • In de fase Routing Decision(2) wordt het pakket, in overeenstemming met de routeringstabel, via de ether10.20.20.1-interface naar de gateway 1 gestuurd. U kunt dit controleren door de pakketten in te loggen [OUTPUT|Filter]
  • Op het podium [OUTPUT|Mangle] verbindingslabel is gecontroleerd van-isp2 en het pakket ontvangt een routelabel over-isp2
  • De stap Routeringsaanpassing(3) controleert op de aanwezigheid van een routeringslabel en stuurt dit naar de juiste routeringstabel
  • Volgens de routeringstabel moet het pakket via de ether10.20.20.1-interface naar de gateway 2 worden verzonden

Basisprincipes van statische routering in Mikrotik RouterOS

MultiWAN en retourneer dst-nat-verkeer

Een ingewikkelder voorbeeld is wat te doen als er zich een server (bijvoorbeeld web) achter de router op een privé-subnet bevindt en u hiertoe toegang moet verlenen via een van de providers.

/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

De essentie van het probleem zal hetzelfde zijn, de oplossing is vergelijkbaar met de Firewall Mangle-optie, alleen andere ketens zullen worden gebruikt:
Basisprincipes van statische routering 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

Basisprincipes van statische routering in Mikrotik RouterOS
Het diagram toont geen NAT, maar ik denk dat alles duidelijk is.

MultiWAN en uitgaande verbindingen

U kunt de PBR-mogelijkheden gebruiken om meerdere vpn-verbindingen (SSTP in het voorbeeld) te maken vanaf verschillende routerinterfaces.

Basisprincipes van statische routering in Mikrotik RouterOS

Aanvullende routeringstabellen:

/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

Pakket markeringen:

/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

Eenvoudige NAT-regels, anders verlaat het pakket de interface met de verkeerde Src. adres:

/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

parsing:

  • Router creëert drie SSTP-processen
  • In de fase Routeringsbeslissing (2) wordt voor deze processen een route geselecteerd op basis van de hoofdrouteringstabel. Van dezelfde route ontvangt het pakket Src. Adres gebonden aan ether1-interface
  • В [Output|Mangle] pakketten van verschillende verbindingen krijgen verschillende labels
  • Pakketten komen de tabellen binnen die overeenkomen met de labels in de fase van routeringsaanpassing en ontvangen een nieuwe route voor het verzenden van pakketten
  • Maar pakketten hebben nog steeds Src. Adres van ether1, op het podium [Nat|Srcnat] het adres wordt vervangen volgens de interface

Interessant is dat u op de router de volgende verbindingstabel ziet:
Basisprincipes van statische routering in Mikrotik RouterOS

Connection Tracker werkt eerder [Mangle] и [Srcnat], dus alle verbindingen komen van hetzelfde adres, als je meer in detail kijkt, dan in Replay Dst. Address er komen adressen na NAT:
Basisprincipes van statische routering in Mikrotik RouterOS

Op de VPN-server (ik heb er een op de testbank) kun je zien dat alle verbindingen van de juiste adressen komen:
Basisprincipes van statische routering in Mikrotik RouterOS

Houd de weg omhoog
Er is een eenvoudigere manier, u kunt eenvoudig een specifieke gateway specificeren voor elk van de adressen:

/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

Maar dergelijke routes hebben niet alleen gevolgen voor het uitgaande maar ook voor het transitoverkeer. Plus, als je geen verkeer naar de vpn-server nodig hebt om via ongepaste communicatiekanalen te gaan, dan moet je nog 6 regels toevoegen aan [IP]->[Routes]с type=blackhole. In de vorige versie - 3 regels in [IP]->[Route]->[Rules].

Distributie van gebruikersverbindingen door communicatiekanalen

Eenvoudige, alledaagse taken. Nogmaals, er zijn extra routeringstabellen nodig:

/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

Gebruik [IP]->[Route]->[Rules]
Basisprincipes van statische routering 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

Als gebruik action=lookup, wanneer een van de kanalen is uitgeschakeld, gaat het verkeer naar de hoofdtabel en gaat het door het werkkanaal. Of dit nodig is of niet hangt af van de taak.

Met behulp van de markeringen in [IP]->[Firewall]->[Mangle]
Een eenvoudig voorbeeld met lijsten met ip-adressen. In principe kunnen bijna alle voorwaarden worden gebruikt. Het enige voorbehoud van layer7, zelfs in combinatie met verbindingslabels, lijkt misschien dat alles correct werkt, maar een deel van het verkeer zal nog steeds de verkeerde kant op gaan.
Basisprincipes van statische routering 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

U kunt gebruikers in één routeringstabel "vergrendelen" door middel van [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

Hetzij door [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

Retraite pro dst-address-type=!local
Aanvullende voorwaarde dst-address-type=!local het is noodzakelijk dat verkeer van gebruikers de lokale processen van de router bereikt (dns, winbox, ssh, ...). Als er meerdere lokale subnetten op de router zijn aangesloten, moet u ervoor zorgen dat het verkeer daartussen niet naar internet gaat, bijvoorbeeld met behulp van dst-address-table.

In het voorbeeld gebruiken [IP]->[Route]->[Rules] er zijn geen uitzonderingen, maar verkeer bereikt lokale processen. Het feit is dat het instappen in het FIB-pakket gemarkeerd is [PREROUTING|Mangle] heeft een routelabel en gaat naar een andere routeringstabel dan main, waar geen lokale interface is. In het geval van Routing Rules wordt eerst gecontroleerd of het pakket bedoeld is voor een lokaal proces en pas in het User PBR-stadium gaat het naar de gespecificeerde routeringstabel.

Gebruik [IP]->[Firewall]->[Mangle action=route]
Deze actie werkt alleen in [Prerouting|Mangle] en stelt u in staat om verkeer naar de opgegeven gateway te leiden zonder extra routeringstabellen te gebruiken, door het gateway-adres rechtstreeks op te geven:

/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

effect route heeft een lagere prioriteit dan routeringsregels ([IP]->[Route]->[Rules]). In het geval van routemarkeringen hangt alles af van de positie van de regels, als de regel mee is action=route meer waard dan action=mark-route, dan wordt het gebruikt (ongeacht de vlag passtrough), anders de route markeren.
Er is heel weinig informatie op de wiki over deze actie en alle conclusies zijn experimenteel verkregen, in ieder geval heb ik geen opties gevonden wanneer het gebruik van deze optie voordelen biedt ten opzichte van andere.

Op PPC gebaseerde dynamische balancering

Per Connection Classifier - is een flexibeler analoog van ECMP. In tegenstelling tot ECMP verdeelt het het verkeer strikter over verbindingen (ECMP weet niets over verbindingen, maar in combinatie met Routing Cache wordt iets soortgelijks verkregen).

PCC neemt gespecificeerde velden uit de ip-header, converteert ze naar een 32-bits waarde en deelt door noemer. De rest van de deling wordt vergeleken met het gespecificeerde het overblijfsel en als ze overeenkomen, wordt de opgegeven actie toegepast. Meer. Klinkt gek, maar het werkt.
Basisprincipes van statische routering in Mikrotik RouterOS

Voorbeeld met drie 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

Een voorbeeld van dynamische distributie van verkeer per src.address tussen drie kanalen:
Basisprincipes van statische routering 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

Bij het markeren van routes is er een aanvullende voorwaarde: in-interface=br-lan, zonder het eronder action=mark-routing responsverkeer vanaf internet krijgt en gaat conform de routeringstabellen terug naar de provider.

Schakelen tussen communicatiekanalen

Check ping is een goed hulpmiddel, maar het controleert alleen de verbinding met de dichtstbijzijnde IP-peer, providernetwerken bestaan ​​meestal uit een groot aantal routers en een verbindingsonderbreking kan optreden buiten de dichtstbijzijnde peer, en dan zijn er backbone-telecomoperators die mogelijk ook problemen hebt, over het algemeen toont check ping niet altijd up-to-date informatie over toegang tot het wereldwijde netwerk.
Als providers en grote bedrijven het dynamische routeringsprotocol BGP hebben, moeten thuis- en kantoorgebruikers onafhankelijk uitzoeken hoe ze internettoegang via een specifiek communicatiekanaal kunnen controleren.

Meestal worden scripts gebruikt die via een bepaald communicatiekanaal de beschikbaarheid van een ip-adres op internet controleren, terwijl ze iets betrouwbaars kiezen, bijvoorbeeld google dns: 8.8.8.8. 8.8.4.4. Maar in de Mikrotik-gemeenschap is hiervoor een interessantere tool aangepast.

Een paar woorden over recursieve routering
Recursieve routering is nodig bij het bouwen van Multihop BGP-peering en kwam alleen in het artikel over de basisprincipes van statische routering vanwege sluwe MikroTik-gebruikers die ontdekten hoe ze recursieve routes in combinatie met check gateway konden gebruiken om van communicatiekanaal te wisselen zonder extra scripts.

Het is tijd om de bereik-/doelbereikopties in algemene termen te begrijpen en hoe de route aan de interface is gebonden:
Basisprincipes van statische routering in Mikrotik RouterOS

  1. De route zoekt een interface op om het pakket te verzenden op basis van de bereikwaarde en alle vermeldingen in de hoofdtabel met minder dan of gelijke doelbereikwaarden
  2. Uit de gevonden interfaces wordt degene geselecteerd waarmee u een pakket naar de opgegeven gateway kunt sturen
  3. De interface van het gevonden verbonden item wordt geselecteerd om het pakket naar de gateway te sturen

In aanwezigheid van een recursieve route gebeurt alles hetzelfde, maar in twee fasen:
Basisprincipes van statische routering in Mikrotik RouterOS

  • 1-3 Er wordt nog een route toegevoegd aan de verbonden routes, via welke de opgegeven gateway kan worden bereikt
  • 4-6 De route vinden aangesloten route voor de "tussenliggende" gateway

Alle manipulaties met de recursieve zoekopdracht vinden plaats in de RIB en alleen het eindresultaat wordt overgebracht naar de FIB: 0.0.0.0/0 via 10.10.10.1 on ether1.

Een voorbeeld van het gebruik van recursieve routering om van route te wisselen
Basisprincipes van statische routering in Mikrotik RouterOS

Configuratie:
Basisprincipes van statische routering 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

U kunt controleren of pakketten naar 10.10.10.1 worden verzonden:
Basisprincipes van statische routering in Mikrotik RouterOS

Checkgateway weet niets van recursieve routing en stuurt gewoon pings naar 8.8.8.8, die (op basis van de hoofdtabel) toegankelijk is via gateway 10.10.10.1.

Als er een communicatieverlies is tussen 10.10.10.1 en 8.8.8.8, wordt de route verbroken, maar pakketten (inclusief testpings) naar 8.8.8.8 gaan door 10.10.10.1:
Basisprincipes van statische routering in Mikrotik RouterOS

Als de link naar ether1 wegvalt, ontstaat er een vervelende situatie wanneer pakketten vóór 8.8.8.8 via de tweede provider gaan:
Basisprincipes van statische routering in Mikrotik RouterOS

Dit is een probleem als u NetWatch gebruikt om scripts uit te voeren wanneer 8.8.8.8 niet beschikbaar is. Als de verbinding verbroken is, werkt NetWatch gewoon via het back-upcommunicatiekanaal en gaat ervan uit dat alles in orde is. Opgelost door een extra filterroute toe te voegen:

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

Basisprincipes van statische routering in Mikrotik RouterOS

Er is op habré artikel, waar de situatie met NetWatch in meer detail wordt besproken.

En ja, bij gebruik van zo'n reservering zal het adres 8.8.8.8 hardwired zijn naar een van de providers, dus het is geen goed idee om het als dns-bron te kiezen.

Een paar woorden over Virtual Routing and Forwarding (VRF)

VRF-technologie is ontworpen om verschillende virtuele routers binnen één fysieke router te creëren. Deze technologie wordt veel gebruikt door telecomoperators (meestal in combinatie met MPLS) om L3VPN-services te bieden aan klanten met overlappende subnetadressen:
Basisprincipes van statische routering in Mikrotik RouterOS

Maar VRF in Mikrotik is georganiseerd op basis van routeringstabellen en heeft een aantal nadelen, zo zijn lokale ip-adressen van de router beschikbaar vanuit alle VRF's, lees meer link.

voorbeeld van vrf-configuratie:
Basisprincipes van statische routering 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

Van het apparaat dat is aangesloten op ether2, zien we dat ping naar het routeradres gaat van een andere vrf (en dit is een probleem), terwijl ping niet naar internet gaat:
Basisprincipes van statische routering in Mikrotik RouterOS

Om toegang te krijgen tot internet, moet u een extra route registreren die toegang heeft tot de hoofdtabel (in vrf-terminologie wordt dit route-lekken genoemd):
Basisprincipes van statische routering 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

Hier zijn twee manieren om routes te lekken: met behulp van de routeringstabel: 172.17.0.1@main en met behulp van de interfacenaam: 172.17.0.1%wlan1.

En stel markeringen in voor terugkerend verkeer [PREROUTING|Mangle]:
Basisprincipes van statische routering 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 

Basisprincipes van statische routering in Mikrotik RouterOS

Subnetten met hetzelfde adres
Organisatie van toegang tot subnetten met dezelfde adressering op dezelfde router met behulp van VRF en netmap:
Basisprincipes van statische routering in Mikrotik RouterOS

Basisconfiguratie:

/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 regels:

#Маркируем пакеты для отправки в правильную таблицу маршрутизации
/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

Routeringsregels voor retourverkeer:

#Указание имени интерфейса тоже может считаться 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

Via dhcp ontvangen routes toevoegen aan een bepaalde routeringstabel
VRF kan interessant zijn als je automatisch een dynamische route (bijvoorbeeld van een dhcp-client) moet toevoegen aan een specifieke routeringstabel.

Interface toevoegen aan vrf:

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

Regels voor het doorsturen van verkeer (uitgaand en transit) via de tabel over-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

Extra, valse route voor uitgaande routering om te werken:

/interface bridge
add name=bare

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

Deze route is alleen nodig zodat lokale uitgaande pakketten de routeringsbeslissing (2) eerder kunnen passeren [OUTPUT|Mangle] en verkrijg het routeringslabel, als er andere actieve routes op de router zijn vóór 0.0.0.0/0 in de hoofdtabel, is dit niet vereist.
Basisprincipes van statische routering in Mikrotik RouterOS

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

Routefiltering (inkomend en uitgaand) is een tool die meestal wordt gebruikt in combinatie met dynamische routeringsprotocollen (en daarom alleen beschikbaar is na installatie van het pakket routing), maar er zijn twee interessante kettingen in de inkomende filters:

  • connected-in — het filteren van verbonden routes
  • dynamic-in - het filteren van dynamische routes ontvangen door PPP en DCHP

Door te filteren kunt u niet alleen routes weggooien, maar ook een aantal opties wijzigen: afstand, routemarkering, commentaar, bereik, doelbereik, ...

Dit is een zeer nauwkeurige tool en als je iets kunt doen zonder routeringsfilters (maar geen scripts), gebruik dan geen routeringsfilters, verwar jezelf en degenen die de router na jou zullen configureren niet. In het kader van dynamische routering zullen routeringsfilters veel vaker en productiever worden gebruikt.

De routeringsmarkering instellen voor dynamische routes
Een voorbeeld van een thuisrouter. Ik heb twee geconfigureerde VPN-verbindingen en het verkeer daarin moet worden verpakt in overeenstemming met de routeringstabellen. Tegelijkertijd wil ik dat de routes automatisch worden aangemaakt wanneer de interface wordt geactiveerd:

#При создании 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

Ik weet niet waarom, waarschijnlijk een bug, maar als je een vrf aanmaakt voor de ppp-interface, dan komt de route naar 0.0.0.0/0 nog steeds in de hoofdtabel. Anders zou alles nog eenvoudiger zijn.

Verbonden routes uitschakelen
Soms is dit vereist:

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

Hulpmiddelen voor foutopsporing

RouterOS biedt een aantal hulpmiddelen voor het debuggen van routering:

  • [Tool]->[Tourch] - stelt u in staat pakketten op interfaces te bekijken
  • /ip route check - hiermee kunt u zien naar welke gateway het pakket wordt verzonden, werkt niet met routeringstabellen
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - ping en trace met behulp van de opgegeven routeringstabel
  • action=log в [IP]->[Firewall] - een uitstekende tool waarmee u het pad van een pakket langs de pakketstroom kunt volgen, deze actie is beschikbaar in alle ketens en tabellen

Bron: www.habr.com

Voeg een reactie