Mikrotik RouterOS dhe multi-routing

Hyrje

Artikulli është shkruar jo vetëm për shkak të ndjenjës së krenarisë, por edhe për shkak të frekuencës shqetësuese të pyetjeve në lidhje me këtë temë në grupet përkatëse të komunitetit rusishtfolës në Telegram. Artikulli është orientuar për administratorët fillestarë të Mikrotik RouterOS (më vonë ROS). Ai shqyrton vetëm multicast-in, duke u përqendruar në rrugëzim. Si bonus, përfshin konfigurimet minimale të nevojshme për të siguruar një funksionim të sigurt dhe të përshtatshëm. Atyre që presin zhvillimin e temave si radhët, balancimin e ngarkesës, VLAN-et, bridge-t, analizën shumëkatëshe të gjendjes së kanaleve e të ngjashme, u rekomandohet të mos humbin kohë dhe energji për leximin e këtij artikulli.

Të dhënat fillestare

Si subjekt, është zgjedhur një router Mikrotik me pesë porte, me ROS version 6.45.3. Ai do të rrugëzojë trafik midis dy rrjeteve lokale (LAN1 dhe LAN2) dhe tre ofruesve (ISP1, ISP2, ISP3). Kanali i ISP1 ka një adresë statike "gri", ISP2 ka një adresë "të bardhë", e cila merret përmes DHCP, dhe ISP3 ka një adresë "të bardhë" me autorizim PPPoE. Skema e lidhjes është paraqitur në figurë:

Mikrotik RouterOS dhe multi-routing

Detyra është të konfiguroni routerin "MTK" në bazë të skemës në mënyrë që:

  1. Siguroni kalimin automatik në ofruesin e rezervës. Ofruesi kryesor - ISP2, rezervi i parë - ISP1, rezervi i dytë - ISP3.
  2. Organizoni daljen e rrjetit LAN1 në internet vetëm nëpërmjet ISP1.
  3. Parashikoni mundësinë për të rregulluar trafikun nga rrjetet lokale në internet përmes ofruesit të zgjedhur bazuar në listën e adresave.
  4. Parashikoni mundësinë e publikimit të shërbimeve nga rrjeti lokal në internet (DSTNAT).
  5. Konfiguroni filtrin e firewall-it për të siguruar një siguri minimale të mjaftueshme nga ana e internetit.
  6. Ruter-i duhet të jetë në gjendje të dërgojë trafikun e tij përmes ndonjë prej tre ofruesve në varësi të adresës së burimit të zgjedhur.
  7. Siguroni ruterimin e paketave përgjigjëse në kanal nga i cili erdhën (duke përfshirë LAN).

VĂ«rejtje. Do tĂ« konfigurojmĂ« routerin “nga njĂ« fillim tĂ« bardhĂ«â€, pĂ«r tĂ« garantuar mungesĂ«n e surprizave nĂ« konfigurimet fillestare qĂ« ndryshojnĂ« nga versioni nĂ« version “nga kutia”. Si mjet konfigurimi kemi zgjedhur Winbox, ku do tĂ« shfaqen shkurtimisht ndryshimet. VetĂ« konfigurimet do tĂ« vendosen pĂ«rmes komandave nĂ« terminalin Winbox. Lidhja fizike pĂ«r konfigurim realizohet me njĂ« lidhje direkte nĂ« interfesin Ether5.

Pak reflektime mbi atë se çfarë është një multiwan, a është ky një problem apo ndonjë person i zgjuar po thur rrjete konspiracionesh rreth tij.

Një administrator kurioz dhe i vëmendshëm, duke konfiguruar një skemë të tillë apo të ngjashme, befas e kupton se po funksionon mirë ashtu siç është. Po, pra, pa këto tabela rrugëzimish të përdoruesve dhe rregulla të tjera rrugore, të cilat janë të pranishme në shumicën e artikujve në këtë temë. A do ta verifikojmë?

A mund të konfiguroni adresat në interfesat dhe portat e defoltit? Po:

Në ISP1 e kemi vendosur adresën dhe portin me distance=2 dhe check-gateway=ping.
NĂ« ISP2 konfigurimi i klientit dhcp pĂ«r defolt — pĂ«rkatĂ«sisht, distance do tĂ« jetĂ« njĂ«.
Në ISP3 në konfigurimet e klientit pppoe me add-default-route=yes vendosim default-route-distance=3.

Nuk harrojmë të shënojmë NAT për dalje:

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

Në përfundim, përdoruesit e lokalizimeve ngarkohen me kënaqësi përmes ofruesit kryesor ISP2 dhe ka rezervim të kanalit përmes mekanizmit. kontrollo gateway Shih shënimin 1

Pika 1 e detyrës është realizuar. Ku është multivan me etiketat e tij? Jo...

Më tej. Duhet të lirohen klientët konkretë nga LAN përmes 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

Pikat 2 dhe 3 të detyrës janë realizuar. Etiketat, markat, rregullat e rrugës, ku jeni?!

Duhet t'i japim qasje serverit tonë të preferuar OpenVPN me adresën 172.17.17.17 për klientët nga Interneti? Ja ku jemi:

/ip cloud set ddns-enabled=yes

KlientĂ«ve si peer u japim rezultatin e komandĂ«s: “:put [ip cloud get dns-name]”

Vendosim port forwarding nga interneti:

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

Pika 4 është gati.

Rregullojmë firewall-in dhe sigurinë e tjera për pikën 5, ndërkohë gëzohemi që tek përdoruesit tashmë gjithçka funksionon dhe shtrijmë duar drejt kapacitetit me pijen tonë të preferuar...
A! Tunnels-i është harruar gjithashtu.

A është klienti l2tp, i vendosur sipas artikullit të gjetur, ngjitur me VDS-në e preferuar holandeze? Po.
A është serveri l2tp me IPsec ngritur dhe a lidhin klientët me emrin DNS nga IP Cloud (shih më sipër)? Po.
I thjesht e shohim në pozita të rehatshme, duke shijuar pijen, dhe jemi të përqendruar në pikat 6 dhe 7 të detyrës. Mendoni - a na duhen vërtet? Gjithçka funksionon... Nëse nuk na duhen, atëherë kjo është e gjitha. Multivan është realizuar.

ÇfarĂ« Ă«shtĂ« Multivan? ËshtĂ« lidhja e disa kanaleve tĂ« internetit me njĂ« router tĂ« vetĂ«m.

Mund ta ndalni leximin e artikullit këtu, sepse çfarë mund të ketë përveç shfaqjes së dyshimtë?

Me ata që mbetën, që janë të interesuar për pikat 6 dhe 7 të detyrës, dhe ndiejnë një ndjesi përsosmërije, le të thellohemi më tej.

Detyra kryesore e implementimit tĂ« multivan Ă«shtĂ« ruterimi i saktĂ« tĂ« trafikut. KĂ«shtu qĂ«: pavarĂ«sisht se nĂ« cilin (ose nĂ« cilat) kanale tĂ« ofruesit shikohet rrugeja e paracaktuar nĂ« routerin tonĂ«, ai duhet tĂ« kthejĂ« njĂ« pĂ«rgjigje saktĂ«sisht nĂ« atĂ« kanal nga e cila paketa erdhi. Detyra Ă«shtĂ« e qartĂ«. Por çfarĂ« Ă«shtĂ« problemi? Sepse nĂ« njĂ« rrjet tĂ« thjeshtĂ« lokal, detyra Ă«shtĂ« e njĂ«jtĂ«, por askush nuk merret me konfigurime tĂ« tjera dhe nuk ndien asnjĂ« krizĂ«. Dallimi Ă«shtĂ« se çdo nyje e ruterueshme nĂ« Internet Ă«shtĂ« e aksesueshme pĂ«rmes çdo kanali tonĂ«, jo pĂ«rmes njĂ« tĂ« caktuar, si nĂ« njĂ« rrjet tĂ« thjeshtĂ« lokal. Dhe “kriza” qĂ«ndron nĂ« faktin se nĂ«se na vjen njĂ« kĂ«rkesĂ« pĂ«r adresĂ«n IP ISP3, nĂ« rastin tonĂ« pĂ«rgjigjja do tĂ« shkojĂ« pĂ«rmes kanalit ISP2, pasi aty Ă«shtĂ« drejtuar gateway-i i paracaktuar. Do tĂ« shkojĂ« dhe do tĂ« refuzohet nga ofruesi, si jo e saktĂ«. Problemi Ă«shtĂ« identifikuar. Si ta zgjidhim atĂ«?

Zgjidhjen do ta ndajmë në tre faza:

  1. Konfigurimi paraprak. Në këtë fazë do të vendosen parametrat bazë të router-it: rrjeti lokal, firewall, listat e adresave, hairpin NAT etj.
  2. Multivan. Në këtë fazë, lidhjet e nevojshme do të etiketohen dhe klasifikohen sipas tabelave të routing-ut.
  3. Lidhja me ISP. Në këtë fazë, do të konfigurohen ndërfaqet që sigurojnë lidhjen me Internetin, do të angazhohet routing-u dhe mekanizmi i rezervimit të kanaleve të Internetit.

1. Parakonfigurimi

1.1. Pastrojmë konfigurimin e router-it me komandën:

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

pranojmë "Dangerous! Reset anyway? [y/N]:" dhe, pas rinisjes, lidhemi me Winbox përmes MAC. Në këtë fazë, konfigurimi dhe baza e përdoruesve janë pastruar.

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

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

bëjmë login si ai dhe fshijmë përdoruesin e defaut:

/user remove admin

Vërejtje. Ai beson se fshirja dhe jo çaktivizimi i përdoruesit të defaut është më e sigurt dhe e rekomandon për t'u përdorur.

1.3. Krijojmë lista bazike të ndërfaqeve për lehtësi në operimin në firewall, konfigurimet e discovery dhe serverat e tjerë MAC:

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

Shkruajmë komente për ndërfaqet

/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ësojmë listat e ndërfaqeve:

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

Vërejtje. Shkruarja e komenteve të qarta ia vlen koha të shpenzuar dhe ndihmon shumë në zgjidhjen e problemeve dhe kuptimin e konfigurimit.

Autori konsideron të nevojshme, për arsye sigurie, të shtojë në listën e interface-ve "WAN" interface-in ether3, pavarësisht se mbi të nuk do të kalojë protokolli ip.

Mos harrojmë se pas ngritjes së interface PPP në ether3, duhet ta shtojmë edhe atë në listën e interface-ve "WAN".

1.4. Fshijmë routerin nga zbulimi i fqinjësisë dhe menaxhimit 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. Krijojmë një grup minimal rregullash për filtrimin e firewall-it për të mbrojtur routerin:

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

(rregulli siguron lejet për lidhjet e krijuara dhe të afërta, të cilat janë iniciuar si nga rrjetet e lidhura, ashtu edhe nga vetë routeri)

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

(ping dhe jo vetëm ping. I gjithë icmp lejohet në hyrje. Mjaft e dobishme për të gjetur probleme me MTU)

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

(rregulli që mbyll zinxhirin e input-it ndalon gjithçka 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 krijuara dhe të afërta, të cilat kalojnë përmes routerit)

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

(rregulli heq lidhjet me connection-state=invalid, që kalojnë përmes routerit. Ky rregull rekomandohet fort nga Mikrotik, por në disa raste të rralla mund të shkaktojë bllokimin e trafikut të 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

(rregullin ndalon kalimin e paketimeve përmes rrjetit nga Interneti që nuk kanë kaluar procedurën dstnat. Kjo do të mbrojë rrjetet lokale nga sulmuesit që, duke qenë në të njëjtin domen të transmetimit të gjerë me rrjetet tona të jashtme, do të shkruajnë si portë IP-të tona të jashtme dhe, kështu, do të përpiqen të "hetuan" rrjetet tona lokale.)

Vërejtje. Le të marrim si kusht që rrjetet LAN1 dhe LAN2 janë të besueshme dhe trafiku midis tyre dhe nga ato nuk filtrohet.

1.6. Krijoni një listë me adresat e rrjeteve që nuk mund të ruterizohen:

/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ë lista e adresave dhe rrjeteve që nuk ruterizohen në Internet dhe, për pasojë, ne gjithashtu do ta ndjekim këtë.)

Vërejtje. Lista mund të ndryshojë, prandaj sugjeroj të kontrolloni rregullisht aktualitetin e saj.

1.7. Konfiguroni DNS për vetë routerin:

/ip dns set servers=1.1.1.1,8.8.8.8

VĂ«rejtje. NĂ« versionin aktual tĂ« ROS dinamik hostingut kanĂ« pĂ«rparĂ«si mbi ata tĂ« caktuar statikisht. KĂ«rkesa pĂ«r zgjidhjen e emrit dĂ«rgohet serverit tĂ« parĂ« sipas renditjes nĂ« listĂ«. Kalimi nĂ« serverin e ardhshĂ«m ndodh nĂ« rast se ai aktual Ă«shtĂ« i paqasshĂ«m. Koha e pritjes Ă«shtĂ« e gjatĂ« – mĂ« shumĂ« se 5 sekonda. Kthimi automatik, kur rikthehet nĂ« funksion “serveri i rĂ«nĂ«â€, nuk ndodh. Duke marrĂ« parasysh kĂ«tĂ« algoritĂ«m dhe disponueshmĂ«rinĂ« e shumĂ«llojshmĂ«risĂ«, autori rekomandon qĂ« tĂ« mos pĂ«rdoren serverĂ«t e dhĂ«nĂ« nga ofruesit.

1.8. Konfiguroni rrjetin lokal.
1.8.1. Konfigurojmë adresat IP statike në ndërfaqet e rrjeteve lokale:

/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. Caktojmë rregullat e rrugëve në rrjetet tona lokale përmes tabelës kryesore të rrugëzimit:

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

Vërejtje. Ky është një nga mënyrat e thjeshta dhe të shpejta për të aksesuar adresat e rrjeteve lokale me burimet e adresave IP të jashtme të ndërfaqeve të router-it, për të cilat nuk ka rrugë në parazgjedhje.

1.8.3. Aktivizoni 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

Vërejtje. Kjo lejon aksesin në burimet tona (dstnat) përmes IP-së së jashtme, duke qenë brenda rrjetit.

2. Në thelb, realizimi i asaj që quhet shumëllojshmëri e saktë

PĂ«r tĂ« zgjidhur detyrĂ«n “tĂ« pĂ«rgjigjemi nga aty ku u kĂ«rkua” do tĂ« pĂ«rdorim dy mjete ROS: shĂ«nim i lidhjes dhe shĂ«nim i rrugĂ«s. ShĂ«nimi i lidhjes lejon tĂ« shĂ«nosh lidhjen e dĂ«shiruar dhe mĂ« pas tĂ« punosh me kĂ«tĂ« shĂ«nim si kusht pĂ«r aplikimin shĂ«nim i rrugĂ«s. Dhe tani me shĂ«nim i rrugĂ«s mund tĂ« punojmĂ« nĂ« ip route dhe regullat e rrugĂ«s. Tani qĂ« kuptuam mjetet, duhet tĂ« vendosim cilat lidhje tĂ« shĂ«nojmĂ« — e para, dhe ku saktĂ«sisht tĂ« shĂ«nojmĂ« — e dyta.

Me tĂ« parĂ«n Ă«shtĂ« e thjeshtĂ« — duhet tĂ« shĂ«nojmĂ« tĂ« gjitha lidhjet qĂ« vijnĂ« nga Interneti nĂ« router nĂ«pĂ«rmjet kanaleve pĂ«rkatĂ«se. NĂ« rastin tonĂ« do tĂ« jenĂ« tri shĂ«nime (sipĂ«rfaqja e kanaleve): “conn_isp1”, “conn_isp2” dhe “conn_isp3”.

Nuanca me të dytën është se lidhjet në hyrje do të jenë të dy llojeve: tranzit dhe ato që janë të destinuara për router-in. Mekanizmi i shënimit të lidhjes punon në tabelën mangle. Le të shqyrtojmë lëvizjen e paketës në një diagram të thjeshtuar, të dashurisht të mbledhur nga specialistët e burimit mikrotik-trainings.com (nuk është reklamë):

Mikrotik RouterOS dhe multi-routing

Duke ndjekur стрДлĐșОтД, ne shohim se paketa, qĂ« vjen nĂ« “input interface”, kalon pĂ«rmes zinxhirit “Prerouting” dhe pastaj ndahet nĂ« dy — tranzit dhe lokal nĂ« bllokun “Rruga e Vendimit”. Prandaj, pĂ«r tĂ« goditur dy lepuj, angazhojmĂ« ShĂ«nimin e Lidhjes nĂ« tabelĂ« Mangle Prerouting zinxhirĂ«t Prerouting.

VĂ«rejtje. NĂ« ROS etiketat “Routing mark” janĂ« tĂ« shĂ«nuara nĂ« seksionin Ip/Routes/Rules si “Table”, ndĂ«rsa nĂ« seksione tĂ« tjera si “Routing Mark”. Kjo mund tĂ« shkaktojĂ« ndonjĂ« konfuzion nĂ« kuptim, por, nĂ« thelb, Ă«shtĂ« e njĂ«jta gjĂ« dhe pĂ«rfaqĂ«son ekvivalentin e rt_tables nĂ« iproute2 nĂ« linux.

2.1. Ne etiketohet lidhjet hyrëse nga çdo njëri nga ofruesit:

/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

Vërejtje. Për të mos etiketuar lidhjet e shënuara tashmë, unë përdor kushtin connection-mark=no-mark në vend të connection-state=new sepse e mendoj këtë si më korrekte, ashtu si refuzimi i drop invalid lidhjeve në filtrin input.


passthrough=no — sepse nĂ« kĂ«tĂ« mĂ«nyrĂ« zbatimi, rimarkimi Ă«shtĂ« i pĂ«rjashtuar dhe pĂ«r tĂ« pĂ«rshpejtuar mund tĂ« ndĂ«rpritet pĂ«rpilimi i rregullave pas pĂ«rputhjes sĂ« parĂ«.

Duhet të kihet parasysh se derimë tani nuk jemi duke bërë asnjë ndërhyrje në rrugëzim. Tani po kalojmë vetëm në fazat e përgatitjes. Faza e ardhshme e zbatimit do të jetë përpunimi i trafikut tranzit, i cili kthehet përmes lidhjes së vendosur nga adresati në rrjetin lokal. Domethënë, ato paketa që (shih diagramin) kaluan përmes router-it në rrugën:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” dhe arritĂ«n te adresati i tyre nĂ« rrjetin lokal.

E rëndësishme! Në ROS nuk ka ndarje logjike mes ndërfaqeve të jashtme dhe të brendshme. Nëse ndjekim rrugën e paketës së përgjigjes në diagramin e dhënë, ajo do të kalojë në të njëjtën rrugë logjike si kërkesa:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” thjesht pĂ«r kĂ«rkesĂ«n “Input Interface” kishte ndĂ«rfaqen ISP, ndĂ«rsa pĂ«r pĂ«rgjigjen — LAN

2.2. Drejtojmë trafikun e përgjigjes transit nëpër 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

VĂ«rejtje. in-interface-list=!WAN — ne punojmĂ« vetĂ«m me trafikun nga rrjeti lokal dhe dst-address-type=!local qĂ« nuk ka adresĂ«n e destinacionit tĂ« adresave tĂ« ndĂ«rfaqeve tĂ« router-it tĂ« vet.

E njëjta gjë vlen për paketat lokale që kanë ardhur në router përmes rrugës:

“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Input”=>”Local Process”

E rëndësishme! Përgjigja do të shkojë nëpër rrugën e mëposhtme:

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

2.3. Drejtojmë trafikun lokal të përgjigjes nëpër 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 dĂ«rgimin e pĂ«rgjigjes nĂ« atĂ« kanal tĂ« Internetit, nga i cili erdhi kĂ«rkesa, mund tĂ« konsiderohet e zgjidhur. Çdo gjĂ« Ă«shtĂ« e shĂ«nuar, e klasifikuar dhe gati pĂ«r t'u rrugĂ«zuar.
NjĂ« efekt “anĂ«sor” i shkĂ«lqyer i kĂ«tij konfigurimi Ă«shtĂ« mundĂ«sia e funkcionimit tĂ« portĂ«ve DSNAT nga tĂ« dy (ISP2, ISP3) ofruesit nĂ« tĂ« njĂ«jtĂ«n kohĂ«. Nuk ndodh me tĂ« gjithĂ«, pasi nĂ« ISP1 kemi njĂ« adresĂ« tĂ« pa ĐŒĐ°Ń€ŃˆŃ€ŃƒŃ‚ĐžĐ·ĐžŃ€ŃƒĐ”ĐŒŃƒŃŽ. Ky efekt Ă«shtĂ« i rĂ«ndĂ«sishĂ«m, pĂ«r shembull, pĂ«r njĂ« server e-mail-i me dy MX, tĂ« cilat shikojnĂ« nĂ« kanale tĂ« ndryshme tĂ« Internetit.

Për të eliminuar nuancat e funksionimit të rrjeteve lokale me IP e jashtme të router-it, përdorim zgjidhjet nga pikat 1.8.2 dhe 3.1.2.6.

Për më tepër, mund të përdorim një mjet me etiketa dhe për të zgjidhur pikën 3 të detyrës. E realizojmë kështu:

2.4. Drejtojmë trafikun nga klientët lokalë nga listat e rrugëve në tabelat përkatëse:

/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, kjo duket afërsisht kështu:

Mikrotik RouterOS dhe multi-routing

3. Konfiguroni lidhjen me ISP dhe angazhojmë rrugëtimin sipas etiketeve

3.1. Konfiguroni lidhjen me ISP1:
3.1.1. Konfigurojmë adresën statike IP:

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

3.1.2. Konfiguroni rrugëtimin statik:
3.1.2.1. Shtoni rrugĂ«n “emergjente” si parazgjedhje:

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

Vërejtje. Ky kyç i lejon trafikut nga proceset lokale të kalojë fazën e Vendimit të Rrugës pavarësisht nga gjendja e kanaleve të ndonjërit nga ofruesit. Një nuancë e trafikut lokal në dalje është se, për të përcjellë ndonjë paketë, në tabelën kryesore të routing duhet të ekzistojë një rrugë aktive deri te gateway-i i paracaktuar. Nëse nuk ka, paketa thjesht do të shkatërrohet.

Si njĂ« zgjerim tĂ« mjetit kontrollo gateway pĂ«r njĂ« analizĂ« mĂ« tĂ« thellĂ« tĂ« gjendjes sĂ« kanalit propozoj tĂ« pĂ«rdorim metodĂ«n e rrugĂ«ve recursive. Thelbi i metodĂ«s Ă«shtĂ« qĂ« ne i japim router-it urdhĂ«r tĂ« kĂ«rkojĂ« rrugĂ«n deri te gateway-i i tij jo direkt, por pĂ«rmes njĂ« gateway ndĂ«rmjetĂ«s. Si kĂ«to “gateway verifikues” do tĂ« zgjidhen 4.2.2.1, 4.2.2.2 dhe 4.2.2.3 pĂ«rkatĂ«sisht pĂ«r ISP1, ISP2 dhe ISP3.

3.1.2.2. Rruga deri te adresĂ«n “verifikues”:

/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

VĂ«rejtje. Vlera scope e ulĂ«m deri nĂ« atĂ« default nĂ« ROS target scope, pĂ«r tĂ« pĂ«rdorur mĂ« vonĂ« 4.2.2.1 si gateway-rekursive. Shtoj se: scope-i i rrugĂ«s deri te adresĂ«n “verifikues” duhet tĂ« jetĂ« mĂ« i vogĂ«l ose i barabartĂ« me target scope tĂ« asaj rruge qĂ« do tĂ« referohet te verifikuesi.

3.1.2.3. Rrëfimi rikursive i parazgjedhur për trafikun pa shenjën e rutimit:

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

Vërejtje. Vlera distance=2 përdoret sepse ISP1 sipas kushteve të problemit është shpallur si i pari rezervë.

3.1.2.4. RrĂ«fimi rikursive i parazgjedhur pĂ«r trafikun me shenjĂ«n e rutimit “to_isp1”:

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

Vërejtje. Këtu, përfundimisht, fillojmë të shfrytëzojmë frytet e punës përgatitore që u krye në pikën 2.


PĂ«rmes kĂ«tij rrugĂ«zim, tĂ« gjithĂ« trafikun qĂ« ka shenjĂ«n e rutimit “to_isp1” do tĂ« drejtohet te porta e ofruesit tĂ« parĂ« pavarĂ«sisht se cili Ă«shtĂ« porti aktiv nĂ« atĂ« moment pĂ«r tabelĂ«n kryesore.

3.1.2.5. Rrëfimi i parë rezervë i parazgjedhur për trafikun e markuar të ofruesve 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

VĂ«rejtje. KĂ«to rrugĂ«zim janĂ« tĂ« nevojshme, gjithashtu, pĂ«r rezervimin e trafikut nga rrjetet lokale, tĂ« cilat pĂ«rbĂ«hen nga anĂ«tarĂ«t e listĂ«s sĂ« adresave “to_isp*”.

3.1.2.6. Shkruajmë rrugën për trafikun lokal të routerit në internet përmes ISP1:

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

Vërejtje. Në përputhje me rregullat nga pika 1.8.2, sigurohet dalja në kanalin e nevojshëm me burimin e caktuar. Kjo është thelbësore për ndërtimin e tunelëve, në të cilat përcaktohet adresa IP e anës lokale (EoIP, IP-IP, GRE). Duke qenë se rregullat në ip route rules ekzekutohen nga lart poshtë, deri në përputhjen e parë të kushteve, kjo rregull duhet të jetë pas rregullave nga pika 1.8.2.

3.1.3. Shkruajmë 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

Vërejtje. NAT-i për të gjithë trafikun në dalje, përveç atij që bie nën politikat IPsec. Pjesërisht, përpiqem të mos përdor action=masquerade pa nevojë urgjente. Punon më ngadalë dhe kërkon më shumë burime se src-nat, për shkak se për çdo lidhje të re llogarit adresën për NAT.

3.1.4. Dërgojmë klientët nga lista, të cilëve u është ndaluar dalja përmes ofruesve të tjerë, menjëherë në derën e ofruesit 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

Vërejtje. action=route ka prioritet më të lartë dhe zbaton më parë se rregullat e tjera të routing.


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

3.2. Konfiguroni lidhjen me ISP2.

Duke qenë se ofruesi ISP2 na jep konfigurimet përmes DHCP, është e arsyeshme të bëjme ndryshimet e nevojshme me një skenar, i cili niset 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

Skenari vetë në dritaren Winbox:

Mikrotik RouterOS dhe multi-routing
VĂ«rejtje. Pjesa e parĂ« e skriptit funksionon kur arrijmĂ« me sukses qiranĂ«, pjesa e dytĂ« — pasi tĂ« lihet qiraja.Shiko shĂ«nimin 2

3.3. Konfigurojmë lidhjen me ofruesin ISP3.

Duke qenë se ofruesi na jep dinamikë, është e arsyeshme të bëjmë ndryshime të nevojshme përmes skriptesh që nisin pas ngritjes dhe rënies së ndërfaqes ppp.

3.3.1. Së pari 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"

Skenari vetë në dritaren Winbox:

Mikrotik RouterOS dhe multi-routing
Vërejtje. Vargu
/ip firewall mangle set [find comment=«Connmark in from ISP3»] in-interface=$«interface»;
lejon të menaxhohet emri i përmendshëm i ndërfaqes, pasi punon me kodin e saj dhe jo me emrin e tij të dukshëm.

3.3.2. Tani, duke përdorur profilin, krijojmë lidhjen 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 një hap të fundit, të konfigurojmë orët:

/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ë e lexuan deri në fund

Mënyra e propozuar për implementimin e multivan-it është preferenca personale e autorit dhe nuk është e vetmja e mundshme. Instrumentet ROS janë të gjera dhe fleksibile, çka, nga njëra anë, shkakton vështirësi për fillestarët, ndërsa, nga ana tjetër, është arsyeja e popullaritetit të tyre. Studioni, provoni, hapni mendjen për mjete dhe zgjidhje të reja. Për shembull, si një përdorim të njohurive të marra, mund të zëvendësoni instrumentin Check-gateway me rrugët rekurzive Netwatch.

Shënime

  1. Check-gateway — njĂ« mekanizĂ«m qĂ« lejon deaktivimin e njĂ« rruge pas dy kontrollesh tĂ« pasuksesshme tĂ« ndĂ«rlidhjes pĂ«r akses. Kontrolli kryhet çdo 10 sekonda, plus njĂ« kohĂ« pĂ«rgjigjeje. Pra, koha e saktĂ« e kalimit Ă«shtĂ« nĂ« intervalin 20-30 sekonda. NĂ«se ky kalim nuk Ă«shtĂ« i mjaftueshĂ«m — ka njĂ« mundĂ«si pĂ«r tĂ« pĂ«rdorur mjetin Netwatch, ku koha e kontrollit mund tĂ« vendoset manualisht. Mekanizmi Check-gateway nuk aktivizohet gjatĂ« humbjeve periodike tĂ« paketave nĂ« kanal.

    ËshtĂ« e rĂ«ndĂ«sishme! Deaktivimi i rrugĂ«s kryesore çon nĂ« deaktivimin e tĂ« gjitha rrugĂ«ve tĂ« tjera qĂ« referohen te ajo. Prandaj, pĂ«r to nuk ka nevojĂ« tĂ« specifikoni check-gateway=ping .

  2. Ndonjëherë ndodh që mekanizmi i funksionimit të DHCP-të të ketë një problem, i cili duket si klient që ngec në gjendjen renew. Në këtë rast, pjese e dytë e skriptit nuk do të funksionojë, por kalimi i korrekshëm i trafik është i mundur, pasi gjendjen e ndjek ruga rekurzive përkatëse.
  3. ECMP (Equal Cost Multi-Path) — nĂ« ROS ka mundĂ«si pĂ«r tĂ« pĂ«rcaktuar njĂ« rrugĂ« me shumĂ« gateway dhe distanca tĂ« njĂ«jtĂ«. NĂ« kĂ«tĂ« rast, lidhjet do tĂ« shpĂ«rndahen pĂ«rmes kanaleve duke pĂ«rdorur algoritmin round robin, proporcionalisht me numrin e gateway-ve tĂ« dhĂ«nĂ«.

PĂ«r nxitje dhe ndihmĂ« nĂ« formimin e strukturĂ«s sĂ« artikullit dhe vendosjen e akcentĂ«ve — njĂ« falĂ«nderim personal pĂ«r Evgeniy. @jscar

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster