Mikrotik RouterOS-da multivan va marshrutlash

kirish

Maqolani ko'rib chiqishga, behudalikdan tashqari, rus tilida so'zlashuvchi telegram hamjamiyatining profil guruhlarida ushbu mavzu bo'yicha savollarning tushkun chastotasi sabab bo'ldi. Maqola Mikrotik RouterOS (keyingi o'rinlarda ROS deb yuritiladi) yangi boshlanuvchilar uchun mo'ljallangan. Bu marshrutga urg'u berib, faqat multivan bilan shug'ullanadi. Bonus sifatida xavfsiz va qulay ishlashni ta'minlash uchun minimal darajada etarli sozlamalar mavjud. Navbatlar, yuklarni muvozanatlash, vlans, ko'priklar, kanal holatini ko'p bosqichli chuqur tahlil qilish va shunga o'xshash mavzularni oshkor qilishni qidirayotganlar o'qish uchun vaqt va kuch sarflamasliklari mumkin.

Xom ma'lumotlar

Sinov mavzusi sifatida ROS 6.45.3 versiyasiga ega besh portli Mikrotik router tanlangan. U ikkita mahalliy tarmoq (LAN1 va LAN2) va uchta provayder (ISP1, ISP2, ISP3) o'rtasida trafikni yo'naltiradi. ISP1 kanali statik "kulrang" manzilga ega, ISP2 - "oq", DHCP orqali olingan, ISP3 - PPPoE avtorizatsiyasi bilan "oq". Ulanish diagrammasi rasmda ko'rsatilgan:

Mikrotik RouterOS-da multivan va marshrutlash

Vazifa MTK routerini quyidagi sxema asosida sozlashdir:

  1. Zaxira provayderga avtomatik o'tishni ta'minlang. Asosiy provayder ISP2, birinchi zaxira ISP1, ikkinchi zaxira ISP3.
  2. LAN1 tarmog'idan Internetga kirishni faqat ISP1 orqali tashkil qiling.
  3. Manzillar ro'yxati asosida tanlangan provayder orqali mahalliy tarmoqlardan Internetga trafikni yo'naltirish imkoniyatini taqdim eting.
  4. Mahalliy tarmoqdan Internetga (DSTNAT) xizmatlarni nashr qilish imkoniyatini ta'minlash
  5. Internetdan minimal xavfsizlikni ta'minlash uchun xavfsizlik devori filtrini o'rnating.
  6. Router tanlangan manba manziliga qarab uchta provayderning istalgani orqali o'z trafigini chiqarishi mumkin.
  7. Javob paketlari ular kelgan kanalga (jumladan, LAN) yo'naltirilganligiga ishonch hosil qiling.

BELOQ. Versiyadan versiyaga o'zgarib turadigan "qutidan tashqari" boshlang'ich konfiguratsiyalarda kutilmagan hodisalar bo'lmasligini ta'minlash uchun biz routerni "noldan" sozlaymiz. Winbox konfiguratsiya vositasi sifatida tanlangan, bu erda o'zgarishlar vizual tarzda ko'rsatiladi. Sozlamalarning o'zi Winbox terminalidagi buyruqlar bilan o'rnatiladi. Konfiguratsiya uchun jismoniy ulanish Ether5 interfeysiga to'g'ridan-to'g'ri ulanish orqali amalga oshiriladi.

Multivan nima ekanligi haqida bir oz mulohaza yuriting, bu muammomi yoki ayyor aqlli odamlar fitna tarmoqlarini to'qishmoqda

O'z-o'zidan shunday yoki shunga o'xshash sxemani o'rnatgan qiziquvchan va ehtiyotkor ma'mur, to'satdan u allaqachon normal ishlayotganini tushunadi. Ha, ha, sizning maxsus marshrutlash jadvallarisiz va boshqa marshrut qoidalarisiz, bu mavzu bo'yicha ko'pchilik maqolalar to'la. Tekshiraylikmi?

Interfeyslar va standart shlyuzlarda manzillarni sozlashimiz mumkinmi? Ha:

ISP1 da manzil va shlyuz ro'yxatdan o'tgan masofa = 2 и check-shlyuz = ping.
ISP2 da standart dhcp mijoz sozlamalari - shunga ko'ra, masofa birga teng bo'ladi.
ISP3 da pppoe mijoz sozlamalarida qachon add-default-route=ha qo'yish sukut bo'yicha marshrut-masofa = 3.

Chiqishda NATni ro'yxatdan o'tkazishni unutmang:

/ip xavfsizlik devori nat add action=maskarad zanjiri=srcnat out-interface-list=WAN

Natijada, mahalliy saytlarning foydalanuvchilari asosiy ISP2 provayderi orqali mushuklarni yuklab olishdan zavqlanishadi va mexanizm yordamida kanalni bron qilish imkoniyati mavjud. shlyuzni tekshiring Eslatma 1 ga qarang

Vazifaning 1-bandi amalga oshirildi. Belgilari bilan multivan qayerda? Yo‘q…

Keyinchalik. ISP1 orqali ma'lum mijozlarni LANdan chiqarishingiz kerak:

/ip xavfsizlik devori mangle add action=marshrut zanjiri=prerouting dst-address-list=!BOGONS
passthrough=ha route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip xavfsizlik devori mangle add action=marshrut zanjiri=prerouting dst-address-list=!BOGONS
passthrough=yo'q marshrut-dst=100.66.66.1 src-manzil=192.168.88.0/24

Vazifaning 2 va 3 bandlari amalga oshirildi. Yorliqlar, shtamplar, marshrut qoidalari, qayerdasiz?!

Internetdagi mijozlar uchun 172.17.17.17 manzilli sevimli OpenVPN serveringizga kirish huquqini berishingiz kerakmi? Iltimos:

/ip bulut to'plami ddns-enabled=ha

Tengdosh sifatida biz mijozga quyidagi natijani beramiz: ": qo'ying [ip buluti DNS-nomini oling]"

Internetdan portni yo'naltirishni ro'yxatdan o'tkazamiz:

/ip xavfsizlik devori nat add action=dst-nat zanjiri=dstnat dst-port=1194
in-interface-list = WAN protokoli = udp to-manzillar = 172.17.17.17

4-band tayyor.

Biz 5-band uchun xavfsizlik devori va boshqa xavfsizlikni o'rnatdik, shu bilan birga biz hamma narsa foydalanuvchilar uchun ishlayotganidan xursandmiz va sevimli ichimlik solingan idishga erishamiz ...
A! Tunnellar unutilgan.

Google maqolasi tomonidan sozlangan l2tp-client sizning sevimli gollandiyalik VDS ga ko'tarildimi? Ha.
IPsec bilan l2tp-server ko'tarildi va IP Cloud dan DNS-nomi bo'yicha mijozlar (yuqoriga qarang.) yopishib? Ha.
Kresloga suyanib, ichimlik ichib, biz dangasalik bilan vazifaning 6 va 7 bandlarini ko'rib chiqamiz. Biz o'ylaymiz - bu bizga kerakmi? Baribir, u shunday ishlaydi (c) ... Demak, agar u hali ham kerak bo'lmasa, unda shunday. Multivan amalga oshirildi.

Multivan nima? Bu bir nechta Internet-kanallarni bitta routerga ulashdir.

Maqolani qo'shimcha o'qish shart emas, chunki shubhali qo'llanilishini namoyish qilishdan tashqari nima bo'lishi mumkin?

Vazifaning 6 va 7-bandlariga qiziqqan, shuningdek, mukammallikni his qiladiganlar uchun biz chuqurroq sho'ng'iymiz.

Multivanni amalga oshirishning eng muhim vazifasi - bu transportning to'g'ri yo'nalishi. Ya'ni: qaysi (yoki qaysi) bo'lishidan qat'i nazar. Eslatma 3 ISPning kanal(lar)i marshrutizatorimizdagi standart marshrutni ko'rib chiqsa, u paket kelgan kanalga javob qaytarishi kerak. Vazifa aniq. Muammo qayerda? Darhaqiqat, oddiy mahalliy tarmoqda vazifa bir xil, ammo hech kim qo'shimcha sozlamalar bilan bezovta qilmaydi va muammoni sezmaydi. Farqi shundaki, Internetdagi har qanday yo'naltiriladigan tugunga oddiy LANdagi kabi qat'iy ma'lum bir kanal orqali emas, balki har bir kanalimiz orqali kirish mumkin. Va "muammo" shundaki, agar bizga ISP3 IP-manzilini so'rash bo'lsa, bizning holatlarimizda javob ISP2 kanali orqali o'tadi, chunki standart shlyuz u erga yo'naltirilgan. Barglar va provayder tomonidan noto'g'ri deb tashlanadi. Muammo aniqlandi. Uni qanday hal qilish mumkin?

Yechim uch bosqichga bo'linadi:

  1. Oldindan sozlash. Ushbu bosqichda marshrutizatorning asosiy sozlamalari o'rnatiladi: mahalliy tarmoq, xavfsizlik devori, manzillar ro'yxatlari, soch qisqichi NAT va boshqalar.
  2. Multivan. Ushbu bosqichda kerakli ulanishlar belgilanadi va marshrutlash jadvallariga saralanadi.
  3. ISP ga ulanish. Ushbu bosqichda Internetga ulanishni ta'minlovchi interfeyslar sozlanadi, marshrutlash va Internet-kanalni bron qilish mexanizmi ishga tushiriladi.

1. Oldindan sozlash

1.1. Router konfiguratsiyasini buyruq bilan tozalaymiz:

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

rozi"Xavfli! Qayta tiklansinmi? [y/N]:” va qayta ishga tushirilgandan so'ng, biz MAC orqali Winbox bilan bog'lanamiz. Ushbu bosqichda konfiguratsiya va foydalanuvchi bazasi tozalanadi.

1.2. Yangi foydalanuvchi yarating:

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

uning ostida tizimga kiring va standartni o'chiring:

/user remove admin

BELOQ. Muallif xavfsizroq deb hisoblagan va foydalanishni tavsiya qiladigan standart foydalanuvchini olib tashlash va o'chirib qo'ymaslikdir.

1.3. Biz xavfsizlik devori, kashfiyot sozlamalari va boshqa MAC serverlarida ishlash qulayligi uchun asosiy interfeys ro'yxatlarini yaratamiz:

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

Sharhlar bilan interfeyslarni imzolash

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

va interfeys ro'yxatlarini to'ldiring:

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

BELOQ. Tushunarli sharhlarni yozish bunga sarflangan vaqtga arziydi, shuningdek, muammolarni bartaraf etish va konfiguratsiyani tushunishni sezilarli darajada osonlashtiradi.

Muallif, xavfsizlik nuqtai nazaridan, IP protokoli orqali o'tmasligiga qaramay, ether3 interfeysini "WAN" interfeysi ro'yxatiga qo'shish zarur deb hisoblaydi.

Ether3-da PPP interfeysi ko'tarilgandan so'ng, uni "WAN" interfeys ro'yxatiga ham qo'shish kerakligini unutmang.

1.4. Biz marshrutizatorni MAC orqali provayder tarmoqlaridan qo'shnilarni aniqlash va nazorat qilishdan yashiramiz:

/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. Routerni himoya qilish uchun biz xavfsizlik devori filtri qoidalarining minimal to'plamini yaratamiz:

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

(qoida ham ulangan tarmoqlardan, ham yo'riqnoma o'zidan boshlangan o'rnatilgan va tegishli ulanishlar uchun ruxsat beradi)

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

(ping va nafaqat ping. Barcha icmp-ga ruxsat berilgan. MTU muammolarini topish uchun juda foydali)

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

(kirish zanjirini yopuvchi qoida Internetdan keladigan barcha narsalarni taqiqlaydi)

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

(qoida marshrutizator orqali o'tadigan o'rnatilgan va tegishli ulanishlarga ruxsat beradi)

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

(qoida router orqali ulanish holati=yaroqsiz boʻlgan ulanishlarni tiklaydi. Bu Mikrotik tomonidan tavsiya etiladi, lekin baʼzi kamdan-kam hollarda foydali trafikni bloklashi mumkin)

/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

(qoida Internetdan kelgan va dstnat protsedurasidan o'tmagan paketlarni marshrutizator orqali o'tishni taqiqlaydi. Bu mahalliy tarmoqlarni bizning tashqi tarmoqlarimiz bilan bir xil translyatsiya domenida bo'lib, bizning tashqi IP-manzillarimizni IP-manzil sifatida ro'yxatdan o'tkazadigan buzg'unchilardan himoya qiladi. shlyuz va shuning uchun mahalliy tarmoqlarimizni "tadqiq qilishga" harakat qiling.)

BELOQ. Faraz qilaylik, LAN1 va LAN2 tarmoqlari ishonchli va ular orasidagi va ular orasidagi trafik filtrlanmagan.

1.6. Yo'naltirilmaydigan tarmoqlar ro'yxati bilan ro'yxat yarating:

/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

(Bu Internetga yo'naltirilmaydigan manzillar va tarmoqlar ro'yxati va shunga mos ravishda amal qilinadi.)

BELOQ. Ro'yxat o'zgarishi mumkin, shuning uchun men vaqti-vaqti bilan dolzarbligini tekshirishni maslahat beraman.

1.7. Routerning o'zi uchun DNS-ni sozlang:

/ip dns set servers=1.1.1.1,8.8.8.8

BELOQ. ROS ning joriy versiyasida dinamik serverlar statik serverlardan ustun turadi. Nomni hal qilish so'rovi ro'yxatdagi tartibda birinchi serverga yuboriladi. Keyingi serverga o'tish joriy server mavjud bo'lmaganda amalga oshiriladi. Vaqt tugashi katta - 5 soniyadan ko'proq. Orqaga qaytish, "tushgan server" qayta boshlanganda, avtomatik ravishda sodir bo'lmaydi. Ushbu algoritm va multivan mavjudligini hisobga olgan holda, muallif provayderlar tomonidan taqdim etilgan serverlardan foydalanmaslikni tavsiya qiladi.

1.8. Mahalliy tarmoqni sozlang.
1.8.1. Biz LAN interfeyslarida statik IP manzillarni sozlaymiz:

/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. Biz asosiy marshrutlash jadvali orqali mahalliy tarmoqlarimizga marshrutlar uchun qoidalarni o'rnatamiz:

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

BELOQ. Bu standart marshrutdan o'tmaydigan router interfeyslarining tashqi IP manzillari manbalari bilan LAN manzillariga kirishning tez va oson usullaridan biridir.

1.8.3. LAN1 va LAN2 uchun Hairpin NAT-ni yoqing:

/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

BELOQ. Bu tarmoq ichida bo'lganingizda tashqi IP orqali resurslaringizga (dstnat) kirish imkonini beradi.

2. Aslida, juda to'g'ri multivanni amalga oshirish

"Ular qaerdan so'raganiga javob berish" muammosini hal qilish uchun biz ikkita ROS vositasidan foydalanamiz: ulanish belgisi и marshrut belgisi. ulanish belgisi kerakli ulanishni belgilash va keyin qo'llash sharti sifatida ushbu belgi bilan ishlash imkonini beradi marshrut belgisi. Va allaqachon bilan marshrut belgisi ichida ishlash mumkin ip yo'nalishi и marshrut qoidalari. Biz asboblarni aniqladik, endi siz qaysi ulanishlarni belgilashni hal qilishingiz kerak - bir marta, aniq qaerga belgilash - ikkita.

Birinchisi bilan hamma narsa oddiy - biz tegishli kanal orqali Internetdan routerga keladigan barcha ulanishlarni belgilashimiz kerak. Bizning holatda, bu uchta yorliq bo'ladi (kanallar soni bo'yicha): "conn_isp1", "conn_isp2" va "conn_isp3".

Ikkinchisi bilan nuance shundaki, kiruvchi ulanishlar ikki xil bo'ladi: tranzit va yo'riqnoma o'zi uchun mo'ljallangan. Ulanish belgisi mexanizmi jadvalda ishlaydi manglay. Mikrotik-trainings.com resursi mutaxassislari tomonidan tuzilgan soddalashtirilgan sxema bo'yicha paketning harakatini ko'rib chiqing (reklama emas):

Mikrotik RouterOS-da multivan va marshrutlash

O'qlardan so'ng biz paketning "" manziliga etib kelganini ko'ramiz.kirish interfeysi", zanjirdan o'tadi"Oldindan marshrutlash” va faqat u blokda tranzit va mahalliy bo'linadi "Yo'nalish qarori". Shuning uchun, ikkita qushni bitta tosh bilan o'ldirish uchun biz foydalanamiz Ulanish belgisi jadvalda Mangle oldindan marshrutlash zanjirlar Oldindan marshrutlash.

Eslatma:. ROS-da "Marshrutlash belgisi" yorliqlari Ip / Marshrutlar / Qoidalar bo'limida "Jadval" sifatida va boshqa bo'limlarda "Marshrutlash belgisi" sifatida keltirilgan. Bu tushunishda biroz chalkashliklarga olib kelishi mumkin, lekin aslida bu xuddi shu narsa va Linuxdagi iproute2-dagi rt_tables analogidir.

2.1. Biz har bir provayderdan kiruvchi ulanishlarni belgilaymiz:

/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

BELOQ. Belgilangan ulanishlarni belgilamaslik uchun ulanish holati=yangi o'rniga ulanish belgisi=no-mark shartidan foydalanaman, chunki bu to'g'riroq deb o'ylayman, shuningdek kirish filtrida noto'g'ri ulanishlarni rad etish.


passthrough=yo'q - chunki ushbu amalga oshirish usulida qayta belgilash chiqarib tashlanadi va tezlashtirish uchun siz birinchi o'yindan keyin qoidalarni sanab o'tishni to'xtatishingiz mumkin.

Shuni yodda tutish kerakki, biz hozircha marshrutga hech qanday aralashmaymiz. Endi faqat tayyorgarlik bosqichlari mavjud. Amalga oshirishning keyingi bosqichi mahalliy tarmoqdagi belgilangan manzildan o'rnatilgan ulanish orqali qaytib keladigan tranzit trafigini qayta ishlash bo'ladi. Bular. yo'l davomida router orqali o'tgan paketlar (diagrammaga qarang):

“Kirish interfeysi”=>”Preouting”=>”Marshrutlash qarori”=>”Oldinga”=>”Post marshrutlash”=>“Chiqish interfeysi” va mahalliy tarmoqdagi manziliga etib bordi.

Muhim! ROS-da tashqi va ichki interfeyslarga mantiqiy bo'linish yo'q. Agar biz yuqoridagi diagramma bo'yicha javob paketining yo'lini kuzatsak, u so'rov bilan bir xil mantiqiy yo'ldan boradi:

“Kirish interfeysi”=>”Preouting”=>”Marshrutlash qarori”=>”Oldinga”=>”Post marshrutlash”=>“Chiqish interfeysi” faqat iltimos uchun"Kirish interfeysi” ISP interfeysi edi va javob uchun - LAN

2.2. Biz javob tranzit trafigini tegishli marshrutlash jadvallariga yo'naltiramiz:

/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

Izoh. in-interface-list=!WAN - biz faqat mahalliy tarmoqdan trafik bilan ishlaymiz va routerning o'zi interfeyslari manzilining maqsad manziliga ega bo'lmagan dst-address-type=!local.

Yo'l davomida marshrutizatorga kelgan mahalliy paketlar uchun ham xuddi shunday:

“Kirish interfeysi”=>”Preouting”=>”Marshrutlash qarori”=>”Kirish”=>“Mahalliy jarayon”

Muhim! Javob quyidagi tarzda bo'ladi:

“Mahalliy jarayon”=>”Marshrutlash qarori”=>”Chiqish”=>”Post marshrutlash”=>“Chiqish interfeysi”

2.3. Biz mahalliy trafikni tegishli marshrutlash jadvallariga yo'naltiramiz:

/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

Ushbu bosqichda so'rov kelgan Internet-kanalga javob yuborishga tayyorgarlik ko'rish vazifasi hal qilingan deb hisoblanishi mumkin. Hamma narsa belgilangan, etiketlangan va marshrutga tayyor.
Ushbu sozlashning ajoyib "yon" ta'siri bir vaqtning o'zida ikkala (ISP2, ISP3) provayderlaridan DSNAT portini yo'naltirish bilan ishlash qobiliyatidir. Umuman yo'q, chunki ISP1 da bizda yo'naltirilmaydigan manzil mavjud. Bu ta'sir, masalan, turli Internet kanallarini ko'rib chiqadigan ikkita MXga ega pochta serveri uchun muhimdir.

Mahalliy tarmoqlarning tashqi IP-routerlar bilan ishlashining nuanslarini bartaraf qilish uchun biz paragraflardagi echimlardan foydalanamiz. 1.8.2 va 3.1.2.6.

Bunga qo'shimcha ravishda, muammoning 3-bandini hal qilish uchun siz belgilarga ega vositadan foydalanishingiz mumkin. Biz buni quyidagicha amalga oshiramiz:

2.4. Biz mahalliy mijozlardan trafikni marshrutlash ro'yxatidan tegishli jadvallarga yo'naltiramiz:

/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

Natijada, u quyidagicha ko'rinadi:

Mikrotik RouterOS-da multivan va marshrutlash

3. ISPga ulanishni o'rnating va markali marshrutlashni yoqing

3.1. ISP1 ga ulanishni o'rnating:
3.1.1. Statik IP manzilni sozlang:

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

3.1.2. Statik marshrutlashni sozlash:
3.1.2.1. Standart “favqulodda” marshrutni qo‘shing:

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

BELOQ. Ushbu marshrut har qanday provayderning havolalari holatidan qat'i nazar, mahalliy jarayonlardan trafikni Marshrut qarori bosqichidan o'tishga imkon beradi. Chiquvchi mahalliy trafikning nuansi shundaki, paket hech bo'lmaganda biron bir joyga ko'chib o'tishi uchun asosiy marshrutlash jadvali standart shlyuzga faol marshrutga ega bo'lishi kerak. Aks holda, paket shunchaki yo'q qilinadi.

Asbob kengaytmasi sifatida shlyuzni tekshiring Kanal holatini chuqurroq tahlil qilish uchun men rekursiv marshrut usulidan foydalanishni taklif qilaman. Usulning mohiyati shundaki, biz marshrutizatorga o'z shlyuziga yo'lni to'g'ridan-to'g'ri emas, balki oraliq shlyuz orqali izlashni aytamiz. 4.2.2.1, 4.2.2.2 va 4.2.2.3 mos ravishda ISP1, ISP2 va ISP3 uchun “sinov” shlyuzlari sifatida tanlanadi.

3.1.2.2. "Tasdiqlash" manziliga marshrut:

/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

BELOQ. Kelajakda 4.2.2.1 dan rekursiv shlyuz sifatida foydalanish uchun biz ROS maqsadli qamrovidagi qamrov qiymatini sukut bo'yicha pasaytiramiz. Men ta'kidlayman: "sinov" manziliga marshrutning ko'lami sinovdan o'tadigan marshrutning maqsadli doirasidan kam yoki teng bo'lishi kerak.

3.1.2.3. Marshrut belgisisiz trafik uchun rekursiv standart marshrut:

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

BELOQ. Masofa=2 qiymati ishlatiladi, chunki ISP1 vazifa shartlariga muvofiq birinchi zaxira sifatida e'lon qilinadi.

3.1.2.4. “to_isp1” marshrut belgisi bilan trafik uchun rekursiv standart marshrut:

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

BELOQ. Aslida, biz nihoyat 2-bandda amalga oshirilgan tayyorgarlik ishlarining samarasidan bahramand bo'lishni boshlaymiz.


Ushbu marshrutda "to_isp1" belgisiga ega bo'lgan barcha trafik asosiy jadval uchun qaysi standart shlyuz faol bo'lishidan qat'i nazar, birinchi provayderning shlyuziga yo'naltiriladi.

3.1.2.5. ISP2 va ISP3 yorliqli trafik uchun birinchi zaxira rekursiv standart marshrut:

/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

BELOQ. Bu marshrutlar, boshqa narsalar qatori, “to_isp*” manzillar roʻyxatiga aʼzo boʻlgan mahalliy tarmoqlardan trafikni zaxiralash uchun kerak.

3.1.2.6. Biz ISP1 orqali routerning Internetga mahalliy trafigi uchun marshrutni ro'yxatdan o'tkazamiz:

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

BELOQ. 1.8.2-band qoidalari bilan birgalikda u berilgan manba bilan kerakli kanalga kirishni ta'minlaydi. Bu mahalliy IP manzilini (EoIP, IP-IP, GRE) ko'rsatadigan tunnellarni qurish uchun juda muhimdir. IP marshrut qoidalaridagi qoidalar yuqoridan pastgacha, shartlarning birinchi mos kelguniga qadar bajarilganligi sababli, bu qoida 1.8.2-band qoidalaridan keyin bo'lishi kerak.

3.1.3. Biz chiquvchi trafik uchun NAT qoidasini ro'yxatdan o'tkazamiz:

/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

BELOQ. IPsec siyosatiga kiradigan narsalar bundan mustasno, chiqadigan hamma narsani NATim. Agar zarurat bo'lmasa, action=masquerade ishlatmaslikka harakat qilaman. Bu src-nat ga qaraganda sekinroq va ko'proq resurs talab qiladi, chunki u har bir yangi ulanish uchun NAT manzilini hisoblab chiqadi.

3.1.4. Biz ro'yxatdagi boshqa provayderlar orqali kirishi taqiqlangan mijozlarni ISP1 provayderining shlyuziga yuboramiz.

/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

BELOQ. action=route yuqoriroq ustuvorlikka ega va boshqa marshrutlash qoidalaridan oldin qo'llaniladi.


place-before=0 - qoidamizni ro'yxatda birinchi o'ringa qo'yadi.

3.2. ISP2 ga ulanishni o'rnating.

ISP2 provayderi bizga DHCP orqali sozlamalarni berganligi sababli, DHCP mijozi ishga tushirilganda boshlanadigan skript yordamida kerakli o'zgarishlarni amalga oshirish maqsadga muvofiqdir:

/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 oynasida skriptning o'zi:

Mikrotik RouterOS-da multivan va marshrutlash
BELOQ. Skriptning birinchi qismi lizing muvaffaqiyatli olinganda, ikkinchisi - ijaraga berilgandan keyin ishga tushiriladi.Eslatma 2 ga qarang

3.3. ISP3 provayderiga ulanishni o'rnatdik.

Sozlamalar provayderi bizga dinamikani berganligi sababli, ppp interfeysi ko'tarilgandan keyin va yiqilgandan keyin boshlanadigan skriptlar bilan kerakli o'zgarishlarni amalga oshirish maqsadga muvofiqdir.

3.3.1. Avval biz profilni sozlaymiz:

/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 oynasida skriptning o'zi:

Mikrotik RouterOS-da multivan va marshrutlash
BELOQ. Chiziq
/ip xavfsizlik devori mangle seti [find comment="ISP3 dan ulanish"] in-interface=$"interfeys";
interfeys nomini o'zgartirishni to'g'ri bajarishga imkon beradi, chunki u ekran nomi bilan emas, balki uning kodi bilan ishlaydi.

3.3.2. Endi profildan foydalanib, ppp ulanishini yarating:

/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

Yakuniy teginish sifatida soatni o'rnatamiz:

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

Oxirigacha o'qiganlar uchun

Multivanni amalga oshirishning tavsiya etilgan usuli muallifning shaxsiy xohishidir va yagona mumkin emas. ROS asboblar to'plami keng qamrovli va moslashuvchan bo'lib, bu, bir tomondan, yangi boshlanuvchilar uchun qiyinchilik tug'dirsa, boshqa tomondan, uning mashhurligining sababidir. Yangi vositalar va echimlarni o'rganing, sinab ko'ring, kashf eting. Masalan, olingan bilimlarni qo'llash sifatida multivanni ushbu amalga oshirishda asbobni almashtirish mumkin tekshirish shlyuzi rekursiv marshrutlar bilan tarmoq soati.

Eslatmalar

  1. tekshirish shlyuzi - shlyuzning mavjudligini ketma-ket ikki marta muvaffaqiyatsiz tekshirgandan so'ng marshrutni o'chirishga imkon beruvchi mexanizm. Tekshirish har 10 soniyada bir marta amalga oshiriladi, shuningdek, javob berish vaqti tugaydi. Hammasi bo'lib, haqiqiy almashtirish vaqti 20-30 soniya oralig'ida yotadi. Agar bunday almashtirish vaqti etarli bo'lmasa, asbobdan foydalanish imkoniyati mavjud tarmoq soati, bu erda tekshirish taymerini qo'lda sozlash mumkin. tekshirish shlyuzi havolada paketlarning vaqti-vaqti bilan yo'qolishida yonmaydi.

    Muhim! Asosiy marshrutni o'chirib qo'yish unga tegishli barcha boshqa marshrutlarni o'chiradi. Shuning uchun, ular uchun belgilash check-shlyuz = ping Hojati yo'q.

  2. DHCP mexanizmida xatolik yuz beradi, bu mijoz yangilanish holatida qolganga o'xshaydi. Bunday holda, skriptning ikkinchi qismi ishlamaydi, lekin u transportning to'g'ri yurishiga to'sqinlik qilmaydi, chunki davlat tegishli rekursiv marshrutni kuzatadi.
  3. ECMP (Teng xarajatli ko'p yo'l) - ROSda bir nechta shlyuzlar va bir xil masofaga ega marshrutni o'rnatish mumkin. Bunday holda, ulanishlar ko'rsatilgan shlyuzlar soniga mutanosib ravishda aylanma algoritmdan foydalangan holda kanallar bo'ylab taqsimlanadi.

Maqolani yozishga turtki bo'lganligi uchun, uning tuzilishini shakllantirishga va aksanlarni joylashtirishga yordam bering - Evgeniyga shaxsiy minnatdorchilik. @jscar

Manba: www.habr.com