Multivan in usmerjanje na Mikrotik RouterOS

Predstavitev

Prevzem članka je poleg nečimrnosti spodbudila depresivna pogostost vprašanj o tej temi v profilnih skupinah rusko govoreče skupnosti telegramov. Članek je namenjen skrbnikom začetnikom Mikrotik RouterOS (v nadaljevanju ROS). Ukvarja se le z multivanom, s poudarkom na usmerjanju. Kot bonus je minimalno dovolj nastavitev, ki zagotavljajo varno in udobno delovanje. Tisti, ki iščejo razkritje tem čakalnih vrst, uravnoteženja obremenitve, vlanov, mostov, večstopenjske globoke analize stanja kanala in podobno - morda ne izgubljajo časa in truda z branjem.

Surovi podatki

Kot testiranec je bil izbran petportni usmerjevalnik Mikrotik z ROS različico 6.45.3. Usmerjal bo promet med dvema lokalnima omrežjema (LAN1 in LAN2) in tremi ponudniki (ISP1, ISP2, ISP3). Kanal do ISP1 ima statični "siv" naslov, ISP2 - "bel", pridobljen preko DHCP, ISP3 - "bel" z avtorizacijo PPPoE. Diagram povezave je prikazan na sliki:

Multivan in usmerjanje na Mikrotik RouterOS

Naloga je konfigurirati usmerjevalnik MTK na podlagi sheme, tako da:

  1. Zagotovite samodejni preklop na rezervnega ponudnika. Glavni ponudnik je ISP2, prvi rezervni je ISP1, drugi rezervni je ISP3.
  2. Organizirajte omrežni dostop LAN1 do interneta samo prek ISP1.
  3. Omogočite možnost usmerjanja prometa iz lokalnih omrežij v internet preko izbranega ponudnika na podlagi seznama naslovov.
  4. Predvideti možnost objavljanja storitev iz lokalnega omrežja v internet (DSTNAT)
  5. Nastavite filter požarnega zidu, da zagotovite minimalno zadostno varnost pred internetom.
  6. Usmerjevalnik lahko oddaja lasten promet prek katerega koli od treh ponudnikov, odvisno od izbranega izvornega naslova.
  7. Zagotovite, da so odzivni paketi usmerjeni na kanal, iz katerega so prišli (vključno z LAN).

Opomba Usmerjevalnik bomo konfigurirali "iz nič", da zagotovimo odsotnost presenečenj v začetnih konfiguracijah "izven škatle", ki se spreminjajo od različice do različice. Winbox je bil izbran kot konfiguracijsko orodje, kjer se bodo spremembe vizualno prikazovale. Same nastavitve bodo nastavljene z ukazi v terminalu Winbox. Fizična povezava za konfiguracijo se izvede z neposredno povezavo z vmesnikom Ether5.

Malo razglabljanja o tem, kaj je multivan, ali je to problem ali zviti pametnjakoviči naokoli pletejo mreže zarot

Vedoželjen in pozoren skrbnik, ki sam postavlja takšno ali podobno shemo, nenadoma nenadoma ugotovi, da že deluje normalno. Da, da, brez vaših usmerjevalnih tabel po meri in ostalih pravil poti, ki jih je polna večina člankov na to temo. Preverimo?

Ali lahko konfiguriramo naslavljanje na vmesnikih in privzetih prehodih? Da:

Pri ISP1 sta bila registrirana naslov in prehod razdalja=2 и check-gateway=ping.
Pri ISP2 je privzeta nastavitev odjemalca dhcp - v skladu s tem bo razdalja enaka ena.
Pri ISP3 v nastavitvah odjemalca pppoe ko add-default-route=da postaviti default-route-distance=3.

Ne pozabite registrirati NAT ob izhodu:

/ip požarni zid nat add action=masquerade chain=srcnat out-interface-list=WAN

Posledično se uporabniki lokalnih spletnih mest zabavajo s prenosom cats prek glavnega ponudnika ISP2 in obstaja rezervacija kanala z uporabo mehanizma preverite prehod Glej opombo 1

1. točka naloge je izvedena. Kje je multivan s svojimi oznakami? ne ...

Nadalje. Določene odjemalce morate sprostiti iz omrežja LAN prek ISP1:

/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
passthrough=da route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
prehod=brez poti-dst=100.66.66.1 src-naslov=192.168.88.0/24

2. in 3. točka naloge sta realizirani. Etikete, žigi, pravila poti, kje ste?!

Potrebujete dostop do svojega najljubšega strežnika OpenVPN z naslovom 172.17.17.17 za stranke iz interneta? Prosim:

/ip cloud set ddns-enabled=yes

Kot enakovredni stranki damo izhodni rezultat: ":put [ip cloud get dns-name]"

Port forwarding iz interneta registriramo:

/ip požarni zid nat add action=dst-nat chain=dstnat dst-port=1194
in-interface-list=WAN protokol=udp to-addresses=172.17.17.17

Točka 4 je pripravljena.

Postavili smo požarni zid in ostalo varovanje za točko 5, hkrati smo veseli, da uporabniki že vse delujejo in posegajo po posodici z najljubšo pijačo ...
A! Predori so pozabljeni.

Odjemalec l2tp, konfiguriran z Googlovim člankom, se je povzpel na vaš najljubši nizozemski VDS? ja
Strežnik l2tp z IPsec se je dvignil in odjemalci z imenom DNS iz oblaka IP (glej zgoraj) se držijo? ja
Naslonjeni nazaj na stolu, srkamo pijačo, leno razmišljamo o točkah 6 in 7 naloge. Mislimo - ali ga potrebujemo? Vseeno deluje tako (c) ... Torej, če še vedno ni potrebno, potem je to to. Implementiran Multivan.

Kaj je multivan? To je povezava več internetnih kanalov na en usmerjevalnik.

Članka vam ni treba brati naprej, kajti kaj je lahko poleg razkazovanja dvomljive uporabnosti?

Za tiste, ki ostanejo, ki jih zanimata 6. in 7. točka naloge in čutite tudi srbečico perfekcionizma, se potapljamo globlje.

Najpomembnejša naloga izvedbe multivana je pravilna razporeditev prometa. Namreč: ne glede na to, kateri (ali kateri) Glej. opomba 3: kanal(-i) ponudnika internetnih storitev poglej privzeto pot na našem usmerjevalniku, mora vrniti odgovor na točen kanal, iz katerega je paket prišel. Naloga je jasna. Kje je problem? Dejansko je v preprostem lokalnem omrežju naloga enaka, vendar se nihče ne trudi z dodatnimi nastavitvami in ne čuti težav. Razlika je v tem, da je vsako usmerjevalno vozlišče na internetu dostopno prek vsakega od naših kanalov in ne prek strogo specifičnega, kot v preprostem LAN-u. In "težava" je v tem, da če k nam pride zahteva za naslov IP ISP3, bo v našem primeru odgovor šel prek kanala ISP2, saj je privzeti prehod usmerjen tja. Zapusti in ga bo ponudnik zavrgel kot nepravilnega. Težava je bila ugotovljena. Kako to rešiti?

Rešitev je razdeljena na tri stopnje:

  1. Prednastavitev. Na tej stopnji bodo nastavljene osnovne nastavitve usmerjevalnika: lokalno omrežje, požarni zid, seznami naslovov, vpet NAT itd.
  2. Multivan. Na tej stopnji bodo potrebne povezave označene in razvrščene v usmerjevalne tabele.
  3. Povezovanje s ponudnikom internetnih storitev. Na tej stopnji bodo konfigurirani vmesniki, ki zagotavljajo povezavo z internetom, aktiviran bo usmerjanje in mehanizem za rezervacijo internetnega kanala.

1. Prednastavitev

1.1. Konfiguracijo usmerjevalnika počistimo z ukazom:

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

Strinjam se z "Nevarno! Vseeno ponastaviti? [da/ne]:” in se po ponovnem zagonu povežemo z Winboxom preko MAC-a. Na tej stopnji sta konfiguracija in uporabniška baza počiščeni.

1.2. Ustvarite novega uporabnika:

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

prijavite se pod njim in izbrišite privzetega:

/user remove admin

Opomba Avtor meni, da je bolj varno in priporoča uporabo odstranitev in ne onemogočanje privzetega uporabnika.

1.3. Ustvarimo osnovne sezname vmesnikov za udobje delovanja v požarnem zidu, nastavitvah odkrivanja in drugih strežnikih MAC:

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

Podpisovanje vmesnikov s komentarji

/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"

in izpolnite sezname vmesnikov:

/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"

Opomba Pisanje razumljivih komentarjev je vredno časa, porabljenega za to, poleg tega močno olajša odpravljanje težav in razumevanje konfiguracije.

Avtor meni, da je iz varnostnih razlogov potrebno dodati vmesnik ether3 na seznam vmesnikov "WAN", kljub dejstvu, da protokol ip ne bo šel skozi njega.

Ne pozabite, da potem, ko je vmesnik PPP dvignjen na ether3, ga bo treba dodati tudi na seznam vmesnikov "WAN"

1.4. Usmerjevalnik skrijemo pred zaznavanjem soseske in nadzorom iz omrežij ponudnikov prek MAC:

/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. Za zaščito usmerjevalnika ustvarimo minimalni zadosten nabor pravil filtra požarnega zidu:

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

(pravilo daje dovoljenje za vzpostavljene in povezane povezave, ki se sprožijo iz povezanih omrežij in samega usmerjevalnika)

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

(ping in ne samo ping. Dovoljen je ves icmp. Zelo uporabno za iskanje težav z MTU)

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

(pravilo, ki zapre vnosno verigo, prepoveduje vse ostalo, kar prihaja iz interneta)

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

(pravilo dovoljuje vzpostavljene in povezane povezave, ki potekajo skozi usmerjevalnik)

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

(pravilo ponastavi povezave s povezavo-state=invalid, ki potekajo skozi usmerjevalnik. Mikrotik ga močno priporoča, vendar lahko v nekaterih redkih situacijah blokira uporaben promet)

/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

(pravilo prepoveduje paketom, ki prihajajo iz interneta in niso opravili postopka dstnat, prehod skozi usmerjevalnik. To bo zaščitilo lokalna omrežja pred vsiljivci, ki bodo, ker so v isti oddajni domeni z našimi zunanjimi omrežji, registrirali naše zunanje IP-je kot prehod in tako poskusite »raziskati« naša lokalna omrežja.)

Opomba Predpostavimo, da sta omrežji LAN1 in LAN2 zaupanja vredni ter promet med njima in iz njiju ni filtriran.

1.6. Ustvarite seznam s seznamom omrežij, ki jih ni mogoče usmerjati:

/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

(To je seznam naslovov in omrežij, ki jih ni mogoče usmerjati v internet in jim bomo ustrezno sledili.)

Opomba Seznam se lahko spremeni, zato vam svetujem, da občasno preverite ustreznost.

1.7. Nastavite DNS za sam usmerjevalnik:

/ip dns set servers=1.1.1.1,8.8.8.8

Opomba V trenutni različici ROS imajo dinamični strežniki prednost pred statičnimi. Zahteva za razrešitev imena se pošlje prvemu strežniku po vrstnem redu na seznamu. Prehod na naslednji strežnik se izvede, ko trenutni ni na voljo. Časovna omejitev je velika - več kot 5 sekund. Vrnitev nazaj, ko se "padli strežnik" nadaljuje, se ne zgodi samodejno. Glede na ta algoritem in prisotnost multivana avtor priporoča, da ne uporabljate strežnikov, ki jih ponujajo ponudniki.

1.8. Nastavite lokalno omrežje.
1.8.1. Konfiguriramo statične IP naslove na LAN vmesnikih:

/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. Nastavimo pravila za poti do naših lokalnih omrežij prek glavne usmerjevalne tabele:

/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"

Opomba To je eden od hitrih in enostavnih načinov za dostop do naslovov LAN z viri zunanjih naslovov IP vmesnikov usmerjevalnika, ki ne gredo po privzeti poti.

1.8.3. Omogoči Hairpin NAT za LAN1 in LAN2:

/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

Opomba To vam omogoča dostop do vaših virov (dstnat) prek zunanjega IP-ja, medtem ko ste znotraj omrežja.

2. Pravzaprav izvedba zelo pravilnega multivana

Za rešitev problema »odgovarjanja, od koder so vprašali«, bomo uporabili dve orodji ROS: oznako povezave и usmerjevalna oznaka. oznako povezave omogoča, da označite želeno povezavo in nato delate s to oznako kot pogojem za prijavo usmerjevalna oznaka. In že z usmerjevalna oznaka možno delo v ip pot и pravila poti. Ugotovili smo orodja, zdaj se morate odločiti, katere povezave označiti - enkrat, kje točno označiti - dva.

Pri prvem je vse preprosto - označiti moramo vse povezave, ki prihajajo na usmerjevalnik iz interneta po ustreznem kanalu. V našem primeru bodo to tri oznake (po številu kanalov): "conn_isp1", "conn_isp2" in "conn_isp3".

Niansa drugega je, da bodo dohodne povezave dveh vrst: tranzitne in tiste, ki so namenjene samemu usmerjevalniku. Mehanizem povezovalne oznake deluje v tabeli klopi. Razmislite o gibanju paketa na poenostavljenem diagramu, ki so ga prijazno sestavili strokovnjaki vira mikrotik-trainings.com (brez oglaševanja):

Multivan in usmerjanje na Mikrotik RouterOS

Če sledimo puščicam, vidimo, da paket prispe na "vhodni vmesnik«, gre skozi verigo »Preusmerjanje” in šele nato se razdeli na tranzitno in lokalno v bloku “Odločitev o poti". Zato, da bi ubili dve muhi na en mah, uporabljamo Oznaka povezave v tabeli Mangle Pre-routing verige Preusmerjanje.

Opomba. V ROS so oznake »Routing mark« navedene kot »Table« v razdelku Ip/Routes/Rules in kot »Routing Mark« v drugih razdelkih. To lahko povzroči nekaj zmede pri razumevanju, vendar je v resnici to ista stvar in je analog rt_tables v iproute2 v linuxu.

2.1. Označimo dohodne povezave vsakega od ponudnikov:

/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

Opomba Da ne bi označeval že označenih povezav, uporabljam pogoj connection-mark=no-mark namesto connection-state=new, ker se mi zdi to bolj pravilno, kot tudi zavrnitev spuščanja neveljavnih povezav v vhodnem filtru.


passthrough=no - ker je pri tej implementacijski metodi ponovno označevanje izključeno in za pospešitev lahko prekinete naštevanje pravil po prvem ujemanju.

Upoštevati je treba, da v rutiranje še ne posegamo na noben način. Zdaj so samo še faze priprave. Naslednja stopnja implementacije bo obdelava tranzitnega prometa, ki se vrača po vzpostavljeni povezavi iz cilja v lokalnem omrežju. Tisti. tisti paketi, ki so (glej diagram) šli skozi usmerjevalnik na poti:

“Vhodni vmesnik”=>”Preusmerjanje”=>”Odločitev o usmerjanju”=>”Naprej”=>”Po usmerjanju”=>”Izhodni vmesnik” in prišli do svojega naslovnika v lokalnem omrežju.

Pomembno! V ROS-u ni logične delitve na zunanje in notranje vmesnike. Če izsledimo pot odzivnega paketa v skladu z zgornjim diagramom, bo sledil isti logični poti kot zahteva:

“Vhodni vmesnik”=>”Preusmerjanje”=>”Odločitev o usmerjanju”=>”Naprej”=>”Po usmerjanju”=>”Izhodni vmesnik” samo za prošnjo"Vhodni vmesnik” je bil vmesnik ISP, za odgovor pa - LAN

2.2. Odzivni tranzitni promet usmerjamo v ustrezne usmerjevalne tabele:

/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

Komentiraj. in-interface-list=!WAN - delamo samo s prometom iz lokalnega omrežja in dst-address-type=!local, ki nima ciljnega naslova naslova vmesnikov samega usmerjevalnika.

Enako za lokalne pakete, ki so na poti prispeli do usmerjevalnika:

“Vhodni vmesnik”=>”Predhodno usmerjanje”=>”Odločitev o usmerjanju”=>”Vnos”=>”Lokalni proces”

Pomembno! Odgovor bo šel na naslednji način:

”Lokalni proces”=>”Odločitev o usmerjanju”=>”Izhod”=>”Po usmerjanju”=>”Izhodni vmesnik”

2.3. Odzivni lokalni promet usmerimo v ustrezne usmerjevalne tabele:

/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

Na tej stopnji se lahko šteje, da je naloga priprave na pošiljanje odgovora na internetni kanal, iz katerega je prišla zahteva, rešena. Vse je označeno, označeno in pripravljeno za usmerjanje.
Odličen "stranski" učinek te nastavitve je zmožnost dela s posredovanjem vrat DSNAT pri obeh (ISP2, ISP3) ponudnikih hkrati. Sploh ne, saj imamo pri ISP1 naslov, ki ga ni mogoče usmerjati. Ta učinek je pomemben na primer za poštni strežnik z dvema MX-jema, ki gledata na različne internetne kanale.

Za odpravo nians delovanja lokalnih omrežij z zunanjimi usmerjevalniki IP uporabljamo rešitve iz odstavkov. 1.8.2 in 3.1.2.6.

Poleg tega lahko uporabite orodje z oznakami za rešitev 3. odstavka naloge. Izvajamo jo takole:

2.4. Promet lokalnih strank usmerjamo iz usmerjevalnih seznamov v ustrezne tabele:

/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

Posledično je videti nekako takole:

Multivan in usmerjanje na Mikrotik RouterOS

3. Vzpostavite povezavo s ponudnikom internetnih storitev in omogočite blagovno znamko usmerjanja

3.1. Nastavite povezavo z ISP1:
3.1.1. Konfigurirajte statični naslov IP:

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

3.1.2. Nastavite statično usmerjanje:
3.1.2.1. Dodajte privzeto "nujno" pot:

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

Opomba Ta pot omogoča, da promet iz lokalnih procesov preide stopnjo odločitve o poti, ne glede na stanje povezav katerega koli od ponudnikov. Niansa odhodnega lokalnega prometa je v tem, da mora imeti glavna usmerjevalna tabela aktivno pot do privzetega prehoda, da se paket premakne vsaj nekam. V nasprotnem primeru bo paket preprosto uničen.

Kot razširitev orodja preverite prehod Za globljo analizo stanja kanala predlagam uporabo metode rekurzivne poti. Bistvo metode je v tem, da usmerjevalniku povemo, naj ne išče poti do svojega prehoda neposredno, temveč prek vmesnega prehoda. 4.2.2.1, 4.2.2.2 in 4.2.2.3 bodo izbrani kot "testni" prehodi za ISP1, ISP2 in ISP3.

3.1.2.2. Pot do naslova za »preverjanje«:

/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

Opomba Znižamo vrednost obsega na privzeto v ciljnem obsegu ROS, da bi v prihodnosti uporabili 4.2.2.1 kot rekurzivni prehod. Poudarjam: obseg poti do »testnega« naslova mora biti manjši ali enak ciljnemu obsegu poti, ki se bo nanašala na testnega.

3.1.2.3. Rekurzivna privzeta pot za promet brez oznake za usmerjanje:

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

Opomba Vrednost distance=2 je uporabljena, ker je ISP1 deklariran kot prva varnostna kopija glede na pogoje naloge.

3.1.2.4. Rekurzivna privzeta pot za promet z oznako usmerjanja »to_isp1«:

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

Opomba Pravzaprav tukaj končno začenjamo uživati ​​sadove pripravljalnega dela, ki je bilo opravljeno v odstavku 2.


Na tej poti bo ves promet z oznako poti “to_isp1” usmerjen na prehod prvega ponudnika, ne glede na to, kateri privzeti prehod je trenutno aktiven za glavno tabelo.

3.1.2.5. Prva nadomestna rekurzivna privzeta pot za promet z oznako ISP2 in ISP3:

/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

Opomba Te poti so med drugim potrebne za rezervacijo prometa iz lokalnih omrežij, ki so člani seznama naslovov »to_isp*«'

3.1.2.6. Registriramo pot za lokalni promet usmerjevalnika do interneta prek ISP1:

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

Opomba V kombinaciji s pravili iz odstavka 1.8.2 omogoča dostop do želenega kanala z danim virom. To je ključnega pomena za gradnjo predorov, ki določajo lokalni naslov IP (EoIP, IP-IP, GRE). Ker se pravila v pravilih poti ip izvajajo od zgoraj navzdol, do prvega ujemanja pogojev, mora biti to pravilo za pravili iz člena 1.8.2.

3.1.3. Za odhodni promet registriramo pravilo NAT:

/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

Opomba NATim vse, kar gre ven, razen tistega, kar pride v pravilnike IPsec. Poskušam ne uporabljati action=masquerade, razen če je to nujno potrebno. Je počasnejši in zahteva več virov kot src-nat, ker izračuna naslov NAT za vsako novo povezavo.

3.1.4. Stranke s seznama, ki jim je prepovedan dostop prek drugih ponudnikov, pošljemo neposredno na prehod ponudnika ISP1.

/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

Opomba action=route ima višjo prednost in se uporablja pred drugimi pravili usmerjanja.


place-before=0 - postavi naše pravilo na prvo mesto na seznamu.

3.2. Nastavite povezavo z ISP2.

Ker nam ponudnik ISP2 posreduje nastavitve prek DHCP, je smiselno narediti potrebne spremembe s skriptom, ki se zažene, ko se sproži odjemalec DHCP:

/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

Sam skript v oknu Winbox:

Multivan in usmerjanje na Mikrotik RouterOS
Opomba Prvi del skripte se sproži, ko je zakup uspešno pridobljen, drugi - po sprostitvi zakupa.Glej opombo 2

3.3. Vzpostavimo povezavo s ponudnikom ISP3.

Ker nam ponudnik nastavitev daje dinamiko, je smiselno narediti potrebne spremembe s skripti, ki se začnejo po dvigu vmesnika ppp in po padcu.

3.3.1. Najprej konfiguriramo profil:

/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"

Sam skript v oknu Winbox:

Multivan in usmerjanje na Mikrotik RouterOS
Opomba Linija
/ip firewall mangle set [find comment="Connmark in from ISP3"] in-interface=$"interface";
vam omogoča pravilno ravnanje s preimenovanjem vmesnika, saj deluje s svojo kodo in ne s prikaznim imenom.

3.3.2. Zdaj z uporabo profila ustvarite ppp povezavo:

/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

Za konec še nastavimo uro:

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

Za tiste, ki preberete do konca

Predlagani način izvedbe multivana je osebna želja avtorja in ni edini možni. Komplet orodij ROS je obsežen in prilagodljiv, kar po eni strani povzroča težave začetnikom, po drugi strani pa je razlog za njegovo priljubljenost. Učite se, poskušajte, odkrivajte nova orodja in rešitve. Na primer, kot aplikacijo pridobljenega znanja je možno zamenjati orodje v tej izvedbi multivana check-gateway z rekurzivnimi potmi do netwatch.

Opombe

  1. check-gateway - mehanizem, ki vam omogoča deaktivacijo poti po dveh zaporednih neuspešnih preverjanjih razpoložljivosti prehoda. Preverjanje se izvede enkrat na 10 sekund, plus časovna omejitev odziva. Skupaj je dejanski čas preklopa v območju 20-30 sekund. Če tak čas preklopa ne zadostuje, obstaja možnost uporabe orodja netwatch, kjer lahko časovnik preverjanja nastavite ročno. check-gateway se ne sproži ob občasni izgubi paketov na povezavi.

    Pomembno! Če deaktivirate primarno pot, boste deaktivirali vse druge poti, ki se nanjo nanašajo. Zato, da jih navedejo check-gateway=ping ni potrebno.

  2. Zgodi se, da pride do okvare v mehanizmu DHCP, ki je videti kot odjemalec obtičal v stanju obnovitve. V tem primeru drugi del skripta ne bo deloval, vendar ne bo preprečil pravilne hoje prometa, saj država sledi ustrezni rekurzivni poti.
  3. ECMP (Equal Cost Multi-Path) - v ROS je mogoče nastaviti pot z več prehodi in enako razdaljo. V tem primeru bodo povezave porazdeljene po kanalih z uporabo krožnega algoritma sorazmerno s številom določenih prehodov.

Za spodbudo za pisanje članka, pomoč pri oblikovanju njegove strukture in postavitvi poudarkov - osebna hvaležnost Evgenyju @jscar

Vir: www.habr.com