Mikrotik RouterOS-i multivan ja suunamine

Sissejuhatus

Artikli loomiseks, mis lĂ€heb kaugemale isekusest, viis mind murettekitav kĂŒsimuste esinemissagedus selle teema ĂŒmber vene keelt kĂ”nelevates Telegrami kogukondades. Artikkel on suunatud Mikrotik RouterOS (edaspidi ROS) algajatele administraatoritele. Siin kĂ€sitletakse ainult multivan'i, keskendudes suunamisele. Boonusena on olemas minimaalsed seadistused, mis tagavad turvalise ja mugava töö. Need, kes otsivad teemasid nagu jĂ€rjekorrad, koormuse tasakaalustamine, VLAN-id, sildamine, mitmeastmeline kanalite seisundi sĂŒvaanalĂŒĂŒs jne — vĂ”ivad mitte raisata aega ja energiat lugemisele.

Algandmed

Katseseadmeks on valitud viiepordiline Mikrotik ruuter, mille ROS versioon on 6.45.3. See suunab liiklust kahe kohaliku vĂ”rgu (LAN1 ja LAN2) ning kolme teenusepakkuja vahel (ISP1, ISP2, ISP3). Kanali ISP1 juurde on staatiline 'hall' aadress, ISP2 — 'valge', saadakse DHCP kaudu, ISP3 — 'valge', millel on PPPoE autentimine. Ühendusskeem on esitatud joonisel:

Mikrotik RouterOS-i multivan ja suunamine

Ülesanne on seadistada ruuter 'MTK' vastavalt skeemile nii, et:

  1. Tagada automaatne ĂŒleminek varu pakkujale. Peamine pakkuja — ISP2, esimene varu — ISP1, teine varu — ISP3.
  2. Korraldada LAN1 vĂ”rgu ĂŒhendus internetti ainult lĂ€bi ISP1.
  3. Tagada vÔimalus suunata liiklust kohalikest vÔrkudest internetti valitud pakkuja kaudu address-listi pÔhjal.
  4. Tagada vÔimalus teenuste avalikustamiseks kohalikust vÔrgust internetti (DSTNAT).
  5. Seada tulemĂŒĂŒris filter, et tagada minimaalne vajalik turvalisus interneti poolt.
  6. Ruuter peaks suutma edastada oma liiklust lÀbi mistahes kolmest pakkujast sÔltuvalt valitud allika aadressist.
  7. Tagada vastuspakettide suunamine sama kanali kaudu, kust nad tulid (sh LAN).

MĂ€rkus. Konfigureerime ruuteri "puhtalt lehelt", et tagada ĂŒllatuste puudumine versioonide lĂ”ikes muutuvates algsetes konfigureerimites "karbist vĂ€lja". Konfigureerimise tööriigiks on valitud Winbox, kus muudatused kuvatakse visuaalselt. Seaded ise sisestatakse Winboxi terminali kĂ€skudega. FĂŒĂŒsiline ĂŒhendamine seadistamiseks toimub otsese ĂŒhenduse kaudu Ether5 liidesega.

Veidi mÔtteid selle kohta, mis on multilaan, kas see on probleem vÔi on osavad geeniused kokku tÔmmanud jÀrgmiste vandenÔudevÔrkude.

Uudishimulik ja tĂ€helepanelik admin, kes seadistab sellist vĂ”i sarnast skeemi iseseisvalt, mĂ”istab ĂŒhel hetkel, et see töötab tegelikult normaalselt. Jah, ilma nende teie kasutajate marsruudistustabelite ja teiste marsruudireeglitega, millega enamik artikleid selle teema kohta kihab. Kontrollime?

Kas saame seada aadressid liidesetel ja vaikevÀravad? Jah:

ISP1-le mÀÀrasime aadressi ja vÀrava koos distance=2 ja check-gateway=ping.
ISP2-l on vaikimisi DHCP kliendi seadistus — seega on distance ĂŒks.
ISP3 puhul PPPOE kliendi seadetes on add-default-route=yes installime default-route-distance=3.

Ärge unustage mÀÀrata NAT vĂ€ljundit:

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

KokkuvÔttes laadivad kohalikud kasutajad kahtlemata ISPI2 kaudu ja on olemas kanalivarude mehhanism. kontrolli vÀravat Vaata mÀrkust 1

Ülesande 1 punkt on tĂ€idetud. Kus on multivan oma siltidega? Ei ole


Edasi. Tuleb lasta konkreetsed kliendid LAN-ist vÀlja kaudu 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 tĂ€idetud. Silte, mĂ€rke, marsruudi reeglid, kus te olete?!

Kas tuleb anda juurdepÀÀs armastatud OpenVPN serverile, mille aadress on 172.17.17.17, Interneti klientidele? Palun:

/ip cloud set ddns-enabled=yes

Kliendile anname 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.

Seame sisemise tulemĂŒĂŒri ja muu turvalisuse punktiks 5, samal ajal rÔÔmustades, et kasutajad saavad juba kĂ”ik töötada ja sirutume armastatud joogi poole

Ah! Tunnelsid oleme unustanud.

Kas l2tp klient, seadistatud leitud artikli jÀrgi, tÔusis armastatud Hollandi VDS-ini? Jah.
Kas l2tp server IPseciga on ĂŒles seatud ja kliendid ĂŒhinevad DNS-nime kaudu IP Cloud'ist (vt eelnevat)? Jah.
Toetudes tooli seljatoele ja nautides jooki, uurime laiskuse ja rahu juures ĂŒlesande punktide 6 ja 7. MĂ”tleme — kas see on meile vajalik? KĂ”ik töötab ju (jah)... Kui see tĂ”esti ei ole vajalik, siis sellega ongi kĂ”ik. Multivan on realiseeritud.

Mis on multivan? See on mitme internetiĂŒhenduse ĂŒhendamine ĂŒhe ruuteri kaudu.

Edasi ei ole artiklit mÔtet lugeda, sest mis seal peale kahtlaste rakenduste nÀitamise veel olla vÔib?

Nendega, kes on veel kohal, kes on huvitatud ĂŒlesande punktidest 6 ja 7 ning tunnevad perfektsionismi kratsimist, sĂŒveneme rohkem.

Muliwan'i elluviimise kĂ”ige tĂ€htsam ĂŒlesanne on liikluse korrektne marsruutimine. See tĂ€hendab, et sĂ”ltumata sellest, millisesse (vĂ”i millistesse) kanalitesse teenusepakkuja vaikimisi marsruutimist vaatab, peab see tagastama vastuse just sinna kanalisse, kust pakett tuli. Ülesanne on arusaadav. Kus on probleem? Lihtsas kohalikes vĂ”rkudes on ĂŒlesanne sama, kuid keegi ei muretse lisaseadistuste pĂ€rast ning probleeme ei tunta. Erinevus seisneb selles, et iga marsruutitav sĂ”lm Internetis on kergesti ligipÀÀsetav lĂ€bi iga meie kanali, mitte lĂ€bi rangelt konkreetse, nagu lihtsas kohalikus vĂ”rgus. Ja probleem seisneb selles, et kui me saime pĂ€ringu IP-aadressile ISP3, siis meie puhul lĂ€heks vastus lĂ€bi kanali ISP2, kuna sinna on suunatud vaikimisi lĂŒĂŒs. See lĂ€heb kaduma ja teenusepakkuja loobub sellest, kuna see on vale. Probleem on tuvastatud. Kuidas seda lahendada?

Lahenduse jagame kolmeks etapiks:

  1. Eelnevad seadistused. Selles etapis mÀÀratakse marsruuteri pĂ”hiseaded: vĂ€hemalt kohaliku vĂ”rgu, tulemĂŒĂŒr, aadressi loendid, hairpin NAT jne.
  2. Muliwan. Selles etapis mĂ€rgitakse ja sorteeritakse marsruutimistabelite jaoks vajalikud ĂŒhendused.
  3. Ühendamine ISP-ga. Selles etapis seadistatakse liidesed, mis tagavad ĂŒhenduse Internetiga, aktiivsustatakse marsruutimine ja interneti kanali varundamise mehhanism.

1. Esialgne seadistamine

1.1. Nullime ruuteri konfiguratsiooni kÀsuga:

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

nĂ”ustume „Dangerous! Reset anyway? [y/N]:” ja pĂ€rast taaskĂ€ivitamist ĂŒhendame Winboxiga MAC-aadressi kaudu. Selles etapis on konfiguratsioon ja kasutajabaas kustutatud.

1.2. Loome uue kasutaja:

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

logime sisse ja eemaldame vaikeseaded:

/user remove admin

MĂ€rkus. Just vaikeseade eemaldamine, mitte vĂ€ljalĂŒlitamine, loetakse autori poolt turvalisemaks ja soovitatakse rakendada.

1.3. Loome pÔhiliideste loetelud, et hÔlbustada tulekahju seinal, avastamise seadistuste ja teiste MAC-serverite haldamist:

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

MĂ€rgistame 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 loetelud:

/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. Mugavate kommentaaride kirjutamine on ajakulu vÀÀrt, see lihtsustab tÔrkeotsingut ja konfiguratsiooni mÔistmist.

Autor peab vajalikuks lisada turvalisuse huvides interface list “WAN” liidesse ether3, hoolimata sellest, et selle kaudu ei edastata IP-protokolli.

Ärge unustage, et pĂ€rast ether3 liidese PPP aktiveerimist tuleb see samuti lisada interface list “WAN”.

1.4. Peidame ruuteri varjatud avastamise ja juhtimise eest teenusepakkujate vÔrkudes 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 minimaalsete piisavate tulemuste komplekti tulemĂŒĂŒrireegleid ruuteri kaitsmiseks:

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

(reegliga lubatakse kehtestatud ja seotud ĂŒhendusi, mis on algatatud nii ĂŒhendatud vĂ”rkudest kui ka 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 sissesÔidul. 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, mis sulgeb ahela, 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 lĂ€bivad ruuteri)

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

(reegel lĂ€htestab ĂŒhendusi, mille connection-state=invalid, mis lĂ€bivad ruuteri. See on Mikrotiki poolt tungivalt soovitatav, 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 pakettide lĂ€bimist ruuterist, mis tulevad Internetist ja ei ole lĂ€binud dstnat protseduuri. See kaitseb kohalikke vĂ”rgustikke pahatahtlike isikute eest, kes, olles meie vĂ€liste vĂ”rkude sama leviala sees, mÀÀravad meie vĂ€lised IP aadressid oma vĂ€ravaks ja pĂŒĂŒavad seelĂ€bi "uurida" meie kohalikke vĂ”rgustikke.)

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

1.6. Loome nimekirja mitte marsruutitavatest 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 ning seega jÀrgime ka seda.)

MÀrkus. Nimekirja vÔib muuta, seega soovitan perioodiliselt kontrollida selle asjakohasust.

1.7. Seadistame DNS-i ruuteri jaoks:

/ip dns set servers=1.1.1.1,8.8.8.8

MĂ€rkus. Praeguses ROS-i versioonis dĂŒnaamilised serveritesse need prioritization over statically assigned ones. The name resolution request is sent to the first server in the list. If the current server is unavailable, the next server is contacted. The timeout is long—over 5 seconds. Returning to the 'failed server' does not occur automatically when it comes back online. Considering this algorithm and the presence of a multi-WAN, the author recommends against using servers provided by providers.

1.8. Configuring the local network.
1.8.1. Configuring static IP addresses on local network interfaces:

/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. Setting routing rules to our local networks through the main routing table:

/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. This is one of the simple and quick ways to access local network addresses using the external IP addresses of the router's interfaces, where there is no default route.

1.8.3. Enabling Hairpin NAT for LAN1 and 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

MĂ€rkus. This allows access to your resources (dstnat) via the external IP while being inside the network.

2. The actual implementation of the correct multi-WAN

To solve the task of 'responding to where it was asked', we will use two ROS tools: ĂŒhenduse mĂ€rge ja marsruudi mĂ€rge. Ühenduse mĂ€rge lubab mÀÀrata vajalikud ĂŒhendused ja edaspidi töötada selle mĂ€rgisega nagu tingimusega rakendamiseks marsruudi mĂ€rge. Ja juba sellega marsruudi mĂ€rge on vĂ”imalik töötada ip route ja marsruuditööpĂ”himĂ”tted. Oleme tööriistadega tutvunud, nĂŒĂŒd peame otsustama, millised ĂŒhendused mĂ€rgistada — esimene, kus tĂ€pselt mĂ€rgistada — teine.

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

Teise ĂŒlesande nĂŒanss seisneb selles, et sissetulevad ĂŒhendused vĂ”ivad olla kahte tĂŒĂŒpi: ĂŒlekandmised ja need, mis on mĂ”eldud otse ruuterile. Ühenduse mĂ€rgistamise mehhanism töötab tabelis mangle. Vaatame paketi liikumist lihtsustatud diagrammil, mille on koostanud mikrotik-trainings.com spetsialistid (midagi mĂŒĂŒgi jaoks):

Mikrotik RouterOS-i multivan ja suunamine

JĂ€rgi nooli, nĂ€eme, et pakett, mis jĂ”uab “sisendliidesesse”, lĂ€bib ahela “Prerouting” ja alles seejĂ€rel jaguneb ĂŒlekande ja kohalikuks plokiks “Marsruudiotsus”. SeetĂ”ttu, et tabada kahte jĂ€nest, kasutame Ühenduse mĂ€rki tabelis Mangle Prerouting ahelaid Prerouting.

MĂ€rkus. ROSis mĂ€rgid “Routing mark” on loetletud osas Ip/Routes/Rules kui “Table” ning teistes osades kui “Routing Mark”. See vĂ”ib tekitada teatavat segadust, kuid sisuliselt on need sama asi ja vastavad rt_tables'ile iproute2-s Linuxis.

2.1. MĂ€rgime sissetulevaid ĂŒhendusi igast teenusepakkujast:

/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Ă€rgitud ĂŒhendusi, kasutan tingimust connection-mark=no-mark selle asemel, et connection-state=new, kuna pean seda Ă”igustatuks, samuti nagu loobumist drop invalid ĂŒhendustest sissetuleku filtris.


passthrough=no — selle tĂ”ttu, et antud teostusmeetodi puhul on ĂŒmbermĂ€rgistamine vĂ€listatud ning kiirusel saab reeglite lĂ€bivaatamise katkestada pĂ€rast esimest vastavust.

Tuleb meeles pidada, et me ei sekkuda seni marsruutimise protsessi. Praegu kÀivad ettevalmistusetapid. JÀrgmise teostuse etapiks on kohaliku vÔrgu adressaadile tagasi suunatud transit liikluse töötlemine. St. need paketid, mis (vaata diagrammi) on lÀbinud marsruuteri teel:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” ning jĂ”udnud oma adressaadini kohalikus vĂ”rgus.

Oluline! ROS-is puudub loogiline jaotus vÀlise ja sisemise liidese vahel. Kui jÀlgida vastuspaketi teed antud diagrammil, lÀbib see sama loogilist rada nagu pÀring:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” lihtsalt pĂ€ringu jaoks “Sisendliides” oli ISP liides, ja vastuseks — LAN

2.2. Suunake vastusreaktiivne liiklus vastavatesse marsruutimistabelitesse:

/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 kohaliku vĂ”rgu liiklusega ja dst-address-type=!local, millel ei ole sihtaadressi omaniku ruuteri liidese aadressid.

Sama kehtib kohalike pakettide puhul, mis tulid ruuterisse teed pidi:

“Sisendliides”=>”Eeltöötlus”=>”Marsruudihindamine”=>”Sisend”=>”Kohalik protsess”

Oluline! Vastus liigub jÀrgmise tee pidi:

”Kohalik protsess”=>”Marsruudihindamine”=>”VĂ€ljund”=>”Postitöötlus”=>”VĂ€ljundi liides”

2.3. Suunake vastus kohaliku liikluse vastavatesse marsruutimistabelitesse:

/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 ĂŒlesande vastuse saatmiseks sellele Interneti-kanalile, kust pĂ€ring tuli, pidada lahendatuks. KĂ”ik on mĂ€rgistatud, sildistatud ja valmis marsruutimiseks.
Selle seadistuse suurepÀrane "kÔrvalefekt" on vajadus kasutada DSNAT sadamate edastamise vÔimalust mÔlema (ISP2, ISP3) teenusepakkuja kaudu samaaegselt. Mitte kÔikide, kuna ISP1-l on meil marsruutitav aadress. See efekt on oluline nÀiteks meiliserversi puhul, millel on kaks MЄ, mis vaatavad erinevate Interneti-kanalite poole.

Kohalikest vÔrkudest vÀliste IP-de toimivuse probleemide kÔrvaldamiseks kasutame lahendusi punktides 1.8.2 ja 3.1.2.6.

Lisaks saame kasutada sildimĂ€rgistusega tööriista ka punkti 3 ĂŒlesande lahendamiseks. Teostame nii:

2.4. Suuname kohalike klientide liikluse marsruudilistest tabelitest 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ÔppkokkuvÔttes nÀeb see vÀlja umbes nii:

Mikrotik RouterOS-i multivan ja suunamine

3. Seame ĂŒhenduse ISP-ga ja rakendame marsruudimise sildimĂ€rgistuse jĂ€rgi

3.1. Seame ĂŒ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. Seame staatilise marsruudingu:
3.1.2.1. Lisame "hÀdaolukorra" marsruudi vaikimisi:

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

MĂ€rkus. See marsruut vĂ”imaldab kohalike protsesside liiklusel lĂ€bida marsruudiotsuse etapi, sĂ”ltumata ĂŒhegi teenusepakkuja kanalite seisundist. VĂ€ljamineva kohaliku liikluse eripĂ€ra seisneb selles, et pakk peab liikuma, peab pĂ”hijuhitabelis olema aktiivne marsruut vaikimisi vĂ€ravani. Kui seda pole, hĂ€vitatakse pakk lihtsalt.

Tööriista laiendamiseks kontrolli vĂ€ravat sĂŒgavamaks kanaliseisundi analĂŒĂŒsiks soovitan kasutada rekursiivsete marsruutide meetodit. Meetodi olemus seisneb selles, et nĂ€itame ruuterile teed oma vĂ€ravasse mitte otse, vaid lĂ€bi vahevĂ€rava. Selliste „kontrollvĂ€ravatena“ valitakse vastavalt 4.2.2.1, 4.2.2.2 ja 4.2.2.3 ISP1, ISP2 ja ISP3 jaoks.

3.1.2.2. Marsruut „kontrollaadressi“ juurde:

/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. Alandame scope vÀÀrtuse vaikeseadeks ROS-i sihtscope'is, et kasutada hiljem 4.2.2.1 rekursiivse vĂ€ravana. RĂ”hutan: marsruudi scope „kontrollaadressi“ juurde peab olema vĂ€iksem vĂ”i vĂ”rdne sihtramtu jutustusega, mis osutab kontrollpunktile.

3.1.2.3. Vaikimisi rekursiivne marsruut liiklusele ilma marsruudi markeerimiseta:

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

MĂ€rkus. Kaugus=2 kasutatakse, kuna ISP1 on ĂŒlesande tingimustes esimesena varuna mÀÀratud.

3.1.2.4. Vaikimisi rekursiivne marsruut liiklusele, millel on marsruudzi mĂ€rge “to_isp1”:

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

MÀrkus. Siin hakkame lÔpuks nautima selle ettevalmistustöö vilju, mis viidi lÀbi punktis 2.


Selle marsruudi kaudu suunatakse kogu liiklus, millel on marsruudi mĂ€rge “to_isp1”, esimese pakkuja vĂ€ravasse, olenemata sellest, milline on hetkel vaikimisi aktiivne vĂ€rav pĂ”hitaabelis.

3.1.2.5. Esimene varu rekursiivne marsruut vaikimisi mÀrgistatud liiklusele pakkujatelt 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, et tagada liiklus kohalike vĂ”rkudest, mis koosnevad aadressiloendi liikmetest “to_isp*”.

3.1.2.6. MÀÀrame marsruudi ruuteri kohaliku liikluse jaoks internetti ISP1 kaudu:

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

MĂ€rkus. Kombineerituna punktis 1.8.2 sĂ€testatud reeglitega tagatakse juurdepÀÀs soovitud kanalile antud sordiga. See on kriitilise tĂ€htsusega tunnelite loomisel, kus mÀÀratakse kohaliku poole IP-aadress (EoIP, IP-IP, GRE). Kuna ip route reeglid töötavad ĂŒlevalt alla kuni esimese tingimuse tĂ€itmiseni, peab see reegel olema pĂ€rast punktis 1.8.2 sĂ€testatud reegleid.

3.1.3. Kirjutame NAT reegli vÀljamineva liikluse jaoks:

/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. NATitakse kogu vĂ€ljaminev, vĂ€lja arvatud see, mis kuulub IPseci poliitikate alla. Ma pĂŒĂŒan mitte kasutada action=masquerade ilma ÀÀrmise vajaduseta. See töötab aeglasemalt ja on rohkem ressursimahukas kui src-nat, sest iga uue ĂŒhenduse jaoks arvutab NATi aadressi.

3.1.4. Suuname nimekirjas olevad kliendid, kellel on keelatud lÀbimine teiste teenusepakkujate kaudu, kohe 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 omab kÔrgemat prioriteeti ja rakendatakse enne teisi marsruudireegleid.


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

3.2. Seame ĂŒhenduse ISP2-ga.

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

/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

Kood Winboxi aknas:

Mikrotik RouterOS-i multivan ja suunamine
MÀrkus. Esimene skripti osa aktiveerub rendi edukal saamisel, teine - pÀrast rendi vabastamist.Vaata mÀrkust 2

3.3. Kohandame ISP3 pakkuja ĂŒhendust.

Kuna seadistuste pakkuja annab meile dĂŒnaamilisi, on mĂ”istlik vajalikud muudatused teha skriptidega, mis kĂ€ivituvad pĂ€rast liidese ppp ĂŒles tĂ”usmist ja allakĂ€iku.

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"

Kood Winboxi aknas:

Mikrotik RouterOS-i multivan ja suunamine
MĂ€rkus. String
/ip firewall mangle set [find comment=«Connmark in from ISP3»] in-interface=$«interface»;
see vĂ”imaldab Ă”igesti töödelda liidese ĂŒmbernimetamist, kuna see töötab oma koodi, mitte kuvatava 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 lihvi andmiseks seadistame kella:

/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 lahendus multivan'i rakendamiseks on autori isiklik eelistus ja ei ole ainus vĂ”imalik. ROS'i tööriistakomplekt on ulatuslik ja paindlik, mis ĂŒhelt poolt tekitab raskusi algajatele, kuid teiselt poolt on see populaarsuse pĂ”hjus. Uurige, proovige ja avastage uusi tööriistu ja lahendusi. NĂ€iteks, saadud teadmiste rakendamiseks, vĂ”ib selles multivan'i lahenduses asendada tööriista Check-gateway rekursiivsete marsruutidega Netwatch.

MĂ€rkused

  1. Check-gateway — mehhanism, mis vĂ”imaldab deaktiveerida marsruudi pĂ€rast kahes jĂ€rjestikuses ebaĂ”nnestunud vĂ€rava kĂ€ttesaadavuse kontrolli. Kontrollimine toimub iga 10 sekundi tagant, pluss vastuse timeout. Seega jÀÀb tegelik lĂŒlitamise ajavahemik vahemikku 20-30 sekundi. Kui selline lĂŒlitamise ajavahemik pole piisav — on vĂ”imalus kasutada tööriista Netwatch, kus saab kontrolli taimerit kĂ€sitsi mÀÀrata. Mehhanism Check-gateway ei aktiveeru kanali perioodiliste paketikaotuste korral.

    Oluline! Peamise marsruudi deaktiveerimine toob kaasa kÔigi teiste marsruutide deaktiveerimise, mis sellele viitavad. Seega nende puhul on vajalik check-gateway=ping ei ole vajalik.

  2. Juhtub, et DHCP mehhanismi töös esineb rike, mis nÀib nagu klient, kes on hangunud olekus renew. Sellisel juhul teine osa skriptist ei tööta, kuid korrektne liiklus ei ole takistatud, kuna olek jÀlgib vastavat rekurssiivset marsruuti.
  3. ECMP (Equal Cost Multi-Path) — ROS-is on vĂ”imalik mÀÀrata marsruut mitme vĂ€rava ja sama kaugusega. Sellisel juhul jaotatakse ĂŒhendused kanalite vahel ĂŒhtlaselt, kasutades ringhÀÀlingu algoritmi, proportsionaalselt mÀÀratud vĂ€ravate arvule.

Isiklik tÀnu Jevgenile inspiratsiooni eest artikli kirjutamiseks, abistades selle struktuuri loomisel ja rÔhuasetuste seadmisel. @jscar

Allikas: habr.com

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster