Hyrje
Motivi pĂ«r tĂ« shkruar kĂ«tĂ« artikull, pĂ«rveç vanity, ishte frekuenca shqetĂ«suese e pyetjeve nĂ« lidhje me kĂ«tĂ« temĂ« nĂ« grupet pĂ«rkatĂ«se tĂ« komunitetit rus tĂ« Telegram-it. Artikulli Ă«shtĂ« i orientuar pĂ«r administratoret fillestare tĂ« Mikrotik RouterOS (tĂ« njohur si ROS). Ai trajton vetĂ«m multivlanin me fokus nĂ« routing. Si bonus, ofrohen konfigurime minimale tĂ« nevojshme pĂ«r tĂ« siguruar njĂ« punĂ« tĂ« sigurt dhe tĂ« rehatshme. Ata qĂ« kĂ«rkojnĂ« tĂ« eksplorojnĂ« temat e radhĂ«ve, balancimin e ngarkesĂ«s, VLAN-ve, bridgjeve, analiza tĂ« thella nĂ« shumĂ« nivele tĂ« gjendjes sĂ« kanalit dhe gjĂ«ra tĂ« ngjashme â mund tĂ« mos e humbasin kohĂ«n dhe energjinĂ« nĂ« lexim.
Të dhënat burimore
Si subjekt, Ă«shtĂ« zgjedhur njĂ« router me pesĂ« porte Mikrotik me versionin e ROS 6.45.3. Ai do tĂ« rregullojĂ« trafikun midis dy rrjeteve lokale (LAN1 dhe LAN2) dhe tre ofruesve (ISP1, ISP2, ISP3). Kanali me ISP1 ka njĂ« adresĂ« statike âe gjallĂ«â, ISP2 ka njĂ« adresĂ« âtĂ« bardhĂ«â e cila merret pĂ«rmes DHCP, ISP3 ka njĂ« adresĂ« âtĂ« bardhĂ«â me autorizim PPPoE. Schema e lidhjes Ă«shtĂ« paraqitur nĂ« figurĂ«:

Detyra është të konfigurohet routeri 'MTK' bazuar në diagramin në mënyrë që:
- Të sigurohet kalimi automatik në ofruesin rezervë. Ofruesi kryesor është ISP2, rezervi i parë është ISP1, rezerva e dytë është ISP3.
- Të organizohet dalja e rrjetit LAN1 në internet vetëm përmes ISP1.
- Të parashikohen mundësitë për të rregulluar trafikun nga rrjetet lokale në internet përmes ofruesit të zgjedhur duke u bazuar në address-list.
- Të parashikohen mundësitë për publikimin e shërbimeve nga rrjeti lokal në internet (DSTNAT).
- Të konfigurohet një filtrimi i firewall-it për të siguruar një siguri minimale nga interneti.
- Routeri të jetë në gjendje të dërgojë trafikun e tij përmes ndonjërit prej tre ofruesve në varësi të adresës së burimit të zgjedhur.
- Të sigurohet routing e paketave përgjigjëse në kanalin nga i cili ata erdhën (përfshirë LAN).
Vërejtje. Ne do të konfigurojmë routerin 'nga fillimi', për të garantuar që nuk ka surpriza në konfigurimet fillestare që ndryshojnë nga versioni në version 'nga kuti'. Si vegël konfiguroje, kemi zgjedhur Winbox, ku do të shfaqen qartë ndryshimet. Konfigurimet do të jepen përmes komandave në terminalin e Winbox. Lidhja fizike për konfigurimin bëhet përmes një lidhjeje direkte me ndërfaqen Ether5.
Pak sa menduar për atë se çfarë është multipath, a është një problem apo janë disa dinakë që përhapin rrjeta konspiracionesh.
Një admin i kurioz dhe i vëmendshëm, duke e konfiguruar një skemë të tillë ose të ngjashme, papritur kupton se ajo funksionon normalisht. Po-po, pa ato tavola rrugëzimi dhe rregullat e tjera të cilat janë të pranishme në shumicën e artikujve në këtë temë. Le ta verifikojmë?
A mund të konfigurojmë adresimin në ndërfaqet dhe shtegun e parazgjedhur? Po:
Në ISP1 kemi vendosur adresën dhe shtegun me distance=2 dhe check-gateway=ping.
NĂ« ISP2 konfigurimi i klientit dhcp Ă«shtĂ« parazgjedhur â pĂ«rkatĂ«sisht distance do tĂ« jetĂ« e barabartĂ« me njĂ«sinĂ«.
Në ISP3 në cilësimet e klientit pppoe me add-default-route=yes vendosim default-route-distance=3.
Mos harro të definosh NAT për daljen:
/ip firewall nat add action=masquerade chain=srcnat out-interface-list=WAN
Përfundimisht, përdoruesit e LAN-ve ngarkohen me gëzim përmes ofruesit kryesor ISP2 dhe ka rezervimin e kanaleve nëpërmjet mekanizmit check gateway Shih shënimin 1
Pika 1 e detyrës është realizuar. Ku është multipath me etiketat e tij? Jo...
Më tej. Duhet të publikojmë klientët specifikë 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ë japim qasje në serverin tonë të dashur OpenVPN me adresën 172.17.17.17 për klientët nga Interneti? Ja ku janë:
/ip cloud set ddns-enabled=yes
PĂ«r klientĂ«t si njĂ« palĂ«, ofrojmĂ« rezultatin e daljes: ":put [ip cloud get dns-name]â
Definosh port forward 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.
Konfigurojmë firewall-in dhe sigurinë tjetër për pikën 5, njëkohësisht gëzohemi që përdoruesit tanë tashmë kanë çdo gjë duke punuar dhe shkojmë për një filxhan të preferuar të pijeve...
Ah! Kishim harruar për tunelët.
Këtu kemi klient l2tp, i konfiguruar sipas një artikulli të gjetur në internet, që është lidhur me VDS-in tonë të dashur hollandez? Po.
Këtu kemi një server l2tp me IPsec që është ngritur dhe klientët lidhin përmes emrit DNS nga IP Cloud (shih më sipër). Po.
Duke u mbĂ«shtetur nĂ« krahun e karriges, duke pirĂ« njĂ« pije, shohim me lehtĂ«si pikat 6 dhe 7 tĂ« detyrĂ«s. MendojmĂ« â a na duhet kjo? PĂ«rmirĂ«simi tashmĂ« funksionon (me)... NĂ«se nuk na nevojitet, atĂ«herĂ« kjo Ă«shtĂ« e gjitha. Multipath Ă«shtĂ« realizuar.
ĂfarĂ« Ă«shtĂ« multipath? Kjo Ă«shtĂ« lidhja e disa kanaleve tĂ« internetit nĂ« njĂ« router.
Më pas, artikulli mund të mos lexohet, sepse çfarë tjetër mund të ketë përveç ndonjë shfaqje të dyshimtë.
Me ata njerëzit që kanë mbetur, ata që janë të interesuar në pikat 6 dhe 7 të detyrës, si dhe ndjejnë kruarjen e përsosmërisë, po e thellojmë diskursin.
Detyra më e rëndësishme në realizimin e multivan-it është rrugëzgjidhja e saktë e trafikut. Kjo do të thotë: pavarësisht se në cilin (apo cilat) kanale të ofruesit të shërbimit shikohet ruta e default në router-in tonë, ai duhet të kthejë përgjigjen saktësisht në atë kanal nga i cili erdhi paketa. Detyra është e qartë. E ku ndodhet problemi? Qëllimi në një rrjet lokal të thjeshtë është i njëjtë, por askush nuk lodhet me rregullime shtesë dhe nuk ndjen ndonjë mundësi. Dallimi është se çdo nyje e mundshme në Internet është e aksesueshme përmes secilit prej kanaleve tona, e jo përmes një kanali specifik, siç është në një rrjet të thjeshtë lokal. Dhe "problemi" qëndron në faktin se nëse kemi marrë një kërkesë për adresën IP të ISP3, në rastin tonë përgjigjja do të shkojë përmes kanalit ISP2, pasi aty është drejtuar porta e paracaktuar. Ajo do të ikë dhe do të hidhet nga ofruesi, si e papërshtatshme. Ne e identifikuam problemin. Si ta zgjidhim atë?
Zgjidhja do të ndahet në tre faza:
- Rregullimi paraprak. Në këtë fazë do të vendosen rregullat bazë të router-it: rrjeti lokal, firewall, listat e adresave, hairpin NAT etj.
- Multivan. Në këtë fazë do të markohen dhe kategorizohen lidhjet e nevojshme sipas tabelave të rrugëzgjidhjes.
- Lidhja me ISP. Në këtë fazë do të konfigurohen ndërfaqet që sigurojnë lidhjen me Internetin, do të aktivizohet rrugëzgjidhja dhe mekanizmi i rezervimit të kanaleve të internetit.
1. Rregullimi paraprak
1.1. Pastrojmë konfigurimin e router-it me komandën:
/system reset-configuration skip-backup=yes no-defaults=yespranojmë "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âlidhemi me tĂ« dhe fshijmĂ« pĂ«rdoruesin e paracaktuar:
/user remove adminVërejtje. Në të vërtetë, fshirja dhe jo çaktivizimi i përdoruesit të paracaktuar është më e sigurt sipas autorit dhe rekomandohet për t'u përdorur.
1.3. Krijojmë lista bazë interfejsesh për të lehtësuar operimin në firewall, rregullimet e zbulojës dhe serverat e tjerë MAC:
/interface list add name=WAN comment="For Internet"
/interface list add name=LAN comment="For Local Area"Firmosim komentet 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ë lista e interfejsëve:
/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. Shkruani komente të kuptueshme dëshmon se vlen koha e shpenzuar për këtë dhe ndihmon shumë në troubleshoot dhe kuptimin e konfiguracionit.
Autori e konsideron të nevojshme, për arsye sigurie, që të shtojë në listën e interface-ve "WAN" interface-n ether3, megjithëse për të nuk do të kalojë protokolli ip.
Mos harrojmë se pas ngritjes së interface PPP në ether3, duhet ta shtojmë atë edhe në listën e interface-ve "WAN".
1.4. Fshijmë router-in nga zbulimi i fqinjësisë dhe menaxhimi nga rrjetet e ofruesve përmes MAC-eve:
/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=LAN1.5. Krijojmë një grup minimal rregullash filtrimi të firewall-it për të mbrojtur router-in:
/ip firewall filter add action=accept chain=input comment="Related Established Untracked Allow"
connection-state=established,related,untracked(rregulli ofron lejen për lidhjet e vendosura dhe përkatëse, të iniciuara si nga rrjetet e lidhura, ashtu edhe nga vetë router-i)
/ip firewall filter add action=accept chain=input comment="ICMP from ALL" protocol=icmp(ping dhe jo vetëm ping. I gjithë icmp është i lejuar 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 mbyllës i zinxhirit input ndalon të gjitha të tjerat që vijnë 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 përkatëse që kalojnë nëpër router)
/ip firewall filter add action=drop chain=forward comment="Invalid drop" connection-state=invalid(rregulli heq lidhjet me connection-state=invalid që kalojnë nëpër router. Ky është i rekomanduar 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(rregulli ndalon kalimin pĂ«rmes router-it tĂ« paketave qĂ« vijnĂ« nga Interneti dhe nuk kaluan procedurĂ«n dstnat. Kjo do ta mbrojĂ« rrjetin lokal nga sulmuesit, tĂ« cilĂ«t, duke qenĂ« nĂ« tĂ« njĂ«jtin domain tĂ« gjerĂ« me rrjetet tona tĂ« jashtme, do tĂ« vendosin si gateway IP-tĂ« tona tĂ« jashtme dhe, kĂ«shtu, do tĂ« pĂ«rpiqen tĂ« âeksplorojnĂ«â rrjetet tona lokale.)
Vërejtje. Pranojmë si kusht që rrjetet LAN1 dhe LAN2 janë të besueshme dhe trafiku midis tyre dhe nga to nuk filtrohet.
1.6. Krijojmë një listë me adresat e rrjeteve që nuk janë rute:
/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 janë rute në Internet dhe, për pasojë, ne gjithashtu do të ndjekim këtë.)
Vërejtje. Lista mund të ndryshojë, prandaj rekomandoj të kontrolloni rregullisht saktësinë e saj.
1.7. Konfigurojmë DNS për vetë router-in:
/ip dns set servers=1.1.1.1,8.8.8.8VĂ«rejtje. NĂ« versionin aktual tĂ« ROS, dinamiket serverĂ«t kanĂ« prioritet mbi ato tĂ« dhĂ«na statike. KĂ«rkesa pĂ«r zgjidhjen e emrit dĂ«rgohet nĂ« serverin e parĂ« sipas renditjes nĂ« listĂ«. Kalimi nĂ« serverin e ardhshĂ«m bĂ«het nĂ« rast se ai aktual nuk Ă«shtĂ« i disponueshĂ«m. Koha e pritjes Ă«shtĂ« e madhe â mĂ« shumĂ« se 5 sekonda. Kthimi pas, kur rikthehet nĂ« funksion serveri "i rĂ«nĂ«", nuk ndodh automatikisht. Me kĂ«tĂ« algoritĂ«m dhe praninĂ« e multivanit, autori rekomandon qĂ« tĂ« mos pĂ«rdoren serverĂ«t e ofruar nga ofruesit.
1.8. Konfigurojmë 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. Vendosim rregullat e ruterit për rrjetet tona lokale përmes tabelës kryesore të ruterit:
/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 burime IP të jashtme nga ndërfaqet e router-it, nëpër të cilat nuk kalon rrethi i zakonshëm.
1.8.3. Aktivizojmë 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.0Vërejtje. Kjo lejon aksesimin përmes IP-së së jashtme në burimet tona (dstnat), duke qenë brenda rrjetit.
2. Në thelb, implementimi i multivanit të duhur.
PĂ«r tĂ« zgjidhur problemin "tĂ« pĂ«rgjigjemi atje ku u kĂ«rkua", do tĂ« pĂ«rdorim dy instrumente ROS: marka e lidhjes dhe marka e ruterit. Marka e lidhjes lejon tĂ« markosh lidhjen e nevojshme dhe pastaj tĂ« punosh me kĂ«tĂ« etiketĂ« si kusht pĂ«r aplikimin e saj marka e ruterit. E mĂ« pas me marka e ruterit mund tĂ« punojmĂ« nĂ« ip route dhe rregullat e ruterit. Me instrumentet e kuptuam, tani duhet tĂ« zgjidhim cilat lidhje do tĂ« markojmĂ« â njĂ«, dhe ku saktĂ«sisht do tĂ« vendosim markimin â dy.
Me tĂ« parĂ«n Ă«shtĂ« e thjeshtĂ« â ne duhet tĂ« markojmĂ« tĂ« gjitha lidhjet qĂ« vijnĂ« nĂ« router nga Interneti pĂ«rmes kanalit pĂ«rkatĂ«s. NĂ« rastin tonĂ«, kĂ«to do tĂ« jenĂ« tre etiketa (sipas numrit tĂ« kanaleve): "conn_isp1", "conn_isp2" dhe "conn_isp3".
Detaji i dytë qëndron në faktin se lidhjet që hyjnë do të jenë dy llojesh: ato transit dhe ato që janë të destinuara për vetë router-in. Mekanizmi i markës së lidhjes punon në tabelën mangle. Le të shqyrtojmë lëvizjen e paketeve në një diagram të thjeshtuar, të siguruar nga specialistët e burimit mikrotik-trainings.com (nuk është reklamë):

Duke ndjekur ŃŃŃДлĐșĐžŃĐ”, ne shohim se paketa, qĂ« arrin nĂ« "input interface", kalon pĂ«rmes zinxhirit "Prerouting" dhe vetĂ«m pastaj ndahet nĂ« transit dhe lokal nĂ« bllokun "Routing Decision". Prandaj, pĂ«r tĂ« arritur dy qĂ«llime, aktivizojmĂ« MarkĂ«n 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Ă« disa konfuzione nĂ« kuptim, por nĂ« thelb, Ă«shtĂ« e njĂ«jta gjĂ«, dhe Ă«shtĂ« ekuivalente me rt_tables nĂ« iproute2 nĂ« Linux.
2.1. Ne etiketojmë lidhjet hyrëse nga çdo një 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=noVërejtje. Për të mos etiketuar lidhjet që tashmë janë etiketuar, unë përdor kushtin connection-mark=no-mark në vend të connection-state=new, sepse e konsideroj këtë si më të saktë, ashtu si dhe heqjen e ndalimit të lidhjeve të pavlefshme në filtrin input.
passthrough=no â sepse nĂ« kĂ«tĂ« mĂ«nyrĂ« implementimi, ri-etiketimi Ă«shtĂ« i pĂ«rjashtuar dhe pĂ«r tĂ« pĂ«rshpejtuar mund tĂ« ndĂ«rpresim kalimin pĂ«rmes rregullave pas ndryshimit tĂ« parĂ«.
Duhet të kemi parasysh se për momentin ne nuk po ndërhyjmë në routing. Aktualisht janë duke u zhvilluar vetëm fazat e përgatitjes. Fazë tjetër e implementimit do të jetë përpunimi i trafikut transit që kthehet përmes lidhjes së vendosur nga adresati në rrjetin lokal. Pra, në lidhje me paketat 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 adresa e tyre nĂ« rrjetin lokal.
à rëndësishme! Në ROS, nuk ka ndarje logjike në ndërfaqet e jashtme dhe të brendshme. Nëse ndjekim rrugën e paketës së kthimit sipas diagramit të 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â ishte ndĂ«rfaqja ISP, ndĂ«rsa pĂ«r pĂ«rgjigjen â LAN
2.2. Ne drejtojmë trafikun përgjigjës transit në tabelat përkatëse të routing-ut:
/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=noVĂ«rejtje. in-interface-list=!WAN â ne punojmĂ« vetĂ«m me trafikun nga rrjeti lokal dhe dst-address-type=!local qĂ« nuk ka adresĂ« destinacioni tĂ« adresave tĂ« ndĂ«rfaqeve tĂ« vetĂ« router-it.
E njëjta gjë për paketat lokale që kanë arritur në router përmes rrugës:
âInput Interfaceâ=>âPreroutingâ=>âRouting Decisionâ=>âInputâ=>âLocal Processâ
à rëndësishme! Përgjigja do të shkojë përmes rrugës së mëposhtme:
âLocal Processâ=>âRouting Decisionâ=>âOutputâ=>âPost Routingâ=>âOutput Interfaceâ
2.3. Ne drejtojmë trafikun lokal përgjigjës në tabelat përkatëse të routing-ut:
/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=noNë këtë fazë, detyra e përgatitjes për të dërguar përgjigjen në atë kanal të Internetit, nga e cila erdhi kërkesa, mund të konsiderohet e zgjidhur. Gjithçka është etiketuar, ri-etiketuar dhe gati për t'u rrugës.
Një efekt "anësor" i shkëlqyer i kësaj konfigurimi është mundësia e funksionimit të port forwarding DSNAT nga të dy (ISP2, ISP3) ofruesit njëkohësisht. Jo në të gjithë, pasi në ISP1 kemi një adresë të pa-routing. Ky efekt është i rëndësishëm, për shembull, për serverin e postës me dy MX që shikojnë në kanale të ndryshme të internetit.
Për të zgjidhur nuancat e funksionimit të rrjeteve lokale me IP të jashtme të routerit përdorim zgjidhjet nga p.sh. 1.8.2 dhe 3.1.2.6.
Për më tepër, mund të angazhojmë edhe një mjet me etiketat për zgjidhjen e pikës 3 të detyrës. E realizojmë kështu:
2.4. Dërgojmë trafikun nga klientët lokalë prej listave të routing 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_ISP3Në përfundim, kjo duket më pak si:

3. Konfiguroni lidhjen me ISP dhe aktivizoni routing sipas etiketave
3.1. Konfiguroni lidhjen me ISP1:
3.1.1. Konfigurojmë adresën e IP statike:
/ip address add interface=ether1 address=100.66.66.2/30 comment="ISP1 IP"3.1.2. Konfigurojmë routing statik:
3.1.2.1. Shto një rrugë "emergency" si parazgjedhje:
/ip route add comment="Emergency route" distance=254 type=blackholeVërejtje. Kjo rrugë lejon trafikun nga proceset lokale të kalojë fazën e Vendimit të Rrugës pavarësisht nga statusi i kanaleve të ndonjë nga ofruesit. Një nuancë e trafikut të jashtëm lokal është se për t'u nisur paketi në ndonjë drejtim, në tabelën kryesore të routing duhet të ketë një rrugë aktive deri në gateway-in parazgjedhor. Nëse nuk ka, paketi thjesht do të shkatërrohet.
Si një zgjerim të mjetit check gateway për një analizë më të thellë të gjendjes së kanalit, sugjeroj të përdorim metodën e rrugëve rekursive. Qëllimi i metodës është që t'i tregojmë router-it të kërkojë një rrugë drejt gateway-t të tij jo drejtpërdrejt, por përmes një gateway ndërmjetës. Si "gateway" të tillë kontrolluese 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 adresat "kontrolluese":"
/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=10Vërejtje. Vlera e scope zvogëlohet deri në defautin në ROS target scope, për ta përdorur më pas 4.2.2.1 si gateway rekursiv. E theksoj: scope-i i rrugës deri te adresa "kontrolluese" duhet të jetë më i vogël ose i barabartë me target scope të asaj rruge që do të referohet te kontrolluesi.
3.1.2.3. Rruga rekursive parazgjedhje për trafikun pa routing mark:
/ip route add comment="Unmarked via ISP1" distance=2 gateway=4.2.2.1Vërejtje. Vlera distance=2 përdoret sepse ISP1 sipas kushteve të detyrës është deklaruar si i pari rezervë.
3.1.2.4. Rruga rekursive parazgjedhje për trafikun me routing mark "to_isp1":
/ip route add comment="Marked via ISP1 Main" distance=1 gateway=4.2.2.1
routing-mark=to_isp1Vërejtje. Këtu, ne fillojmë të shfrytëzojmë frytet e punës përgatitore që është bërë në pikën 2.
Po në këtë rrugë, çdo trafik që ka markimin e rrugës "to_isp1", do të drejtohet te porti i parë të ofruesit pavarësisht nga cili port është aktiv aktualisht për tabelën kryesore.
3.1.2.5. Rruga e parë rezervuese rekursive për trafikun e markuar nga ofruesit 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_isp3Vërejtje. Këto rrugë janë të nevojshme, përfshirë 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. Rregullojmë rrugën për trafik lokal të router-it në internet përmes ISP1:
/ip route rule add comment="From ISP1 IP to Inet" src-address=100.66.66.2 table=to_isp1Vërejtje. Në kombinim me rregullat nga pika 1.8.2, sigurohet dalje në kanalin e duhur me burimin e caktuar. Kjo është kritike për ndërtimin e tunelieve ku përcaktohet adresa IP e anës lokale (EoIP, IP-IP, GRE). Pasi rregullat në rregullat e ip route 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. Rregullojmë një rregull NAT për trafikun e daljes:
/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.2Vërejtje. NAT për çdo dalje, përveç atyre që bien nën politikat IPsec. Përpiqem të mos përdor action=masquerade pa nevojë të madhe. Ai funksionon më ngadalë dhe kërkon më shumë burime se src-nat, pasi 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 ndalohet dalja përmes ofruesve të tjerë, menjëherë te porti i 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=0Vërejtje. action=route ka prioritet më të lartë dhe zbatohen më parë se rregullat e tjera të rrugës.
place-before=0 - vendos rregullin tonë të parin në listë.
3.2. Rregullojmë lidhjen me ISP2.
Duke qenë se ofruesi ISP2 na jep cilësimet përmes DHCP, është e arsyeshme që ndryshimet e nevojshme të bëhen me një skript, i cili aktivizohet 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=noSkripti në dritaren Winbox:

Vërejtje. Pjesa e parë e skriptit aktivizohet kur merret me sukses qiraja, pjesa e dytë - pas lirimit të qirasë.Shih shënimin 2
3.3. Rregullojmë lidhjen me ofruesin ISP3.
Duke qenë se ofruesi jep cilësimet dinamike, është e arsyeshme që ndryshimet e nevojshme të bëhen me skriptet, të cilat aktivizohen pas ngritjes dhe rënies së ndërfaqes ppp.
3.3.1. Së pari rregullojmë 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"Skripti në dritaren Winbox:

Vërejtje. String
/ip firewall mangle set [find comment=«Connmark in from ISP3»] in-interface=$«interface»;
lejon që të trajtojë drejt emërimin e ndërfaqes, pasi punon me kodin e saj dhe jo me emrin e shfaqur.
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_clientSi një hap të fundit, të konfiguroni orët:
/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.orgPër ata që e lexuan deri në fund
Metoda e propozuar pĂ«r implementimin e ĐŒŃĐ»ŃŃĐžĐČĐ°Đœ Ă«shtĂ« njĂ« preferencĂ« personale e autorit dhe nuk Ă«shtĂ« e vetmja mundĂ«si. Mjetet e ROS janĂ« tĂ« gjera dhe fleksibĂ«l, qĂ« nga njĂ«ra anĂ« krijon vĂ«shtirĂ«si pĂ«r fillestarĂ«t, nga ana tjetĂ«r â Ă«shtĂ« shkaku i popullaritetit. Studioni, provoni, zbuloni mjete dhe zgjidhje tĂ« reja. PĂ«r shembull, si njĂ« aplikim i njohurive tĂ« fituara, nĂ« kĂ«tĂ« implementim tĂ« ĐŒŃĐ»ŃŃĐžĐČĐ°Đœ mund tĂ« zĂ«vendĂ«soni mjetin Check-gateway me rrugĂ« rekursive nĂ« Netwatch.
Shënime
- Check-gateway Ă«shtĂ« mekanizmi qĂ« lejon deaktivizimin e njĂ« rruge pas dy verifikimeve tĂ« pandryshme tĂ« dĂ«shtimit tĂ« derĂ«s pĂ«r akses. Verifikimi bĂ«het çdo 10 sekonda, plus kohĂ«zgjatja e pĂ«rgjigjes. Pra, koha e realitetit tĂ« kalimit Ă«shtĂ« brenda njĂ« intervali prej 20-30 sekondash. NĂ«se ky interval kalimi nuk Ă«shtĂ« i mjaftueshĂ«m â ka mundĂ«si tĂ« pĂ«rdorni mjetin Netwatch, ku mund tĂ« caktoni manualisht kohĂ«n e verifikimit. Mekanizmi Check-gateway nuk aktivizohet nĂ« rast tĂ« humbjeve periodike tĂ« paketave nĂ« kanal.
ĂshtĂ« e rĂ«ndĂ«sishme! Deaktivizimi i rrugĂ«s kryesore sjell me vete deaktivizimin e tĂ« gjitha rrugĂ«ve tĂ« tjera qĂ« referohen nĂ« tĂ«. Prandaj, pĂ«r to nuk Ă«shtĂ« e nevojshme qĂ« tĂ« tregoni check-gateway=ping nuk ka nevojĂ«.
- Ndonjëherë, ndodh një dështim në mekanizmin e punës së DHХP, i cili duket si klient që ngec në gjendjen e rinovimit. Në këtë rast, pjesa e dytë e skenarit nuk do të punojë, por të kaluarit e trafik nuk do të pengohet, pasi gjendja monitoron rrugën përkatëse rekursive.
- ECMP (Equal Cost Multi-Path) në ROS ka mundësinë për të caktuar një rrugë me disa dyer dhe distancë të barabartë. Në këtë rast, lidhjet do të shpërndahen nëpër kanale, duke përdorur algoritmin round robin, në përpjesëtim me numrin e dyerve të caktuara.
PĂ«r nxitjen e shkruarjes sĂ« kĂ«tij artikulli, ndihmĂ«n nĂ« formimin e strukturĂ«s sĂ« tij dhe vendosjen e theksave â njĂ« falĂ«nderim personal pĂ«r Evgenin
Burimi: habr.com
