Basiese beginsels van statiese roetering in Mikrotik RouterOS

Roetering is die proses om die beste pad te vind vir die oordrag van pakkies oor TCP/IP-netwerke. Enige toestel wat aan 'n IPv4-netwerk gekoppel is, bevat 'n proses en roeteertabelle.

Hierdie artikel is nie 'n HOWTO nie, dit beskryf statiese roetering in RouterOS met voorbeelde, ek het doelbewus die res van die instellings weggelaat (byvoorbeeld, srcnat vir toegang tot die internet), dus om die materiaal te verstaan, vereis 'n sekere vlak van kennis van netwerke en RouterOS.

Skakeling en roetering

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Omskakeling is die proses om pakkies binne een Layer2-segment uit te ruil (Ethernet, ppp, ...). As die toestel sien dat die ontvanger van die pakkie op dieselfde Ethernet-subnet daarmee is, leer dit die mac-adres met behulp van die arp-protokol en stuur die pakkie direk deur die router te omseil. 'n Ppp (punt-tot-punt) verbinding kan slegs twee deelnemers hê en die pakkie word altyd na een adres 0xff gestuur.

Roetering is die proses om pakkies tussen Layer2-segmente oor te dra. As 'n toestel 'n pakkie wil stuur wie se ontvanger buite die Ethernet-segment is, kyk dit in sy roeteringtabel en gee die pakkie deur na die poort, wat weet waarheen om die pakkie volgende te stuur (of dalk nie weet nie, die oorspronklike sender van die pakkie nie hiervan bewus is nie).

Die maklikste manier om aan 'n roeteerder te dink, is as 'n toestel wat aan twee of meer Layer2-segmente gekoppel is en in staat is om pakkies tussen hulle deur te gee deur die beste roete vanaf die roetetabel te bepaal.

As jy alles verstaan, of jy het dit reeds geweet, lees dan verder. Vir die res beveel ek sterk aan dat jy jouself vergewis van 'n klein, maar baie ruim artikel.

Roetering in RouterOS en PacketFlow

Byna al die funksionaliteit wat verband hou met statiese roetering is in die pakket stelsel. Plastiese sak routing voeg ondersteuning by vir dinamiese roeteringsalgoritmes (RIP, OSPF, BGP, MME), roetefilters en BFD.

Hoofkieslys vir die opstel van roetering: [IP]->[Route]. Komplekse skemas kan vereis dat pakkies vooraf geëtiketteer moet word met 'n roetemerk in: [IP]->[Firewall]->[Mangle] (kettings PREROUTING и OUTPUT).

Daar is drie plekke op PacketFlow waar besluite oor IP-pakkieroetering geneem word:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  1. Roeteringspakkette wat deur die router ontvang is. Op hierdie stadium word besluit of die pakkie na die plaaslike proses gaan of verder na die netwerk gestuur sal word. Transitpakkette ontvang Uitset Interface
  2. Stuur plaaslike uitgaande pakkies. Uitgaande pakkies ontvang Uitset Interface
  3. Bykomende roeteerstap vir uitgaande pakkies, laat jou toe om die roetebesluit in te verander [Output|Mangle]

  • Die pakkiepad in blokke 1, 2 hang af van die reëls in [IP]->[Route]
  • Die pakkiepad in punte 1, 2 en 3 hang af van die reëls in [IP]->[Route]->[Rules]
  • Die pakketpad in blokke 1, 3 kan beïnvloed word deur gebruik te maak van [IP]->[Firewall]->[Mangle]

RIB, FIB, Routing Cache

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Roeteringsinligtingbasis
Die basis waarin roetes ingesamel word vanaf dinamiese roeteringsprotokolle, roetes vanaf ppp en dhcp, statiese en gekoppelde roetes. Hierdie databasis bevat alle roetes, behalwe dié wat deur die administrateur gefiltreer is.

Voorwaardelik, ons kan dit aanneem [IP]->[Route] vertoon RIB.

Aanstuurinligtingsbasis
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Die basis waarin die beste roetes van RIB ingesamel word. Alle roetes in die FIB is aktief en word gebruik om pakkies aan te stuur. As die roete onaktief raak (gedeaktiveer deur die administrateur (stelsel), of die koppelvlak waardeur die pakkie gestuur moet word nie aktief is nie), word die roete van die FIB verwyder.

Om 'n roetebesluit te neem, gebruik die FIB-tabel die volgende inligting oor 'n IP-pakkie:

  • Bronadres
  • Bestemmingsadres
  • bron koppelvlak
  • Routing merk
  • ToS (DSCP)

Om in die FIB-pakket te kom, gaan deur die volgende stadiums:

  • Is die pakket bedoel vir 'n plaaslike router-proses?
  • Is die pakkie onderhewig aan stelsel- of gebruiker-PBR-reëls?
    • Indien wel, dan word die pakkie na die gespesifiseerde roetetabel gestuur
  • Die pakkie word na die hooftabel gestuur

Voorwaardelik, ons kan dit aanneem [IP]->[Route Active=yes] vertoon FIB.

Routing Cache
Roete-kasmeganisme. Die router onthou waarheen die pakkies gestuur is en as daar soortgelykes is (vermoedelik van dieselfde verbinding) laat dit hulle langs dieselfde roete gaan, sonder om die FIB in te check. Die roetekas word periodiek skoongemaak.

Vir RouterOS-administrateurs het hulle nie gereedskap gemaak om die Routing Cache te bekyk en te bestuur nie, maar wanneer dit gedeaktiveer kan word in [IP]->[Settings].

Hierdie meganisme is van die Linux 3.6 kern verwyder, maar RouterOS gebruik steeds kern 3.3.5, miskien is Routing cahce een van die redes.

Voeg roetedialoog by

[IP]->[Route]->[+]
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  1. Subnet waarvoor jy 'n roete wil skep (verstek: 0.0.0.0/0)
  2. Gateway IP of koppelvlak waarheen die pakkie gestuur sal word (daar kan verskeie wees, sien ECMP hieronder)
  3. Gateway Beskikbaarheid Check
  4. Rekord tipe
  5. Afstand (metries) vir 'n roete
  6. Roetingstabel
  7. IP vir plaaslike uitgaande pakkies via hierdie roete
  8. Die doel van Omvang en Teikenbestek word aan die einde van die artikel geskryf.

Roete vlae
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  • X - Die roete is gedeaktiveer deur die administrateur (disabled=yes)
  • A - Die roete word gebruik om pakkies te stuur
  • D - Roete dinamies bygevoeg (BGP, OSPF, RIP, MME, PPP, DHCP, gekoppel)
  • C - Die subnet is direk aan die router gekoppel
  • S - Statiese Roete
  • r,b,o,m - Roete bygevoeg deur een van die dinamiese roeteringsprotokolle
  • B,U,P - Filterroete (laat pakkies weg in plaas van om te stuur)

Wat om te spesifiseer in gateway: ip-adres of koppelvlak?

Die stelsel laat jou toe om albei te spesifiseer, terwyl dit nie vloek nie en nie wenke gee as jy iets verkeerd gedoen het nie.

IP-adres
Die poortadres moet toeganklik wees oor Layer2. Vir Ethernet beteken dit dat die router 'n adres van dieselfde subnet op een van die aktiewe ip-koppelvlakke moet hê, vir ppp, dat die poortadres op een van die aktiewe koppelvlakke as die subnetadres gespesifiseer word.
As die toeganklikheidsvoorwaarde vir Laag2 nie nagekom word nie, word die roete as onaktief beskou en val dit nie in die FIB nie.

koppelvlak
Alles is meer ingewikkeld en die gedrag van die router hang af van die tipe koppelvlak:

  • PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) konneksie neem slegs twee deelnemers aan en die pakkie sal altyd na die poort gestuur word vir transmissie, as die gateway bespeur dat die ontvanger homself is, dan sal dit die pakkie oordra na sy plaaslike proses.
    Basiese beginsels van statiese roetering in Mikrotik RouterOS
  • Ethernet aanvaar die teenwoordigheid van baie deelnemers en sal versoeke na die arp-koppelvlak stuur met die adres van die ontvanger van die pakkie, dit word verwag en redelik normale gedrag vir gekoppelde roetes.
    Maar wanneer jy probeer om die koppelvlak as 'n roete vir 'n afgeleë subnet te gebruik, sal jy die volgende situasie kry: die roete is aktief, ping na die poort gaan verby, maar bereik nie die ontvanger vanaf die gespesifiseerde subnet nie. As jy deur 'n snuffel na die koppelvlak kyk, sal jy arp-versoeke sien met adresse vanaf 'n afgeleë subnet.
    Basiese beginsels van statiese roetering in Mikrotik RouterOS

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Probeer om die ip-adres as die poort te spesifiseer waar moontlik. Die uitsondering is gekoppelde roetes (outomaties geskep) en PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*) koppelvlakke.

OpenVPN bevat nie 'n PPP-opskrif nie, maar u kan die OpenVPN-koppelvlaknaam gebruik om 'n roete te skep.

Meer spesifieke roete

Basiese roetereël. Die roete wat die kleiner subnet (met die grootste subnetmasker) beskryf, geniet voorrang in die pakkie se roetebesluit. Die posisie van die inskrywings in die roetetabel is nie relevant vir die keuse nie - die hoofreël is Meer spesifiek.

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Alle roetes vanaf die gespesifiseerde skema is aktief (geleë in FIB). wys na verskillende subnette en bots nie met mekaar nie.

As een van die poorte onbeskikbaar raak, sal die geassosieerde roete as onaktief beskou word (verwyder van die FIB) en pakkies sal vanaf die oorblywende roetes gesoek word.

Die roete met subnet 0.0.0.0/0 word soms spesiale betekenis gegee en word die "Verstekroete" of "Gateway of last resort" genoem. Eintlik is daar niks magies daarin nie en dit sluit eenvoudig alle moontlike IPv4-adresse in, maar hierdie name beskryf sy taak goed – dit dui die poort aan waarheen om pakkies aan te stuur waarvoor daar geen ander, meer akkurate roetes is nie.

Die maksimum moontlike subnetmasker vir IPv4 is /32, hierdie roete wys na 'n spesifieke gasheer en kan in die roeteringtabel gebruik word.

Om meer spesifieke roete te verstaan ​​is fundamenteel vir enige TCP/IP-toestel.

Afstand

Afstande (of metrieke) word benodig vir administratiewe filtering van roetes na 'n enkele subnet wat toeganklik is deur verskeie poorte. 'n Roete met 'n laer metrieke word as 'n prioriteit beskou en sal by die FIB ingesluit word. As 'n roete met 'n laer metrieke ophou om aktief te wees, sal dit vervang word deur 'n roete met 'n hoër metrieke in die FIB.
Basiese beginsels van statiese roetering in Mikrotik RouterOS

As daar verskeie roetes na dieselfde subnet met dieselfde metrieke is, sal die router slegs een van hulle by die FIB-tabel voeg, gelei deur sy interne logika.

Die maatstaf kan 'n waarde van 0 tot 255 neem:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  • 0 - Metriek vir gekoppelde roetes. Afstand 0 kan nie deur die administrateur gestel word nie
  • 1-254 - Metrieke beskikbaar vir die administrateur vir die opstel van roetes. Metrieke met 'n laer waarde het 'n hoër prioriteit
  • 255 - Metrieke beskikbaar vir die administrateur vir die opstel van roetes. Anders as 1-254, bly 'n roete met 'n metriek van 255 altyd onaktief en val nie in die FIB nie
  • spesifieke maatstawwe. Roetes afgelei van dinamiese roeteringsprotokolle het standaard metrieke waardes

kontroleer poort

Check gateway is 'n MikroTik RoutesOS-uitbreiding om die beskikbaarheid van die gateway via icmp of arp na te gaan. Een keer elke 10 sekondes (kan nie verander word nie), word 'n versoek na die poort gestuur, indien die antwoord nie twee keer ontvang word nie, word die roete as onbeskikbaar beskou en word dit van die FIB verwyder. As kontrolepoort gedeaktiveer is, gaan die kontroleroete voort en die roete sal weer aktief word na een suksesvolle kontrole.
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Check gateway deaktiveer die inskrywing waarin dit opgestel is en alle ander inskrywings (in alle roeteringstabelle en ecmp-roetes) met die gespesifiseerde poort.

Oor die algemeen werk die gateway goed solank daar geen probleme met pakkieverlies na die gateway is nie. Check gateway weet nie wat gebeur met kommunikasie buite die gekontroleerde gateway nie, dit vereis bykomende gereedskap: skrifte, rekursiewe roetering, dinamiese roeteringsprotokolle.

Die meeste VPN- en tonnelprotokolle bevat ingeboude nutsmiddels om verbindingsaktiwiteit na te gaan, wat 'n bykomende (maar baie klein) las op die netwerk en toestelwerkverrigting moontlik maak.

ECMP roetes

Equal-Cost Multi-Path - stuur pakkies aan die ontvanger deur verskeie poorte gelyktydig te gebruik deur die Round Robin-algoritme te gebruik.

'n ECMP-roete word deur die administrateur geskep deur verskeie poorte vir een subnet te spesifiseer (of outomaties, as daar twee ekwivalente OSPF-roetes is).
Basiese beginsels van statiese roetering in Mikrotik RouterOS

ECMP word gebruik vir lasbalansering tussen twee kanale, in teorie, as daar twee kanale in die ecmp-roete is, moet die uitgaande kanaal vir elke pakkie anders wees. Maar die Routing-kasmeganisme stuur pakkies vanaf die verbinding langs die roete wat die eerste pakkie geneem het, gevolglik kry ons 'n soort balansering gebaseer op verbindings (per-verbinding laaibalansering).

As jy Routing Cache deaktiveer, sal die pakkies in die ECMP-roete korrek gedeel word, maar daar is 'n probleem met NAT. Die NAT-reël verwerk slegs die eerste pakkie vanaf die verbinding (die res word outomaties verwerk), en dit blyk dat pakkies met dieselfde bronadres verskillende koppelvlakke verlaat.
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Kontroleer dat poort nie in ECMP-roetes werk nie (RouterOS-fout). Maar u kan hierdie beperking omseil deur bykomende bekragtigingsroetes te skep wat inskrywings in ECMP sal deaktiveer.

Filtrering deur middel van Routing

Die tipe opsie bepaal wat om met die pakket te doen:

  • unicast - stuur na die gespesifiseerde poort (koppelvlak)
  • swartgat - gooi 'n pakkie weg
  • verbied, onbereikbaar - gooi die pakkie weg en stuur 'n icmp-boodskap aan die sender

Filtering word gewoonlik gebruik wanneer dit nodig is om die stuur van pakkies langs die verkeerde pad te beveilig, natuurlik kan jy dit deur die firewall filter.

'n Paar voorbeelde

Om die basiese dinge oor roetering te konsolideer.

Tipiese tuisrouter
Basiese beginsels van statiese roetering in Mikrotik RouterOS

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

  1. Statiese roete na 0.0.0.0/0 (verstekroete)
  2. Gekoppelde roete op die koppelvlak met die verskaffer
  3. Gekoppelde roete op LAN-koppelvlak

Tipiese tuisrouter met PPPoE
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  1. Statiese roete na verstekroete, outomaties bygevoeg. dit word in verbindingseienskappe gespesifiseer
  2. Gekoppelde roete vir PPP-verbinding
  3. Gekoppelde roete op LAN-koppelvlak

Tipiese tuisroeteerder met twee verskaffers en oortolligheid
Basiese beginsels van statiese roetering 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. Statiese roete na verstekroete deur die eerste verskaffer met metrieke 1 en poortbeskikbaarheidkontrole
  2. Statiese roete na verstekroete deur tweede verskaffer met metrieke 2
  3. Gekoppelde roetes

Verkeer na 0.0.0.0/0 gaan deur 10.10.10.1 terwyl hierdie poort beskikbaar is, anders skakel dit oor na 10.20.20.1

So 'n skema kan as 'n kanaalbespreking beskou word, maar dit is nie sonder nadele nie. As 'n onderbreking buite die verskaffer se poort plaasvind (byvoorbeeld binne die operateur se netwerk), sal jou roeteerder nie daarvan weet nie en sal voortgaan om die roete as aktief te beskou.

Tipiese tuisroeteerder met twee verskaffers, oortolligheid en ECMP
Basiese beginsels van statiese roetering 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. Statiese roetes vir die nagaan van chack gateway
  2. ECMP roete
  3. Gekoppelde roetes

Roetes om na te gaan is blou (die kleur van onaktiewe roetes), maar dit meng nie in met die kontrolepoort nie. Die huidige weergawe (6.44) van RoS gee outomatiese prioriteit aan die ECMP-roete, maar dit is beter om toetsroetes by ander roeteringstabelle te voeg (opsie routing-mark)

Op Speedtest en ander soortgelyke werwe sal daar geen toename in spoed wees nie (ECMP verdeel verkeer deur verbindings, nie deur pakkies nie), maar p2p-toepassings moet vinniger aflaai.

Filtreer via roetering
Basiese beginsels van statiese roetering 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. Statiese roete na verstekroete
  2. Statiese roete na 192.168.200.0/24 oor ipip-tonnel
  3. Verbied statiese roete na 192.168.200.0/24 via ISP-roeteerder

'n Filteropsie waarin tonnelverkeer nie na die verskaffer se roeteerder sal gaan wanneer die ipip-koppelvlak gedeaktiveer is nie. Sulke skemas word selde vereis, want jy kan blokkering deur die firewall implementeer.

Routing lus
Routing lus - 'n situasie wanneer 'n pakkie tussen routers loop voordat die ttl verval. Gewoonlik is dit die gevolg van 'n konfigurasiefout, in groot netwerke word dit behandel deur die implementering van dinamiese roeteringsprotokolle, in klein - met sorg.

Dit lyk so iets:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

'n Voorbeeld (eenvoudigste) van hoe om 'n soortgelyke resultaat te kry:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Die Routing-lus-voorbeeld is van geen praktiese nut nie, maar dit wys dat routers geen idee het van hul buurman se roetetabel nie.

Beleidsbasis-roetering en bykomende roeteringtabelle

Wanneer 'n roete gekies word, gebruik die roeteerder slegs een veld vanaf die pakkiekop (Dst. Address) - dit is basiese roetering. Roetering gebaseer op ander voorwaardes, soos bronadres, tipe verkeer (ToS), balansering sonder ECMP, behoort aan Policy Base Routing (PBR) en gebruik bykomende roeteringstabelle.

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Meer spesifieke roete is die hoofroetekeusereël binne die roeteringtabel.

By verstek word alle roetereëls by die hooftabel gevoeg. Die administrateur kan 'n arbitrêre aantal bykomende roeteringstabelle skep en pakkies na hulle toe stuur. Reëls in verskillende tabelle bots nie met mekaar nie. As die pakket nie 'n geskikte reël in die gespesifiseerde tabel vind nie, sal dit na die hooftabel gaan.

Voorbeeld met verspreiding via Firewall:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  • 192.168.100.10 -> 8.8.8.8
    1. Verkeer vanaf 192.168.100.10 word geëtiketteer via-isp1 в [Prerouting|Mangle]
    2. By die Roetering stadium in die tabel via-isp1 soek 'n roete na 8.8.8.8
    3. Roete gevind, verkeer word na poort 10.10.10.1 gestuur
  • 192.168.200.20 -> 8.8.8.8
    1. Verkeer vanaf 192.168.200.20 word geëtiketteer via-isp2 в [Prerouting|Mangle]
    2. By die Roetering stadium in die tabel via-isp2 soek 'n roete na 8.8.8.8
    3. Roete gevind, verkeer word na poort 10.20.20.1 gestuur
  • As een van die poorte (10.10.10.1 of 10.20.20.1) onbeskikbaar raak, sal die pakkie na die tafel gaan hoof en sal 'n geskikte roete daarheen soek

Terminologie kwessies

RouterOS het sekere terminologiekwessies.
Wanneer daar met reëls in [IP]->[Routes] die roeteringtabel word aangedui, alhoewel daar geskryf is dat die etiket:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

В [IP]->[Routes]->[Rule] alles is korrek, in die etiket toestand in die tabel aksie:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Hoe om 'n pakkie na 'n spesifieke roeteringtabel te stuur

RouterOS bied verskeie gereedskap:

  • Reëls in [IP]->[Routes]->[Rules]
  • Roetemerkers (action=mark-routing) in [IP]->[Firewall]->[Mangle]
  • VRF

regulasies [IP]->[Route]->[Rules]
Reëls word opeenvolgend verwerk, as die pakkie aan die voorwaardes van die reël voldoen, gaan dit nie verder nie.

Roeteringsreëls laat jou toe om die moontlikhede van roetering uit te brei, en vertrou nie net op die ontvangeradres nie, maar ook op die bronadres en koppelvlak waarop die pakkie ontvang is.

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Reëls bestaan ​​uit voorwaardes en 'n aksie:

  • Voorwaardes. Herhaal prakties die lys tekens waarmee die pakket in die FIB nagegaan word, net ToS ontbreek.
  • Aktiwiteit
    • opsoek - stuur 'n pakkie na 'n tafel
    • soek slegs in tabel - sluit die pakket in die tabel, as die roete nie gevind word nie, sal die pakket nie na die hooftabel gaan nie
    • drop - drop 'n pakkie
    • onbereikbaar - gooi die pakkie met senderkennisgewing weg

In FIB word verkeer na plaaslike prosesse verwerk deur die reëls te omseil [IP]->[Route]->[Rules]:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

merk [IP]->[Firewall]->[Mangle]
Roeteringsetikette laat jou toe om die poort vir 'n pakkie te stel deur byna enige Firewall-toestande te gebruik:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Prakties, want nie almal maak sin nie, en sommige kan onstabiel werk.

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Daar is twee maniere om 'n pakket te etiketteer:

  • Onmiddellik sit roetemerk
  • Stel eerste verbinding-merk, dan gebaseer op verbinding-merk om te sit roetemerk

In 'n artikel oor firewalls het ek geskryf dat die tweede opsie verkieslik is. verminder die las op die cpu, in die geval van die merk van roetes - dit is nie heeltemal waar nie. Hierdie nasienmetodes is nie altyd ekwivalent nie en word gewoonlik gebruik om verskeie probleme op te los.

Gebruiksvoorbeelde

Kom ons gaan aan na die voorbeelde van die gebruik van Beleidsbasis-roetering, dit is baie makliker om te wys hoekom dit alles nodig is.

MultiWAN en terugkeer uitgaande (uitset) verkeer
'n Algemene probleem met 'n MultiWAN-konfigurasie: Mikrotik is slegs vanaf die internet beskikbaar deur 'n "aktiewe" verskaffer.
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Die roeteerder gee nie om na watter ip die versoek gekom het nie, wanneer 'n antwoord gegenereer word, sal dit 'n roete in die roetetabel soek waar die roete deur isp1 aktief is. Verder sal so 'n pakkie heel waarskynlik langs die pad na die ontvanger gefiltreer word.

Nog 'n interessante punt. As 'n "eenvoudige" bron-nat op die ether1-koppelvlak gekonfigureer is: /ip fi nat add out-interface=ether1 action=masquerade die pakket sal aanlyn gaan met src. adres=10.10.10.100, wat dinge nog erger maak.

Daar is verskeie maniere om die probleem op te los, maar enige van hulle sal bykomende roeteringstabelle vereis:
Basiese beginsels van statiese roetering 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

Gebruik [IP]->[Route]->[Rules]
Spesifiseer die roetetabel wat gebruik sal word vir pakkies met die gespesifiseerde Bron-IP.
Basiese beginsels van statiese roetering 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 gebruik action=lookup, maar vir plaaslike uitgaande verkeer, sluit hierdie opsie verbindings heeltemal uit van die verkeerde koppelvlak.

  • Die stelsel genereer 'n antwoordpakket met Src. Adres: 10.20.20.200
  • Die roetebesluit(2) stap kontroleer [IP]->[Routes]->[Rules] en die pakkie word na die roetetabel gestuur oor-isp2
  • Volgens die roeteringtabel moet die pakkie via die ether10.20.20.1-koppelvlak na die poort 2 gestuur word

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Hierdie metode vereis nie 'n werkende Connection Tracker nie, anders as om die Mangle-tabel te gebruik.

Gebruik [IP]->[Firewall]->[Mangle]
Die verbinding begin met 'n inkomende pakkie, so ons merk dit (action=mark-connection), vir uitgaande pakkies vanaf 'n gemerkte verbinding, stel die roeteetiket (action=mark-routing).
Basiese beginsels van statiese roetering 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

As verskeie ips op een koppelvlak gekonfigureer is, kan jy by die toestand voeg dst-address om seker te wees.

  • 'n Pakkie maak die verbinding op die ether2-koppelvlak oop. Die pakkie gaan in [INPUT|Mangle] wat sê om alle pakkies vanaf die verbinding te merk as van-isp2
  • Die stelsel genereer 'n antwoordpakket met Src. Adres: 10.20.20.200
  • By die roetebesluit(2)-stadium word die pakkie, in ooreenstemming met die roeteringtabel, na die poort 10.20.20.1 gestuur via die ether1-koppelvlak. U kan dit verifieer deur die pakkette aan te meld [OUTPUT|Filter]
  • Op die stadium [OUTPUT|Mangle] verbindingetiket is nagegaan van-isp2 en die pakkie ontvang 'n roete-etiket oor-isp2
  • Die Routing Adjustment(3)-stap kontroleer vir die teenwoordigheid van 'n roeteetiket en stuur dit na die toepaslike roeteringtabel
  • Volgens die roeteringtabel moet die pakkie via die ether10.20.20.1-koppelvlak na die poort 2 gestuur word

Basiese beginsels van statiese roetering in Mikrotik RouterOS

MultiWAN en terugkeer dst-nat verkeer

'n Voorbeeld is meer ingewikkeld, wat om te doen as daar 'n bediener (byvoorbeeld web) agter die router op 'n private subnet is en jy toegang daartoe moet verskaf deur enige van die verskaffers.

/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

Die kern van die probleem sal dieselfde wees, die oplossing is soortgelyk aan die Firewall Mangle-opsie, slegs ander kettings sal gebruik word:
Basiese beginsels van statiese roetering 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

Basiese beginsels van statiese roetering in Mikrotik RouterOS
Die diagram wys nie NAT nie, maar ek dink alles is duidelik.

MultiWAN en uitgaande verbindings

U kan die PBR-vermoëns gebruik om verskeie vpn-verbindings (SSTP in die voorbeeld) vanaf verskillende router-koppelvlakke te skep.

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Bykomende roetetabelle:

/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

Pakketmerke:

/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-reëls, anders sal die pakkie die koppelvlak met die verkeerde Src verlaat. 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

Ontleding:

  • Router skep drie SSTP-prosesse
  • By die roetebesluit (2) stadium word 'n roete gekies vir hierdie prosesse gebaseer op die hoof roetering tabel. Vanaf dieselfde roete ontvang die pakkie Src. Adres gebind aan ether1-koppelvlak
  • В [Output|Mangle] pakkies van verskillende verbindings ontvang verskillende etikette
  • Pakkies voer die tabelle in wat ooreenstem met die etikette by die Roetering-aanpassingstadium en ontvang 'n nuwe roete vir die stuur van pakkies
  • Maar pakkette het steeds Src. Toespraak van ether1, op die verhoog [Nat|Srcnat] die adres word vervang volgens die koppelvlak

Interessant genoeg, op die router sal jy die volgende verbindingstabel sien:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Connection Tracker werk vroeër uit [Mangle] и [Srcnat], dus kom alle verbindings van dieselfde adres af, as jy in meer detail kyk, dan in Replay Dst. Address daar sal adresse na NAT wees:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Op die VPN-bediener (ek het een op die toetsbank), kan jy sien dat alle verbindings van die korrekte adresse af kom:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Hou die pad vas
Daar is 'n makliker manier, jy kan eenvoudig 'n spesifieke poort vir elk van die adresse spesifiseer:

/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 sulke roetes sal nie net uitgaande, maar ook transito-verkeer beïnvloed. Boonop, as u nie verkeer na die vpn-bediener benodig om deur onvanpaste kommunikasiekanale te gaan nie, moet u nog 6 reëls byvoeg. [IP]->[Routes]с type=blackhole. In die vorige weergawe - 3 reëls in [IP]->[Route]->[Rules].

Verspreiding van gebruikersverbindings deur kommunikasiekanale

Eenvoudige, alledaagse take. Weereens, addisionele roetetabelle sal nodig wees:

/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

Die gebruik van [IP]->[Route]->[Rules]
Basiese beginsels van statiese roetering 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

As u gebruik action=lookup, dan wanneer een van die kanale gedeaktiveer is, sal die verkeer na die hooftabel gaan en deur die werkkanaal gaan. Of dit nodig is of nie, hang af van die taak.

Gebruik die merke in [IP]->[Firewall]->[Mangle]
'n Eenvoudige voorbeeld met lyste van IP-adresse. In beginsel kan byna enige toestande gebruik word. Die enigste waarskuwing van laag7, selfs wanneer dit met verbindingsetikette gepaard gaan, kan dit lyk asof alles reg werk, maar sommige van die verkeer sal steeds die verkeerde kant toe gaan.
Basiese beginsels van statiese roetering 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 kan gebruikers in een roetetabel deur “sluit”. [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 deur [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
Bykomende toestand dst-address-type=!local dit is nodig dat verkeer van gebruikers die plaaslike prosesse van die router bereik (dns, winbox, ssh, ...). As verskeie plaaslike subnette aan die roeteerder gekoppel is, is dit nodig om te verseker dat die verkeer tussen hulle nie na die internet gaan nie, bv. dst-address-table.

In die voorbeeld gebruik [IP]->[Route]->[Rules] daar is nie sulke uitsonderings nie, maar verkeer bereik plaaslike prosesse. Die feit is dat om by die FIB-pakket ingeteken te word [PREROUTING|Mangle] het 'n roete-etiket en gaan in 'n ander roetetabel as hoof, waar daar geen plaaslike koppelvlak is nie. In die geval van roetereëls, word eers gekontroleer of die pakkie vir 'n plaaslike proses bedoel is en eers in die Gebruikers-PBR-stadium gaan dit na die gespesifiseerde roetetabel.

Die gebruik van [IP]->[Firewall]->[Mangle action=route]
Hierdie aksie werk net in [Prerouting|Mangle] en laat jou toe om verkeer na die gespesifiseerde poort te lei sonder om bykomende roeteringstabelle te gebruik, deur die poortadres direk te spesifiseer:

/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

effek route het 'n laer prioriteit as roetereëls ([IP]->[Route]->[Rules]). In die geval van roetemerke hang alles af van die posisie van die reëls, as die reël met action=route meer werd as action=mark-route, dan sal dit gebruik word (ongeag die vlag passtrough), anders merk die roete.
Daar is baie min inligting op die wiki oor hierdie aksie en alle gevolgtrekkings word eksperimenteel verkry, in elk geval, ek het nie opsies gevind wanneer die gebruik van hierdie opsie voordele bo ander gee nie.

PPC-gebaseerde dinamiese balansering

Per Connection Classifier - is 'n meer buigsame analoog van ECMP. Anders as ECMP, verdeel dit verkeer strenger deur verbindings (ECMP weet niks van verbindings nie, maar wanneer dit met Routing Cache gepaar word, word iets soortgelyks verkry).

PCC neem gespesifiseerde velde vanaf die ip-kopskrif, skakel hulle om na 'n 32-bis waarde, en deel deur noemer. Die res van die afdeling word vergelyk met die gespesifiseerde res en as hulle ooreenstem, dan word die gespesifiseerde aksie toegepas. meer. Klink mal, maar dit werk.
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Voorbeeld met drie adresse:

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

'n Voorbeeld van dinamiese verspreiding van verkeer deur src.address tussen drie kanale:
Basiese beginsels van statiese roetering 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

Wanneer roetes gemerk word, is daar 'n bykomende voorwaarde: in-interface=br-lan, sonder dit onder action=mark-routing reaksieverkeer vanaf die internet sal kry en, in ooreenstemming met die roetetabelle, sal teruggaan na die verskaffer.

Skakel kommunikasiekanale

Check ping is 'n goeie hulpmiddel, maar dit kontroleer net die verbinding met die naaste IP eweknie, verskaffer netwerke bestaan ​​gewoonlik uit 'n groot aantal routers en 'n verbindingsbreuk kan buite die naaste eweknie plaasvind, en dan is daar ruggraat telekommunikasie operateurs wat ook probleme het, oor die algemeen wys ping nie altyd bygewerkte inligting oor toegang tot die globale netwerk nie.
As verskaffers en groot korporasies die BGP-dinamiese roeteringprotokol het, moet tuis- en kantoorgebruikers onafhanklik uitvind hoe om internettoegang deur 'n spesifieke kommunikasiekanaal na te gaan.

Tipies word skrifte gebruik wat deur 'n sekere kommunikasiekanaal die beskikbaarheid van 'n ip-adres op die internet nagaan, terwyl iets betroubaars gekies word, byvoorbeeld google dns: 8.8.8.8. 8.8.4.4. Maar in die Mikrotik-gemeenskap is 'n interessanter hulpmiddel hiervoor aangepas.

'n Paar woorde oor rekursiewe roetering
Rekursiewe roetering is nodig wanneer Multihop BGP-peering gebou word en het slegs in die artikel oor die basiese beginsels van statiese roetering gekom as gevolg van slinkse MikroTik-gebruikers wat uitgevind het hoe om rekursiewe roetes te gebruik, gepaard met kontrole-poort om kommunikasiekanale te wissel sonder bykomende skrifte.

Dit is tyd om die omvang-/teikenomvangopsies in algemene terme te verstaan ​​en hoe die roete aan die koppelvlak gebind is:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  1. Die roete soek 'n koppelvlak om die pakkie te stuur op grond van sy omvangwaarde en alle inskrywings in die hooftabel met minder as of gelyke teikenomvangwaardes
  2. Uit die gevind koppelvlakke word die een gekies waardeur u 'n pakkie na die gespesifiseerde poort kan stuur
  3. Die koppelvlak van die gevind gekoppelde inskrywing word gekies om die pakkie na die poort te stuur

In die teenwoordigheid van 'n rekursiewe roete, gebeur alles dieselfde, maar in twee fases:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

  • 1-3 Nog 'n roete word by die gekoppelde roetes gevoeg, waardeur die gespesifiseerde poort bereik kan word
  • 4-6 Vind die roete gekoppelde roete vir die "tussendeur" poort

Alle manipulasies met die rekursiewe soektog vind plaas in die RIB, en slegs die finale resultaat word na die FIB oorgedra: 0.0.0.0/0 via 10.10.10.1 on ether1.

'n Voorbeeld van die gebruik van rekursiewe roetering om roetes te wissel
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Opstelling:
Basiese beginsels van statiese roetering 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

Jy kan seker maak dat pakkies na 10.10.10.1 gestuur sal word:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Check gateway weet niks van rekursiewe roetering nie en stuur eenvoudig pings na 8.8.8.8, wat (gebaseer op die hooftabel) toeganklik is deur gateway 10.10.10.1.

As daar 'n verlies aan kommunikasie tussen 10.10.10.1 en 8.8.8.8 is, word die roete ontkoppel, maar pakkies (insluitend toetspinge) na 8.8.8.8 gaan voort deur 10.10.10.1:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

As die skakel na ether1 verlore gaan, dan vind 'n onaangename situasie plaas wanneer pakkies voor 8.8.8.8 deur die tweede verskaffer gaan:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Dit is 'n probleem as jy NetWatch gebruik om skrifte uit te voer wanneer 8.8.8.8 nie beskikbaar is nie. As die skakel verbreek is, sal NetWatch eenvoudig deur die rugsteunkommunikasiekanaal werk en aanvaar dat alles reg is. Opgelos deur 'n bykomende filterroete by te voeg:

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

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Daar is op habré статья, waar die situasie met NetWatch in meer besonderhede oorweeg word.

En ja, wanneer so 'n bespreking gebruik word, sal die adres 8.8.8.8 aan een van die verskaffers hardgekodeer word, so om dit as 'n dns-bron te kies is nie 'n goeie idee nie.

'n Paar woorde oor virtuele roetering en aanstuur (VRF)

VRF-tegnologie is ontwerp om verskeie virtuele routers binne een fisiese een te skep, hierdie tegnologie word wyd gebruik deur telekommunikasie-operateurs (gewoonlik in samewerking met MPLS) om L3VPN-dienste aan kliënte te verskaf met oorvleuelende subnetadresse:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Maar VRF in Mikrotik is georganiseer op grond van roeteringstabelle en het 'n aantal nadele, byvoorbeeld, plaaslike IP-adresse van die router is beskikbaar by alle VRF's, jy kan meer lees по ссылке.

vrf konfigurasie voorbeeld:
Basiese beginsels van statiese roetering 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 die toestel wat aan ether2 gekoppel is, sien ons dat ping vanaf 'n ander vrf na die routeradres gaan (en dit is 'n probleem), terwyl ping nie na die internet gaan nie:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Om toegang tot die internet te verkry, moet jy 'n bykomende roete registreer wat toegang tot die hooftabel verkry (in vrf-terminologie word dit roetelek genoem):
Basiese beginsels van statiese roetering 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 is twee maniere om roete te lek: gebruik die roetetabel: 172.17.0.1@main en gebruik koppelvlaknaam: 172.17.0.1%wlan1.

En stel merk op vir retoerverkeer in [PREROUTING|Mangle]:
Basiese beginsels van statiese roetering 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 

Basiese beginsels van statiese roetering in Mikrotik RouterOS

Subnette met dieselfde adres
Organisasie van toegang tot subnette met dieselfde adressering op dieselfde router met behulp van VRF en netmap:
Basiese beginsels van statiese roetering in Mikrotik RouterOS

Basiese konfigurasie:

/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 reëls:

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

Roeteringsreëls vir terugvoerverkeer:

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

Voeg roetes wat via dhcp ontvang is by 'n gegewe roeteringtabel
VRF kan interessant wees as jy outomaties 'n dinamiese roete (byvoorbeeld vanaf 'n dhcp-kliënt) by 'n spesifieke roetetabel moet voeg.

Voeg koppelvlak by vrf:

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

Reëls vir die stuur van verkeer (uitgaande en transito) deur die tabel oor-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

Bykomende, vals roete vir uitgaande roete werk toe:

/interface bridge
add name=bare

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

Hierdie roete is slegs nodig sodat plaaslike uitgaande pakkies voorheen deur die Roetering-besluit (2) kan gaan [OUTPUT|Mangle] en kry die roeteetiket, as daar ander aktiewe roetes op die router voor 0.0.0.0/0 in die hooftabel is, is dit nie nodig nie.
Basiese beginsels van statiese roetering in Mikrotik RouterOS

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

Roetefiltrering (inkomende en uitgaande) is 'n instrument wat gewoonlik saam met dinamiese roeteringsprotokolle gebruik word (en dus slegs beskikbaar nadat die pakket geïnstalleer is routing), maar daar is twee interessante kettings in die inkomende filters:

  • gekoppel-in — filter gekoppelde roetes
  • dynamic-in - filter dinamiese roetes wat deur PPP en DCHP ontvang word

Met filtering kan u nie net roetes weggooi nie, maar ook 'n aantal opsies verander: afstand, roetemerk, kommentaar, omvang, teikenomvang, ...

Dit is 'n baie presiese hulpmiddel en as jy iets kan doen sonder Routing Filters (maar nie skrifte nie), gebruik dan nie Routing Filters nie, moenie jouself en diegene wat die router na jou sal opstel, verwar nie. In die konteks van dinamiese roetering, sal roetefilters baie meer gereeld en meer produktief gebruik word.

Stel die roetemerk vir dinamiese roetes
'n Voorbeeld van 'n tuisrouter. Ek het twee VPN-verbindings opgestel en die verkeer daarin moet in ooreenstemming met die roetetabelle toegedraai word. Terselfdertyd wil ek hê die roetes moet outomaties geskep word wanneer die koppelvlak geaktiveer word:

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

Ek weet nie hoekom nie, waarskynlik 'n fout, maar as jy 'n vrf vir die ppp-koppelvlak skep, sal die roete na 0.0.0.0/0 steeds in die hooftabel kom. Anders sou alles nog makliker wees.

Deaktiveer gekoppelde roetes
Soms word dit vereis:

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

Ontfoutingsnutsgoed

RouterOS bied 'n aantal gereedskap vir ontfouting van roetes:

  • [Tool]->[Tourch] - laat jou toe om pakkies op koppelvlakke te sien
  • /ip route check - laat jou toe om te sien na watter poort die pakkie gestuur sal word, werk nie met roeteringstabelle nie
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - ping en spoor met behulp van die gespesifiseerde roeteringtabel
  • action=log в [IP]->[Firewall] - 'n uitstekende hulpmiddel waarmee u die pad van 'n pakkie langs die pakkievloei kan volg, hierdie aksie is beskikbaar in alle kettings en tabelle

Bron: will.com

Voeg 'n opmerking