Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Reititys on prosessi, jolla etsitään paras reitti pakettien lähettämiseen TCP/IP-verkkojen kautta. Jokainen IPv4-verkkoon liitetty laite sisältää prosessi- ja reititystaulukot.

Tämä artikkeli ei ole HOWTO, se kuvaa staattista reititystä RouterOS:ssä esimerkein, muut asetukset jätin tarkoituksella pois (esimerkiksi srcnat Internetiin pääsyä varten), joten materiaalin ymmärtäminen vaatii tietyn tason tietoa verkoista ja RouterOS:stä.

Vaihtaminen ja reititys

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Vaihto on prosessi, jossa vaihdetaan paketteja yhden Layer2-segmentin sisällä (Ethernet, ppp, ...). Jos laite näkee paketin vastaanottajan olevan samassa Ethernet-aliverkossa sen kanssa, se oppii mac-osoitteen arp-protokollan avulla ja lähettää paketin suoraan ohittaen reitittimen. Ppp-yhteydellä (point-to-point) voi olla vain kaksi osallistujaa ja paketti lähetetään aina yhteen osoitteeseen 0xff.

Reititys on prosessi, jolla paketteja siirretään Layer2-segmenttien välillä. Jos laite haluaa lähettää paketin, jonka vastaanottaja on Ethernet-segmentin ulkopuolella, se katsoo reititystaulukkoonsa ja välittää paketin yhdyskäytävälle, joka tietää minne paketin lähettää seuraavaksi (tai ei välttämättä tiedä paketin alkuperäistä lähettäjää) ei ole tietoinen tästä).

Helpoin tapa ajatella reititintä on laite, joka on kytketty kahteen tai useampaan Layer2-segmenttiin ja joka pystyy välittämään paketteja niiden välillä määrittämällä parhaan reitin reititystaulukosta.

Jos ymmärrät kaiken tai tiesit sen jo, niin lue eteenpäin. Muilta osin suosittelen, että tutustut pieneen, mutta erittäin tilavaan artikkeleita.

Reititys RouterOS:ssä ja PacketFlowissa

Lähes kaikki staattiseen reititykseen liittyvät toiminnot ovat paketissa järjestelmä. Muovipussi reititys lisää tuen dynaamisille reititysalgoritmeille (RIP, OSPF, BGP, MME), reitityssuodattimille ja BFD:lle.

Päävalikko reitityksen määrittämistä varten: [IP]->[Route]. Monimutkaiset suunnitelmat saattavat edellyttää pakettien esimerkintämistä reititysmerkillä seuraavissa kohdissa: [IP]->[Firewall]->[Mangle] (ketjut PREROUTING и OUTPUT).

PacketFlowissa on kolme paikkaa, joissa IP-pakettien reitityspäätökset tehdään:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  1. Reitittimen vastaanottamat paketit. Tässä vaiheessa päätetään, meneekö paketti paikalliseen prosessiin vai lähetetäänkö se edelleen verkkoon. Transit paketit vastaanotetaan Ulostulo liitäntä
  2. Paikallisten lähtevien pakettien reititys. Lähtevät paketit vastaanotetaan Ulostulo liitäntä
  3. Lähtevien pakettien lisäreititysvaihe mahdollistaa reitityspäätöksen muuttamisen [Output|Mangle]

  • Pakettipolku lohkoissa 1, 2 riippuu säännöistä [IP]->[Route]
  • Pakettipolku kohdissa 1, 2 ja 3 riippuu säännöistä [IP]->[Route]->[Rules]
  • Lohkojen 1, 3 pakettipolkuun voidaan vaikuttaa käyttämällä [IP]->[Firewall]->[Mangle]

RIB, FIB, reititysvälimuisti

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Reititystietokanta
Tukikohta, johon reitit kerätään dynaamisista reititysprotokollista, reitit ppp:stä ja dhcp:stä, staattisista ja yhdistetyistä reiteistä. Tämä tietokanta sisältää kaikki reitit paitsi järjestelmänvalvojan suodattamat reitit.

Ehdollisesti, voimme olettaa sen [IP]->[Route] näyttää RIB.

Edelleenlähetystietokanta
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Tukikohta, johon RIB:n parhaat reitit kerätään. Kaikki FIB:n reitit ovat aktiivisia ja niitä käytetään pakettien välittämiseen. Jos reitti muuttuu ei-aktiiviseksi (järjestelmänvalvojan (järjestelmän) toimesta poistunut tai liittymä, jonka kautta paketti tulee lähettää, ei ole aktiivinen), reitti poistetaan FIB:stä.

FIB-taulukko käyttää reitityspäätöksen seuraavia IP-paketin tietoja:

  • Lähdeosoite
  • Määränpään osoite
  • lähdeliittymä
  • Reittimerkki
  • Palveluehdot (DSCP)

FIB-pakettiin pääseminen tapahtuu seuraavien vaiheiden kautta:

  • Onko paketti tarkoitettu paikalliseen reititinprosessiin?
  • Onko paketti järjestelmän tai käyttäjän PBR-sääntöjen alainen?
    • Jos kyllä, paketti lähetetään määritettyyn reititystaulukkoon
  • Paketti lähetetään pääpöytään

Ehdollisesti, voimme olettaa sen [IP]->[Route Active=yes] näyttää FIB.

Reititysvälimuisti
Reitin välimuistimekanismi. Reititin muistaa, minne paketit lähetettiin ja jos samanlaisia ​​paketteja on (oletettavasti samasta yhteydestä), se päästää ne kulkemaan samaa reittiä ilman FIB:n sisäänkirjautumista. Reitin välimuisti tyhjennetään ajoittain.

RouterOS-järjestelmänvalvojille he eivät tehneet työkaluja reititysvälimuistin katseluun ja hallintaan, mutta milloin se voidaan poistaa käytöstä [IP]->[Settings].

Tämä mekanismi poistettiin Linux 3.6 -ytimestä, mutta RouterOS käyttää edelleen ydintä 3.3.5, ehkä Cahce-reititys on yksi syy.

Lisää reitti -valintaikkuna

[IP]->[Route]->[+]
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  1. Aliverkko, jolle haluat luoda reitin (oletus: 0.0.0.0/0)
  2. Yhdyskäytävän IP tai liitäntä, johon paketti lähetetään (niitä voi olla useita, katso ECMP alla)
  3. Yhdyskäytävän saatavuuden tarkistus
  4. Tietueen tyyppi
  5. Reitin etäisyys (metrinen).
  6. Reititystaulukko
  7. IP paikallisille lähteville paketeille tämän reitin kautta
  8. Laajuus ja kohdealue on kirjoitettu artikkelin lopussa.

Reitin liput
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  • X - Järjestelmänvalvoja on poistanut reitin käytöstä (disabled=yes)
  • A - Reittiä käytetään pakettien lähettämiseen
  • D - Reitti lisätty dynaamisesti (BGP, OSPF, RIP, MME, PPP, DHCP, yhdistetty)
  • C - Aliverkko on yhdistetty suoraan reitittimeen
  • S - Staattinen reitti
  • r,b,o,m - Reitti on lisätty jollakin dynaamisista reititysprotokollista
  • B,U,P - Suodatusreitti (pudottaa paketteja lähettämisen sijaan)

Mitä yhdyskäytävässä määritetään: ip-osoite vai käyttöliittymä?

Järjestelmän avulla voit määrittää molemmat, mutta se ei vanno eikä anna vihjeitä, jos teit jotain väärin.

IP-osoite
Yhdyskäytävän osoitteen on oltava käytettävissä Layer2:n kautta. Ethernetissä tämä tarkoittaa, että reitittimellä on oltava osoite samasta aliverkosta jossakin aktiivisessa IP-rajapinnassa, ppp:ssä, että yhdyskäytävän osoite on määritetty yhdessä aktiivisista liitännöistä aliverkon osoitteeksi.
Jos Layer2:n saavutettavuusehto ei täyty, reittiä pidetään passiivisena eikä se kuulu FIB:hen.

liitäntä
Kaikki on monimutkaisempaa ja reitittimen käyttäytyminen riippuu käyttöliittymän tyypistä:

  • PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) -yhteys olettaa vain kahta osallistujaa ja paketti lähetetään aina yhdyskäytävälle lähetettäväksi, jos yhdyskäytävä havaitsee vastaanottajan olevan hän itse, se siirtää paketin sen paikallinen prosessi.
    Staattisen reitityksen perusteet Mikrotik RouterOS:ssä
  • Ethernet olettaa monien osallistujien läsnäolon ja lähettää pyynnöt arp-rajapintaan paketin vastaanottajan osoitteen kanssa, tämä on odotettavissa ja melko normaalia toimintaa yhdistetyillä reiteillä.
    Mutta kun yrität käyttää käyttöliittymää etäaliverkon reittinä, saat seuraavan tilanteen: reitti on aktiivinen, ping yhdyskäytävälle kulkee, mutta ei tavoita vastaanottajaa määritetystä aliverkosta. Jos katsot käyttöliittymää nuuskijan kautta, näet arp-pyynnöt, joissa on osoitteet etäaliverkosta.
    Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Yritä määrittää IP-osoite yhdyskäytäväksi aina kun mahdollista. Poikkeuksen muodostavat yhdistetyt reitit (luodaan automaattisesti) ja PPP-liitännät (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*).

OpenVPN ei sisällä PPP-otsikkoa, mutta voit käyttää OpenVPN-rajapinnan nimeä reitin luomiseen.

Tarkempi reitti

Perusreitityssääntö. Reitti, joka kuvaa pienempää aliverkkoa (jossa on suurin aliverkon peite), on etusijalla paketin reitityspäätöksessä. Merkintöjen sijainnilla reititystaulukossa ei ole merkitystä valinnan kannalta - pääsääntö on Tarkempi.

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Kaikki määritetyn järjestelmän reitit ovat aktiivisia (sijaitsee FIB:ssä). osoittavat eri aliverkkoihin eivätkä ole ristiriidassa keskenään.

Jos jokin yhdyskäytävistä ei ole käytettävissä, siihen liittyvää reittiä pidetään ei-aktiivisena (poistetaan FIB:stä) ja paketteja etsitään jäljellä olevilta reiteiltä.

Reitille, jonka aliverkko on 0.0.0.0/0, annetaan joskus erityinen merkitys, ja sitä kutsutaan "oletusreitiksi" tai "viimeisen keinon yhdyskäytäväksi". Itse asiassa siinä ei ole mitään maagista ja se sisältää yksinkertaisesti kaikki mahdolliset IPv4-osoitteet, mutta nämä nimet kuvaavat sen tehtävää hyvin - se osoittaa yhdyskäytävän, johon lähetetään paketit, joille ei ole muita tarkempia reittejä.

IPv4:n suurin mahdollinen aliverkon peite on /32, tämä reitti osoittaa tiettyyn isäntään ja sitä voidaan käyttää reititystaulukossa.

Tarkemman reitin ymmärtäminen on olennaista jokaiselle TCP/IP-laitteelle.

Etäisyys

Etäisyyksiä (tai mittareita) tarvitaan reittien hallinnolliseen suodattamiseen yhteen aliverkkoon, johon pääsee useiden yhdyskäytävien kautta. Reittiä, jolla on alhaisempi mittari, pidetään ensisijaisena ja se sisällytetään FIB:hen. Jos reitti, jolla on alhaisempi metriluku, lakkaa olemasta aktiivinen, se korvataan reitillä, jolla on korkeampi metriluku FIB:ssä.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Jos samaan aliverkkoon on useita reittejä samalla mittarilla, reititin lisää vain yhden niistä FIB-taulukkoon sisäisen logiikkansa ohjaamana.

Mittarin arvo voi olla 0–255:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  • 0 - yhdistettyjen reittien metriikka. Järjestelmänvalvoja ei voi asettaa etäisyyttä 0
  • 1-254 - Järjestelmänvalvojan käytettävissä olevat mittarit reittien määrittämistä varten. Mittareilla, joilla on pienempi arvo, on korkeampi prioriteetti
  • 255 - Järjestelmänvalvojan käytettävissä oleva mittari reittien määrittämistä varten. Toisin kuin 1-254, reitti, jonka metri on 255, pysyy aina passiivisena eikä kuulu FIB:hen
  • tiettyjä mittareita. Dynaamisista reititysprotokollista johdetuilla reiteillä on vakiomittaiset arvot

tarkista yhdyskäytävä

Check gateway on MikroTik RoutesOS -laajennus, jolla voidaan tarkistaa yhdyskäytävän saatavuus icmp:n tai arp:n kautta. Kerran 10 sekunnissa (ei voi muuttaa) lähetetään pyyntö yhdyskäytävälle, jos vastausta ei saada kahdesti, reitti katsotaan ei ole käytettävissä ja se poistetaan FIB:stä. Jos tarkistusyhdyskäytävä on poistanut käytöstä, tarkistusreitti jatkuu ja reitti muuttuu jälleen aktiiviseksi yhden onnistuneen tarkistuksen jälkeen.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Tarkista yhdyskäytävä poistaa käytöstä merkinnän, jossa se on määritetty, ja kaikki muut merkinnät (kaikissa reititystaulukoissa ja ecmp-reiteissä) määritetyllä yhdyskäytävällä.

Yleisesti ottaen tarkistusyhdyskäytävä toimii hyvin niin kauan kuin yhdyskäytävälle ei aiheudu pakettien katoamiseen liittyviä ongelmia. Tarkistusyhdyskäytävä ei tiedä, mitä tapahtuu tarkistetun yhdyskäytävän ulkopuolella tapahtuvassa tiedonsiirrossa, tämä vaatii lisätyökaluja: komentosarjat, rekursiiviset reititys, dynaamiset reititysprotokollat.

Useimmat VPN- ja tunneliprotokollat ​​sisältävät sisäänrakennettuja työkaluja yhteystoiminnan tarkistamiseen. Tarkista yhdyskäytävän salliminen niille on ylimääräinen (mutta hyvin pieni) kuormitus verkon ja laitteen suorituskyvylle.

ECMP-reitit

Equal-Cost Multi-Path - pakettien lähettäminen vastaanottajalle käyttämällä useita yhdyskäytäviä samanaikaisesti käyttäen Round Robin -algoritmia.

Järjestelmänvalvoja luo ECMP-reitin määrittämällä useita yhdyskäytäviä yhdelle aliverkolle (tai automaattisesti, jos on olemassa kaksi vastaavaa OSPF-reittiä).
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

ECMP:tä käytetään kuormituksen tasapainottamiseen kahden kanavan välillä, teoriassa, jos ecmp-reitillä on kaksi kanavaa, niin jokaisen paketin lähtevän kanavan tulisi olla erilainen. Mutta reititysvälimuistimekanismi lähettää paketteja yhteydestä ensimmäisen paketin kuljettua reittiä pitkin, minkä seurauksena saamme eräänlaisen yhteyksiin perustuvan tasapainotuksen (yhteyskohtainen kuormituksen tasapainotus).

Jos poistat reititysvälimuistin käytöstä, ECMP-reitin paketit jaetaan oikein, mutta NAT:ssa on ongelma. NAT-sääntö käsittelee vain ensimmäisen paketin yhteydestä (loput käsitellään automaattisesti), ja käy ilmi, että paketit, joilla on sama lähdeosoite, jättävät eri liitännät.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Tarkista, että yhdyskäytävä ei toimi ECMP-reiteillä (RouterOS-virhe). Voit kuitenkin kiertää tämän rajoituksen luomalla lisää vahvistusreittejä, jotka poistavat merkinnät ECMP:ssä.

Suodatus reitityksen avulla

Tyyppi-vaihtoehto määrittää, mitä paketille tehdään:

  • unicast - lähetä määritettyyn yhdyskäytävään (liittymään)
  • blackhole - hävitä paketti
  • estää, tavoittamaton - hylkää paketti ja lähetä icmp-viesti lähettäjälle

Suodatusta käytetään yleensä silloin, kun on tarpeen turvata pakettien lähettäminen väärää polkua pitkin, tämän voi tietysti suodattaa palomuurin läpi.

Pari esimerkkiä

Reitityksen perusasioiden yhdistäminen.

Tyypillinen kotireititin
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

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

  1. Staattinen reitti 0.0.0.0/0:aan (oletusreitti)
  2. Yhdistetty reitti rajapinnassa palveluntarjoajan kanssa
  3. Yhdistetty reitti LAN-liitännässä

Tyypillinen kotireititin PPPoE:llä
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  1. Staattinen reitti oletusreitille, lisätään automaattisesti. se määritellään yhteyden ominaisuuksissa
  2. Yhdistetty reitti PPP-yhteyttä varten
  3. Yhdistetty reitti LAN-liitännässä

Tyypillinen kotireititin kahdella palveluntarjoajalla ja redundanssilla
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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. Staattinen reitti oletusreitille ensimmäisen palveluntarjoajan kautta, jossa on mittari 1 ja yhdyskäytävän saatavuustarkistus
  2. Staattinen reitti oletusreitille toisen palveluntarjoajan kautta mittarilla 2
  3. Yhdistetyt reitit

Liikenne numeroon 0.0.0.0/0 kulkee 10.10.10.1:n kautta, kun tämä yhdyskäytävä on käytettävissä, muussa tapauksessa se vaihtaa osoitteeseen 10.20.20.1

Tällaista järjestelmää voidaan pitää kanavavarauksena, mutta siinä ei ole haittoja. Jos katkos tapahtuu palveluntarjoajan yhdyskäytävän ulkopuolella (esimerkiksi operaattorin verkon sisällä), reitittimesi ei tiedä siitä ja pitää reittiä edelleen aktiivisena.

Tyypillinen kotireititin, jossa on kaksi palveluntarjoajaa, redundanssi ja ECMP
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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. Staattiset reitit chack-yhdyskäytävän tarkistamiseen
  2. ECMP reitti
  3. Yhdistetyt reitit

Tarkistettavat reitit ovat sinisiä (ei-aktiivisten reittien väri), mutta tämä ei häiritse tarkistusyhdyskäytävää. RoS:n nykyinen versio (6.44) antaa automaattisesti etusijalle ECMP-reitin, mutta on parempi lisätä testireitit muihin reititystaulukoihin (vaihtoehto routing-mark)

Speedtestillä ja muilla vastaavilla sivustoilla nopeus ei kasva (ECMP jakaa liikenteen yhteyksien, ei pakettien mukaan), mutta p2p-sovellusten pitäisi latautua nopeammin.

Suodatus reitityksen kautta
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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. Staattinen reitti oletusreitille
  2. Staattinen reitti 192.168.200.0/24 ipip-tunnelin kautta
  3. Kielletään staattinen reitti numeroon 192.168.200.0/24 Internet-palveluntarjoajan reitittimen kautta

Suodatusvaihtoehto, jossa tunneliliikenne ei mene palveluntarjoajan reitittimeen, kun ipip-liitäntä on poistettu käytöstä. Tällaisia ​​järjestelmiä tarvitaan harvoin, koska voit toteuttaa eston palomuurin kautta.

Reitityssilmukka
Reitityssilmukka - tilanne, jossa paketti kulkee reitittimien välillä ennen kuin ttl vanhenee. Yleensä se johtuu konfigurointivirheestä, suurissa verkoissa sitä käsitellään dynaamisten reititysprotokollien toteutuksella, pienissä - huolellisesti.

Se näyttää noin:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Esimerkki (yksinkertaisin) samanlaisen tuloksen saamiseksi:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Reitityssilmukan esimerkistä ei ole käytännön hyötyä, mutta se osoittaa, että reitittimillä ei ole aavistustakaan naapurin reititystaulukosta.

Käytäntöpohjan reititys ja lisäreititystaulukot

Reitin valinnassa reititin käyttää vain yhtä kenttää paketin otsikosta (Dst. Address) - tämä on perusreititystä. Reititys, joka perustuu muihin ehtoihin, kuten lähdeosoitteeseen, liikenteen tyyppiin (ToS), tasapainottamiseen ilman ECMP:tä, kuuluu Policy Base Routingiin (PBR) ja käyttää lisäreititystaulukoita.

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Tarkempi reitti on pääreitin valintasääntö reititystaulukossa.

Oletuksena kaikki reitityssäännöt lisätään päätaulukkoon. Järjestelmänvalvoja voi luoda mielivaltaisen määrän ylimääräisiä reititystaulukoita ja reitittää niihin. Eri taulukoiden säännöt eivät ole ristiriidassa keskenään. Jos paketti ei löydä sopivaa sääntöä määritetystä taulukosta, se siirtyy päätaulukkoon.

Esimerkki jakelusta palomuurin kautta:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  • 192.168.100.10 -> 8.8.8.8
    1. Liikenne numerosta 192.168.100.10 merkitään kautta-isp1 в [Prerouting|Mangle]
    2. Taulukon reititysvaiheessa kautta-isp1 etsii reittiä 8.8.8.8
    3. Reitti löydetty, liikenne lähetetään yhdyskäytävälle 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. Liikenne numerosta 192.168.200.20 merkitään kautta-isp2 в [Prerouting|Mangle]
    2. Taulukon reititysvaiheessa kautta-isp2 etsii reittiä 8.8.8.8
    3. Reitti löydetty, liikenne lähetetään yhdyskäytävälle 10.20.20.1
  • Jos jokin yhdyskäytävistä (10.10.10.1 tai 10.20.20.1) ei ole käytettävissä, paketti menee taulukkoon tärkein ja etsii sinne sopivan reitin

Terminologiaongelmat

RouterOS:ssä on tiettyjä terminologisia ongelmia.
Kun työskentelet sääntöjen kanssa [IP]->[Routes] reititystaulukko on merkitty, vaikka on kirjoitettu, että tarra:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

В [IP]->[Routes]->[Rule] kaikki on oikein, taulukon toiminnon tarratilassa:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Kuinka lähettää paketti tiettyyn reititystaulukkoon

RouterOS tarjoaa useita työkaluja:

  • Säännöt sisään [IP]->[Routes]->[Rules]
  • Reittimerkit (action=mark-routing) sisään [IP]->[Firewall]->[Mangle]
  • VRF laajennus

Säännöt [IP]->[Route]->[Rules]
Säännöt käsitellään peräkkäin, jos paketti vastaa säännön ehtoja, se ei kulje eteenpäin.

Reitityssäännöt mahdollistavat reititysmahdollisuuksien laajentamisen tukeutumalla vastaanottajan osoitteen lisäksi myös lähdeosoitteeseen ja rajapintaan, jolla paketti vastaanotettiin.

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Säännöt koostuvat ehdoista ja toimista:

  • ehdot. Käytännössä toista luettelo merkeistä, joilla paketti tarkistetaan FIB:ssä, vain ToS puuttuu.
  • Aktiivisuus
    • lookup - lähetä paketti taulukkoon
    • haku vain taulukosta - lukitse paketti taulukkoon, jos reittiä ei löydy, paketti ei mene päätaulukkoon
    • pudota - pudota paketti
    • tavoittamaton - hylkää paketti lähettäjän ilmoituksella

FIB:ssä liikenne paikallisiin prosesseihin käsitellään sääntöjä ohittaen [IP]->[Route]->[Rules]:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

merkki [IP]->[Firewall]->[Mangle]
Reititysetikettien avulla voit asettaa yhdyskäytävän paketille lähes mitä tahansa palomuurin ehtoja käyttäen:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Käytännössä, koska kaikki eivät ole järkeviä, ja jotkut voivat toimia epävakaasti.

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

On kaksi tapaa merkitä paketti:

  • Laita heti reititysmerkki
  • Aseta ensin yhteysmerkki, sitten perustuu yhteysmerkki laittaa reititysmerkki

Kirjoitin palomuuria käsittelevässä artikkelissa, että toinen vaihtoehto on parempi. vähentää suorittimen kuormitusta reittien merkitsemisen tapauksessa - tämä ei ole täysin totta. Nämä merkintämenetelmät eivät aina ole vastaavia ja niitä käytetään yleensä erilaisten ongelmien ratkaisemiseen.

Esimerkkejä käytöstä

Siirrytäänpä esimerkkeihin Policy Base Routingin käytöstä, ne ovat paljon helpompi osoittaa, miksi kaikkea tätä tarvitaan.

MultiWAN ja paluu lähtevä (Output) liikenne
Yleinen ongelma MultiWAN-kokoonpanossa: Mikrotik on saatavilla Internetistä vain "aktiivisen" palveluntarjoajan kautta.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Reititin ei välitä mihin IP-osoitteeseen pyyntö tuli, kun se tuottaa vastausta, se etsii reititystaulukosta reitin, jossa reitti isp1:n kautta on aktiivinen. Lisäksi tällainen paketti todennäköisimmin suodatetaan matkan varrella vastaanottajalle.

Toinen mielenkiintoinen kohta. Jos "yksinkertainen" lähdenat on määritetty ether1-liittymään: /ip fi nat add out-interface=ether1 action=masquerade paketti siirtyy verkkoon src:n avulla. address=10.10.10.100, mikä pahentaa tilannetta entisestään.

On olemassa useita tapoja korjata ongelma, mutta jokainen niistä vaatii lisäreititystaulukoita:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Käyttää [IP]->[Route]->[Rules]
Määritä reititystaulukko, jota käytetään paketeille, joilla on määritetty lähde-IP.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Voi käyttää action=lookup, mutta paikalliselle lähtevälle liikenteelle tämä vaihtoehto sulkee kokonaan pois yhteydet väärästä käyttöliittymästä.

  • Järjestelmä luo Src-vastauspaketin. Osoite: 10.20.20.200
  • Reitityspäätös(2) -vaiheen tarkistukset [IP]->[Routes]->[Rules] ja paketti lähetetään reititystaulukkoon over-isp2
  • Reititystaulukon mukaan paketti tulee lähettää ether10.20.20.1-liitännän kautta yhdyskäytävälle 2

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Tämä menetelmä ei vaadi toimivaa Connection Tracker -ohjelmaa, toisin kuin Mangle-taulukon käyttäminen.

Käyttää [IP]->[Firewall]->[Mangle]
Yhteys alkaa saapuvasta paketista, joten merkitsemme sen (action=mark-connection), aseta merkitystä yhteydestä lähteville paketeille reititystunniste (action=mark-routing).
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Jos yhdelle rajapinnalle on määritetty useita IP:itä, voit lisätä ehtoon dst-address olla varma.

  • Paketti avaa yhteyden ether2-rajapinnassa. Paketti menee sisään [INPUT|Mangle] joka käskee merkitä kaikki yhteyden paketit nimellä alkaen-isp2
  • Järjestelmä luo Src-vastauspaketin. Osoite: 10.20.20.200
  • Reitityspäätös(2) -vaiheessa paketti lähetetään reititystaulukon mukaisesti yhdyskäytävälle 10.20.20.1 ether1-rajapinnan kautta. Voit varmistaa tämän kirjautumalla paketit sisään [OUTPUT|Filter]
  • Lavalla [OUTPUT|Mangle] liitäntätarra on tarkistettu alkaen-isp2 ja paketti vastaanottaa reittitunnisteen over-isp2
  • Routing Adjustment(3) -vaihe tarkistaa reititystarran olemassaolon ja lähettää sen asianmukaiseen reititystaulukkoon
  • Reititystaulukon mukaan paketti tulee lähettää ether10.20.20.1-liitännän kautta yhdyskäytävälle 2

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

MultiWAN ja paluu dst-nat liikennettä

Esimerkki on monimutkaisempi, mitä tehdä, jos reitittimen takana on palvelin (esimerkiksi verkko) yksityisessä aliverkossa ja sinun on annettava pääsy siihen minkä tahansa palveluntarjoajan kautta.

/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

Ongelman ydin on sama, ratkaisu on samanlainen kuin Firewall Mangle -vaihtoehto, vain muita ketjuja käytetään:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä
Kaavio ei näytä NAT:ia, mutta mielestäni kaikki on selvää.

MultiWAN ja lähtevät yhteydet

PBR-ominaisuuksien avulla voit luoda useita vpn-yhteyksiä (esimerkissä SSTP) eri reitittimen liitännöistä.

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Muut reititystaulukot:

/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

Pakkauksen merkinnät:

/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

Yksinkertaiset NAT-säännöt, muuten paketti jättää käyttöliittymän väärällä Src:llä. osoite:

/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

jäsentämiseen:

  • Reititin luo kolme SSTP-prosessia
  • Reitityspäätös (2) -vaiheessa näille prosesseille valitaan reitti pääreititystaulukon perusteella. Samalta reitiltä paketti vastaanottaa Src:n. Osoite sidottu ether1-liitäntään
  • В [Output|Mangle] paketit eri yhteyksistä saavat eri etikettejä
  • Paketit saapuvat reitityksen säätövaiheessa tarroja vastaaviin taulukoihin ja vastaanottavat uuden reitin pakettien lähettämistä varten
  • Mutta paketeissa on edelleen Src. Osoite ether1:ltä lavalla [Nat|Srcnat] osoite korvataan käyttöliittymän mukaan

Mielenkiintoista on, että reitittimessä näet seuraavan yhteystaulukon:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Connection Tracker toimii aikaisemmin [Mangle] и [Srcnat], joten kaikki yhteydet tulevat samasta osoitteesta, jos katsot tarkemmin, niin sisään Replay Dst. Address NAT:n jälkeen tulee osoitteita:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

VPN-palvelimella (minulla on sellainen testipenkissä) voit nähdä, että kaikki yhteydet tulevat oikeista osoitteista:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Pysy tiellä
On olemassa helpompi tapa, voit yksinkertaisesti määrittää tietyn yhdyskäytävän kullekin osoitteelle:

/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

Mutta tällaiset reitit eivät vaikuta vain lähtevään vaan myös kauttakulkuliikenteeseen. Lisäksi, jos et tarvitse liikennettä vpn-palvelimelle kulkeaksesi sopimattomien viestintäkanavien kautta, sinun on lisättävä 6 muuta sääntöä [IP]->[Routes]с type=blackhole. Edellisessä versiossa - 3 sääntöä [IP]->[Route]->[Rules].

Käyttäjäyhteyksien jakautuminen viestintäkanavien kautta

Yksinkertaisia, jokapäiväisiä tehtäviä. Jälleen tarvitaan lisää reititystaulukoita:

/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

Käyttäminen [IP]->[Route]->[Rules]
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Jos käytät action=lookup, sitten kun jokin kanavista on poistettu käytöstä, liikenne siirtyy päätaulukkoon ja kulkee työkanavan kautta. Se, onko tämä tarpeellista vai ei, riippuu tehtävästä.

Käyttämällä merkintöjä [IP]->[Firewall]->[Mangle]
Yksinkertainen esimerkki ip-osoitteiden luetteloista. Periaatteessa lähes mitä tahansa ehtoja voidaan käyttää. Layer7:n ainoa varoitus, vaikka yhdistettynä yhteystunnisteisiin, saattaa vaikuttaa siltä, ​​että kaikki toimii oikein, mutta osa liikenteestä menee silti väärään suuntaan.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Voit "lukita" käyttäjät yhteen reititystaulukkoon [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

Joko läpi [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
Lisäehto dst-address-type=!local on välttämätöntä, että käyttäjien liikenne saavuttaa reitittimen paikalliset prosessit (dns, winbox, ssh, ...). Jos reitittimeen on kytketty useita paikallisia aliverkkoja, on varmistettava, että niiden välinen liikenne ei mene Internetiin esim. dst-address-table.

Esimerkissä käyttäen [IP]->[Route]->[Rules] poikkeuksia ei ole, mutta liikenne saavuttaa paikalliset prosessit. Tosiasia on, että sisäänpääsy FIB-pakettiin merkitty [PREROUTING|Mangle] on reittinimike ja se menee muuhun kuin main-reititystaulukkoon, jossa ei ole paikallista käyttöliittymää. Reitityssäännöissä tarkistetaan ensin onko paketti tarkoitettu paikalliselle prosessille ja vasta User PBR -vaiheessa se menee määritettyyn reititystaulukkoon.

Käyttäminen [IP]->[Firewall]->[Mangle action=route]
Tämä toiminto toimii vain [Prerouting|Mangle] ja voit ohjata liikennettä määritettyyn yhdyskäytävään ilman ylimääräisiä reititystaulukoita määrittämällä yhdyskäytävän osoitteen suoraan:

/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

Действие route on alhaisempi prioriteetti kuin reitityssäännöt ([IP]->[Route]->[Rules]). Reittimerkkien tapauksessa kaikki riippuu sääntöjen sijainnista, jos sääntö on action=route arvokkaampi kuin action=mark-route, sitä käytetään (lipusta riippumatta passtrough), muuten merkitsee reittiä.
Wikissä on hyvin vähän tietoa tästä toiminnasta ja kaikki johtopäätökset on saatu kokeellisesti, joka tapauksessa en löytänyt vaihtoehtoja, kun tämän vaihtoehdon käyttö antaa etuja muihin verrattuna.

PPC-pohjainen dynaaminen tasapainotus

Per Connection Classifier - on joustavampi ECMP:n analogi. Toisin kuin ECMP, se jakaa liikenteen yhteyksien mukaan tiukemmin (ECMP ei tiedä yhteyksistä mitään, mutta kun se yhdistetään reititysvälimuistiin, saadaan jotain vastaavaa).

PCC vie määritetyt kentät ip-otsikosta, muuntaa ne 32-bittisiksi arvoiksi ja jakaa arvolla nimittäjä. Jaon loppuosaa verrataan määritettyyn loput ja jos ne täsmäävät, määritettyä toimintoa käytetään. lisää. Kuulostaa hullulta, mutta se toimii.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Esimerkki kolmella osoitteella:

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

Esimerkki liikenteen dynaamisesta jakautumisesta src.osoitteen mukaan kolmen kanavan välillä:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

#Таблица маршрутизации
/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

Reittejä merkittäessä on lisäehto: in-interface=br-lan, ilman sen alla action=mark-routing Internetistä tuleva vastausliikenne saa ja palaa reititystaulukoiden mukaisesti takaisin palveluntarjoajalle.

Viestintäkanavien vaihtaminen

Check ping on hyvä työkalu, mutta se tarkistaa vain yhteyden lähimpään IP-kumppaniin, palveluntarjoajan verkot koostuvat yleensä suuresta määrästä reitittimiä ja lähimmän vertaisverkon ulkopuolella voi tapahtua yhteyskatkos, ja sitten on runkoverkko-operaattoreita, jotka voivat myös Jos sinulla on ongelmia, tarkistusping ei yleensä aina näytä ajantasaista tietoa pääsystä maailmanlaajuiseen verkkoon.
Jos palveluntarjoajilla ja suurilla yrityksillä on dynaaminen BGP-reititysprotokolla, koti- ja toimistokäyttäjien on itsenäisesti selvitettävä, kuinka Internet-yhteys tarkistetaan tietyn viestintäkanavan kautta.

Tyypillisesti käytetään komentosarjoja, jotka tietyn viestintäkanavan kautta tarkistavat IP-osoitteen saatavuuden Internetissä ja valitsevat jotain luotettavaa, esimerkiksi google dns: 8.8.8.8. 8.8.4.4. Mutta Mikrotik-yhteisössä tähän on mukautettu mielenkiintoisempi työkalu.

Muutama sana rekursiivisesta reitityksestä
Rekursiivinen reititys on välttämätön Multihop BGP peeringiä rakennettaessa ja staattisen reitityksen perusteita käsittelevään artikkeliin joutui vain ovelien MikroTik-käyttäjien ansiosta, jotka keksivät kuinka käyttää rekursiivisia reittejä pariksi check gatewayn kanssa kommunikaatiokanavien vaihtamiseen ilman lisäskriptejä.

On aika ymmärtää laajuus / kohdelaajuusvaihtoehdot yleisesti ja kuinka reitti on sidottu käyttöliittymään:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  1. Reitti etsii rajapinnan paketin lähettämiseksi sen laajuuden arvon ja kaikkien päätaulukon merkintöjen perusteella, joiden kohdealuearvot ovat pienempiä tai yhtä suuria
  2. Löydetyistä liitännöistä valitaan se, jonka kautta voit lähettää paketin määritettyyn yhdyskäytävään
  3. Löydetyn yhdistetyn tietueen liitäntä valitaan lähettämään paketti yhdyskäytävälle

Rekursiivisen reitin läsnä ollessa kaikki tapahtuu samalla tavalla, mutta kahdessa vaiheessa:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

  • 1-3 Yhdistetyille reiteille lisätään vielä yksi reitti, jonka kautta määritetty yhdyskäytävä voidaan saavuttaa
  • 4-6 Reitille yhdistetyn reitin etsiminen "välitason" yhdyskäytävälle

Kaikki manipulaatiot rekursiivisen haun kanssa tapahtuvat RIB:ssä ja vain lopputulos siirretään FIB:hen: 0.0.0.0/0 via 10.10.10.1 on ether1.

Esimerkki rekursiivisen reitityksen käyttämisestä reitin vaihtamiseen
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Kokoonpano:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Voit tarkistaa, että paketit lähetetään 10.10.10.1:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Check gateway ei tiedä mitään rekursiivisesta reitityksestä ja lähettää pingit 8.8.8.8:aan, joka (päätaulukon perusteella) on käytettävissä yhdyskäytävän 10.10.10.1 kautta.

Jos yhteys katkeaa 10.10.10.1 ja 8.8.8.8 välillä, reitti katkeaa, mutta paketit (mukaan lukien testipingit) kohtaan 8.8.8.8 kulkevat edelleen 10.10.10.1:n kautta:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Jos linkki ether1:een katoaa, syntyy epämiellyttävä tilanne, kun paketit ennen 8.8.8.8 kulkevat toisen tarjoajan kautta:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Tämä on ongelma, jos käytät NetWatchia komentosarjojen suorittamiseen, kun 8.8.8.8 ei ole saatavilla. Jos linkki katkeaa, NetWatch yksinkertaisesti toimii varaviestintäkanavan kautta ja olettaa, että kaikki on kunnossa. Ratkaistu lisäämällä ylimääräinen suodatinreitti:

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

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Siellä on habré artikkeli, jossa NetWatchin tilannetta tarkastellaan tarkemmin.

Ja kyllä, kun käytetään tällaista varausta, osoite 8.8.8.8 kytketään jollekin palveluntarjoajalle, joten sen valitseminen dns-lähteeksi ei ole hyvä idea.

Muutama sana virtuaalisesta reitityksestä ja edelleenlähetyksestä (VRF)

VRF-tekniikka on suunniteltu luomaan useita virtuaalisia reitittimiä yhdelle fyysiselle reitittimelle. Teleoperaattorit käyttävät tätä tekniikkaa laajasti (yleensä MPLS:n yhteydessä) tarjotakseen L3VPN-palveluita asiakkaille, joilla on päällekkäiset aliverkkoosoitteet:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Mutta VRF Mikrotikissa on järjestetty reititystaulukoiden perusteella ja sillä on useita haittoja, esimerkiksi reitittimen paikalliset IP-osoitteet ovat saatavilla kaikista VRF: istä, voit lukea lisää по ссылке.

Esimerkki vrf-kokoonpanosta:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Ether2:een yhdistetystä laitteesta näemme, että ping menee reitittimen osoitteeseen toisesta vrf:stä (ja tämä on ongelma), kun taas ping ei mene Internetiin:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Päästäksesi Internetiin, sinun on rekisteröitävä lisäreitti, joka käyttää päätaulukkoa (vrf-terminologiassa tätä kutsutaan reittivuotoksi):
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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

Tässä on kaksi tapaa vuotaa reittiä: käyttämällä reititystaulukkoa: 172.17.0.1@main ja käyttämällä käyttöliittymän nimeä: 172.17.0.1%wlan1.

Ja aseta merkinnät paluuliikenteelle [PREROUTING|Mangle]:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

/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 

Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Aliverkot, joilla on sama osoite
Pääsyn järjestäminen aliverkkoihin, joilla on sama osoite samalla reitittimellä VRF:n ja verkkokartan avulla:
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

Peruskokoonpano:

/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

palomuurisäännöt:

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

Paluuliikenteen reitityssäännöt:

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

dhcp:n kautta vastaanotettujen reittien lisääminen annettuun reititystaulukkoon
VRF voi olla mielenkiintoinen, jos sinun on lisättävä automaattisesti dynaaminen reitti (esimerkiksi dhcp-asiakasohjelmasta) tiettyyn reititystaulukkoon.

Käyttöliittymän lisääminen vrf:ään:

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

Säännöt liikenteen (lähtevän ja kauttakulkuliikenteen) lähettämiseksi taulukon kautta over-isp1:

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

Ylimääräinen, väärennetty reitti töihin lähtevälle reitille:

/interface bridge
add name=bare

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

Tätä reittiä tarvitaan vain, jotta paikalliset lähtevät paketit voivat kulkea reitityspäätöksen (2) läpi ennen [OUTPUT|Mangle] ja hanki reititysnimike, jos reitittimessä on muita aktiivisia reittejä ennen päätaulukon 0.0.0.0/0:aa, sitä ei vaadita.
Staattisen reitityksen perusteet Mikrotik RouterOS:ssä

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

Reittien suodatus (saapuva ja lähtevä) on työkalu, jota käytetään yleensä dynaamisten reititysprotokollien yhteydessä (ja siksi se on käytettävissä vain paketin asennuksen jälkeen reititys), mutta saapuvissa suodattimissa on kaksi mielenkiintoista ketjua:

  • connect-in — yhdistettyjen reittien suodatus
  • dynaaminen sisään - PPP:n ja DCHP:n vastaanottamien dynaamisten reittien suodatus

Suodattamisen avulla voit paitsi hylätä reittejä, myös muuttaa useita vaihtoehtoja: etäisyys, reititysmerkki, kommentti, laajuus, kohdealue, ...

Tämä on erittäin tarkka työkalu, ja jos voit tehdä jotain ilman reitityssuodattimia (mutta ei skriptejä), älä käytä reitityssuodattimia, älä sekoita itseäsi ja niitä, jotka määrittävät reitittimen jälkeensi. Dynaamisen reitityksen yhteydessä Routing Filters -suodattimia käytetään paljon useammin ja tuottavammin.

Reittimerkin asettaminen dynaamisille reiteille
Esimerkki kotireitittimestä. Minulla on kaksi VPN-yhteyttä määritettynä ja niiden liikenne tulee kääriä reititystaulukoiden mukaisesti. Samalla haluan, että reitit luodaan automaattisesti, kun käyttöliittymä aktivoidaan:

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

En tiedä miksi, luultavasti bugi, mutta jos luot vrf:n ppp-rajapinnalle, reitti 0.0.0.0/0:aan pääsee silti päätaulukkoon. Muuten kaikki olisi vielä helpompaa.

Yhdistettyjen reittien poistaminen käytöstä
Joskus tämä vaaditaan:

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

Virheenkorjaustyökalut

RouterOS tarjoaa useita työkaluja reitityksen virheenkorjaukseen:

  • [Tool]->[Tourch] - voit tarkastella paketteja rajapinnoissa
  • /ip route check - voit nähdä mihin yhdyskäytävään paketti lähetetään, ei toimi reititystaulukoiden kanssa
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - ping ja jäljitys käyttämällä määritettyä reititystaulukkoa
  • action=log в [IP]->[Firewall] - erinomainen työkalu, jonka avulla voit jäljittää paketin polun pakettivirtaa pitkin, tämä toiminto on käytettävissä kaikissa ketjuissa ja taulukoissa

Lähde: will.com

Lisää kommentti