Multivan dhe drejtimi në Mikrotik RouterOS

Paraqitje

Marrja e artikullit, përveç kotësisë, u nxit nga shpeshtësia dëshpëruese e pyetjeve për këtë temë në grupet e profilit të komunitetit të telegramit rusisht-folës. Artikulli u drejtohet administratorëve fillestarë të Mikrotik RouterOS (në tekstin e mëtejmë si ROS). Merret vetëm me multifugonin, me theks në rrugëzimin. Si bonus, ka cilësime minimale të mjaftueshme për të siguruar funksionim të sigurt dhe të përshtatshëm. Ata që kërkojnë zbulimin e temave të radhëve, balancimit të ngarkesës, vlaneve, urave, analizave të thella me shumë faza të gjendjes së kanalit dhe të ngjashme - mund të mos humbasin kohë dhe përpjekje duke lexuar.

Të dhënat fillestare

Si subjekt testimi, u zgjodh një ruter Mikrotik me pesë porta me versionin ROS 6.45.3. Ai do të drejtojë trafikun midis dy rrjeteve lokale (LAN1 dhe LAN2) dhe tre ofruesve (ISP1, ISP2, ISP3). Kanali në ISP1 ka një adresë statike "gri", ISP2 - "e bardhë", e marrë përmes DHCP, ISP3 - "e bardhë" me autorizim PPPoE. Diagrami i lidhjes është paraqitur në figurë:

Multivan dhe drejtimi në Mikrotik RouterOS

Detyra është të konfiguroni ruterin MTK bazuar në skemën në mënyrë që:

  1. Siguroni kalimin automatik te një ofrues rezervë. Ofruesi kryesor është ISP2, rezerva e parë është ISP1, rezerva e dytë është ISP3.
  2. Organizoni aksesin e rrjetit LAN1 në internet vetëm përmes ISP1.
  3. Siguroni mundësinë për të drejtuar trafikun nga rrjetet lokale në internet përmes ofruesit të zgjedhur bazuar në listën e adresave.
  4. Siguroni mundësinë e publikimit të shërbimeve nga rrjeti lokal në internet (DSTNAT)
  5. Vendosni një filtër firewall për të ofruar sigurinë minimale të mjaftueshme nga interneti.
  6. Ruteri mund të lëshojë trafikun e vet përmes cilitdo prej tre ofruesve, në varësi të adresës së zgjedhur të burimit.
  7. Sigurohuni që paketat e përgjigjeve të drejtohen në kanalin nga erdhën (përfshirë LAN).

Komento Ne do të konfigurojmë ruterin "nga e para" në mënyrë që të garantojmë mungesën e surprizave në konfigurimet fillestare "jashtë kutisë" që ndryshojnë nga versioni në version. Winbox u zgjodh si një mjet konfigurimi, ku ndryshimet do të shfaqen vizualisht. Vetë cilësimet do të vendosen me anë të komandave në terminalin Winbox. Lidhja fizike për konfigurim bëhet nga një lidhje e drejtpërdrejtë me ndërfaqen Ether5.

Pak arsyetim rreth asaj se çfarë është një multivan, a është problem apo janë njerëz dinakë të zgjuar rreth thurjes së rrjeteve konspirative

Një administrator kërkues dhe i vëmendshëm, duke vendosur vetë një skemë të tillë ose të ngjashme, befas e kupton se tashmë po funksionon normalisht. Po, po, pa tabelat tuaja të personalizuara të rrugëtimit dhe rregulla të tjera të rrugës, me të cilat janë plot shumica e artikujve mbi këtë temë. Le të kontrollojmë?

A mund të konfigurojmë adresimin në ndërfaqet dhe portat e paracaktuara? Po:

Në ISP1, adresa dhe porta u regjistruan me distanca=2 и check-gateway=ping.
Në ISP2, cilësimi i paracaktuar i klientit dhcp - në përputhje me rrethanat, distanca do të jetë e barabartë me një.
Në ISP3 në cilësimet e klientit pppoe kur add-default-route=po vënë default-route-distance=3.

Mos harroni të regjistroheni NAT në dalje:

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

Si rezultat, përdoruesit e faqeve lokale argëtohen duke shkarkuar macet përmes ofruesit kryesor të ISP2 dhe ka një rezervim kanali duke përdorur mekanizmin kontrolloni portën Shih shënimin 1

Zbatohet pika 1 e detyrës. Ku është multivani me shenjat e tij? Jo…

Me tutje. Ju duhet të lironi klientë të veçantë nga LAN përmes ISP1:

/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
passthrough=po route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
kalim=pa rrugë-dst=100.66.66.1 src-adresa=192.168.88.0/24

Janë zbatuar pikat 2 dhe 3 të detyrës. Etiketat, vulat, rregullat e rrugës, ku jeni?!

Keni nevojë të jepni akses në serverin tuaj të preferuar OpenVPN me adresën 172.17.17.17 për klientët nga Interneti? Ju lutem:

/ip cloud set ddns-enabled=po

Si kolegë, ne i japim klientit rezultatin e prodhimit: ":vendos [ip ​​cloud merr dns-name]"

Ne regjistrojmë përcjelljen e portit nga Interneti:

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

Pika 4 është gati.

Ne vendosëm një mur zjarri dhe siguri të tjera për pikën 5, në të njëjtën kohë jemi të kënaqur që gjithçka tashmë po funksionon për përdoruesit dhe kapim një enë me një pije të preferuar ...
A! Tunelet janë harruar.

l2tp-klient, i konfiguruar nga artikulli google, është rritur në VDS-në tuaj të preferuar holandeze? Po.
Serveri l2tp me IPsec është ngritur dhe klientët me emrin DNS nga IP Cloud (shih më lart.) ngjiten? Po.
Duke u mbështetur në karrigen tonë, duke pirë një pije, ne konsiderojmë me përtesë pikat 6 dhe 7 të detyrës. Ne mendojmë - a kemi nevojë për të? Gjithsesi, funksionon kështu (c) ... Pra, nëse ende nuk është e nevojshme, atëherë kjo është ajo. Multivan i implementuar.

Çfarë është një multivan? Kjo është lidhja e disa kanaleve të internetit me një ruter.

Nuk duhet ta lexoni më tej artikullin, sepse çfarë mund të ketë përveç një shfaqjeje të zbatueshmërisë së dyshimtë?

Për ata që mbeten, që janë të interesuar për pikat 6 dhe 7 të detyrës, dhe gjithashtu ndjejnë kruarjen e perfeksionizmit, ne zhytemi më thellë.

Detyra më e rëndësishme e zbatimit të një multivani është drejtimi i saktë i trafikut. Domethënë: pavarësisht nga cila (apo) Shih. Shënim 3 kanali(et) e ISP-së shikojnë rrugën e paracaktuar në ruterin tonë, ai duhet të kthejë një përgjigje në kanalin e saktë nga erdhi paketa. Detyra është e qartë. Ku qendron problemi? Në të vërtetë, në një rrjet të thjeshtë lokal, detyra është e njëjtë, por askush nuk shqetësohet me cilësimet shtesë dhe nuk ndjen telashe. Dallimi është se çdo nyje e rutueshme në internet është e aksesueshme përmes secilit prej kanaleve tona, dhe jo përmes një kanali rreptësisht specifik, si në një LAN të thjeshtë. Dhe "problemi" është se nëse na erdhi një kërkesë për adresën IP të ISP3, atëherë në rastin tonë përgjigjja do të kalojë përmes kanalit ISP2, pasi porta e paracaktuar drejtohet atje. Largohet dhe do të hidhet poshtë nga ofruesi si i pasaktë. Problemi është identifikuar. Si ta zgjidhim atë?

Zgjidhja ndahet në tre faza:

  1. Paracaktimi. Në këtë fazë, do të vendosen cilësimet bazë të ruterit: rrjeti lokal, muri i zjarrit, listat e adresave, kapaku i flokëve NAT, etj.
  2. Multivan. Në këtë fazë, lidhjet e nevojshme do të shënohen dhe renditen në tabela rutimi.
  3. Lidhja me një ISP. Në këtë fazë do të konfigurohen ndërfaqet që ofrojnë lidhje me internetin, do të aktivizohet rutimi dhe do të aktivizohet mekanizmi i rezervimit të kanaleve të internetit.

1. Paracaktimi

1.1. Ne pastrojmë konfigurimin e ruterit me komandën:

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

pajtohen me "E rrezikshme! Të rivendoset gjithsesi? [y/J]:” dhe, pas rindezjes, ne lidhemi me Winbox përmes MAC. Në këtë fazë, konfigurimi dhe baza e përdoruesit pastrohen.

1.2. Krijo një përdorues të ri:

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

hyni nën të dhe fshini atë të paracaktuar:

/user remove admin

Komento Është heqja dhe mos çaktivizimi i përdoruesit të paracaktuar që autori e konsideron më të sigurt dhe rekomandon për përdorim.

1.3. Ne krijojmë listat bazë të ndërfaqeve për lehtësinë e funksionimit në një mur zjarri, cilësime zbulimi dhe serverë të tjerë MAC:

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

Nënshkrimi i ndërfaqeve me komente

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

dhe plotësoni listat e ndërfaqes:

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

Komento Shkrimi i komenteve të kuptueshme ia vlen koha e shpenzuar për këtë, plus që lehtëson shumë zgjidhjen e problemeve dhe kuptimin e konfigurimit.

Autori e konsideron të nevojshme, për arsye sigurie, të shtojë ndërfaqen ether3 në listën e ndërfaqes "WAN", pavarësisht nga fakti se protokolli ip nuk do të kalojë përmes tij.

Mos harroni se pasi ndërfaqja PPP të ngrihet në ether3, ajo gjithashtu do të duhet të shtohet në listën e ndërfaqes "WAN"

1.4. Ne e fshehim ruterin nga zbulimi dhe kontrolli i lagjes nga rrjetet e ofruesve përmes 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. Ne krijojmë grupin minimal të mjaftueshëm të rregullave të filtrit të murit të zjarrit për të mbrojtur ruterin:

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

(Rregulli siguron leje për lidhjet e krijuara dhe të lidhura që janë iniciuar si nga rrjetet e lidhura ashtu edhe nga vetë ruteri)

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

(ping dhe jo vetëm ping. Të gjitha icmp janë të lejuara. Shumë i dobishëm për gjetjen e problemeve MTU)

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

(rregulli që mbyll zinxhirin e hyrjes ndalon çdo gjë tjetër që vjen nga interneti)

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

(rregulli lejon lidhjet e vendosura dhe të lidhura që kalojnë përmes ruterit)

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

(Rregulli rivendos lidhjet me Connection-state=invalid kalimin përmes routerit. Rekomandohet fuqimisht nga Mikrotik, por në disa situata të rralla mund të bllokojë trafikun e dobishëm)

/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

(rregulli ndalon paketat që vijnë nga interneti dhe nuk kanë kaluar procedurën dstnat të kalojnë përmes ruterit. Kjo do të mbrojë rrjetet lokale nga ndërhyrës të cilët, duke qenë në të njëjtin domen transmetimi me rrjetet tona të jashtme, do të regjistrojnë IP-të tona të jashtme si portë dhe, kështu, përpiquni të "eksploroni" rrjetet tona lokale.)

Komento Le të supozojmë se rrjetet LAN1 dhe LAN2 janë të besueshme dhe trafiku ndërmjet tyre dhe prej tyre nuk është i filtruar.

1.6. Krijo një listë me një listë të rrjeteve jo të rrugëzueshme:

/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

(Kjo është një listë e adresave dhe rrjeteve që nuk janë të kalueshme në internet dhe do të ndiqen në përputhje me rrethanat.)

Komento Lista mund të ndryshojë, kështu që unë ju këshilloj të kontrolloni periodikisht rëndësinë.

1.7. Vendosni DNS për vetë ruterin:

/ip dns set servers=1.1.1.1,8.8.8.8

Komento Në versionin aktual të ROS, serverët dinamikë kanë përparësi ndaj atyre statikë. Kërkesa për zgjidhjen e emrit dërgohet te serveri i parë sipas renditjes në listë. Kalimi në serverin tjetër kryhet kur ai aktual nuk është i disponueshëm. Koha është e madhe - më shumë se 5 sekonda. Kthimi pas, kur "serveri i rënë" rifillon, nuk ndodh automatikisht. Duke pasur parasysh këtë algoritëm dhe praninë e një multivani, autori rekomandon të mos përdorni serverë të ofruar nga ofruesit.

1.8. Vendosni një rrjet lokal.
1.8.1. Ne konfigurojmë adresat IP statike në ndërfaqet LAN:

/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. Ne vendosim rregullat për rrugët drejt rrjeteve tona lokale përmes tabelës kryesore të rrugëtimit:

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

Komento Kjo është një nga mënyrat e shpejta dhe të lehta për të hyrë në adresat LAN me burime të adresave IP të jashtme të ndërfaqeve të ruterit që nuk kalojnë nëpër rrugën e paracaktuar.

1.8.3. Aktivizo Hairpin NAT për LAN1 dhe 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

Komento Kjo ju lejon të aksesoni burimet tuaja (dstnat) përmes një IP të jashtëm ndërsa jeni brenda rrjetit.

2. Në fakt, zbatimi i multivanit shumë korrekt

Për të zgjidhur problemin e "përgjigjjes se nga kërkuan", ne do të përdorim dy mjete ROS: shenjë e lidhjes и shenjë e drejtimit. shenjë e lidhjes ju lejon të shënoni lidhjen e dëshiruar dhe më pas të punoni me këtë etiketë si kusht për aplikim shenjë e drejtimit. Dhe tashmë me shenjë e drejtimit e mundur për të punuar në rrugë ip и rregullat e rrugës. Ne kuptuam mjetet, tani ju duhet të vendosni se cilat lidhje të shënoni - një herë, saktësisht ku të shënoni - dy.

Me të parën, gjithçka është e thjeshtë - duhet të shënojmë të gjitha lidhjet që vijnë në ruter nga Interneti përmes kanalit të duhur. Në rastin tonë, këto do të jenë tre etiketa (sipas numrit të kanaleve): "conn_isp1", "conn_isp2" dhe "conn_isp3".

Nuanca me të dytën është se lidhjet hyrëse do të jenë të dy llojeve: transit dhe ato që janë të destinuara për vetë ruterin. Mekanizmi i shenjës së lidhjes funksionon në tabelë sakatoj. Konsideroni lëvizjen e paketës në një diagram të thjeshtuar, të përpiluar me dashamirësi nga specialistët e burimit mikrotik-trainings.com (jo reklamim):

Multivan dhe drejtimi në Mikrotik RouterOS

Duke ndjekur shigjetat, ne shohim që paketa arrin në "ndërfaqe input", kalon përmes zinxhirit"Parakalimi” dhe vetëm atëherë ndahet në tranzit dhe lokal në bllok”Vendimi i rrugëzimit". Prandaj, për të vrarë dy zogj me një gur, ne përdorim Shenja e lidhjes në tabelë Trajtimi paraprak i Mangle zinxhirë Parakalimi.

vërejtje. Në ROS, etiketat "Shënimi i rrugëtimit" renditen si "Tabela" në seksionin Ip/Rrugët/Rregullat dhe si "Shënimi i rrugëtimit" në seksionet e tjera. Kjo mund të sjellë njëfarë konfuzioni në kuptim, por, në fakt, kjo është e njëjta gjë dhe është një analog i rt_tables në iproute2 në Linux.

2.1. Ne shënojmë lidhjet hyrëse nga secili prej ofruesve:

/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

Komento Për të mos shënuar lidhjet tashmë të shënuara, përdor kushtin connection-mark=no-mark në vend të Connection-state=new sepse mendoj se kjo është më e sakta, si dhe refuzimi i rënies së lidhjeve të pavlefshme në filtrin e hyrjes.


passthrough=jo - sepse në këtë metodë zbatimi, rishënjimi është i përjashtuar dhe, për të shpejtuar, mund të ndërpritet numërimi i rregullave pas ndeshjes së parë.

Duhet të kihet parasysh se ne ende nuk ndërhyjmë në asnjë mënyrë në rrugëzimin. Tani ka vetëm faza të përgatitjes. Faza tjetër e zbatimit do të jetë përpunimi i trafikut transit që kthehet mbi lidhjen e vendosur nga destinacioni në rrjetin lokal. Ato. ato pako që (shih diagramin) kaluan përmes ruterit gjatë rrugës:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Ndërfaqja e daljes” dhe arritën te adresuesi i tyre në rrjetin lokal.

Rëndësishme! Në ROS, nuk ka ndarje logjike në ndërfaqe të jashtme dhe të brendshme. Nëse gjurmojmë rrugën e paketës së përgjigjes sipas diagramit të mësipërm, atëherë ajo do të ndjekë të njëjtën rrugë logjike si kërkesa:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Ndërfaqja e daljes” thjesht per nje kerkese"Interface input” ishte ndërfaqja e ISP-së, dhe për përgjigjen - LAN

2.2. Ne drejtojmë trafikun transit të përgjigjes në tabelat përkatëse të rrugëtimit:

/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

Komentoni. in-interface-list=!WAN - ne punojmë vetëm me trafik nga rrjeti lokal dhe dst-address-type=!local që nuk ka adresën e destinacionit të adresës së ndërfaqeve të vetë ruterit.

E njëjta gjë për paketat lokale që erdhën në ruter gjatë rrugës:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Input”=>”Procesi lokal”

Rëndësishme! Përgjigja do të shkojë në këtë mënyrë:

”Procesi lokal”=>”Vendimi i rrugëzimit”=>”Output”=>”Rruga e postimit”=>“Ndërfaqja e daljes”

2.3. Ne drejtojmë përgjigjen e trafikut lokal në tabelat përkatëse të rrugëtimit:

/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

Në këtë fazë, detyra e përgatitjes për të dërguar një përgjigje në kanalin e internetit nga i cili erdhi kërkesa mund të konsiderohet e zgjidhur. Gjithçka është e shënuar, etiketuar dhe gati për t'u zhvendosur.
Një efekt i shkëlqyer "anësor" i këtij konfigurimi është aftësia për të punuar me përcjelljen e portit DSNAT nga të dy ofruesit (ISP2, ISP3) në të njëjtën kohë. Aspak, pasi në ISP1 kemi një adresë jo të rrugëzueshme. Ky efekt është i rëndësishëm, për shembull, për një server mail me dy MX që shikojnë kanale të ndryshme interneti.

Për të eliminuar nuancat e funksionimit të rrjeteve lokale me ruterë të jashtëm IP, ne përdorim zgjidhjet nga paragrafët. 1.8.2 dhe 3.1.2.6.

Për më tepër, mund të përdorni një mjet me shenja për të zgjidhur paragrafin 3 të problemit. Ne e zbatojmë atë si kjo:

2.4. Ne drejtojmë trafikun nga klientët lokalë nga listat e rrugëtimit në tabelat e duhura:

/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

Si rezultat, duket diçka si kjo:

Multivan dhe drejtimi në Mikrotik RouterOS

3. Vendosni një lidhje me ISP-në dhe aktivizoni rrugëzimin e markës

3.1. Vendosni një lidhje me ISP1:
3.1.1. Konfiguro një adresë IP statike:

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

3.1.2. Konfiguro drejtimin statik:
3.1.2.1. Shto një rrugë të paracaktuar "emergjente":

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

Komento Kjo rrugë lejon që trafiku nga proceset lokale të kalojë fazën e Vendimit të Rrugës, pavarësisht nga gjendja e lidhjeve të ndonjë prej ofruesve. Nuanca e trafikut lokal dalës është se në mënyrë që paketa të lëvizë të paktën diku, tabela kryesore e rrugëtimit duhet të ketë një rrugë aktive për në portën e paracaktuar. Nëse jo, atëherë paketa thjesht do të shkatërrohet.

Si një shtrirje mjeti kontrolloni portën Për një analizë më të thellë të gjendjes së kanalit, unë sugjeroj përdorimin e metodës së rrugës rekursive. Thelbi i metodës është që ne i themi ruterit të kërkojë një shteg drejt portës së tij jo drejtpërdrejt, por përmes një porte të ndërmjetme. 4.2.2.1, 4.2.2.2 dhe 4.2.2.3 do të zgjidhen si porta të tilla "testuese" për ISP1, ISP2 dhe ISP3 respektivisht.

3.1.2.2. Rruga për në adresën e "verifikimit":

/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

Komento Ne e ulim vlerën e shtrirjes në parazgjedhjen në shtrirjen e synuar të ROS në mënyrë që të përdorim 4.2.2.1 si një portë rekursive në të ardhmen. Theksoj: shtrirja e rrugës për në adresën “test” duhet të jetë më e vogël ose e barabartë me shtrirjen e synuar të itinerarit që do t'i referohet asaj testuese.

3.1.2.3. Rruga e parazgjedhur rekursive për trafikun pa shenjën e rrugëtimit:

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

Komento Vlera distance=2 përdoret sepse ISP1 deklarohet si rezervë e parë sipas kushteve të detyrës.

3.1.2.4. Rruga e parazgjedhur rekursive për trafikun me shenjën e rrugëtimit "to_isp1":

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

Komento Në fakt, këtu më në fund po fillojmë të shijojmë frytet e punës përgatitore që u krye në paragrafin 2.


Në këtë rrugë, i gjithë trafiku që ka shenjën "to_isp1" do të drejtohet në portën e ofruesit të parë, pavarësisht se cila portë e paracaktuar është aktualisht aktive për tabelën kryesore.

3.1.2.5. Rruga e parë e parazgjedhur rekursive për trafikun e etiketuar ISP2 dhe 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

Komento Këto rrugë nevojiten, ndër të tjera, për të rezervuar trafikun nga rrjetet lokale që janë anëtarë të listës së adresave "to_isp*"'

3.1.2.6. Ne regjistrojmë rrugën për trafikun lokal të ruterit në internet përmes ISP1:

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

Komento Në kombinim me rregullat nga paragrafi 1.8.2, ai siguron qasje në kanalin e dëshiruar me një burim të caktuar. Kjo është kritike për ndërtimin e tuneleve që specifikojnë adresën IP të anës lokale (EoIP, IP-IP, GRE). Meqenëse rregullat në rregullat e rrugës ip ekzekutohen nga lart poshtë, deri në përputhjen e parë të kushteve, atëherë ky rregull duhet të jetë pas rregullave nga pika 1.8.2.

3.1.3. Ne regjistrojmë rregullin NAT për trafikun në dalje:

/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

Komento NATim gjithçka që del jashtë, përveç asaj që futet në politikat IPsec. Mundohem të mos përdor veprim=maskaradë nëse nuk është absolutisht e nevojshme. Është më i ngadalshëm dhe më intensiv i burimeve sesa src-nat sepse llogarit adresën NAT për çdo lidhje të re.

3.1.4. Ne dërgojmë klientë nga lista, të cilëve u ndalohet qasja përmes ofruesve të tjerë direkt në portën e ofruesit të 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

Komento action=route ka një prioritet më të lartë dhe zbatohet përpara rregullave të tjera të rrugëtimit.


place-fore=0 - vendos rregullin tonë të parin në listë.

3.2. Vendosni një lidhje me ISP2.

Meqenëse ofruesi ISP2 na jep cilësimet përmes DHCP, është e arsyeshme të bëjmë ndryshimet e nevojshme me një skript që fillon kur aktivizohet klienti 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

Vetë skripti në dritaren Winbox:

Multivan dhe drejtimi në Mikrotik RouterOS
Komento Pjesa e parë e skenarit aktivizohet kur qiraja merret me sukses, e dyta - pasi qiraja të lëshohet.Shih shënimin 2

3.3. Ne vendosëm një lidhje me ofruesin ISP3.

Meqenëse ofruesi i cilësimeve na jep dinamikë, është e arsyeshme të bëjmë ndryshimet e nevojshme me skriptet që fillojnë pasi ndërfaqja ppp është ngritur dhe pas rënies.

3.3.1. Së pari ne konfigurojmë profilin:

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

Vetë skripti në dritaren Winbox:

Multivan dhe drejtimi në Mikrotik RouterOS
Komento rresht
/ip firewall mangle set [find comment="Connmark in from ISP3"] in-interface=$"interface";
ju lejon të trajtoni saktë riemërtimin e ndërfaqes, pasi funksionon me kodin e saj dhe jo me emrin e shfaqur.

3.3.2. Tani, duke përdorur profilin, krijoni një lidhje ppp:

/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

Si prekje e fundit, le të vendosim orën:

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

Për ata që lexojnë deri në fund

Mënyra e propozuar për të zbatuar një multivan është preferenca personale e autorit dhe nuk është e vetmja e mundshme. Paketa e mjeteve ROS është e gjerë dhe fleksibël, e cila, nga njëra anë, shkakton vështirësi për fillestarët dhe, nga ana tjetër, është arsyeja e popullaritetit të saj. Mësoni, provoni, zbuloni mjete dhe zgjidhje të reja. Për shembull, si aplikim i njohurive të marra, është e mundur të zëvendësohet mjeti në këtë zbatim të multivanit portë kontrolluese me rrugë rekursive për në orë rrjeti.

Shënimet

  1. portë kontrolluese - një mekanizëm që ju lejon të çaktivizoni itinerarin pas dy kontrolleve të pasuksesshme të njëpasnjëshme të portës për disponueshmërinë. Kontrolli kryhet një herë në 10 sekonda, plus kohëzgjatjen e përgjigjes. Në total, koha aktuale e ndërrimit qëndron në intervalin 20-30 sekonda. Nëse koha e tillë e ndërrimit nuk është e mjaftueshme, ekziston një mundësi për të përdorur mjetin orë rrjeti, ku kohëmatësi i kontrollit mund të vendoset manualisht. portë kontrolluese nuk ndizet në humbjen e përhershme të paketës në lidhje.

    E rëndësishme! Çaktivizimi i një itinerari kryesor do të çaktivizojë të gjitha rrugët e tjera që i referohen asaj. Prandaj, që ata të tregojnë check-gateway=ping jo e nevojshme.

  2. Ndodh që të ndodhë një dështim në mekanizmin DHCP, i cili duket si një klient i mbërthyer në gjendjen e rinovimit. Në këtë rast, pjesa e dytë e skenarit nuk do të funksionojë, por nuk do të pengojë trafikun të ecë siç duhet, pasi shteti gjurmon rrugën përkatëse rekursive.
  3. ECMP (Shtëpihë me kosto të barabartë) - në ROS është e mundur të vendosni një rrugë me disa porta dhe të njëjtën distancë. Në këtë rast, lidhjet do të shpërndahen nëpër kanale duke përdorur algoritmin e rrumbullakët, në proporcion me numrin e portave të specifikuara.

Për shtysën për të shkruar artikullin, ndihmoni në formimin e strukturës së tij dhe vendosjen e thekseve - mirënjohje personale për Evgeny @jscar

Burimi: www.habr.com