Mikrotik RouterOS-i multivan ja marsruutimine

Sissejuhatus

Artikli kirjutamisele innustas mind, peale isekuse, kĂŒsimuste tĂŒĂŒtu sagedus selle teema osas vene keelt kĂ”nelevates Telegrami kogukondades. Artikkel on suunatud Mikrotik RouterOS (edaspidi ROS) algajatele administraatoritele. Selles kĂ€sitletakse ainult multipoint'i, keskendudes marsruutimisele. Boonuseks on minimaalset vajalikud seadistused ohutu ja mugava töö tagamiseks. Kes otsib teemasid nagu jĂ€rjekorrad, koormuse jaotamine, VLAN-id, sildade loomine, mitmeastmeline sĂŒvitsi minek kanalite seisundi analĂŒĂŒsimiseks ja sellele sarnased teemad — Ă€rge raisake aega ja vaeva lugemise peale.

Algandmed

Katsetamiseks on valitud viieportiline Mikrotiki marsruuter, mille ROS versioon on 6.45.3. See marsruutima liiklust kahe lokaalvĂ”rgu (LAN1 ja LAN2) ja kolme teenusepakkuja (ISP1, ISP2, ISP3) vahel. Kanal ISP1-ga on staatiline "hall" aadress, ISP2-l on "valge" aadress, mis saadakse DHCP kaudu, ISP3-l on "valge" aadress, millel on PPPoE autoriseerimine. Ühendusskeem on esitatud joonisel:

Mikrotik RouterOS-i multivan ja marsruutimine

KĂŒsimus on seadistada marsruuter "MTK" vastavalt skeemile nii, et:

  1. Tagatakse automaatne ĂŒleminek varu teenusepakkuja peale. Peamine teenusepakkuja on ISP2, esimene varu on ISP1, teine varu on ISP3.
  2. LAN1 vÔrgustiku vÀljund Internetti toimub ainult ISP1 kaudu.
  3. KÀtkestatakse liigendada liiklust lokaalsetest vÔrkudest Internetti valitud teenusepakkuja kaudu address-list'i pÔhjal.
  4. KÀtkestatakse vÔimalust avaldada teenuseid lokaalses vÔrgus Internetis (DSTNAT).
  5. Seadistatakse tulemĂŒĂŒri filter minimaalsete turvanĂ”uete tagamiseks Interneti-poolse riski eest.
  6. Marsruuter peaks suutma saata oma liiklust lÀbi mis tahes kolme teenusepakkuja sÔltuvalt valitud allika aadressist.
  7. Tagatakse vastuspakettide marsruutimine kanalisse, kust nad tulid (kaasa arvatud LAN).

MĂ€rkus. Marsruuteri seadistamine toimub "puhta lehega", et tagada ĂŒllatuste vĂ€ltimine, mis tulenevad versioonide vahel muutuvatest algkonfiguratsioonidest "karbist vĂ€lja". Seadistamise tööriistana on valitud Winbox, kus muudatused kuvatakse visuaalselt. Seadistused antakse Winboxi terminalis kĂ€skude abil. FĂŒĂŒsiline ĂŒhendamine seadistamiseks toimub otsese ĂŒhenduse kaudu Ether5 liidesega.

Veidi mĂ”tteid selle kohta, mis on multivann, kas see on probleem vĂ”i keerulised nutikad inimesed kuduvad ĂŒmber vandenĂ”ud.

KĂŒsimusi esitatud ja tĂ€helepanelik admin, seadistades sellist vĂ”i sarnast skeemi, mĂ”istab jĂ€rsku, et see töötab ju iseenesest normaalselt. Jah, jah, ilma nende teie kasutajate marsruuditabeliteta ja muude marsruutimise reeglitega, millega enamik sellest teemast artiklitest on ĂŒle ujutatud. Kas tĂ”estame?

Saame seadistada liideste ja vaikevÀravate adresseerimise? Jah:

ISP1-le mÀÀrasime aadressi ja vÀrava distance=2 ja check-gateway=ping.
ISP2 puhul on vaikimisi dhcp kliendi seadistamine — seega on kaugus ĂŒhtne.
ISP3-l pppoe kliendi seadistustes on add-default-route=yes mÀÀra default-route-distance=3.

Ära unusta mÀÀrata NAT vĂ€ljumiseks:

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

KokkuvÔttes laadivad kohalike vÔrkude kasutajad kassid lÀbi peamise pakkuja ISP2 ja kanali varundamine toimub mehhanismi check gateway Vaata mÀrkus 1

Ülesande punkt 1 on teostatud. Kus on multivann oma mĂ€rgistega? Ei...

Edasi. Peame kÀivitama konkreetsed kliendid LANist lÀbi ISP1:

/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
passthrough=yes route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
passthrough=no route-dst=100.66.66.1 src-address=192.168.88.0/24

Ülesande punktid 2 ja 3 on teostatud. MĂ€rgid, sildid, marsruutimisreeglid, kus te olete?!

Kas tuleb anda juurdepÀÀs lemmik OpenVPN serverile aadressiga 172.17.17.17 interneti klientidele? Palun:

/ip cloud set ddns-enabled=yes

Kliendi jaoks anname vĂ€lja tulemuse: “:put [ip cloud get dns-name]”

MÀÀrame porti edastamise internetist:

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

Punkt 4 on valmis.

Seadistame tulemĂŒĂŒr ja muud turvameetmed punktis 5, samal ajal rÔÔmustades, et kasutajatel töötab juba kĂ”ik ja sirutame kĂ€e lemmikjoogiga mahuti poole

Ah! Tunnelid unustasime veel.

l2tp klient, seadistatud Googeldatud artikli jÀrgi, jÔudis lemmik Hollandisse VDS? Jah.
l2tp server IPsec-iga on ĂŒles tĂ”usnud ja kliendid, kasutades DNS-nime IP Cloudist (vt ĂŒle), ĂŒhenduvad? Jah.
Toetudes tooli seljatoele, lonksates jooki, vaatan laiskalt ĂŒlesande punktid 6 ja 7. MĂ”tleme - kas me tĂ”esti vajame seda? KĂ”ik töötab ju (koos)... Kui see ei ole vajalik, siis on kĂ”ik. Multivann on rakendatud.

Mis on multivann? See on mitu internetiĂŒhendust ĂŒhe ruuteri kaudu.

Edasi artiklit lugeda ei ole mÔtet, kuna mis seal peale kahtlase rakenduse uhkeldamise olla vÔib?

Nende seas, kes jĂ€id, kes on huvitatud ĂŒlesande punktidest 6 ja 7 ning tunnevad perfektsionismi tĂ”mmet, sĂŒveneme sĂŒg deeper.

Multivan realiseerimise ĂŒks olulisemaid ĂŒlesandeid on liikluse Ă”ige suunamine. Nimelt: sĂ”ltumata sellest, millist (vĂ”i milliseid) kanalit pakkuja vaatab vaikimisi marsruudi meie ruuteris, peab see andma vastuse just sellele kanalile, kust pakk on tulnud. Ülesanne on arusaadav. Kus on probleem? Ehkki lihtsas kohalikus vĂ”rgus on ĂŒlesanne sama, ei vaevu keegi lisaseadetega ega tunne muret. Erinevus on selles, et iga marsruutitav sĂ”lm Internetis on kergesti ligipÀÀsetav igas meie kanalist, mitte siiski ainult konkreetsest, nagu lihtsas lokaalses vĂ”rgus. Ja probleem seisneb selles, et kui me saame pĂ€ringu ISP3 IP-aadressile, siis meie puhul saadetakse vastus ISP2 kanali kaudu, kuna see on vaikimisi marsruut. See saadetakse ja lĂŒkatakse pakkuja poolt tagasi kui vale. Probleem on tuvastatud. Kuidas seda lahendada?

Jagame lahenduse kolme etappi:

  1. Eelnev seadistamine. Sellel etapil mÀÀratakse ruuteri pĂ”hiseaded: kohaliku vĂ”rgu, tulemĂŒĂŒr, aadressiloendid, hairpin NAT jne.
  2. Multivan. Sellel etapil mĂ€rgitakse ja sorteeritakse marsruutimistabeli jaoks vajalikud ĂŒhendused.
  3. Ühendus ISP-ga. Sellel etapil seadistatakse liidesed, mis tagavad Interneti-ĂŒhenduse, aktiveeritakse marsruutimine ja kanali varundamise mehhanismid.

1. Eelnev seadistamine

1.1. Kustutame ruuteri konfigureerimise kÀsuga:

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

oleme nĂ”us “Dangerous! Reset anyway? [y/N]:” ja pĂ€rast taaskĂ€ivitamist ĂŒhendame Winboxi kaudu MAC-iga. Sellel etapil on konfigureerimine ja kasutajabaas kustutatud.

1.2. Loome uue kasutaja:

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

logime sisse tema kaudu ja eemaldame vaikimisi kasutaja:

/user remove admin

MĂ€rkus. Just vaikimisi kasutaja eemaldamine, mitte keelamine, on autori arvates turvalisem ja soovitatav kasutada.

1.3. Loome pĂ”hiliideste loendid, et hĂ”lbustada töötlemist tulemĂŒĂŒris, avastamise seadetes ja muudes MAC-serverites:

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

MĂ€rgime liidesed kommentaaridega

/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Àidame liideste loendid:

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

MÀrkus. Arusaadavate kommentaaride kirjutamine vÀÀrt kustutatud aega ning tugevdab tÔrkeotsingut ja konfigureerimise mÔistmist.

Autor peab vajalikuks turvalisuse mÔttes lisada interface list'i "WAN" etherneti 3, hoolimata sellest, et sellel ei kÀi ip-protokoll.

Ärge unustage, et pĂ€rast PPP-ĂŒhenduse aktiveerimist etherneti 3-l tuleb see samuti lisada interface list'i "WAN".

1.4. Peidame ruuteri naabruse ja haldamise eest teenusepakkujate vÔrkudest MAC-aadresside kaudu:

/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. Loome vĂ€hemalt vajalikud tulemĂŒĂŒri filtreerimise reeglid ruuteri kaitsmiseks:

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

(reegel lubab kehtestatud ja seotud ĂŒhendusi, mis on algatatud nii ĂŒhendatud vĂ”rkudest kui ruuterist endast)

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

(ping ja mitte ainult ping. KÔik icmp on lubatud sissetulemiseks. See on vÀga kasulik MTU probleemide leidmiseks)

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

(sisendreegel keelab kÔik muu, mis tuleb Internetist)

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

(reegel lubab kehtestatud ja seotud ĂŒhendusi, mis liiguvad ruuteri kaudu)

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

(reegel tagasi lĂŒkkab ĂŒhendused, mille connection-state on invalid, mis liiguvad ruuteri kaudu. See on soovitatav Mikrotik'i poolt, kuid harvadel juhtudel vĂ”ib see blokeerida kasulikku liiklust)

/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

(reegel keelab ruuteri kaudu liikumise pakettidele, mis tulevad Internetist ja ei ole lÀbinud dstnat protseduuri. See kaitseb kohalikku vÔrku kurjategijate eest, kes, olles samas laias laastus kohaliku vÔrgu, proovivad meie vÀliseid IP-aadresse vÀrvata ja seega "uurida" meie kohalikke vÔrke.)

MÀrkus. Oletame, et LAN1 ja LAN2 vÔrgud on usaldusvÀÀrsed ning liiklust nende vahel ja neist ei filtreerita.

1.6. Loome nimekirja mitte-marshuutitavatest vÔrkudest:

/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

(See on aadresside ja vÔrkude nimekiri, mida ei marsruudita Internetti ja seega jÀrgime ka meid.)

MĂ€rkus. Nimekiri vĂ”ib muutuda, seega soovitan perioodiliselt kontrollida selle аĐșтуaalne.

1.7. Seame DNS ruuteri jaoks:

/ip dns set servers=1.1.1.1,8.8.8.8

MĂ€rkus. Praeguses ROS versioonis on dĂŒnaamiline serverid eelduvad staatiliselt mÀÀratud ĂŒle. Nime resolutsiooni pĂ€ring saadetakse esimesele serverile nimekirjas. JĂ€rgmisele serverile liikumine toimub, kui praegune ei ole kĂ€ttesaadav. Aeg on pikk — ĂŒle 5 sekundi. Tagasi pöördumine, kui "kukkunud server" taastub, ei toimu automaatselt. Sellega arvestades ja arvestades mitme linki olemasolu, soovitab autor mitte kasutada teenusepakkujate vĂ€ljastatud servereid.

1.8. Seame ĂŒles kohaliku vĂ”rgu.
1.8.1. Konfigureerime staatilised IP-aadresse kohalike vÔrkude liidesetel:

/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. Seame marsruudi reeglid meie kohalike vÔrkude jaoks peamise marsruuditabeli kaudu:

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

MĂ€rkus. See on ĂŒks lihtsamaid ja kiiremaid viise, kuidas pÀÀseda ligi kohalike vĂ”rkude aadressidele vĂ€liste IP aadresside all, mille kaudu vaikimisi marsruuti ei tehta.

1.8.3. LĂŒlitame sisse Hairpin NAT LAN1 ja LAN2 jaoks:

/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

MÀrkus. See vÔimaldab juurdepÀÀsu oma ressurssidele (dstnat) vÀlise IP kaudu viibides samas vÔrgus.

2. Tegelikult, selle korrektseltliku mitme lingi rakendamine

Probleemi lahendamiseks "vastata sealt, kust kĂŒsiti" kasutame kaht ROS tööriista: connection mark ja routing mark. Connection mark vĂ”imaldab mĂ€rgistada vajaliku ĂŒhenduse ja hiljem töötada selle mĂ€rgisega tingimusena rakendamisel routing mark. Ja juba saab routing mark töötada ip route ja route rules. Tööriistadega oleme lĂ”pule viinud, nĂŒĂŒd peame otsustama, millised ĂŒhendused mĂ€rgistada — ĂŒks, kus tĂ€pselt mĂ€rgistada — kaks.

Esimese osaga on kĂ”ik lihtne — peame mĂ€rgistama kĂ”ik ĂŒhendused, mis tulevad ruuterisse Internetist vastava kanali kaudu. Meie puhul on need kolm mĂ€rki (kanalite arvu jĂ€rgi): "conn_isp1", "conn_isp2" ja "conn_isp3".

Teise osaga on aga nĂŒanss selles, et sissetulevad ĂŒhendused on kahte tĂŒĂŒpi: transiit ja need, mis on suunatud ise ruuterile. Connection mark mehhanism töötab tabelis mangle. Vaatame paketi liikumist lihtsustatud diagrammil, mille on koostanud spetsialistid veebilehelt mikrotik-trainings.com (mitte reklaam):

Mikrotik RouterOS-i multivan ja marsruutimine

JĂ€rgides nooli, nĂ€eme, et "input interface", minnes, lĂ€bib pakett "Prerouting" ahelat ja alles seejĂ€rel jaguneb transiit- ja kohalikesse "Routing Decision" blokeerimisse. SeetĂ”ttu, et kahte jĂ€nest ĂŒhe hoobiga tappa, kasutame Connection Mark tabelis Mangle Prerouting ahelates Prerouting.

Note. ROS-i mÀrgid "Routing mark" on toodud osas Ip/Routes/Rules kui "Table", aga teistes osades kui "Routing Mark". See vÔib tekitada teatud segadust mÔistmises, kuid tegelikult on need sama ja on analoogilised rt_tables'ile iproute2-l Linuxis.

2.1. MĂ€rgistame sissetulevad ĂŒhendused igalt pakkujatelt:

/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

MĂ€rkus. Selleks, et mitte mĂ€rgistada juba mĂ€rgistatud ĂŒhendusi, kasutan tingimust connection-mark=no-mark selle asemel, et connection-state=new, kuna pean seda korrektsemaks, nagu ka loobumist drop invalid ĂŒhendustest sisendfilteris.


passthrough=no — kuna selle rakenduse viisiga on uuesti mĂ€rgistamine vĂ€listatud ja kiiruskaotuse vĂ€ltimiseks saab reeglite otsimist katkestada pĂ€rast esimest vastavust.

Peab meeles pidama, et me ei sekku praegu suunamisse. Praegu kĂ€ivad ainult ettevalmistusetapid. JĂ€rgmine etapp on vahetustraffiku töötlemine, mis tagastatakse juba loodud ĂŒhenduse kaudu aadressilt kohalikku vĂ”rku. St. nendest pakettidest, mis (vt diagrammi) lĂ€bisid ruuteri teel:

"Input Interface"=>"Prerouting"=>"Routing Decision"=>"Forward"=>"Post Routing"=>"Output Interface" ja jÔudsid oma adressaadini kohalikus vÔrgus.

Oluline! ROS-is ei ole loogilist jagunemist vÀliste ja siseste liideste vahel. Kui jÀlgida tagasipaketi teed antud diagrammil, siis see lÀbib sama loogilist teed nagu pÀring:

"Input Interface"=>"Prerouting"=>"Routing Decision"=>"Forward"=>"Post Routing"=>"Output Interface" lihtsalt selle pĂ€ringu "Input Interface" jaoks oli ISP liides, aga vastuseks — LAN

2.2. Suuname vastavad vahetustraffiku vastavatesse suunamis tabelitesse:

/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

MĂ€rkus. in-interface-list=!WAN — töötame ainult kohalikest vĂ”rgust tuleva liiklusega ja dst-address-type=!local, millel ei ole sihtadresse, mis on ruuteri liideste aadressid.

Sama kehtib kohalike pakettide kohta, mis tulid ruuterisse teel:

"Input Interface"=>"Prerouting"=>"Routing Decision"=>"Input"=>"Local Process"

Oluline! Vastus lÀheb jÀrgmise tee kaudu:

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

2.3. Suuname vastavad kohaliku liikluse vastavatesse suunamis tabelitesse:

/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

Selles etapis vĂ”ib kĂŒsimuse vastuse saatmise ettevalmistamise kanali suunas, kust pĂ€ring tuli, lugeda lahendatuks. KĂ”ik on mĂ€rgistatud, mĂ€rgitud ja valmis suunamiseks.
Selle konfiguratsiooni “kĂ”rvalmĂ”juna” on vĂ”imalik kasutada DSNAT portide edastamist samaaegselt mĂ”lemalt (ISP2, ISP3) teenusepakkujalt. Mitte kĂ”ikides, kuna ISP1-l on meil mitte-suunatav aadress. See efekt on oluline nĂ€iteks kahel erineval Interneti kanalil töötavale meiliserverile, millel on kaks MĐ„-d.

Kohalikest vĂ”rkudest vĂ€liste IP-dega ruuteri töötamise nĂŒansside kĂ”rvaldamiseks kasutame lahendusi punktidest 1.8.2 ja 3.1.2.6.

Lisaks saab teemas 3 töö lahendamiseks kasutada ka mÀrgistustööriista. Rakendame jÀrgmiselt:

2.4. Suuname kohalike klientide liikluse marsruutimistabelitest vastavatesse tabelitesse:

/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

LÔpptulemus nÀeb vÀlja umbes nii:

Mikrotik RouterOS-i multivan ja marsruutimine

3. Seadistame ĂŒhenduse ISP-ga ja rakendame marsruutimise mĂ€rgid.

3.1. Seadistame ĂŒhenduse ISP1-ga:
3.1.1. Konfigureerime staatilise IP-aadressi:

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

3.1.2. Seadistame staatilise marsruutimise:
3.1.2.1. Lisame “varu” marsruudi vaikesuunana:

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

MĂ€rkus. See marsruut vĂ”imaldab kohalike protsesside liiklusel lĂ€bida marsruudi otsustamise etapi sĂ”ltumata mĂ”ne teenusepakkuja kanalite seisundist. NĂŒanss vĂ€lise kohaliku liikluse puhul on see, et pakett peab kuhugi liikuma, seega peab pĂ”himasruutimise tabelis olema aktiivne marsruut vaikimisi vĂ€rava suunas. Kui seda ei ole, hĂ€vitatakse pakett lihtsalt.

Tööriista laienduseks check gateway soovitan suurema sĂŒgavuse analĂŒĂŒsiks kasutada rekursiivsete marsruutide meetodit. Meetodi olemus seisneb selles, et me ĂŒtleme ruuteri, et ta otsiks teed oma vĂ€ravasse mitte otse, vaid lĂ€bi vahepealse vĂ€rava. Selliste “kontrollimise” vĂ€ravatena valitakse vastavalt ISP1, ISP2 ja ISP3 jaoks aadressid 4.2.2.1, 4.2.2.2 ja 4.2.2.3.

3.1.2.2. Marsruut “kontrollimise” aadressile:

/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

MĂ€rkus. MĂ€rkuse scope vÀÀrtust vĂ€hendame ROS sihtscope'i vaikeseadete tasemele, et kasutada siinkohal 4.2.2.1 rekursiivse vĂ€ravana. TĂ”stan esile: marsruudi scope “kontrollimise” aadressile peab olema vĂ€iksem vĂ”i vĂ”rdne selle marsruudi sihtscope'iga, mis viitab kontrollimisele.

3.1.2.3. Rekursiivne marsruut vaikimisi liiklusele, millel ei ole marsruudi mÀrki:

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

MĂ€rkus. Distance=2 vÀÀrtuse kasutamine tuleneb sellest, et ISP1 on ĂŒlesande tingimustes mÀÀratud esimeseks varuks.

3.1.2.4. Rekursiivne marsruut vaikimisi liiklusele, kus on marsruudi mĂ€rk “to_isp1”:

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

MÀrkus. Siin me lÔpuks hakkame kasutama selle ettevalmistava töö vilju, mis viidi lÀbi punktis 2.


Selle marsruudi kaudu suunatakse kogu liiklus, millel on mark route "to_isp1", esimese teenusepakkuja vÀravasse, olenemata sellest, milline vaikimisi vÀrav on praegu aktiveeritud pÔhitaudist.

3.1.2.5. Esimene varu rekursiivne vaikimisi marsruut mÀrgistatud liiklusele teenusepakkujatelt ISP2 ja 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

MÀrkus. Need marsruudid on vajalikud, sealhulgas kohalike vÔrkude liikluse varundamiseks, mis koosnevad aadressiloendist "to_isp*".

3.1.2.6. MÀÀrame marsruudi kohaliku roteri liikluse jaoks interneti kaudu ISP1:

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

MĂ€rkus. Koos punktis 1.8.2 esitatud reeglitega tagatakse pÀÀs soovitud kanalisse mÀÀratud allikaga. See on kriitiline tunnelite loomisel, kus mÀÀratakse kohaliku poole IP-aadress (EoIP, IP-IP, GRE). Kuna reeglid ip route rules tĂ€idetakse ĂŒksteise jĂ€rel, esimesest tingimuste vastavusest, peab see reegel olema pĂ€rast punktis 1.8.2 esitatud reegleid.

3.1.3. MÀÀrame NAT-i reegli vÀljaminevale liiklusele:

/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

MĂ€rkus. NAT teostab kogu vĂ€ljamineva, vĂ€lja arvatud see, mis kuulub IPsec poliitikatesse. PĂŒĂŒan vĂ€ltida action=masquerade kasutamist ilma ÀÀrmise vajaduseta. See töötab aeglasemalt ja on rohkem ressursinĂ”udlik kui src-nat, kuna arvutab iga uue ĂŒhenduse jaoks NAT-i aadressi.

3.1.4. Suuname kliendid loendist, kellele ei ole lubatud lÀbimine teiste teenusepakkujate kaudu, otse ISP1 teenusepakkuja vÀravasse.

/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

MÀrkus. action=route on kÔrgema prioriteediga ja rakendatakse enne teisi marsruudireegleid.


place-before=0 — paigutab meie reegli nimekirja esimesena.

3.2. Konfigureerime ĂŒhenduse ISP2-ga.

Kuna teenusepakkuja ISP2 annab seadistusi DHCP kaudu, on mÔistlik vajalikud muudatused teha skripti abil, mis kÀivitub DHCP kliendi kÀivitumisel:

/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

Skripti aken Winboxis:

Mikrotik RouterOS-i multivan ja marsruutimine
MĂ€rkus. Skripti esimene osa kĂ€ivitub pĂ€rast rentimise eduka saamise, teine osa — pĂ€rast rendi vabastamist.Vaata mĂ€rkust 2

3.3. Konfigureerime ĂŒhenduse teenusepakkujaga ISP3.

Kuna teenusepakkuja annab meile dĂŒnaamilised seadistused, on mĂ”istlik vajalikud muudatused teha skriptide abil, mis kĂ€ivituvad pĂ€rast liidese ppp aktiveerimist ja deaktiveerimist.

3.3.1. Esiteks konfigureerime profiili:

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

Skripti aken Winboxis:

Mikrotik RouterOS-i multivan ja marsruutimine
MĂ€rkus. Rida
/ip firewall mangle set [find comment=«Connmark in from ISP3»] in-interface=$«interface»;
vĂ”imaldab Ă”igesti töödelda liidese ĂŒmbernimetamist, kuna see töötab selle koodi, mitte nĂ€htava nimega.

3.3.2. NĂŒĂŒd, kasutades profiili, loome ppp-ĂŒhenduse:

/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

Viimase viimistluse tegemiseks seadistage kellad:

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

Neile, kes lugesid lÔpuni

Pakutud viis multivan'i rakendamiseks on autori isiklik eelistus ja ei ole ainus vĂ”imalik lahendus. ROSi tööriistakast on ulatuslik ja paindlik, mis ĂŒhelt poolt tekitab algajatele raskusi, teisalt on see populaarsuse pĂ”hjus. Uurige, proovige, avastage uusi tööriistu ja lahendusi. NĂ€iteks vĂ”ib saadud teadmiste rakendamise osana selles multivan'i rakenduses asendada tööriista Check-gateway rekursiivsete marsruutidega Netwatch.

MĂ€rkus

  1. Check-gateway — mehhanism, mis vĂ”imaldab marsruuti deaktiveerida pĂ€rast kahte jĂ€rjestikust ebaĂ”nnestunud vĂ€rava kĂ€ttesaadavuse kontrolli. Kontrollimine toimub iga 10 sekundi jĂ€rel, pluss vastuse ajalimiit. KokkuvĂ”ttes toimub tegelik vahetusaeg vahemikus 20-30 sekundit. Kui see vahetusaeg ei ole piisav, on vĂ”imalus kasutada tööriista Netwatch, kus kontrollimise taimerit saab seadistada kĂ€sitsi. Mehhanism Check-gateway ei aktiveeru perioodiliste paketikaotuste korral kanalil.

    Oluline! Peamaaruute deaktiveerimine toob kaasa kÔigi teiste marsruutide deaktiveerimise, mis sellele viitavad. SeetÔttu ei ole nende puhul vaja mÀÀrata check-gateway=ping ei ole vajalik.

  2. Aeg-ajalt vÔib DHCP töömechanismi töö ilmneda rikke tÔttu, mis nÀib nagu klient, kes on uuendamises kinni. Sellisel juhul ei toimi skripti teine osa, kuid Ôige liiklus ei tee halba, kuna olekut jÀlgib vastav rekursiivne marsruut.
  3. ECMP (Equal Cost Multi-Path) — ROSis on vĂ”imalus seadistada marsruut mitme vĂ€ravaga ja sama kaugusega. Sellisel juhul jaotatakse ĂŒhendused kanalite vahel, kasutades round robin algoritmi, proportsionaalselt mÀÀratud vĂ€ravate arvule.

AitÀh artikli kirjutamise tÔukamise, struktuuri koostamise ja rÔhuasetuste paigutamise eest - isiklik tÀnu Evgenile @jscar

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster