Basis fan statyske routing yn Mikrotik RouterOS

Routing is it proses om it bêste paad te finen foar it ferstjoeren fan pakketten oer TCP/IP-netwurken. Elk apparaat ferbûn oan in IPv4 netwurk befettet in proses en routing tabellen.

Dit artikel is gjin HOWTO, it beskriuwt statyske routing yn RouterOS mei foarbylden, ik haw de rest fan 'e ynstellings bewust weglitten (bygelyks srcnat foar tagong ta it ynternet), dus it begripen fan it materiaal fereasket in bepaald nivo fan kennis fan netwurken en RouterOS.

Switching en routing

Basis fan statyske routing yn Mikrotik RouterOS

It wikseljen is it proses fan it útwikseljen fan pakketten binnen ien Layer2-segment (Ethernet, ppp, ...). As it apparaat sjocht dat de ûntfanger fan it pakket op itselde Ethernet-subnet dêrmei is, leart it it mac-adres mei it arp-protokol en stjoert it pakket direkt troch, troch de router te omgean. In ppp (point-to-point) ferbining kin mar twa dielnimmers hawwe en it pakket wurdt altyd stjoerd nei ien adres 0xff.

Routing is it proses fan it oerdragen fan pakketten tusken Layer2 segminten. As in apparaat in pakket ferstjoere wol wêrfan de ûntfanger bûten it Ethernet-segmint leit, sjocht it yn syn routingtabel en jout it pakket troch nei in poarte dy't wit wêr't it pakket neist ferstjoere moat (of miskien net witte, de orizjinele stjoerder fan it pakket is net bewust fan dit).

De maklikste manier om te tinken oan in router is as in apparaat ferbûn mei twa of mear Layer2 segminten en by steat om trochjaan pakketten tusken harren troch it bepalen fan de bêste rûte út de routing tabel.

As jo ​​alles begripe, of jo wisten it al, lês dan fierder. Foar de rest, ik riede sterk oan dat jo fertroud meitsje mei in lyts, mar hiel rom artikels.

Routing yn RouterOS en PacketFlow

Hast alle funksjonaliteit yn ferbân mei statyske routing is yn it pakket systeem. Plestik tas Routing foeget stipe ta foar dynamyske routingalgoritmen (RIP, OSPF, BGP, MME), Routingfilters en BFD.

Haadmenu foar it ynstellen fan routing: [IP]->[Route]. Komplekse skema's kinne fereaskje dat pakketten foarôf wurde markearre mei in routingmark yn: [IP]->[Firewall]->[Mangle] (keatlingen PREROUTING и OUTPUT).

D'r binne trije plakken op PacketFlow wêr't besluten oer IP-pakketrouting wurde makke:
Basis fan statyske routing yn Mikrotik RouterOS

  1. Routing pakketten ûntfongen troch de router. Op dit stadium wurdt besletten oft it pakket nei it lokale proses giet of fierder nei it netwurk stjoerd wurdt. Transitpakketten ûntfange Utfierynterface
  2. Routing fan lokale útgeande pakketten. Utgeande pakketten ûntfange Utfierynterface
  3. Oanfoljende routingstap foar útgeande pakketten, kinne jo it routingbeslút feroarje yn [Output|Mangle]

  • It pakketpaad yn blokken 1, 2 hinget ôf fan 'e regels yn [IP]->[Route]
  • It pakketpaad yn punten 1, 2 en 3 hinget ôf fan de regels yn [IP]->[Route]->[Rules]
  • It pakket paad yn blokken 1, 3 kin wurde beynfloede mei help [IP]->[Firewall]->[Mangle]

RIB, FIB, Routing Cache

Basis fan statyske routing yn Mikrotik RouterOS

Routing Information Base
De basis wêryn rûtes wurde sammele fan dynamyske routingprotokollen, rûtes fan ppp en dhcp, statyske en ferbûne rûtes. Dizze databank befettet alle rûtes, útsein dy troch de behearder filtere.

Betingst, dat kinne wy ​​oannimme [IP]->[Route] toant RIB.

Forwarding Information Base
Basis fan statyske routing yn Mikrotik RouterOS

De basis wêryn de bêste rûtes fan RIB wurde sammele. Alle rûtes yn de FIB binne aktyf en wurde brûkt om pakketten troch te stjoeren. As de rûte ynaktyf wurdt (útskeakele troch de behearder (systeem), of de ynterface wêrmei it pakket ferstjoerd wurde moat is net aktyf), wurdt de rûte fan 'e FIB fuortsmiten.

Om in routingbeslút te meitsjen, brûkt de FIB-tabel de folgjende ynformaasje oer in IP-pakket:

  • Boarneadres
  • Bestimmingsadres
  • Boarne ynterface
  • Routing mark
  • ToS (DSCP)

It ynfieren fan it FIB-pakket giet troch de folgjende stadia:

  • Is it pakket bedoeld foar in lokale routerproses?
  • Is it pakket ûnderwurpen oan systeem- of brûker PBR-regels?
    • As ja, dan wurdt it pakket stjoerd nei de oantsjutte routingtabel
  • It pakket wurdt stjoerd nei de haadtafel

Betingst, dat kinne wy ​​oannimme [IP]->[Route Active=yes] toant FIB.

Routing Cache
Rûte caching meganisme. De router ûnthâldt wêr't de pakketten ferstjoerd binne en as d'r ferlykbere binne (nei alle gedachten fan deselde ferbining) lit it se op deselde rûte gean, sûnder yn 'e FIB te kontrolearjen. De rûtecache wurdt periodyk wiske.

Foar RouterOS-behearders makken se gjin ark foar it besjen en behearen fan de Routing Cache, mar as it kin wurde útskeakele yn [IP]->[Settings].

Dit meganisme waard fuorthelle út de Linux 3.6 kernel, mar RouterOS noch brûkt kernel 3.3.5, miskien Routing cahce is ien fan de redenen.

Foegje rûtedialooch ta

[IP]->[Route]->[+]
Basis fan statyske routing yn Mikrotik RouterOS

  1. Subnet dêr't jo in rûte foar meitsje wolle (standert: 0.0.0.0/0)
  2. Gateway IP of ynterface dêr't it pakket nei stjoerd wurdt (d'r kinne ferskate wêze, sjoch ECMP hjirûnder)
  3. Gateway Beskikberens Check
  4. Record Type
  5. Ofstân (metrysk) foar in rûte
  6. Routing tabel
  7. IP foar lokale útgeande pakketten fia dizze rûte
  8. It doel fan Scope en Target Scope wurdt skreaun oan 'e ein fan it artikel.

Rûte flaggen
Basis fan statyske routing yn Mikrotik RouterOS

  • X - De rûte is útskeakele troch de behearder (disabled=yes)
  • A - De rûte wurdt brûkt om pakketten te ferstjoeren
  • D - Rûte dynamysk tafoege (BGP, OSPF, RIP, MME, PPP, DHCP, ferbûn)
  • C - It subnet is direkt ferbûn mei de router
  • S - Statyske rûte
  • r, b, o, m - Rûte tafoege troch ien fan 'e dynamyske routingprotokollen
  • B,U,P - Filterrûte (dropt pakketten ynstee fan ferstjoeren)

Wat te spesifisearje yn gateway: ip-adres as ynterface?

It systeem lit jo beide oantsjutte, wylst it net swarret en gjin hints jout as jo wat ferkeard dien hawwe.

IP-adres
It gateway-adres moat tagonklik wêze fia Layer2. Foar Ethernet, dit betsjut dat de router moat hawwe in adres fan deselde subnet op ien fan de aktive ip Schnittstellen, foar ppp, dat de gateway adres wurdt oantsjutte op ien fan de aktive ynterfaces as de subnet adres.
As net foldien wurdt oan de berikberensbetingsten foar Layer2, wurdt de rûte as ynaktyf beskôge en falt net yn it FIB.

ynterface
Alles is yngewikkelder en it gedrach fan 'e router hinget ôf fan it type ynterface:

  • PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) ferbining giet derfan út mar twa dielnimmers en it pakket sil altyd stjoerd wurde nei de gateway foar oerdracht, as de gateway detektearret dat de ûntfanger sels is, dan sil it pakket oerdrage nei syn lokale proses.
    Basis fan statyske routing yn Mikrotik RouterOS
  • Ethernet nimt de oanwêzigens fan in protte dielnimmers oan en sil fersiken stjoere nei de arp-ynterface mei it adres fan 'e ûntfanger fan it pakket, dit wurdt ferwachte en frij normaal gedrach foar ferbûne rûtes.
    Mar as jo besykje de ynterface te brûken as in rûte foar in subnet op ôfstân, krije jo de folgjende situaasje: de rûte is aktyf, ping nei de poarte giet troch, mar berikt de ûntfanger net fan it opjûne subnet. As jo ​​sjogge nei de ynterface troch in sniffer, do silst sjen arp fersiken mei adressen fan in ôfstân subnet.
    Basis fan statyske routing yn Mikrotik RouterOS

Basis fan statyske routing yn Mikrotik RouterOS

Besykje it ip-adres as de poarte op te jaan as it mooglik is. De útsûndering is ferbûne rûtes (automatysk oanmakke) en PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) ynterfaces.

OpenVPN befettet gjin PPP-koptekst, mar jo kinne de OpenVPN-ynterface-namme brûke om in rûte te meitsjen.

Mear spesifike rûte

Basis routing regel. De rûte dy't it lytsere subnet (mei it grutste subnetmasker) beskriuwt, hat foarrang yn it routingbeslút fan it pakket. De posysje fan 'e yngongen yn' e routingtabel is net relevant foar de kar - de haadregel is Mear spesifyk.

Basis fan statyske routing yn Mikrotik RouterOS

Alle rûtes út it oantsjutte skema binne aktyf (leit yn FIB). wize op ferskillende subnetten en net konflikt mei elkoar.

As ien fan 'e poarten net beskikber wurdt, wurdt de assosjearre rûte beskôge as ynaktyf (ferwidere fan' e FIB) en sille pakketten socht wurde fan 'e oerbleaune rûtes.

De rûte mei subnet 0.0.0.0/0 wurdt soms spesjale betsjutting jûn en wurdt de "Standertrûte" of "Gateway of last resort" neamd. Yn feite is d'r neat magysk oan en it befettet gewoan alle mooglike IPv4-adressen, mar dizze nammen beskriuwe har taak goed - it jout de poarte oan wêr't pakketten trochstjoerd wurde moatte wêrfoar't der gjin oare, krekter rûtes binne.

It maksimale mooglike subnetmasker foar IPv4 is /32, dizze rûte wiist nei in spesifike host en kin brûkt wurde yn 'e routingtabel.

Mear spesifike rûte begripe is fûneminteel foar elk TCP / IP-apparaat.

Ôfstân

Ofstannen (as Metrics) binne nedich foar bestjoerlik filterjen fan rûtes nei in inkeld subnet tagonklik fia meardere poarten. In rûte mei in legere metryske wurdt beskôge as in prioriteit en wurdt opnommen yn de FIB. As in rûte mei in legere metryske ophâldt aktyf te wêzen, dan wurdt dy ferfongen troch in rûte mei in hegere metryske yn de FIB.
Basis fan statyske routing yn Mikrotik RouterOS

As d'r ferskate rûtes binne nei itselde subnet mei deselde metrik, sil de router mar ien fan har tafoegje oan 'e FIB-tabel, liede troch syn ynterne logika.

De metrike kin in wearde nimme fan 0 oant 255:
Basis fan statyske routing yn Mikrotik RouterOS

  • 0 - Metrysk foar ferbûne rûtes. Ofstân 0 kin net ynsteld wurde troch de behearder
  • 1-254 - Metriken beskikber foar de behearder foar it ynstellen fan rûtes. Metriken mei in legere wearde hawwe in hegere prioriteit
  • 255 - Metrysk beskikber foar de behearder foar it ynstellen fan rûtes. Oars as 1-254, bliuwt in rûte mei in metrysk fan 255 altyd ynaktyf en falt net yn 'e FIB
  • spesifike metriken. Rûtes ôflaat fan dynamyske routingprotokollen hawwe standert metrike wearden

kontrolearje gateway

Kontrolearje gateway is in MikroTik RoutesOS-útwreiding foar it kontrolearjen fan de beskikberens fan 'e gateway fia icmp of arp. Ien kear elke 10 sekonden (kin net feroare wurde), wurdt in fersyk stjoerd nei de poarte, as it antwurd net twa kear ûntfongen is, wurdt de rûte as net beskikber achte en wurdt fuortsmiten fan 'e FIB. As check gateway is útskeakele, giet it kontrôlepaad troch en sil de rûte nei ien suksesfolle kontrôle wer aktyf wurde.
Basis fan statyske routing yn Mikrotik RouterOS

Kontrolearje gateway skeakelet de yngong wêryn't it is konfigureare en alle oare yngongen (yn alle routingtabellen en ecmp-rûtes) út mei de oantsjutte gateway.

Yn it algemien, check gateway wurket goed sa lang as der gjin problemen mei pakket ferlies oan de gateway. Kontrolearje gateway wit net wat der bart mei kommunikaasje bûten de kontrolearre gateway, dit fereasket ekstra ark: skripts, rekursive routing, dynamyske routingprotokollen.

De measte VPN- en tunnelprotokollen befetsje ynboude ark foar it kontrolearjen fan ferbiningsaktiviteit, it ynskeakeljen fan kontrôlegateway foar har is in ekstra (mar heul lytse) lading op it netwurk en apparaatprestaasjes.

ECMP rûtes

Equal-Cost Multi-Path - pakketten ferstjoere nei de ûntfanger mei ferskate poarten tagelyk mei it Round Robin-algoritme.

De ECMP-rûte wurdt makke troch de behearder troch it opjaan fan meardere poarten foar itselde subnet (of automatysk, as der twa lykweardige OSPF-rûtes binne).
Basis fan statyske routing yn Mikrotik RouterOS

ECMP wurdt brûkt foar load balancing tusken twa kanalen, yn teory, as der twa kanalen yn de ecmp rûte, dan foar elk pakket it útgeande kanaal moat wêze oars. Mar it Routing-cache-meganisme stjoert pakketten fan 'e ferbining lâns de rûte dy't it earste pakket naam, as gefolch krije wy in soarte fan balânsjen basearre op ferbinings (per-ferbining laden balancing).

As jo ​​Routing Cache útskeakelje, dan wurde de pakketten yn 'e ECMP-rûte korrekt dield, mar d'r is in probleem mei NAT. De NAT-regel ferwurket allinich it earste pakket fan 'e ferbining (de rest wurdt automatysk ferwurke), en it docht bliken dat pakketten mei deselde boarneadres ferskate ynterfaces ferlitte.
Basis fan statyske routing yn Mikrotik RouterOS

Kontrolearje dat gateway net wurket yn ECMP-rûtes (RouterOS-bug). Mar jo kinne dizze beheining omgean troch ekstra falidaasjerûtes te meitsjen dy't yngongen yn ECMP sille útskeakelje.

Filtering troch middel fan Routing

De opsje Type bepaalt wat te dwaan mei it pakket:

  • unicast - stjoere nei de oantsjutte gateway (ynterface)
  • blackhole - smyt in pakket
  • ferbiede, ûnberikber - smyt it pakket ôf en stjoer in icmp-berjocht nei de stjoerder

Filtering wurdt normaal brûkt as it nedich is om it ferstjoeren fan pakketten yn 'e ferkearde rjochting te befeiligjen, fansels kinne jo dit troch de firewall filterje.

In pear foarbylden

Om de basis dingen oer routing te konsolidearjen.

Typyske thús router
Basis fan statyske routing yn Mikrotik RouterOS

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

  1. Statyske rûte nei 0.0.0.0/0 (standertrûte)
  2. Ferbûn rûte op de ynterface mei de provider
  3. Ferbûne rûte op LAN ynterface

Typyske thúsrouter mei PPPoE
Basis fan statyske routing yn Mikrotik RouterOS

  1. Statyske rûte nei standertrûte, automatysk tafoege. it is oantsjutte yn ferbining eigenskippen
  2. Ferbûne rûte foar PPP-ferbining
  3. Ferbûne rûte op LAN ynterface

Typyske thúsrouter mei twa providers en redundânsje
Basis fan statyske routing yn 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. Statyske rûte nei standert rûte troch de earste provider mei metric 1 en gateway beskikberens kontrôle
  2. Statyske rûte nei standertrûte fia twadde provider mei metrysk 2
  3. Ferbûne rûtes

Ferkear nei 0.0.0.0/0 giet troch 10.10.10.1 wylst dizze gateway beskikber is, oars skeakelt it oer nei 10.20.20.1

Sa'n skema kin beskôge wurde as in kanaal reservearring, mar it is net sûnder neidielen. As in brek foarkomt bûten de poarte fan de provider (bygelyks binnen it netwurk fan de operator), sil jo router der net fan witte en sil de rûte trochgean as aktyf te beskôgjen.

Typyske thúsrouter mei twa providers, redundânsje en ECMP
Basis fan statyske routing yn 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. Statyske rûtes foar kontrolearjen chack gateway
  2. ECMP route
  3. Ferbûne rûtes

Rûtes om te kontrolearjen binne blau (de kleur fan ynaktive rûtes), mar dit bemuoit de kontrôlepoarte net. De hjoeddeistige ferzje (6.44) fan RoS jout automatyske prioriteit oan de ECMP-rûte, mar it is better om testrûtes ta te foegjen oan oare routingtabellen (opsje routing-mark)

Op Speedtest en oare ferlykbere siden sil d'r gjin ferheging fan snelheid wêze (ECMP ferdielt ferkear troch ferbiningen, net troch pakketten), mar p2p-applikaasjes moatte rapper laden wurde.

Filtering fia Routing
Basis fan statyske routing yn 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. Statyske rûte nei standert rûte
  2. Statyske rûte nei 192.168.200.0/24 oer ipip tunnel
  3. It ferbieden fan statyske rûte nei 192.168.200.0/24 fia ISP-router

In filteropsje wêryn tunnelferkear net nei de router fan de provider giet as de ipip-ynterface is útskeakele. Sokke regelingen binne komselden nedich, omdat. jo kinne blokkearje fia de firewall ymplementearje.

Routing loop
Routing loop - in situaasje as in pakket rint tusken routers foardat de ttl ferrint. Meastentiids is it it gefolch fan in konfiguraasjeflater, yn grutte netwurken wurdt it behannele troch de ymplemintaasje fan dynamyske routingprotokollen, yn lytse - mei soarch.

It sjocht der sa út:
Basis fan statyske routing yn Mikrotik RouterOS

In foarbyld (ienfâldichste) fan hoe't jo in ferlykber resultaat krije kinne:
Basis fan statyske routing yn Mikrotik RouterOS

It foarbyld fan Routing-loop is fan gjin praktysk nut, mar it lit sjen dat routers gjin idee hawwe oer de routingtabel fan har buorman.

Beliedsbasis Routing en Oanfoljende Routing Tables

As jo ​​​​in rûte kieze, brûkt de router mar ien fjild fan 'e pakketkoptekst (Dst. Adres) - dit is basisrûte. Routing basearre op oare betingsten, lykas boarne adres, type ferkear (ToS), balancing sûnder ECMP, heart by Policy Base Routing (PBR) en brûkt ekstra routing tabellen.

Basis fan statyske routing yn Mikrotik RouterOS

Mear spesifike rûte is de wichtichste rûte seleksje regel binnen de routing tabel.

Standert wurde alle routingregels tafoege oan 'e haadtabel. De behearder kin in willekeurich oantal oanfoljende routingtabellen oanmeitsje en pakketten nei har rûte. Regels yn ferskate tabellen binne net yn striid mei elkoar. As it pakket gjin gaadlike regel fynt yn 'e oantsjutte tabel, sil it nei de haadtafel gean.

Foarbyld mei distribúsje fia Firewall:
Basis fan statyske routing yn Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. Ferkear fan 192.168.100.10 wurdt bestimpele fia isp1 в [Prerouting|Mangle]
    2. By de Routing poadium yn 'e tabel fia isp1 siket nei in rûte nei 8.8.8.8
    3. Rûte fûn, ferkear wurdt stjoerd nei gateway 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. Ferkear fan 192.168.200.20 wurdt bestimpele fia isp2 в [Prerouting|Mangle]
    2. By de Routing poadium yn 'e tabel fia isp2 siket nei in rûte nei 8.8.8.8
    3. Rûte fûn, ferkear wurdt stjoerd nei gateway 10.20.20.1
  • As ien fan 'e poarten (10.10.10.1 of 10.20.20.1) net beskikber wurdt, dan sil it pakket nei de tafel gean main en sil dêr in gaadlike rûte sykje

Terminologysk problemen

RouterOS hat bepaalde terminologyproblemen.
By it wurkjen mei regels yn [IP]->[Routes] de routingtabel wurdt oanjûn, hoewol it skreaun is dat it label:
Basis fan statyske routing yn Mikrotik RouterOS

В [IP]->[Routes]->[Rule] alles is korrekt, yn 'e labelkondysje yn' e tabelaksje:
Basis fan statyske routing yn Mikrotik RouterOS

Hoe kinne jo in pakket stjoere nei in spesifike routingtabel

RouterOS biedt ferskate ark:

  • Regels yn [IP]->[Routes]->[Rules]
  • Rûtemarkers (action=mark-routing) yn [IP]->[Firewall]->[Mangle]
  • VRF

Regels [IP]->[Route]->[Rules]
Regels wurde sequentially ferwurke, as it pakket oerienkomt mei de betingsten fan 'e regel, giet it net fierder.

Routing Rules tastean jo te wreidzjen de mooglikheden fan routing, ôfhinklik net allinnich op it adres fan de ûntfanger, mar ek op it boarne adres en ynterface dêr't it pakket waard ûntfongen.

Basis fan statyske routing yn Mikrotik RouterOS

Regels besteane út betingsten en in aksje:

  • Betingsten. Werhelje praktysk de list mei tekens wêrmei't it pakket wurdt kontrolearre yn 'e FIB, allinich ToS ûntbrekt.
  • Aksjes
    • opsykje - stjoer in pakket nei in tabel
    • sykje allinich yn tabel - beskoattelje it pakket yn 'e tabel, as de rûte net fûn is, sil it pakket net nei de haadtabel gean
    • drop - drop in pakket
    • unreachable - smyt it pakket mei stjoerder notifikaasje

Yn FIB wurdt ferkear nei lokale prosessen ferwurke troch de regels om te gean [IP]->[Route]->[Rules]:
Basis fan statyske routing yn Mikrotik RouterOS

Markearjen [IP]->[Firewall]->[Mangle]
Routing-etiketten kinne jo de poarte foar in pakket ynstelle mei hast alle Firewall-betingsten:
Basis fan statyske routing yn Mikrotik RouterOS

Praktysk, om't se net allegear sin hawwe, en guon kinne unstabyl wurkje.

Basis fan statyske routing yn Mikrotik RouterOS

D'r binne twa manieren om in pakket te labeljen:

  • Daliks sette routing mark
  • Set earst ferbining-mark, dan basearre op ferbining-mark Sette routing mark

Yn in artikel oer firewalls skreau ik dat de twadde opsje de foarkar is. fermindert de lading op 'e cpu, yn it gefal fan markearring fan rûtes - dit is net hielendal wier. Dizze markearringmetoaden binne net altyd lykweardich en wurde normaal brûkt om ferskate problemen op te lossen.

Foarbylden fan gebrûk

Litte wy trochgean nei de foarbylden fan it brûken fan Policy Base Routing, se binne folle makliker om te sjen wêrom't dit alles nedich is.

MultiWAN en werom útgeande (Utfier) ​​ferkear
In mienskiplik probleem mei in MultiWAN konfiguraasje: Mikrotik is beskikber fan it ynternet allinnich fia in "aktive" provider.
Basis fan statyske routing yn Mikrotik RouterOS

De router makket it net út hokker ip it fersyk kaam ta, by it generearjen fan in antwurd sil it sykje nei in rûte yn 'e rûtetabel wêr't de rûte troch isp1 aktyf is. Fierder sil sa'n pakket nei alle gedachten ûnderweis nei de ûntfanger filtere wurde.

In oar nijsgjirrich punt. As in "ienfâldige" boarne nat is konfigureare op 'e ether1-ynterface: /ip fi nat add out-interface=ether1 action=masquerade it pakket sil online gean mei src. adres=10.10.10.100, wat de dingen noch slimmer makket.

D'r binne ferskate manieren om it probleem op te lossen, mar ien fan har sil ekstra routingtabellen fereaskje:
Basis fan statyske routing yn 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

Gebrûk [IP]->[Route]->[Rules]
Spesifisearje de rûtetabel dy't brûkt wurde sil foar pakketten mei de oantsjutte boarne IP.
Basis fan statyske routing yn 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

Kin brûkt wurde action=lookup, mar foar lokaal útgeand ferkear slút dizze opsje ferbinings folslein út fan 'e ferkearde ynterface.

  • It systeem genereart in antwurdpakket mei Src. Adres: 10.20.20.200
  • It Routing Beslút (2) stap kontrolearret [IP]->[Routes]->[Rules] en it pakket wurdt stjoerd nei de routing tafel oer isp2
  • Neffens de routingtabel moat it pakket stjoerd wurde nei de gateway 10.20.20.1 fia de ether2-ynterface

Basis fan statyske routing yn Mikrotik RouterOS

Dizze metoade fereasket gjin wurkjende Connection Tracker, yn tsjinstelling ta it brûken fan de Mangle-tabel.

Gebrûk [IP]->[Firewall]->[Mangle]
De ferbining begjint mei in ynkommend pakket, dus wy markearje it (action=mark-connection), foar útgeande pakketten fan in markearre ferbining, set it rûtelabel (action=mark-routing).
Basis fan statyske routing yn 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

As ferskate ips binne konfigurearre op ien ynterface, kinne jo tafoegje oan de betingst dst-address om der wis fan te wêzen.

  • In pakket iepenet de ferbining op 'e ether2-ynterface. It pakket giet yn [INPUT|Mangle] dy't seit om alle pakketten fan 'e ferbining te markearjen as fan isp2
  • It systeem genereart in antwurdpakket mei Src. Adres: 10.20.20.200
  • By de Routing Decision (2) faze, it pakket, yn oerienstimming mei de Routing tabel, wurdt stjoerd nei de poarte 10.20.20.1 fia de ether1 ynterface. Jo kinne dit ferifiearje troch de pakketten yn te loggen [OUTPUT|Filter]
  • Op it poadium [OUTPUT|Mangle] ferbining label wurdt kontrolearre fan isp2 en it pakket krijt in rûtelabel oer isp2
  • De Routing Oanpassing (3) stap kontrolearret op de oanwêzigens fan in routing label en stjoert it nei de passende routing tabel
  • Neffens de routingtabel moat it pakket stjoerd wurde nei de gateway 10.20.20.1 fia de ether2-ynterface

Basis fan statyske routing yn Mikrotik RouterOS

MultiWAN en werom dst-nat ferkear

In mear komplisearre foarbyld is wat te dwaan as d'r in tsjinner (bygelyks web) efter de router is op in privee subnet en jo moatte der tagong ta fia ien fan 'e 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 essinsje fan it probleem sil itselde wêze, de oplossing is fergelykber mei de opsje Firewall Mangle, allinich oare keatlingen sille wurde brûkt:
Basis fan statyske routing yn 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

Basis fan statyske routing yn Mikrotik RouterOS
It diagram docht net sjen NAT, mar ik tink dat alles is dúdlik.

MultiWAN en útgeande ferbinings

Jo kinne de PBR-mooglikheden brûke om meardere vpn (SSTP yn it foarbyld) ferbiningen te meitsjen fan ferskate router-ynterfaces.

Basis fan statyske routing yn Mikrotik RouterOS

Oanfoljende routingtabellen:

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

/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

Ienfâldige NAT-regels, oars sil it pakket de ynterface ferlitte mei de ferkearde 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 makket trije SSTP prosessen
  • Op it poadium fan Routing Beslút (2) wurdt in rûte selektearre foar dizze prosessen basearre op 'e haadroutingtabel. Fan deselde rûte ûntfangt it pakket Src. Adres bûn oan ether1 ynterface
  • В [Output|Mangle] pakketten fan ferskate ferbinings krije ferskillende labels
  • Pakketten ynfiere de tabellen dy't oerienkomme mei de labels yn 'e Routing Adjustment-faze en krije in nije rûte foar it ferstjoeren fan pakketten
  • Mar pakketten hawwe noch Src. Adres fan ether1, op it poadium [Nat|Srcnat] it adres wurdt ferfongen neffens de ynterface

Opfallend is dat jo op 'e router de folgjende ferbiningstabel sille sjen:
Basis fan statyske routing yn Mikrotik RouterOS

Connection Tracker wurket earder [Mangle] и [Srcnat], dus alle ferbiningen komme fan itselde adres, as jo yn mear detail sjogge, dan yn Replay Dst. Address d'r sille adressen wêze nei NAT:
Basis fan statyske routing yn Mikrotik RouterOS

Op 'e VPN-tsjinner (ik haw ien op' e testbank), kinne jo sjen dat alle ferbiningen fan 'e juste adressen komme:
Basis fan statyske routing yn Mikrotik RouterOS

Wachtsje in manier
D'r is in maklikere manier, jo kinne gewoan in spesifike poarte opjaan foar elk fan 'e 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

Mar sokke rûtes sille net allinich útgean, mar ek transitferkear beynfloedzje. Plus, as jo gjin ferkear nei de vpn-tsjinner nedich binne om troch ûngeskikte kommunikaasjekanalen te gean, dan moatte jo noch 6 regels tafoegje oan [IP]->[Routes]с type=blackhole. Yn 'e foarige ferzje - 3 regels yn [IP]->[Route]->[Rules].

Ferdieling fan brûkersferbiningen troch kommunikaasjekanalen

Ienfâldige, deistige taken. Nochris sille ekstra routingtabellen nedich wêze:

/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

Mei help fan [IP]->[Route]->[Rules]
Basis fan statyske routing yn 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

As gebrûk action=lookup, dan as ien fan 'e kanalen is útskeakele, sil it ferkear nei de haadtafel gean en troch it wurkkanaal gean. Of dit nedich is of net hinget ôf fan de taak.

Mei help fan de markearring yn [IP]->[Firewall]->[Mangle]
In ienfâldich foarbyld mei listen fan ip-adressen. Yn prinsipe kinne hast alle betingsten brûkt wurde. De ienige warskôging fan layer7, sels as se binne keppele mei ferbiningsetiketten, kin it lykje dat alles goed wurket, mar guon fan it ferkear sil noch de ferkearde kant gean.
Basis fan statyske routing yn 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

Jo kinne brûkers "beskoattelje" yn ien routingtabel troch [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

Of troch [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 pro dst-address-type=!local
Oanfoljende betingst dst-address-type=!local it is needsaaklik dat ferkear fan brûkers de lokale prosessen fan 'e router berikke (dns, winbox, ssh, ...). As ferskate lokale subnetten ferbûn binne mei de router, is it needsaaklik om te soargjen dat it ferkear tusken har net nei it ynternet giet, bygelyks mei dst-address-table.

Yn it foarbyld brûke [IP]->[Route]->[Rules] der binne gjin sokke útsûnderingen, mar ferkear berikt lokale prosessen. It feit is dat it ynkommen fan it FIB-pakket markearre is [PREROUTING|Mangle] hat in rûte label en giet yn in routing tafel oars as main, dêr't der gjin lokale ynterface. Yn it gefal fan Routing Rules wurdt earst kontrolearre oft it pakket bedoeld is foar in lokaal proses en pas yn it User PBR-stadium giet it nei de oantsjutte routing-tabel.

Mei help fan [IP]->[Firewall]->[Mangle action=route]
Dizze aksje wurket allinich yn [Prerouting|Mangle] en kinne jo ferkear rjochtsje nei de opjûne gateway sûnder ekstra routingtabellen te brûken, troch it gatewayadres direkt op te jaan:

/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

effekt route hat in legere prioriteit dan routingregels ([IP]->[Route]->[Rules]). Yn it gefal fan rûte merken, alles hinget ôf fan de posysje fan de regels, as de regel mei action=route mear wurdich as action=mark-route, dan sil it brûkt wurde (nettsjinsteande de flagge passtrough), oars de rûte markearje.
D'r is heul min ynformaasje op 'e wiki oer dizze aksje en alle konklúzjes wurde eksperiminteel krigen, yn alle gefallen haw ik gjin opsjes fûn by it brûken fan dizze opsje jout foardielen boppe oaren.

PPC basearre dynamyske balâns

Per Connection Classifier - is in fleksibeler analoog fan ECMP. Oars as ECMP, ferdielt it ferkear troch ferbiningen strikter (ECMP wit neat oer ferbinings, mar as se wurde keppele mei Routing Cache, wurdt wat ferlykber krigen).

PCC nimt ta oantsjutte fjilden út de ip koptekst, konvertearret se nei in 32-bit wearde, en dielt troch neamer. De rest fan 'e divyzje wurdt fergelike mei de spesifisearre rest en as se oerienkomme, dan wurdt de oantsjutte aksje tapast. Mear. Klinkt gek, mar it wurket.
Basis fan statyske routing yn Mikrotik RouterOS

Foarbyld mei trije 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

In foarbyld fan dynamyske ferdieling fan ferkear troch src.address tusken trije kanalen:
Basis fan statyske routing yn 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

By it markearjen fan rûtes is der in ekstra betingst: in-interface=br-lan, sûnder it ûnder action=mark-routing antwurdferkear fan it ynternet sil krije en, yn oerienstimming mei de routingtabellen, sil weromgean nei de provider.

Switching kommunikaasje kanalen

Check ping is in goed ark, mar it kontrolearret allinnich de ferbining mei de tichtstbye IP-peer, provider netwurken besteane meastentiids út in grut oantal routers en in ferbining brek kin foarkomme bûten de tichtstbye peer, en dan binne der backbone telecom operators dy't meie ek hawwe problemen, yn it algemien check ping net altyd sjen up-to-date ynformaasje oer tagong ta de globale netwurk.
As providers en grutte bedriuwen it BGP dynamysk routingprotokol hawwe, dan moatte thús- en kantoarbrûkers selsstannich útfine hoe't jo ynternettagong kinne kontrolearje fia in spesifyk kommunikaasjekanaal.

Typysk wurde skripts brûkt dy't fia in bepaald kommunikaasjekanaal de beskikberens fan in ip-adres op it ynternet kontrolearje, wylst se wat betrouber kieze, bygelyks google dns: 8.8.8.8. 8.8.4.4. Mar yn de Mikrotik-mienskip is dêr in nijsgjirriger ark foar oanpast.

In pear wurden oer rekursive routing
Rekursive routing is nedich by it bouwen fan Multihop BGP-peering en kaam yn it artikel oer de basis fan statyske routing allinich troch slûchslimme MikroTik-brûkers dy't útfûnen hoe't se rekursive rûtes kinne brûke, keppele mei kontrôlepoarte om kommunikaasjekanalen te wikseljen sûnder ekstra skripts.

It is tiid om de opsjes foar omfang / doelbereik yn algemiene termen te begripen en hoe't de rûte is bûn oan de ynterface:
Basis fan statyske routing yn Mikrotik RouterOS

  1. De rûte siket in ynterface op om it pakket te stjoeren op basis fan syn omfangwearde en alle yngongen yn 'e haadtabel mei minder as of lykweardige doelbereikwearden
  2. Fan 'e fûne ynterfaces is dejinge dy't jo in pakket kinne stjoere nei de opjûne poarte selektearre
  3. De ynterface fan 'e fûn ferbûne yngong is selektearre om it pakket nei de poarte te stjoeren

Yn 'e oanwêzigens fan in rekursive rûte bart alles itselde, mar yn twa stadia:
Basis fan statyske routing yn Mikrotik RouterOS

  • 1-3 Noch ien rûte wurdt tafoege oan de ferbûne rûtes, wêrmei de opjûne poarte berikt wurde kin
  • 4-6 It finen fan de rûte ferbûn rûte foar de "tusken" poarte

Alle manipulaasjes mei it rekursive sykjen komme yn 'e RIB, en allinich it einresultaat wurdt oerbrocht nei de FIB: 0.0.0.0/0 via 10.10.10.1 on ether1.

Foarbyld fan it brûken fan rekursive routing om rûtes te wikseljen
Basis fan statyske routing yn Mikrotik RouterOS

Konfiguraasje:
Basis fan statyske routing yn 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

Jo kinne kontrolearje dat pakketten stjoerd wurde nei 10.10.10.1:
Basis fan statyske routing yn Mikrotik RouterOS

Kontrolearje gateway wit neat oer rekursive routing en stjoert gewoan pings nei 8.8.8.8, dy't (basearre op 'e haadtabel) tagonklik is fia gateway 10.10.10.1.

As der in ferlies fan kommunikaasje is tusken 10.10.10.1 en 8.8.8.8, dan wurdt de rûte loskeppele, mar pakketten (ynklusyf testpings) nei 8.8.8.8 trochgean troch 10.10.10.1:
Basis fan statyske routing yn Mikrotik RouterOS

As de keppeling nei ether1 ferlern is, dan komt in ûnnoflike situaasje foar as pakketten foar 8.8.8.8 troch de twadde provider gean:
Basis fan statyske routing yn Mikrotik RouterOS

Dit is in probleem as jo NetWatch brûke om skripts út te fieren as 8.8.8.8 net beskikber is. As de keppeling is brutsen, sil NetWatch gewoan troch it backupkommunikaasjekanaal wurkje en oannimme dat alles goed is. Oplost troch it tafoegjen fan in ekstra filterrûte:

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

Basis fan statyske routing yn Mikrotik RouterOS

Der is op habré artikel, wêr't de situaasje mei NetWatch yn mear detail beskôge wurdt.

En ja, by it brûken fan sa'n reservearring sil it adres 8.8.8.8 hurdkodearre wurde oan ien fan 'e providers, dus kieze it as in dns-boarne is gjin goed idee.

In pear wurden oer Virtual Routing and Forwarding (VRF)

VRF-technology is ûntworpen om ferskate firtuele routers te meitsjen binnen ien fysike, dizze technology wurdt in protte brûkt troch telekomoperators (meastentiids yn gearhing mei MPLS) om L3VPN-tsjinsten te leverjen oan kliïnten mei oerlappende subnetadressen:
Basis fan statyske routing yn Mikrotik RouterOS

Mar VRF yn Mikrotik is organisearre op basis fan routing tabellen en hat in oantal neidielen, bygelyks, lokale ip adressen fan de router binne beskikber fan alle VRFs, kinne jo lêze mear link.

vrf konfiguraasje foarbyld:
Basis fan statyske routing yn 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

Fan it apparaat ferbûn mei ether2 sjogge wy dat ping nei it routeradres giet fan in oare vrf (en dit is in probleem), wylst ping net nei it ynternet giet:
Basis fan statyske routing yn Mikrotik RouterOS

Om tagong te krijen ta it ynternet, moatte jo in ekstra rûte registrearje dy't tagong hat ta de haadtabel (yn vrf-terminology wurdt dit rûte leaking neamd):
Basis fan statyske routing yn 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

Hjir binne twa manieren om rûte te lekken: mei help fan de rûtetabel: 172.17.0.1@main en it brûken fan ynterface namme: 172.17.0.1%wlan1.

En set markearring op foar weromferkear yn [PREROUTING|Mangle]:
Basis fan statyske routing yn 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 

Basis fan statyske routing yn Mikrotik RouterOS

Subnets mei itselde adres
Organisaasje fan tagong ta subnetten mei deselde adressering op deselde router mei VRF en netmap:
Basis fan statyske routing yn Mikrotik RouterOS

Basis konfiguraasje:

/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

Routingregels foar weromferkear:

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

It tafoegjen fan rûtes ûntfongen fia dhcp oan in opjûne rûtetabel
VRF kin ynteressant wêze as jo automatysk in dynamyske rûte (bygelyks fan in dhcp-kliïnt) taheakje moatte oan in spesifike routingtabel.

Ynterface tafoegje oan vrf:

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

Regels foar it ferstjoeren fan ferkear (útgeande en transit) troch de tabel oer 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

Oanfoljende, falske rûte foar útgeande rûte nei it wurk:

/interface bridge
add name=bare

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

Dizze rûte is allinnich nedich sadat lokale útgeande pakketten kinne passe troch de Routing beslút (2) foar [OUTPUT|Mangle] en krije de routing label, as der oare aktive rûtes op de router foar 0.0.0.0/0 yn de wichtichste tabel, it is net nedich.
Basis fan statyske routing yn Mikrotik RouterOS

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

Rûtefiltering (ynkommende en útgeande) is in ark dat normaal brûkt wurdt yn kombinaasje mei dynamyske rûteprotokollen (en dus allinich beskikber nei it ynstallearjen fan it pakket Routing), mar d'r binne twa ynteressante keatlingen yn 'e ynkommende filters:

  • ferbûn-yn - filterjen ferbûne rûtes
  • dynamic-in - filterjen fan dynamyske rûtes ûntfongen troch PPP en DCHP

Filtering lit jo net allinich rûtes wegerje, mar ek in oantal opsjes feroarje: ôfstân, routing-mark, kommentaar, omfang, doelbereik, ...

Dit is in heul presys ark en as jo wat kinne dwaan sûnder routingfilters (mar net skripts), brûk dan gjin routingfilters, betize josels net en dyjingen dy't de router nei jo sille konfigurearje. Yn 'e kontekst fan dynamyske routing sille routingfilters folle faker en produktiver wurde brûkt.

It rûtemerk ynstelle foar dynamyske rûtes
In foarbyld fan in thús router. Ik haw twa VPN-ferbiningen konfigureare en it ferkear dêryn moat wurde ferpakt yn oerienstimming mei de routingtabellen. Tagelyk wol ik dat de rûtes automatysk wurde oanmakke as de ynterface is aktivearre:

#При создании 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 wit net wêrom, wierskynlik in brek, mar as jo in vrf meitsje foar de ppp-ynterface, dan sil de rûte nei 0.0.0.0/0 noch yn 'e haadtabel komme. Oars soe alles noch makliker wurde.

Ferbine rûtes útskeakelje
Soms is dit nedich:

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

Debuggen ark

RouterOS biedt in oantal ark foar it debuggen fan routing:

  • [Tool]->[Tourch] - lit jo pakketten besjen op ynterfaces
  • /ip route check - lit jo sjen nei hokker gateway it pakket sil stjoerd wurde, wurket net mei routingtabellen
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - ping en trace mei de oantsjutte routingtabel
  • action=log в [IP]->[Firewall] - in poerbêst ark wêrmei jo it paad fan in pakket kinne trace lâns de pakketstream, dizze aksje is beskikber yn alle keatlingen en tabellen

Boarne: www.habr.com

Add a comment