Multivan ja reititys Mikrotik RouterOS:ssä

Esittely

Artikkelin omaksumisen aiheutti turhamaisuuden lisäksi tätä aihetta koskevien kysymysten masentava tiheys venäjänkielisen sähkeyhteisön profiiliryhmissä. Artikkeli on suunnattu aloitteleville Mikrotik RouterOS:n (jäljempänä ROS) ylläpitäjille. Se käsittelee vain multivan, painottaen reititystä. Bonuksena asetukset ovat minimaalisesti riittävät varmistamaan turvallisen ja mukavan käytön. Ne, jotka etsivät paljastamista aiheista jonoista, kuormituksen tasapainotuksesta, vlaneista, silloista, monivaiheisesta syväanalyysistä kanavan tilasta ja vastaavista - eivät välttämättä tuhlaa aikaa ja vaivaa lukemiseen.

Raakatiedot

Koekohteeksi valittiin viisiporttinen Mikrotik-reititin ROS-versiolla 6.45.3. Se reitittää liikenteen kahden paikallisverkon (LAN1 ja LAN2) ja kolmen palveluntarjoajan (ISP1, ISP2, ISP3) välillä. Kanavalla ISP1:lle on staattinen "harmaa" osoite, ISP2 - "valkoinen", saatu DHCP:n kautta, ISP3 - "valkoinen" PPPoE-valtuuksella. Kytkentäkaavio näkyy kuvassa:

Multivan ja reititys Mikrotik RouterOS:ssä

Tehtävänä on konfiguroida MTK-reititin kaavion perusteella siten, että:

  1. Tarjoa automaattinen vaihto varmuuskopion tarjoajalle. Päätoimittaja on ISP2, ensimmäinen reservi on ISP1, toinen reservi on ISP3.
  2. Järjestä LAN1-verkkoyhteys Internetiin vain ISP1:n kautta.
  3. Tarjoa mahdollisuus reitittää liikennettä paikallisista verkoista Internetiin valitun palveluntarjoajan kautta osoiteluettelon perusteella.
  4. Tarjoa mahdollisuus julkaista palveluita paikallisverkosta Internetiin (DSTNAT)
  5. Aseta palomuurisuodatin tarjoamaan riittävän vähimmäissuojaus Internetistä.
  6. Reititin voi välittää omaa liikennettä minkä tahansa kolmen palveluntarjoajan kautta valitusta lähdeosoitteesta riippuen.
  7. Varmista, että vastauspaketit reititetään kanavalle, josta ne tulivat (mukaan lukien LAN).

Huom. Konfiguroimme reitittimen "tyhjästä" varmistaaksemme, ettei yllätyksiä esiinny versiosta toiseen vaihtuvissa "out of the box" -aloituskokoonpanoissa. Winbox valittiin konfigurointityökaluksi, jossa muutokset näkyvät visuaalisesti. Itse asetukset asetetaan Winbox-päätteen komennoilla. Konfiguroinnin fyysinen yhteys tehdään suoralla yhteydellä Ether5-liitäntään.

Hieman pohdiskelua siitä, mikä multivan on, onko se ongelma vai ovatko ovelat älykkäät ihmiset kutomassa salaliittoverkostoja

Utelias ja tarkkaavainen ylläpitäjä, joka perustaa tällaisen tai vastaavan järjestelmän itse, huomaa yhtäkkiä, että se toimii jo normaalisti. Kyllä, kyllä, ilman mukautettuja reititystaulukoita ja muita reittisääntöjä, joita useimmat tätä aihetta käsittelevät artikkelit ovat täynnä. Tarkistetaanko?

Voimmeko määrittää liitäntöjen ja oletusyhdyskäytävien osoitteet? Joo:

ISP1:ssä osoite ja yhdyskäytävä rekisteröitiin etäisyys = 2 и check-gateway=ping.
ISP2:lla oletusarvoinen dhcp-asiakasasetus - vastaavasti etäisyys on yksi.
ISP3:ssa pppoe-asiakasasetuksissa, kun add-default-route=yes laittaa oletusreitin-etäisyys=3.

Älä unohda rekisteröidä NAT poistuttaessa:

/ip palomuuri nat add action=masquerade chain=srcnat out-interface-list=WAN

Tämän seurauksena paikallisten sivustojen käyttäjillä on hauskaa ladata kissoja tärkeimmän ISP2-palveluntarjoajan kautta ja kanavavaraus tapahtuu mekanismin avulla. tarkista yhdyskäytävä Katso huomautus 1

Tehtävän kohta 1 on toteutettu. Missä on multivan merkeineen? Ei…

Edelleen. Sinun on vapautettava tietyt asiakkaat lähiverkosta ISP1:n kautta:

/ip firewall mangle add action=reittiketju=esireititys dst-address-list=!BOGONS
passthrough=yes route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall mangle add action=reittiketju=esireititys dst-address-list=!BOGONS
passthrough=ei reittiä-dst=100.66.66.1 src-address=192.168.88.0/24

Tehtävän kohdat 2 ja 3 on toteutettu. Tarrat, leimat, reittisäännöt, missä olet?!

Haluatko antaa Internet-asiakkaille pääsyn suosikki OpenVPN-palvelimellesi osoitteella 172.17.17.17? Ole kiltti:

/ip-pilvisarja ddns-enabled=yes

Vertaiskumppanina annamme asiakkaalle tulostuloksen: ":put [ip cloud get dns-name]"

Rekisteröimme porttiohjauksen Internetistä:

/ip palomuuri nat add action=dst-nat chain=dstnat dst-port=1194
in-interface-list=WAN-protokolla=udp to-addresses=172.17.17.17

Kohta 4 on valmis.

Asennamme palomuurin ja muun suojauksen kohtaan 5, samalla iloitsemme, että kaikki toimii jo käyttäjille ja kurkotaan astiaan, jossa on suosikkijuoma...
A! Tunnelit unohdetaan.

l2tp-client, google-artikkelin määrittämä, on noussut suosikkisi hollantilaiseksi VDS:ksi? Joo.
l2tp-palvelin IPsecillä on noussut ja IP Cloudin DNS-nimen asiakkaat (katso yllä.) takertuvat? Joo.
Nojaten tuolissamme, siemaillen juomaa, pohdimme laiskasti tehtävän kohtia 6 ja 7. Ajattelemme - tarvitsemmeko sitä? Se toimii kuitenkin näin (c) ... Joten jos sitä ei vieläkään tarvita, niin siinä se. Multivan toteutettu.

Mikä on multivan? Tämä on useiden Internet-kanavien yhdistäminen yhteen reitittimeen.

Sinun ei tarvitse lukea artikkelia pidemmälle, sillä mitä muuta siinä voi olla kuin kyseenalaisen soveltuvuuden esittely?

Jäljelle jääville, jotka ovat kiinnostuneita tehtävän kohdista 6 ja 7 ja tuntevat myös perfektionismin kutinaa, sukeltamme syvemmälle.

Multivan toteuttamisen tärkein tehtävä on oikea liikenteen reititys. Nimittäin: riippumatta siitä, mikä (tai mikä) Katso. Huomautus 3 Internet-palveluntarjoajan kanava(t) katsovat reitittimemme oletusreittiä, sen pitäisi palauttaa vastaus täsmälleen samalle kanavalle, josta paketti tuli. Tehtävä on selvä. Missä on ongelma? Todellakin, yksinkertaisessa paikallisessa verkossa tehtävä on sama, mutta kukaan ei vaivaudu lisäasetuksiin eikä tunne ongelmia. Erona on se, että mihin tahansa Internetin reitittävään solmuun pääsee jokaisen kanavamme kautta, ei tiukasti tietyn kanavan kautta, kuten yksinkertaisessa lähiverkossa. Ja "ongelmana" on, että jos meille tuli pyyntö ISP3:n IP-osoitteesta, niin meidän tapauksessamme vastaus menee ISP2-kanavan kautta, koska oletusyhdyskäytävä on suunnattu sinne. Palveluntarjoaja hylkää ne virheellisenä. Ongelma on tunnistettu. Miten se ratkaistaan?

Ratkaisu on jaettu kolmeen vaiheeseen:

  1. Esiasetus. Tässä vaiheessa asetetaan reitittimen perusasetukset: paikallinen verkko, palomuuri, osoiteluettelot, hiusneula-NAT jne.
  2. Multivan. Tässä vaiheessa tarvittavat yhteydet merkitään ja lajitellaan reititystaulukoihin.
  3. Yhteyden muodostaminen ISP:hen. Tässä vaiheessa konfiguroidaan ne liitännät, jotka tarjoavat yhteyden Internetiin, reititys ja Internet-kanavan varausmekanismi aktivoidaan.

1. Esiasetus

1.1. Tyhjennämme reitittimen asetukset komennolla:

/system reset-configuration skip-backup=yes no-defaults=yes

samaa mieltä "Vaarallista! Nollataanko silti? [y/N]:” ja uudelleenkäynnistyksen jälkeen muodostamme yhteyden Winboxiin MAC:n kautta. Tässä vaiheessa kokoonpano ja käyttäjäkunta tyhjennetään.

1.2. Luo uusi käyttäjä:

/user add group=full name=knight password=ultrasecret comment=”Not horse”

kirjaudu sisään sen alle ja poista oletus:

/user remove admin

Huom. Kirjoittaja pitää turvallisempaa ja suosittelee käytettäväksi oletuskäyttäjän poistamista eikä poistamista käytöstä.

1.3. Luomme peruskäyttöliittymäluetteloita palomuurin, etsintäasetuksien ja muiden MAC-palvelimien käytön helpottamiseksi:

/interface list add name=WAN comment="For Internet"
/interface list add name=LAN comment="For Local Area"

Allekirjoitusliittymät kommenteilla

/interface ethernet set ether1 comment="to ISP1"
/interface ethernet set ether2 comment="to ISP2"
/interface ethernet set ether3 comment="to ISP3"
/interface ethernet set ether4 comment="to LAN1"
/interface ethernet set ether5 comment="to LAN2"

ja täytä käyttöliittymäluettelot:

/interface list member add interface=ether1 list=WAN comment=ISP1
/interface list member add interface=ether2 list=WAN comment=ISP2 
/interface list member add interface=ether3 list=WAN comment="to ISP3"
/interface list member add interface=ether4 list=LAN  comment="LAN1"
/interface list member add interface=ether5 list=LAN  comment="LAN2"

Huom. Ymmärrettävien kommenttien kirjoittaminen on tähän käytetyn ajan arvoista, ja se helpottaa huomattavasti vianmääritystä ja kokoonpanon ymmärtämistä.

Kirjoittaja pitää turvallisuussyistä tarpeellisena lisätä ether3-rajapinta “WAN”-liitäntäluetteloon huolimatta siitä, että ip-protokolla ei mene sen läpi.

Älä unohda, että kun PPP-liitäntä on nostettu ether3:ssa, se on myös lisättävä liitäntäluetteloon "WAN".

1.4. Piilotamme reitittimen naapuruston havaitsemiselta ja ohjaukselta palveluntarjoajan verkoilta MAC:n kautta:

/ip neighbor discovery-settings set discover-interface-list=!WAN
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN

1.5. Luomme vähimmäismäärän palomuurisuodatinsääntöjä reitittimen suojaamiseksi:

/ip firewall filter add action=accept chain=input comment="Related Established Untracked Allow" 
connection-state=established,related,untracked

(sääntö antaa luvan muodostetuille ja niihin liittyville yhteyksille, jotka on aloitettu sekä yhdistetyistä verkoista että itse reitittimestä)

/ip firewall filter add action=accept chain=input comment="ICMP from ALL" protocol=icmp

(ping eikä vain ping. Kaikki icmp ovat sallittuja. Erittäin hyödyllinen MTU-ongelmien etsimiseen)

/ip firewall filter add action=drop chain=input comment="All other WAN Drop" in-interface-list=WAN

(syöttöketjun sulkeva sääntö kieltää kaiken muun Internetistä tulevan)

/ip firewall filter add action=accept chain=forward 
comment="Established, Related, Untracked allow" 
connection-state=established,related,untracked

(sääntö sallii muodostetut ja liittyvät yhteydet, jotka kulkevat reitittimen läpi)

/ip firewall filter add action=drop chain=forward comment="Invalid drop" connection-state=invalid

(sääntö nollaa reitittimen läpi kulkevat yhteydet, joiden yhteystila on connection-state=invalid. Mikrotik suosittelee sitä vahvasti, mutta joissain harvinaisissa tilanteissa se voi estää hyödyllisen liikenteen)

/ip firewall filter add action=drop chain=forward comment="Drop all from WAN not DSTNATed"  
connection-nat-state=!dstnat connection-state=new in-interface-list=WAN

(sääntö kieltää paketteja, jotka tulevat Internetistä ja jotka eivät ole läpäisseet dstnat-menettelyä, kulkemasta reitittimen läpi. Tämä suojaa paikallisia verkkoja tunkeilijoilta, jotka ollessaan samassa lähetysalueella ulkoisten verkkojemme kanssa rekisteröivät ulkoiset IP-osoitteemme yhdyskäytävää ja yritä siten "tutkia" paikallisia verkkojamme.)

Huom. Oletetaan, että verkot LAN1 ja LAN2 ovat luotettavia ja niiden välistä ja niistä tulevaa liikennettä ei suodateta.

1.6. Luo luettelo ei-reitittävistä verkoista:

/ip firewall address-list
add address=0.0.0.0/8 comment=""This" Network" list=BOGONS
add address=10.0.0.0/8 comment="Private-Use Networks" list=BOGONS
add address=100.64.0.0/10 comment="Shared Address Space. RFC 6598" list=BOGONS
add address=127.0.0.0/8 comment=Loopback list=BOGONS
add address=169.254.0.0/16 comment="Link Local" list=BOGONS
add address=172.16.0.0/12 comment="Private-Use Networks" list=BOGONS
add address=192.0.0.0/24 comment="IETF Protocol Assignments" list=BOGONS
add address=192.0.2.0/24 comment=TEST-NET-1 list=BOGONS
add address=192.168.0.0/16 comment="Private-Use Networks" list=BOGONS
add address=198.18.0.0/15 comment="Network Interconnect Device Benchmark Testing"
 list=BOGONS
add address=198.51.100.0/24 comment=TEST-NET-2 list=BOGONS
add address=203.0.113.0/24 comment=TEST-NET-3 list=BOGONS
add address=224.0.0.0/4 comment=Multicast list=BOGONS
add address=192.88.99.0/24 comment="6to4 Relay Anycast" list=BOGONS
add address=240.0.0.0/4 comment="Reserved for Future Use" list=BOGONS
add address=255.255.255.255 comment="Limited Broadcast" list=BOGONS

(Tämä on luettelo osoitteista ja verkoista, joita ei voida reitittää Internetiin, ja niitä seurataan vastaavasti.)

Huom. Luettelo voi muuttua, joten suosittelen tarkistamaan asianmukaisuuden säännöllisesti.

1.7. Määritä DNS itse reitittimelle:

/ip dns set servers=1.1.1.1,8.8.8.8

Huom. Nykyisessä ROS-versiossa dynaamiset palvelimet ovat staattisten palvelimien edelle. Nimenselvityspyyntö lähetetään luettelon ensimmäiselle palvelimelle. Siirtyminen seuraavalle palvelimelle suoritetaan, kun nykyinen ei ole käytettävissä. Aikakatkaisu on suuri - yli 5 sekuntia. Palaaminen takaisin, kun "pudonnutta palvelinta" jatketaan, ei tapahdu automaattisesti. Ottaen huomioon tämän algoritmin ja moniauton olemassaolon, kirjoittaja suosittelee, että palveluntarjoajien tarjoamia palvelimia ei käytetä.

1.8. Aseta paikallinen verkko.
1.8.1. Määritämme staattiset IP-osoitteet LAN-liitäntöihin:

/ip address add interface=ether4 address=192.168.88.254/24 comment="LAN1 IP"
/ip address add interface=ether5 address=172.16.1.0/23 comment="LAN2 IP"

1.8.2. Asetamme säännöt reiteille paikallisverkkoihimme pääreititystaulukon kautta:

/ip route rule add dst-address=192.168.88.0/24 table=main comment=”to LAN1”
/ip route rule add dst-address=172.16.0.0/23 table=main comment="to LAN2"

Huom. Tämä on yksi nopeista ja helpoista tavoista päästä käsiksi LAN-osoitteisiin reitittimen liitäntöjen ulkoisten IP-osoitteiden lähteillä, jotka eivät kulje oletusreitin kautta.

1.8.3. Ota Hiusneula NAT käyttöön LAN1:lle ja LAN2:lle:

/ip firewall nat add action=src-nat chain=srcnat comment="Hairpin to LAN1" 
out-interface=ether4 src-address=192.168.88.0/24 to-addresses=192.168.88.254
/ip firewall nat add action=src-nat chain=srcnat comment="Hairpin to LAN2" 
out-interface=ether5 src-address=172.16.0.0/23 to-addresses=172.16.1.0

Huom. Tämän avulla voit käyttää resurssejasi (dstnat) ulkoisen IP:n kautta ollessasi verkon sisällä.

2. Itse asiassa erittäin oikean multivanin toteutus

Käytämme kahta ROS-työkalua ratkaistaksemme ongelman "vastaamalla, mistä he kysyivät": liitäntämerkki и reititysmerkki. liitäntämerkki voit merkitä halutun yhteyden ja sitten käyttää tätä merkkiä hakemuksen ehtona reititysmerkki. Ja jo kanssa reititysmerkki mahdollista työskennellä IP-reitti и reittisäännöt. Selvitimme työkalut, nyt sinun on päätettävä mitkä liitännät merkitään - kerran, tarkalleen mihin merkitä - kaksi.

Ensimmäisen kanssa kaikki on yksinkertaista - meidän on merkittävä kaikki yhteydet, jotka tulevat reitittimeen Internetistä sopivan kanavan kautta. Meidän tapauksessamme nämä ovat kolme tunnistetta (kanavien lukumäärän mukaan): "conn_isp1", "conn_isp2" ja "conn_isp3".

Toisen vivahteena on, että saapuvia yhteyksiä on kahta tyyppiä: kauttakulku ja ne, jotka on tarkoitettu itse reitittimelle. Liitäntämerkkimekanismi toimii taulukossa mankeli. Harkitse pakkauksen liikettä yksinkertaistetussa kaaviossa, jonka ovat ystävällisesti koonneet mikrotik-trainings.com-resurssin asiantuntijat (ei mainonta):

Multivan ja reititys Mikrotik RouterOS:ssä

Seuraamalla nuolia näemme, että paketti saapuu "input-liitäntä", kulkee ketjun läpi"Esireititys"ja vasta sitten se jaetaan lohkossa transit- ja paikallisiin"Reitityspäätös". Siksi käytämme tappaaksemme kaksi kärpästä yhdellä iskulla Yhteysmerkki taulukossa Mangle esireititys ketjut Esireititys.

huomautus. ROS:ssa "Reittimerkki" -tarrat on lueteltu "taulukkona" Ip/Routes/Rules -osiossa ja "Reittimerkkinä" muissa osioissa. Tämä saattaa aiheuttaa hämmennystä ymmärrykseen, mutta itse asiassa tämä on sama asia ja on analogi rt_tablesille iproute2:ssa Linuxissa.

2.1. Merkitsemme saapuvat yhteydet jokaiselta palveluntarjoajalta:

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP1" connection-mark=no-mark in-interface=ether1  new-connection-mark=conn_isp1 passthrough=no

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP2" connection-mark=no-mark in-interface=ether2  new-connection-mark=conn_isp2 passthrough=no

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP3" connection-mark=no-mark in-interface=pppoe-isp3  new-connection-mark=conn_isp3 passthrough=no

Huom. Jotta en merkitse jo merkittyjä yhteyksiä, käytän ehtoa connection-mark=no-mark ehto connection-state=new sijaan, koska tämä on mielestäni oikeampi, samoin kuin virheellisten kytkentöjen hylkäämistä tulosuodattimessa.


passthrough=no - koska tässä toteutustavassa uudelleen merkitseminen on poissuljettu ja nopeuttamiseksi voit keskeyttää sääntöjen luettelon ensimmäisen ottelun jälkeen.

On syytä muistaa, että emme vielä puutu reitittämiseen millään tavalla. Nyt on vain valmisteluvaiheita. Toteutuksen seuraava vaihe on siirtoliikenteen käsittely, joka palaa muodostetun yhteyden kautta kohteesta paikallisessa verkossa. Nuo. ne paketit, jotka (katso kaavio) kulkivat reitittimen läpi matkan varrella:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” ja pääsi vastaanottajalleen paikallisessa verkossa.

Tärkeää! ROS:ssä ei ole loogista jakoa ulkoisiin ja sisäisiin rajapintoihin. Jos jäljitämme vastauspaketin polun yllä olevan kaavion mukaisesti, se seuraa samaa loogista polkua kuin pyyntö:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” vain pyynnöstä"Input-liitäntä” oli ISP-liitäntä, ja vastaukseksi - LAN

2.2. Ohjaamme vastauksen kauttakulkuliikenteen vastaaviin reititystaulukoihin:

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP1" connection-mark=conn_isp1 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp1 passthrough=no

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP2" connection-mark=conn_isp2 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp2 passthrough=no

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP3" connection-mark=conn_isp3 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp3 passthrough=no

Kommentti. in-interface-list=!WAN - työskentelemme vain paikallisverkon ja dst-address-type=!local-liikenteen kanssa, jolla ei ole itse reitittimen liitäntöjen osoitteen kohdeosoitetta.

Sama koskee paikallisia paketteja, jotka saapuivat reitittimeen matkan varrella:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Input”=>”Paikallinen prosessi”

Tärkeää! Vastaus menee seuraavalla tavalla:

”Local Process”=>”Routing Decision”=>”Output”=>”Post Routing”=>”Output Interface”

2.3. Ohjaamme paikallisen liikenteen vastaaviin reititystaulukoihin:

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP1" connection-mark=conn_isp1 dst-address-type=!local 
new-routing-mark=to_isp1 passthrough=no

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP2" connection-mark=conn_isp2 dst-address-type=!local 
new-routing-mark=to_isp2 passthrough=no

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP3" connection-mark=conn_isp3 dst-address-type=!local 
new-routing-mark=to_isp3 passthrough=no

Tässä vaiheessa voidaan katsoa ratkaistuksi tehtävän valmistautua lähettämään vastaus Internet-kanavalle, josta pyyntö tuli. Kaikki on merkitty, merkitty ja valmis reititettäviksi.
Tämän asennuksen erinomainen "sivuvaikutus" on kyky työskennellä DSNAT-portin edelleenohjauksen kanssa molemmilta (ISP2, ISP3) palveluntarjoajilta samanaikaisesti. Ei ollenkaan, koska ISP1:ssä meillä on ei-reititettävissä oleva osoite. Tämä vaikutus on tärkeä esimerkiksi sähköpostipalvelimelle, jossa on kaksi MX:ää, jotka katsovat eri Internet-kanavia.

Poistaaksemme paikallisten verkkojen toiminnan vivahteet ulkoisilla IP-reitittimillä käytämme kappaleiden ratkaisuja. 1.8.2 ja 3.1.2.6.

Lisäksi voit käyttää merkinnöillä varustettua työkalua ratkaistaksesi tehtävän kohdan 3. Toteutamme sen näin:

2.4. Ohjaamme liikenteen paikallisilta asiakkailta reititysluetteloista sopiviin taulukoihin:

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP1" dst-address-list=!BOGONS new-routing-mark=to_isp1 
passthrough=no src-address-list=Via_ISP1

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP2" dst-address-list=!BOGONS new-routing-mark=to_isp2 
passthrough=no src-address-list=Via_ISP2

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP3" dst-address-list=!BOGONS new-routing-mark=to_isp3 
passthrough=no src-address-list=Via_ISP3

Tämän seurauksena se näyttää tältä:

Multivan ja reititys Mikrotik RouterOS:ssä

3. Muodosta yhteys Internet-palveluntarjoajaan ja ota käyttöön merkkireititys

3.1. Muodosta yhteys ISP1:een:
3.1.1. Määritä staattinen IP-osoite:

/ip address add interface=ether1 address=100.66.66.2/30 comment="ISP1 IP"

3.1.2. Aseta staattinen reititys:
3.1.2.1. Lisää oletusarvoinen hätäreitti:

/ip route add comment="Emergency route" distance=254 type=blackhole

Huom. Tämä reitti sallii paikallisten prosessien liikenteen läpäistä reittipäätösvaiheen riippumatta palveluntarjoajien linkkien tilasta. Lähtevän paikallisliikenteen vivahteena on, että jotta paketti voisi liikkua ainakin jonnekin, pääreititystaulukossa on oltava aktiivinen reitti oletusyhdyskäytävään. Jos ei, paketti yksinkertaisesti tuhoutuu.

Työkalun laajennukseksi tarkista yhdyskäytävä Kanavan tilan syvempään analysointiin suosittelen rekursiivisen reittimenetelmän käyttöä. Menetelmän ydin on, että käskemme reititintä etsimään polkua yhdyskäytävälleen ei suoraan, vaan väliyhdyskäytävän kautta. 4.2.2.1, 4.2.2.2 ja 4.2.2.3 valitaan sellaisiksi "testi"-yhdyskäytäviksi ISP1:lle, ISP2:lle ja ISP3:lle.

3.1.2.2. Reitti "vahvistus"-osoitteeseen:

/ip route add check-gateway=ping comment="For recursion via ISP1"  
distance=1 dst-address=4.2.2.1 gateway=100.66.66.1 scope=10

Huom. Alennamme laajuuden arvon oletusarvoon ROS-kohdealueella, jotta voimme käyttää 4.2.2.1:tä rekursiivisena yhdyskäytävänä tulevaisuudessa. Korostan: "testi"-osoitteeseen johtavan reitin laajuuden on oltava pienempi tai yhtä suuri kuin testiosoitteeseen viittaavan reitin kohdealue.

3.1.2.3. Rekursiivinen oletusreitti liikenteelle ilman reititysmerkkiä:

/ip route add comment="Unmarked via ISP1" distance=2 gateway=4.2.2.1

Huom. Etäisyys=2-arvoa käytetään, koska ISP1 on ilmoitettu ensimmäiseksi varmuuskopioksi tehtäväehtojen mukaan.

3.1.2.4. Rekursiivinen oletusreitti liikenteelle reititysmerkinnällä "to_isp1":

/ip route add comment="Marked via ISP1 Main" distance=1 gateway=4.2.2.1 
routing-mark=to_isp1

Huom. Itse asiassa alamme vihdoin nauttia kohdassa 2 tehdyn valmistelutyön hedelmistä.


Tällä reitillä kaikki liikenne, jolla on merkintä reitti "to_isp1", ohjataan ensimmäisen palveluntarjoajan yhdyskäytävään riippumatta siitä, mikä oletusyhdyskäytävä on tällä hetkellä aktiivinen päätaulukolle.

3.1.2.5. Ensimmäinen vararekursiivinen oletusreitti ISP2- ja ISP3-merkitylle liikenteelle:

/ip route add comment="Marked via ISP2 Backup1" distance=2 gateway=4.2.2.1 
routing-mark=to_isp2
/ip route add comment="Marked via ISP3 Backup1" distance=2 gateway=4.2.2.1 
routing-mark=to_isp3

Huom. Näitä reittejä tarvitaan muun muassa liikenteen varaamiseen paikallisista verkoista, jotka ovat osoiteluettelon "to_isp*" jäseniä.

3.1.2.6. Rekisteröimme reitin reitittimen paikalliselle liikenteelle Internetiin ISP1:n kautta:

/ip route rule add comment="From ISP1 IP to Inet" src-address=100.66.66.2 table=to_isp1

Huom. Yhdessä kappaleen 1.8.2 sääntöjen kanssa se tarjoaa pääsyn haluttuun kanavaan tietyllä lähteellä. Tämä on tärkeää tunneleiden rakentamisessa, jotka määrittävät paikallisen IP-osoitteen (EoIP, IP-IP, GRE). Koska ip-reitityssääntöjen säännöt suoritetaan ylhäältä alas, ehtojen ensimmäiseen täsmäämiseen asti, tämän säännön tulisi olla kohdan 1.8.2 sääntöjen jälkeen.

3.1.3. Rekisteröimme NAT-säännön lähtevälle liikenteelle:

/ip firewall nat add action=src-nat chain=srcnat comment="NAT via ISP1"  
ipsec-policy=out,none out-interface=ether1 to-addresses=100.66.66.2

Huom. NATim kaikki, mikä sammuu, paitsi se, mikä menee IPsec-käytäntöihin. Yritän olla käyttämättä action=masqueradea, ellei se ole ehdottoman välttämätöntä. Se on hitaampi ja resurssiintensiivisempi kuin src-nat, koska se laskee NAT-osoitteen jokaiselle uudelle yhteydelle.

3.1.4. Lähetämme luettelosta asiakkaat, joiden pääsy muiden palveluntarjoajien kautta on kielletty, suoraan ISP1-palveluntarjoajan yhdyskäytävään.

/ip firewall mangle add action=route chain=prerouting comment="Address List via ISP1 only" 
dst-address-list=!BOGONS passthrough=no route-dst=100.66.66.1 
src-address-list=Via_only_ISP1 place-before=0

Huom. action=route on korkeampi prioriteetti, ja sitä sovelletaan ennen muita reitityssääntöjä.


place-befor=0 - asettaa sääntömme ensimmäiseksi luettelossa.

3.2. Muodosta yhteys ISP2:een.

Koska ISP2-palveluntarjoaja antaa meille asetukset DHCP:n kautta, on järkevää tehdä tarvittavat muutokset komentosarjalla, joka käynnistyy, kun DHCP-asiakasohjelma käynnistyy:

/ip dhcp-client
add add-default-route=no disabled=no interface=ether2 script=":if ($bound=1) do={r
    n    /ip route add check-gateway=ping comment="For recursion via ISP2" distance=1 
           dst-address=4.2.2.2/32 gateway=$"gateway-address" scope=10r
    n    /ip route add comment="Unmarked via ISP2" distance=1 gateway=4.2.2.2;r
    n    /ip route add comment="Marked via ISP2 Main" distance=1 gateway=4.2.2.2 
           routing-mark=to_isp2;r
    n    /ip route add comment="Marked via ISP1 Backup1" distance=2 gateway=4.2.2.2 
           routing-mark=to_isp1;r
    n    /ip route add comment="Marked via ISP3 Backup2" distance=3 gateway=4.2.2.2 
           routing-mark=to_isp3;r
    n    /ip firewall nat add action=src-nat chain=srcnat ipsec-policy=out,none 
           out-interface=$"interface" to-addresses=$"lease-address" comment="NAT via ISP2" 
           place-before=1;r
    n    if ([/ip route rule find comment="From ISP2 IP to Inet"] ="") do={r
    n        /ip route rule add comment="From ISP2 IP to Inet" 
               src-address=$"lease-address" table=to_isp2 r
    n    } else={r
    n       /ip route rule set [find comment="From ISP2 IP to Inet"] disabled=no 
              src-address=$"lease-address"r
    n    }      r
    n} else={r
    n   /ip firewall nat remove  [find comment="NAT via ISP2"];r
    n   /ip route remove [find comment="For recursion via ISP2"];r
    n   /ip route remove [find comment="Unmarked via ISP2"];r
    n   /ip route remove [find comment="Marked via ISP2 Main"];r
    n   /ip route remove [find comment="Marked via ISP1 Backup1"];r
    n   /ip route remove [find comment="Marked via ISP3 Backup2"];r
    n   /ip route rule set [find comment="From ISP2 IP to Inet"] disabled=yesr
    n}r
    n" use-peer-dns=no use-peer-ntp=no

Itse komentosarja Winbox-ikkunassa:

Multivan ja reititys Mikrotik RouterOS:ssä
Huom. Skriptin ensimmäinen osa käynnistyy, kun vuokrasopimus on saatu onnistuneesti, toinen - vuokrasopimuksen vapauttamisen jälkeen.Katso huomautus 2

3.3. Muodosimme yhteyden ISP3-palveluntarjoajaan.

Koska asetusten toimittaja antaa meille dynaamisen, on järkevää tehdä tarvittavat muutokset skripteillä, jotka alkavat ppp-rajapinnan nostamisen jälkeen ja syksyn jälkeen.

3.3.1. Ensin määritämme profiilin:

/ppp profile
add comment="for PPPoE to ISP3" interface-list=WAN name=isp3_client 
on-down="/ip firewall nat remove  [find comment="NAT via ISP3"];r
    n/ip route remove [find comment="For recursion via ISP3"];r
    n/ip route remove [find comment="Unmarked via ISP3"];r
    n/ip route remove [find comment="Marked via ISP3 Main"];r
    n/ip route remove [find comment="Marked via ISP1 Backup2"];r
    n/ip route remove [find comment="Marked via ISP2 Backup2"];r
    n/ip route rule set [find comment="From ISP3 IP to Inet"] disabled=yes;" 
on-up="/ip route add check-gateway=ping comment="For recursion via ISP3" distance=1 
    dst-address=4.2.2.3/32 gateway=$"remote-address" scope=10r
    n/ip route add comment="Unmarked via ISP3" distance=3 gateway=4.2.2.3;r
    n/ip route add comment="Marked via ISP3 Main" distance=1 gateway=4.2.2.3 
    routing-mark=to_isp3;r
    n/ip route add comment="Marked via ISP1 Backup2" distance=3 gateway=4.2.2.3 
    routing-mark=to_isp1;r
    n/ip route add comment="Marked via ISP2 Backup2" distance=3 gateway=4.2.2.3 
    routing-mark=to_isp2;r
    n/ip firewall mangle set [find comment="Connmark in from ISP3"] 
    in-interface=$"interface";r
    n/ip firewall nat add action=src-nat chain=srcnat ipsec-policy=out,none 
    out-interface=$"interface" to-addresses=$"local-address" comment="NAT via ISP3" 
    place-before=1;r
    nif ([/ip route rule find comment="From ISP3 IP to Inet"] ="") do={r
    n   /ip route rule add comment="From ISP3 IP to Inet" src-address=$"local-address" 
    table=to_isp3 r
    n} else={r
    n   /ip route rule set [find comment="From ISP3 IP to Inet"] disabled=no 
    src-address=$"local-address"r
    n};r
    n"

Itse komentosarja Winbox-ikkunassa:

Multivan ja reititys Mikrotik RouterOS:ssä
Huom. Linja
/ip palomuuri mangle set [find comment="Connmark in from ISP3"] in-interface=$"liitäntä";
avulla voit käsitellä käyttöliittymän uudelleennimeämisen oikein, koska se toimii sen koodin eikä näyttönimen kanssa.

3.3.2. Luo nyt ppp-yhteys profiilin avulla:

/interface pppoe-client add allow=mschap2 comment="to ISP3" disabled=no 
interface=ether3 name=pppoe-isp3 password=isp3_pass profile=isp3_client user=isp3_client

Viimeisenä silauksena asetetaan kello:

/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org

Niille, jotka lukevat loppuun

Ehdotettu tapa toteuttaa multivan on kirjoittajan henkilökohtainen mieltymys, eikä se ole ainoa mahdollinen. ROS-työkalusarja on laaja ja joustava, mikä toisaalta aiheuttaa vaikeuksia aloittelijoille ja toisaalta on syy sen suosioon. Opi, kokeile, löydä uusia työkaluja ja ratkaisuja. Esimerkiksi hankitun tiedon sovelluksena on mahdollista korvata työkalu tässä multivan-toteutuksessa tarkistusyhdyskäytävä rekursiivisilla reiteillä verkkokello.

Huomautuksia

  1. tarkistusyhdyskäytävä - mekanismi, jonka avulla voit poistaa reitin käytöstä kahden peräkkäisen epäonnistuneen yhdyskäytävän saatavuuden tarkistuksen jälkeen. Tarkastus suoritetaan kerran 10 sekunnissa plus vastauksen aikakatkaisu. Kaiken kaikkiaan todellinen kytkentäaika on 20-30 sekuntia. Jos tällainen kytkentäajoitus ei ole riittävä, työkalua voidaan käyttää verkkokello, jossa tarkistusajastin voidaan asettaa manuaalisesti. tarkistusyhdyskäytävä ei käynnisty linkin ajoittaisen pakettihäviön yhteydessä.

    Tärkeä! Ensisijaisen reitin poistaminen käytöstä poistaa käytöstä kaikki muut siihen viittaavat reitit. Siksi heidän on määritettävä check-gateway=ping ei välttämättä.

  2. DHCP-mekanismissa tapahtuu vika, joka näyttää asiakkaalta, joka on jumissa uusintatilassa. Tässä tapauksessa skriptin toinen osa ei toimi, mutta se ei estä liikennettä kulkemasta oikein, koska tila seuraa vastaavaa rekursiivista reittiä.
  3. ECMP (Equal Cost Multi-Path) - ROS:ssa on mahdollista asettaa reitti, jossa on useita yhdyskäytäviä ja sama etäisyys. Tässä tapauksessa yhteydet jaetaan kanavien kesken käyttämällä round robin -algoritmia, suhteessa määritettyjen yhdyskäytävien määrään.

Artikkelin kirjoittamisen sysäyksen saamiseksi apua sen rakenteen ja aksenttien sijoittelun muotoilussa - henkilökohtainen kiitollisuus Jevgenylle @jscar

Lähde: will.com