Ներածություն
Հոդվածն ընդունելը, ի լրումն ունայնության, դրդել է ռուսալեզու հեռագրային համայնքի պրոֆիլային խմբերում այս թեմայով հարցերի ճնշող հաճախականությունը: Հոդվածն ուղղված է Mikrotik RouterOS-ի (այսուհետ՝ ROS) սկսնակ ադմինիստրատորներին: Այն գործ ունի միայն մուլտիվանի հետ՝ շեշտը դնելով երթուղիների վրա: Որպես բոնուս, կան նվազագույն բավարար կարգավորումներ՝ անվտանգ և հարմարավետ աշխատանք ապահովելու համար: Նրանք, ովքեր փնտրում են հերթերի, բեռի հավասարակշռման, վլանների, կամուրջների, ալիքի վիճակի բազմափուլ խորը վերլուծության և նմանատիպ թեմաների բացահայտում, կարող են ժամանակ և ջանք չկորցնել կարդալով:
Նախնական տվյալներ
Որպես թեստային առարկա՝ ընտրվել է հինգ նավահանգիստ Mikrotik երթուղիչ ROS 6.45.3 տարբերակով: Այն կուղղորդի երթևեկությունը երկու տեղական ցանցերի (LAN1 և LAN2) և երեք մատակարարների (ISP1, ISP2, ISP3) միջև: ISP1-ի ալիքն ունի ստատիկ «մոխրագույն» հասցե, ISP2՝ «սպիտակ», ստացված DHCP-ի միջոցով, ISP3՝ «սպիտակ»՝ PPPoE թույլտվությամբ: Միացման դիագրամը ներկայացված է նկարում.
Խնդիրն է կարգավորել MTK երթուղիչը սխեմայի հիման վրա այնպես, որ.
- Ապահովեք ավտոմատ անցում պահուստային մատակարարին: Հիմնական մատակարարը ISP2 է, առաջին ռեզերվը՝ ISP1, երկրորդ ռեզերվը՝ ISP3։
- Կազմակերպեք LAN1 ցանցի մուտք դեպի ինտերնետ միայն ISP1-ի միջոցով:
- Հասցեների ցանկի հիման վրա ընտրված մատակարարի միջոցով տեղական ցանցերից դեպի ինտերնետ երթևեկելու հնարավորություն տրամադրեք:
- Տրամադրել տեղական ցանցից ինտերնետ (DSTNAT) ծառայությունների հրապարակման հնարավորությունը
- Ստեղծեք firewall ֆիլտր՝ ապահովելու նվազագույն բավարար անվտանգություն ինտերնետից:
- Երթուղիչը կարող է թողարկել իր սեփական տրաֆիկը երեք պրովայդերներից որևէ մեկի միջոցով՝ կախված ընտրված աղբյուրի հասցեից:
- Համոզվեք, որ պատասխանների փաթեթները ուղղորդված են դեպի այն ալիքը, որտեղից նրանք եկել են (ներառյալ LAN):
Մեկնաբանություն. Մենք կկազմաձևենք երթուղիչը «զրոյից», որպեսզի երաշխավորենք անակնկալների բացակայությունը մեկնարկային կոնֆիգուրացիաներում, որոնք փոխվում են տարբերակից տարբերակ: Որպես կազմաձևման գործիք ընտրվել է Winbox-ը, որտեղ փոփոխությունները տեսողականորեն կցուցադրվեն: Պարամետրերն իրենք կսահմանվեն Winbox տերմինալի հրամաններով: Կազմաձևման համար ֆիզիկական կապն իրականացվում է Ether5 ինտերֆեյսի հետ ուղղակի կապի միջոցով:
Մի քիչ պատճառաբանել, թե ինչ է մուլտիվանը, դա խնդիր է, թե խորամանկ խելացի մարդիկ դավադրության ցանցեր են հյուսում:
Հետաքրքրասեր ու ուշադիր ադմինը, ինքնուրույն ստեղծելով նման կամ նմանատիպ սխեման, հանկարծ հասկանում է, որ այն արդեն նորմալ է աշխատում։ Այո, այո, առանց ձեր հատուկ երթուղային աղյուսակների և երթուղու այլ կանոնների, որոնցով լի են այս թեմայի հոդվածների մեծ մասը: Եկեք ստուգե՞նք:
Կարո՞ղ ենք կարգավորել հասցեավորումը միջերեսների և լռելյայն դարպասների վրա: Այո:
ISP1-ում հասցեն և դարպասը գրանցվել են հեռավորություն=2 и check-gateway=ping.
ISP2-ում լռելյայն dhcp հաճախորդի կարգավորումը, համապատասխանաբար, հեռավորությունը հավասար կլինի մեկի:
ISP3-ում pppoe հաճախորդի կարգավորումներում, երբ add-default-route=այո դնել default-route-distance=3.
Մի մոռացեք գրանցել NAT ելքի վրա.
/ip firewall nat ավելացնել գործողություն=դիմակահանդես շղթա=srcnat out-interface-list=WAN
Արդյունքում, տեղական կայքերի օգտատերերը զվարճանում են կատուներ ներբեռնելով հիմնական ISP2 մատակարարի միջոցով, և կա ալիքի ամրագրում մեխանիզմի միջոցով: ստուգեք դարպասը Տես ծանոթագրություն 1
Առաջադրանքի 1-ին կետը կատարվում է. Որտե՞ղ է մուլտիվանն իր նշաններով: Ոչ…
Հետագա. Դուք պետք է ազատեք հատուկ հաճախորդներ LAN-ից ISP1-ի միջոցով.
/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
անցում=այո route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
անցում=առանց երթուղու-dst=100.66.66.1 src-հասցե=192.168.88.0/24
Առաջադրանքի 2-րդ և 3-րդ կետերը կատարված են. Պիտակներ, նամականիշներ, երթուղու կանոններ, որտեղ եք դուք:
Ուզո՞ւմ եք մուտք գործել ձեր սիրելի OpenVPN սերվեր 172.17.17.17 հասցեով ինտերնետից հաճախորդների համար: Խնդրում եմ.
/ip cloud set ddns-enabled=yes
Որպես գործընկեր, մենք հաճախորդին տալիս ենք արդյունքի արդյունքը.:դրել [ip cloud ստանալ dns-name]"
Մենք գրանցում ենք նավահանգիստների վերահասցեավորում ինտերնետից.
/ip firewall nat ավելացնել գործողություն=dst-nat chain=dstnat dst-port=1194
in-interface-list=WAN արձանագրություն=udp դեպի հասցեներ=172.17.17.17
4-րդ կետը պատրաստ է։
Մենք ստեղծեցինք firewall և այլ անվտանգություն 5-րդ կետի համար, միևնույն ժամանակ ուրախ ենք, որ ամեն ինչ արդեն աշխատում է օգտատերերի համար և հասնում ենք սիրելի ըմպելիքով կոնտեյների…
Ա! Թունելները մոռացված են.
l2tp-client-ը, որը կազմաձևված է google հոդվածի կողմից, հասել է ձեր սիրած հոլանդական VDS-ին: Այո՛։
IPsec-ով l2tp-սերվերը բարձրացել է, և IP Cloud-ից DNS անունով հաճախորդները (տես վերևում): Այո՛։
Հենվելով մեր աթոռին, խմիչք ըմպելով՝ ծուլորեն դիտարկում ենք առաջադրանքի 6-րդ և 7-րդ կետերը: Մտածում ենք՝ մեզ դա պե՞տք է։ Միեւնույն է, այդպես է աշխատում (գ) ... Ուրեմն, եթե դեռ պետք չէ, ուրեմն վերջ։ Multivan իրականացված.
Ի՞նչ է մուլտիվանը: Սա մի քանի ինտերնետային ալիքների միացումն է մեկ երթուղղիչին:
Դուք չունեք հաղորդագրություն փակցնելու համար անհրաժեշտ հոդվածը հետագայում կարդալ, քանի որ ի՞նչ կարող է լինել այնտեղ, բացի կասկածելի կիրառելիության ցուցադրությունից:
Նրանց համար, ովքեր մնում են, ովքեր հետաքրքրված են առաջադրանքի 6-րդ և 7-րդ կետերով, ինչպես նաև զգում են պերֆեկցիոնիզմի քորը, մենք ավելի խորն ենք սուզվում:
Մուլտիվանի ներդրման ամենակարևոր խնդիրը երթևեկության ճիշտ երթուղավորումն է: Այսինքն՝ անկախ նրանից, թե որից (կամ որից) Տե՛ս. Ծանոթագրություն 3 ISP-ի ալիք(ներ)ը նայում է մեր երթուղիչի լռելյայն երթուղուն, այն պետք է պատասխան տա այն ալիքին, որից ստացվել է փաթեթը: Խնդիրը պարզ է. Որտե՞ղ է խնդիրը։ Իրոք, պարզ տեղական ցանցում խնդիրը նույնն է, բայց ոչ ոք չի անհանգստացնում լրացուցիչ պարամետրերով և չի զգում անհանգստություն: Տարբերությունն այն է, որ ինտերնետի ցանկացած երթուղային հանգույց հասանելի է մեր յուրաքանչյուր ալիքով, այլ ոչ թե խիստ կոնկրետ, ինչպես պարզ LAN-ում: Եվ «դժբախտությունն» այն է, որ եթե մեզ մոտ հարցում է եկել ISP3-ի IP հասցեի համար, ապա մեր դեպքում պատասխանը կանցնի ISP2 ալիքով, քանի որ լռելյայն դարպասն ուղղված է այնտեղ: Հեռանում է և մատակարարի կողմից կհեռացվի որպես սխալ: Խնդիրը բացահայտված է. Ինչպե՞ս լուծել այն:
Լուծումը բաժանված է երեք փուլի.
- Նախադրում. Այս փուլում կսահմանվեն երթուղիչի հիմնական կարգավորումները՝ տեղական ցանց, firewall, հասցեների ցուցակներ, վարսահարդարիչ NAT և այլն:
- Multivan. Այս փուլում անհրաժեշտ կապերը կնշվեն և կդասավորվեն երթուղային աղյուսակների մեջ:
- Միացում ISP-ին: Այս փուլում կկազմաձևվեն ինտերֆեյսները, որոնք ապահովում են միացում ինտերնետին, կգործարկվեն երթուղիներ և կակտիվացվեն ինտերնետ կապուղիների ամրագրման մեխանիզմը։
1. Նախադրում
1.1. Մենք մաքրում ենք երթուղիչի կոնֆիգուրացիան հրամանով.
/system reset-configuration skip-backup=yes no-defaults=yes
համաձայն եմ "Վտանգավոր! Վերակայե՞լ: [y/N]:», իսկ վերագործարկումից հետո մենք միանում ենք Winbox-ի հետ MAC-ի միջոցով: Այս փուլում կոնֆիգուրացիան և օգտագործողի բազան մաքրվում են:
1.2. Ստեղծեք նոր օգտվող.
/user add group=full name=knight password=ultrasecret comment=”Not horse”
մուտք գործեք դրա տակ և ջնջեք կանխադրվածը.
/user remove admin
Մեկնաբանություն. Հեղինակն ավելի անվտանգ է համարում և խորհուրդ է տալիս օգտագործել լռելյայն օգտագործողի հեռացումն ու չանջատելը:
1.3. Մենք ստեղծում ենք հիմնական ինտերֆեյսի ցուցակներ՝ firewall-ում, հայտնաբերման կարգավորումներում և այլ MAC սերվերներում աշխատելու հարմարության համար.
/interface list add name=WAN comment="For Internet"
/interface list add name=LAN comment="For Local Area"
Մեկնաբանությունների հետ միջերեսների ստորագրում
/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"
և լրացրեք ինտերֆեյսի ցուցակները.
/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"
Մեկնաբանություն. Հասկանալի մեկնաբանություններ գրելն արժե ժամանակ ծախսել դրա վրա, գումարած այն մեծապես նպաստում է անսարքությունների վերացմանը և կոնֆիգուրացիան հասկանալուն:
Հեղինակը անհրաժեշտ է համարում, անվտանգության նկատառումներից ելնելով, ether3 ինտերֆեյսը ավելացնել «WAN» ինտերֆեյսի ցանկում, չնայած այն հանգամանքին, որ ip արձանագրությունը չի անցնի դրա միջով:
Մի մոռացեք, որ PPP ինտերֆեյսը ether3-ի վրա բարձրացնելուց հետո այն նաև պետք է ավելացվի «WAN» ինտերֆեյսի ցանկում:
1.4. Մենք թաքցնում ենք երթուղիչը թաղամասի հայտնաբերումից և վերահսկումից պրովայդերների ցանցերից 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. Մենք ստեղծում ենք firewall-ի ֆիլտրի կանոնների նվազագույն բավարար փաթեթ՝ երթուղիչը պաշտպանելու համար.
/ip firewall filter add action=accept chain=input comment="Related Established Untracked Allow"
connection-state=established,related,untracked
(կանոնը թույլ է տալիս հաստատված և հարակից կապերի համար, որոնք սկսվում են ինչպես միացված ցանցերից, այնպես էլ հենց երթուղիչից)
/ip firewall filter add action=accept chain=input comment="ICMP from ALL" protocol=icmp
(պինգ և ոչ միայն պինգ: Բոլոր icmp-ները թույլատրված են: Շատ օգտակար է MTU-ի խնդիրները գտնելու համար)
/ip firewall filter add action=drop chain=input comment="All other WAN Drop" in-interface-list=WAN
(Մուտքային շղթան փակող կանոնն արգելում է այն ամենը, ինչ գալիս է ինտերնետից)
/ip firewall filter add action=accept chain=forward
comment="Established, Related, Untracked allow"
connection-state=established,related,untracked
(կանոնը թույլ է տալիս հաստատված և հարակից կապեր, որոնք անցնում են երթուղիչով)
/ip firewall filter add action=drop chain=forward comment="Invalid drop" connection-state=invalid
(կանոնը զրոյացնում է կապերը կապի վիճակով=անվավեր երթուղիչով անցնող: Այն խստորեն խորհուրդ է տրվում Mikrotik-ի կողմից, սակայն որոշ հազվադեպ իրավիճակներում այն կարող է արգելափակել օգտակար երթևեկությունը)
/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
(Կանոնն արգելում է այն փաթեթները, որոնք գալիս են ինտերնետից և չեն անցել dstnat ընթացակարգը, անցնել երթուղիչով: Սա կպաշտպանի տեղական ցանցերը ներխուժողներից, որոնք, լինելով մեր արտաքին ցանցերի հետ նույն հեռարձակման տիրույթում, կգրանցեն մեր արտաքին IP-ները որպես gateway և, այդպիսով, փորձեք «ուսումնասիրել» մեր տեղական ցանցերը:)
Մեկնաբանություն. Ենթադրենք, որ LAN1 և LAN2 ցանցերը վստահելի են, և դրանց միջև և նրանցից տրաֆիկը զտված չէ:
1.6. Ստեղծեք ցուցակ՝ չուղղորդվող ցանցերի ցանկով.
/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
(Սա այն հասցեների և ցանցերի ցանկն է, որոնք երթուղղելի չեն դեպի ինտերնետ և համապատասխանաբար կհետևվեն:)
Մեկնաբանություն. Ցանկը ենթակա է փոփոխման, ուստի խորհուրդ եմ տալիս պարբերաբար ստուգել համապատասխանությունը:
1.7. Ստեղծեք DNS երթուղիչի համար.
/ip dns set servers=1.1.1.1,8.8.8.8
Մեկնաբանություն. ROS-ի ընթացիկ տարբերակում դինամիկ սերվերները գերակայում են ստատիկներից: Անվան լուծման հարցումը ուղարկվում է ցուցակի առաջին սերվերին: Անցումը հաջորդ սերվերին իրականացվում է, երբ ընթացիկն անհասանելի է: Թայմաութը մեծ է՝ ավելի քան 5 վայրկյան: Հետ վերադառնալը, երբ «ընկած սերվերը» վերսկսվում է, ինքնաբերաբար չի առաջանում: Հաշվի առնելով այս ալգորիթմը և մուլտիվանի առկայությունը՝ հեղինակը խորհուրդ է տալիս չօգտագործել պրովայդերների կողմից տրամադրված սերվերները:
1.8. Ստեղծեք տեղական ցանց:
1.8.1. Մենք կարգավորում ենք ստատիկ IP հասցեները 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. Մենք սահմանում ենք երթուղիների կանոնները դեպի մեր տեղական ցանցեր հիմնական երթուղային աղյուսակի միջոցով.
/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"
Մեկնաբանություն. Սա LAN հասցեներ մուտք գործելու արագ և հեշտ եղանակներից մեկն է երթուղիչի ինտերֆեյսների արտաքին IP հասցեների աղբյուրներով, որոնք չեն անցնում լռելյայն երթուղիով:
1.8.3. Միացնել Hairpin NAT-ը LAN1-ի և 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
Մեկնաբանություն. Սա թույլ է տալիս մուտք գործել ձեր ռեսուրսները (dstnat) արտաքին IP-ի միջոցով ցանցի ներսում գտնվելու ժամանակ:
2. Փաստորեն, շատ ճիշտ մուլտիվանի իրականացում
«Պատասխանելու, թե որտեղից են հարցրել» խնդիրը լուծելու համար մենք կօգտագործենք երկու ROS գործիք. կապի նշան и երթուղային նշան. կապի նշան թույլ է տալիս նշել ցանկալի կապը և այնուհետև աշխատել այս պիտակի հետ՝ որպես դիմելու պայման երթուղային նշան. Եվ արդեն հետ երթուղային նշան հնարավոր է աշխատել ip երթուղին и երթուղու կանոններ. Մենք պարզեցինք գործիքները, այժմ դուք պետք է որոշեք, թե որ կապերը նշեք՝ մեկ անգամ, կոնկրետ որտեղ նշեք՝ երկու:
Առաջինի հետ ամեն ինչ պարզ է. մենք պետք է նշենք բոլոր կապերը, որոնք երթուղիչին գալիս են ինտերնետից համապատասխան ալիքով: Մեր դեպքում դրանք կլինեն երեք պիտակներ (ըստ ալիքների քանակի՝ «conn_isp1», «conn_isp2» և «conn_isp3»:
Երկրորդի նրբությունն այն է, որ մուտքային կապերը կլինեն երկու տեսակի՝ տրանզիտ և նրանք, որոնք նախատեսված են հենց երթուղիչի համար: Միացման նշանի մեխանիզմը գործում է աղյուսակում մանգրով. Դիտարկենք փաթեթի շարժումը պարզեցված գծապատկերի վրա, որը սիրով կազմվել է mikrotik-trainings.com ռեսուրսի մասնագետների կողմից (ոչ գովազդ).
Հետևելով սլաքներին՝ մենք տեսնում ենք, որ փաթեթը հասնում է «մուտք ինտերֆեյսը», անցնում է շղթայի միջով «Նախնական երթուղի«Եվ միայն դրանից հետո այն բաժանվում է տարանցիկ և տեղական բլոկում»Երթուղային որոշում«. Հետեւաբար, մեկ քարով երկու թռչուն սպանելու համար մենք օգտագործում ենք Միացման նշան սեղանին Mangle Pre-routing շղթաներ Նախնական երթուղի.
Նշում.. ROS-ում «Երթուղային նշան» պիտակները նշված են որպես «Աղյուսակ»՝ «Ip/Routes/Rules» բաժնում, իսկ որպես «երթուղային նշան»՝ այլ բաժիններում: Սա կարող է որոշակի շփոթություն առաջացնել ըմբռնման մեջ, բայց, ըստ էության, սա նույնն է, և rt_tables-ի անալոգն է iproute2-ում linux-ում:
2.1. Մենք նշում ենք մատակարարներից յուրաքանչյուրի մուտքային կապերը.
/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
Մեկնաբանություն. Որպեսզի չնշեմ արդեն նշված կապերը, ես օգտագործում եմ connection-mark=no-mark պայմանը Connect-state=new-ի փոխարեն, քանի որ կարծում եմ, որ սա ավելի ճիշտ է, ինչպես նաև մուտքագրման ֆիլտրում անվավեր միացումների մերժումը:
passthrough=no - քանի որ այս իրականացման մեթոդում վերանշանակումը բացառվում է, և արագացնելու համար կարող եք ընդհատել կանոնների թվարկումը առաջին խաղից հետո:
Պետք է նկատի ունենալ, որ դեռևս որևէ կերպ չենք միջամտում երթուղիներին։ Այժմ մնում են միայն նախապատրաստման փուլերը։ Իրականացման հաջորդ փուլը կլինի տարանցիկ երթևեկի մշակումը, որը վերադարձվում է հաստատված կապով տեղական ցանցի նպատակակետից: Նրանք. այն փաթեթները, որոնք (տես գծապատկերը) անցել են երթուղիչով ճանապարհին.
“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” և հասել են իրենց հասցեատիրոջը տեղական ցանցում:
Կարեւոր! ROS-ում չկա տրամաբանական բաժանում արտաքին և ներքին ինտերֆեյսների: Եթե պատասխանի փաթեթի ուղին հետևենք վերը նշված գծապատկերի համաձայն, ապա այն կհետևի նույն տրամաբանական ճանապարհին, ինչ հարցումը.
“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Forward”=>”Post Routing”=>”Output Interface” միայն խնդրանքով»Input Interface», եղել է ISP ինտերֆեյսը, իսկ պատասխանի համար՝ LAN
2.2. Մենք ուղղում ենք պատասխան տարանցիկ երթևեկությունը դեպի համապատասխան երթուղային աղյուսակներ.
/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
Մեկնաբանություն. in-interface-list=!WAN - մենք աշխատում ենք միայն լոկալ ցանցից տրաֆիկի և dst-address-type=!local-ի հետ, որը չունի բուն երթուղիչի ինտերֆեյսների հասցեի նպատակակետ հասցեն:
Նույնը տեղական փաթեթների համար, որոնք եկել են երթուղիչին ճանապարհին.
“Input Interface”=>”Prerouting”=>”Routing Decision”=>”Input”=>”Տեղական գործընթաց”
Կարեւոր! Պատասխանը կգնա հետևյալ կերպ.
«Տեղական գործընթաց»=>«Երթուղիների որոշում»=>«Ելք»=>«Հաղորդագրության երթուղում»=>«Ելքային ինտերֆեյս»
2.3. Մենք պատասխանում ենք տեղական երթևեկությանը համապատասխան երթուղային աղյուսակներին.
/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
Այս փուլում կարելի է լուծված համարել պատասխան ուղարկելու պատրաստման խնդիրը այն ինտերնետային ալիքին, որտեղից եկել է հարցումը։ Ամեն ինչ նշված է, պիտակավորված և պատրաստ է ուղղորդման:
Այս կարգավորումների հիանալի «կողմնակի» ազդեցությունը միաժամանակ երկու (ISP2, ISP3) մատակարարներից DSNAT պորտի վերահասցեավորման հետ աշխատելու ունակությունն է: Ամենևին, քանի որ ISP1-ում մենք ունենք չուղղվող հասցե: Այս էֆեկտը կարևոր է, օրինակ, փոստի սերվերի համար, որն ունի երկու MX, որոնք նայում են տարբեր ինտերնետային ալիքներ:
Արտաքին IP երթուղղիչներով տեղական ցանցերի շահագործման նրբությունները վերացնելու համար մենք օգտագործում ենք պարբերությունների լուծումները: 1.8.2 և 3.1.2.6.
Բացի այդ, խնդրի 3-րդ կետը լուծելու համար կարող եք օգտագործել նշագծերով գործիք: Մենք այն իրականացնում ենք այսպես.
2.4. Մենք տեղական հաճախորդներից երթևեկությունը ուղղորդում ենք երթուղային ցուցակներից դեպի համապատասխան աղյուսակներ.
/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
Արդյունքում, այն ունի հետևյալ տեսքը.
3. Ստեղծեք կապ պրովայդերին և միացրեք ֆիրմային երթուղին
3.1. Ստեղծեք կապ ISP1-ի հետ.
3.1.1. Կարգավորեք ստատիկ IP հասցե.
/ip address add interface=ether1 address=100.66.66.2/30 comment="ISP1 IP"
3.1.2. Ստեղծեք ստատիկ երթուղի.
3.1.2.1. Ավելացնել կանխադրված «արտակարգ» երթուղի.
/ip route add comment="Emergency route" distance=254 type=blackhole
Մեկնաբանություն. Այս երթուղին թույլ է տալիս տեղական գործընթացներից երթևեկին անցնել երթուղու որոշման փուլը՝ անկախ մատակարարներից որևէ մեկի կապերի վիճակից: Ելքային տեղական տրաֆիկի նրբությունն այն է, որ որպեսզի փաթեթը տեղափոխվի գոնե ինչ-որ տեղ, հիմնական երթուղային աղյուսակը պետք է ակտիվ երթուղի ունենա դեպի լռելյայն դարպաս: Եթե ոչ, ապա փաթեթը պարզապես կկործանվի։
Որպես գործիքի ընդլայնում ստուգեք դարպասը Ալիքի վիճակի ավելի խորը վերլուծության համար առաջարկում եմ օգտագործել ռեկուրսիվ երթուղու մեթոդը: Մեթոդի էությունն այն է, որ մենք երթուղիչին ասում ենք, որ ուղի փնտրի դեպի իր դարպասը ոչ թե ուղղակիորեն, այլ միջանկյալ դարպասի միջով: 4.2.2.1, 4.2.2.2 և 4.2.2.3 կետերը կընտրվեն որպես այդպիսի «փորձարկման» դարպասներ համապատասխանաբար ISP1, ISP2 և ISP3 համար:
3.1.2.2. Երթուղի դեպի «ստուգման» հասցե.
/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
Մեկնաբանություն. Մենք իջեցնում ենք շրջանակի արժեքը մինչև լռելյայն ROS թիրախային տիրույթում, որպեսզի հետագայում օգտագործենք 4.2.2.1-ը որպես ռեկուրսիվ դարպաս: Շեշտում եմ՝ դեպի «փորձնական» հասցե երթուղու շրջանակը պետք է փոքր կամ հավասար լինի երթուղու նպատակային շրջանակին, որը վերաբերում է փորձնականին։
3.1.2.3. Առանց երթուղային նշանի երթևեկության ռեկուրսիվ կանխադրված երթուղի.
/ip route add comment="Unmarked via ISP1" distance=2 gateway=4.2.2.1
Մեկնաբանություն. Հեռավորություն=2 արժեքը օգտագործվում է, քանի որ ISP1-ը հայտարարված է որպես առաջին պահուստավորում՝ ըստ առաջադրանքի պայմանների:
3.1.2.4. «to_isp1» երթուղային նշանով երթևեկության ռեկուրսիվ կանխադրված երթուղի.
/ip route add comment="Marked via ISP1 Main" distance=1 gateway=4.2.2.1
routing-mark=to_isp1
Մեկնաբանություն. Փաստորեն, այստեղ մենք վերջապես սկսում ենք վայելել 2-րդ պարբերությունում իրականացված նախապատրաստական աշխատանքի պտուղները։
Այս երթուղու վրա ողջ երթևեկությունը, որն ունի «to_isp1» նշանի երթուղին, կուղղվի դեպի առաջին մատակարարի դարպասը՝ անկախ նրանից, թե որ լռելյայն դարպասն է ներկայումս ակտիվ հիմնական աղյուսակի համար:
3.1.2.5. Առաջին հետադարձ ռեկուրսիվ լռելյայն երթուղին ISP2-ի և 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
Մեկնաբանություն. Այս երթուղիները, ի թիվս այլ բաների, անհրաժեշտ են տեղական ցանցերից երթևեկություն պահելու համար, որոնք հասցեների ցանկի անդամ են «to_isp*»'
3.1.2.6. Մենք գրանցում ենք երթուղին դեպի ինտերնետ երթուղիչի տեղական տրաֆիկի համար ISP1-ի միջոցով.
/ip route rule add comment="From ISP1 IP to Inet" src-address=100.66.66.2 table=to_isp1
Մեկնաբանություն. 1.8.2 պարբերության կանոնների հետ միասին այն ապահովում է մուտք դեպի ցանկալի ալիք տվյալ աղբյուրով: Սա կարևոր նշանակություն ունի թունելներ կառուցելու համար, որոնք նշում են տեղական կողմի IP հասցեն (EoIP, IP-IP, GRE): Քանի որ ip երթուղու կանոնների կանոնները կատարվում են վերևից ներքև, մինչև պայմանների առաջին համապատասխանությունը, ապա այս կանոնը պետք է լինի 1.8.2 կետի կանոններից հետո:
3.1.3. Մենք գրանցում ենք NAT կանոնը ելքային երթևեկության համար.
/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
Մեկնաբանություն. NATim այն ամենը, ինչ դուրս է գալիս, բացառությամբ այն, ինչ մտնում է IPsec քաղաքականության մեջ: Ես աշխատում եմ չօգտագործել գործողություն=դիմակահանդես, եթե խիստ անհրաժեշտ չէ: Այն ավելի դանդաղ է և ավելի շատ ռեսուրսներ է պահանջում, քան src-nat-ը, քանի որ այն հաշվարկում է NAT հասցեն յուրաքանչյուր նոր կապի համար:
3.1.4. Մենք ցանկից հաճախորդներին, որոնց արգելված է մուտք գործել այլ մատակարարների միջոցով, ուղարկում ենք անմիջապես 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
Մեկնաբանություն. action=route-ն ավելի բարձր առաջնահերթություն ունի և կիրառվում է երթուղային այլ կանոններից առաջ:
place-before=0 - մեր կանոնը առաջին տեղում է ցուցակում:
3.2. Ստեղծեք կապ ISP2-ի հետ:
Քանի որ ISP2 մատակարարը մեզ տալիս է կարգավորումները DHCP-ի միջոցով, խելամիտ է անհրաժեշտ փոփոխությունները կատարել սկրիպտով, որը սկսվում է 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
Սցենարն ինքնին Winbox պատուհանում.
Մեկնաբանություն. Սցենարի առաջին մասը գործարկվում է, երբ վարձակալությունը հաջողությամբ ձեռք է բերվում, երկրորդը` վարձակալության թողարկումից հետո:Տես ծանոթագրություն 2
3.3. Մենք կապ ենք հաստատել ISP3 մատակարարի հետ:
Քանի որ կարգավորումների մատակարարը մեզ տալիս է դինամիկ, խելամիտ է անհրաժեշտ փոփոխությունները կատարել սկրիպտներով, որոնք սկսվում են ppp ինտերֆեյսի բարձրացումից և անկումից հետո:
3.3.1. Սկզբում մենք կարգավորում ենք պրոֆիլը.
/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"
Սցենարն ինքնին Winbox պատուհանում.
Մեկնաբանություն. Լարային
/ip firewall mangle set [find comment="Connmark in from ISP3"] in-interface=$"interface";
թույլ է տալիս ճիշտ վարվել ինտերֆեյսի վերանվանման հետ, քանի որ այն աշխատում է իր կոդով և ոչ թե ցուցադրվող անունով:
3.3.2. Այժմ, օգտագործելով պրոֆիլը, ստեղծեք 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
Որպես վերջին հպում, եկեք կարգավորենք ժամացույցը.
/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org
Նրանց համար, ովքեր կարդում են մինչև վերջ
Մուլտիվանի ներդրման առաջարկվող տարբերակը հեղինակի անձնական նախապատվությունն է և միակ հնարավորը չէ: ROS-ի գործիքակազմը ծավալուն է և ճկուն, ինչը մի կողմից դժվարություններ է առաջացնում սկսնակների համար, իսկ մյուս կողմից՝ դրա ժողովրդականության պատճառն է։ Ուսումնասիրեք, փորձեք, հայտնաբերեք նոր գործիքներ և լուծումներ: Օրինակ, որպես ձեռք բերված գիտելիքների կիրառում, հնարավոր է փոխարինել գործիքը մուլտիվանի այս ներդրման մեջ ստուգման դարպաս դեպի ռեկուրսիվ երթուղիներով ցանցային ժամացույց.
Նշումներ
- ստուգման դարպաս - մեխանիզմ, որը թույլ է տալիս անջատել երթուղին երկու անընդմեջ անհաջող ստուգումից հետո դարպասի հասանելիության համար: Ստուգումն իրականացվում է 10 վայրկյանը մեկ անգամ՝ գումարած պատասխանի ժամանակի վերջը: Ընդհանուր առմամբ, իրական անջատման ժամանակը գտնվում է 20-30 վայրկյանի սահմաններում: Եթե նման միացման ժամանակը բավարար չէ, գործիքն օգտագործելու հնարավորություն կա ցանցային ժամացույց, որտեղ ստուգման ժամանակաչափը կարող է ձեռքով սահմանվել: ստուգման դարպաս չի կրակում հղումով փաթեթների ընդհատվող կորստի վրա:
Կարևոր! Առաջնային երթուղու ապաակտիվացումը կանջատի բոլոր մյուս երթուղիները, որոնք վերաբերում են դրան: Ուստի, որպեսզի նրանք նշեն check-gateway=ping ոչ անհրաժեշտ.
- Պատահում է, որ DHCP մեխանիզմում խափանում է տեղի ունենում, որը նման է նորացման վիճակում խրված հաճախորդի: Այս դեպքում սցենարի երկրորդ մասը չի աշխատի, բայց չի խանգարի երթեւեկությանը ճիշտ քայլել, քանի որ պետությունը հետեւում է համապատասխան ռեկուրսիվ երթուղուն։
- ECMP (Հավասար ծախսերի բազմաուղի) - ROS-ում հնարավոր է երթուղի սահմանել մի քանի դարպասներով և նույն հեռավորությամբ: Այս դեպքում միացումները կբաշխվեն ալիքների վրա՝ օգտագործելով կլոր ռոբին ալգորիթմը՝ նշված դարպասների քանակին համամասնորեն:
Հոդվածը գրելու խթանի համար օգնեք դրա կառուցվածքի ձևավորմանը և շեշտադրումների տեղադրմանը. անձնական երախտագիտություն Եվգենիին
Source: www.habr.com