Mikrotik RouterOS da statik marshrutlash asoslari

Marshrutlash - bu TCP/IP tarmoqlari orqali paketlarni uzatish uchun eng yaxshi yo'lni topish jarayoni. IPv4 tarmog'iga ulangan har qanday qurilma jarayon va marshrut jadvallarini o'z ichiga oladi.

Ushbu maqola QANDAY QANDAY emas, u RouterOS-da statik marshrutlashni misollar bilan tasvirlaydi, men qolgan sozlamalarni ataylab o'tkazib yubordim (masalan, Internetga kirish uchun srcnat), shuning uchun materialni tushunish tarmoqlar va RouterOS haqida ma'lum darajadagi bilimlarni talab qiladi.

Kommutatsiya va marshrutlash

Mikrotik RouterOS da statik marshrutlash asoslari

Kommutatsiya - bu bitta Layer2 segmentida (Ethernet, ppp, ...) paketlarni almashish jarayoni. Agar qurilma paketni qabul qiluvchisi u bilan bir xil Ethernet quyi tarmog'ida ekanligini ko'rsa, u arp protokoli yordamida mac manzilini o'rganadi va marshrutizatorni chetlab o'tib to'g'ridan-to'g'ri paketni uzatadi. Ppp (nuqtadan nuqtaga) ulanish faqat ikkita ishtirokchiga ega bo'lishi mumkin va paket har doim bitta 0xff manziliga yuboriladi.

Marshrutlash - bu Layer2 segmentlari o'rtasida paketlarni uzatish jarayoni. Agar qurilma qabul qiluvchisi Ethernet segmentidan tashqarida bo'lgan paketni jo'natmoqchi bo'lsa, u o'zining marshrutlash jadvaliga qaraydi va paketni keyingi qaerga yuborishni biladigan (yoki paketning asl jo'natuvchisini bilmasligi mumkin) shlyuzga uzatadi. bundan bexabar).

Router haqida o'ylashning eng oson usuli - bu ikki yoki undan ortiq Layer2 segmentlariga ulangan va marshrutlash jadvalidan eng yaxshi marshrutni aniqlash orqali ular o'rtasida paketlarni o'tkazishga qodir bo'lgan qurilma.

Agar siz hamma narsani tushunsangiz yoki buni allaqachon bilsangiz, o'qing. Qolganlari uchun men sizga kichik, ammo juda sig'imli bilan tanishishingizni tavsiya qilaman maqola.

RouterOS va PacketFlow da marshrutlash

Statik marshrutlash bilan bog'liq deyarli barcha funktsiyalar paketda mavjud tizim. Plastik sumka marshrut dinamik marshrutlash algoritmlarini (RIP, OSPF, BGP, MME), Marshrutlash filtrlari va BFD uchun qo'llab-quvvatlaydi.

Marshrutni sozlash uchun asosiy menyu: [IP]->[Route]. Murakkab sxemalar paketlarni marshrutlash belgisi bilan oldindan belgilashni talab qilishi mumkin: [IP]->[Firewall]->[Mangle] (zanjirlar PREROUTING ΠΈ OUTPUT).

PacketFlow-da IP-paketlarni yo'naltirish bo'yicha qarorlar qabul qilinadigan uchta joy mavjud:
Mikrotik RouterOS da statik marshrutlash asoslari

  1. Router tomonidan qabul qilingan marshrut paketlari. Ushbu bosqichda paket mahalliy jarayonga o'tadimi yoki tarmoqqa jo'natiladimi, qaror qabul qilinadi. Tranzit paketlar qabul qilinadi Chiqish interfeysi
  2. Mahalliy chiquvchi paketlarni marshrutlash. Chiquvchi paketlar qabul qilinadi Chiqish interfeysi
  3. Chiquvchi paketlar uchun qo'shimcha marshrutlash bosqichi, marshrutlash qarorini o'zgartirishga imkon beradi [Output|Mangle]

  • 1, 2-bloklardagi paket yo'li qoidalariga bog'liq [IP]->[Route]
  • 1, 2 va 3-bandlardagi paket yo'li qoidalariga bog'liq [IP]->[Route]->[Rules]
  • 1, 3-bloklardagi paket yo'lidan foydalanib ta'sir qilish mumkin [IP]->[Firewall]->[Mangle]

RIB, FIB, marshrutlash keshi

Mikrotik RouterOS da statik marshrutlash asoslari

Marshrutlash ma'lumotlar bazasi
Dinamik marshrutlash protokollaridan, ppp va dhcp dan marshrutlardan, statik va ulangan marshrutlardan marshrutlar yig'iladigan baza. Ushbu ma'lumotlar bazasida administrator tomonidan filtrlanganidan tashqari barcha yo'nalishlar mavjud.

Shartli ravishda, deb taxmin qilishimiz mumkin [IP]->[Route] RIB ko'rsatadi.

Ekspeditorlik ma'lumotlar bazasi
Mikrotik RouterOS da statik marshrutlash asoslari

RIB dan eng yaxshi marshrutlar to'plangan baza. FIBdagi barcha marshrutlar faol va paketlarni yuborish uchun ishlatiladi. Agar marshrut faol bo'lmasa (administrator (tizim) tomonidan o'chirilgan yoki paket jo'natilishi kerak bo'lgan interfeys faol bo'lmasa), marshrut FIBdan olib tashlanadi.

Marshrutni tanlash to'g'risida qaror qabul qilish uchun FIB jadvali IP-paket haqidagi quyidagi ma'lumotlardan foydalanadi:

  • Manba manzili
  • Belgilangan manzil
  • manba interfeysi
  • Marshrut belgisi
  • ToS (DSCP)

FIB paketiga kirish quyidagi bosqichlardan o'tadi:

  • Paket mahalliy router jarayoni uchun mo'ljallanganmi?
  • Paket tizim yoki foydalanuvchi PBR qoidalariga bo'ysunadimi?
    • Ha bo'lsa, paket belgilangan marshrutizatsiya jadvaliga yuboriladi
  • Paket asosiy jadvalga yuboriladi

Shartli ravishda, deb taxmin qilishimiz mumkin [IP]->[Route Active=yes] FIB ko'rsatadi.

Marshrutlash keshi
Marshrutni keshlash mexanizmi. Router paketlar qayerga yuborilganligini eslab qoladi va agar o'xshashlar mavjud bo'lsa (ehtimol bir xil ulanishdan) FIBda tekshirmasdan, ularga bir xil yo'nalish bo'ylab borishga imkon beradi. Marshrut keshi vaqti-vaqti bilan tozalanadi.

RouterOS ma'murlari uchun ular Routing keshini ko'rish va boshqarish vositalarini yaratmagan, lekin uni o'chirib qo'yish mumkin bo'lganda. [IP]->[Settings].

Ushbu mexanizm linux 3.6 yadrosidan olib tashlandi, ammo RouterOS hali ham yadro 3.3.5 dan foydalanadi, ehtimol Routing cahce sabablaridan biri.

Marshrut dialogini qo'shish

[IP]->[Route]->[+]
Mikrotik RouterOS da statik marshrutlash asoslari

  1. Marshrut yaratmoqchi bo'lgan pastki tarmoq (standart: 0.0.0.0/0)
  2. Paket yuboriladigan shlyuz IP yoki interfeys (bir nechta bo'lishi mumkin, quyida ECMP ga qarang)
  3. Gateway mavjudligini tekshirish
  4. Yozuv turi
  5. Marshrut uchun masofa (metrik).
  6. Marshrutlash jadvali
  7. Ushbu marshrut orqali mahalliy chiquvchi paketlar uchun IP
  8. Maqsad va maqsad doirasi haqida maqolaning oxirida yozilgan

Yo'nalish bayroqlari
Mikrotik RouterOS da statik marshrutlash asoslari

  • X - marshrut administrator tomonidan o'chirilgan (disabled=yes)
  • A - marshrut paketlarni jo'natish uchun ishlatiladi
  • D - marshrut dinamik ravishda qo'shilgan (BGP, OSPF, RIP, MME, PPP, DHCP, Ulangan)
  • C - pastki tarmoq to'g'ridan-to'g'ri routerga ulangan
  • S - Statik marshrut
  • r,b,o,m - Dinamik marshrutlash protokollaridan biri tomonidan qo'shilgan marshrut
  • B, U, P - filtrlash marshruti (paketlarni uzatish o'rniga tushiradi)

Shlyuzda nimani ko'rsatish kerak: ip-manzil yoki interfeys?

Tizim ikkalasini ham belgilashga imkon beradi, shu bilan birga u qasam ichmaydi va noto'g'ri ish qilgan bo'lsangiz, maslahat bermaydi.

IP manzili
Gateway manziliga Layer2 orqali kirish mumkin bo'lishi kerak. Ethernet uchun bu marshrutizator faol IP interfeyslaridan birida bir xil quyi tarmoqdan manzilga ega bo'lishi kerakligini anglatadi, ppp uchun shlyuz manzili faol interfeyslardan birida quyi tarmoq manzili sifatida ko'rsatilgan.
Agar Layer2 uchun mavjudlik sharti bajarilmasa, marshrut faol emas deb hisoblanadi va FIBga kirmaydi.

Interfeys
Hammasi murakkabroq va routerning harakati interfeys turiga bog'liq:

  • PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) ulanishi faqat ikkita ishtirokchini o'z ichiga oladi va paket har doim uzatish uchun shlyuzga yuboriladi, agar shlyuz qabul qiluvchining o'zi ekanligini aniqlasa, u paketni uzatadi uning mahalliy jarayoni.
    Mikrotik RouterOS da statik marshrutlash asoslari
  • Ethernet ko'plab ishtirokchilar mavjudligini nazarda tutadi va arp interfeysiga paketni qabul qiluvchining manzili bilan so'rovlar yuboradi, bu ulangan marshrutlar uchun kutilgan va juda oddiy xatti-harakatlardir.
    Ammo interfeysdan masofaviy pastki tarmoq uchun marshrut sifatida foydalanishga harakat qilganingizda, siz quyidagi holatga duch kelasiz: marshrut faol, shlyuzga ping o'tadi, lekin belgilangan pastki tarmoqdan qabul qiluvchiga etib bormaydi. Agar siz sniffer orqali interfeysga qarasangiz, masofaviy pastki tarmoqdan manzillar bilan arp so'rovlarini ko'rasiz.
    Mikrotik RouterOS da statik marshrutlash asoslari

Mikrotik RouterOS da statik marshrutlash asoslari

Iloji boricha IP-manzilni shlyuz sifatida ko'rsatishga harakat qiling. Istisno - ulangan marshrutlar (avtomatik ravishda yaratilgan) va PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*) interfeyslari.

OpenVPN PPP sarlavhasini o'z ichiga olmaydi, lekin marshrut yaratish uchun OpenVPN interfeysi nomidan foydalanishingiz mumkin.

Aniqroq marshrut

Marshrutlashning asosiy qoidasi. Kichikroq pastki tarmoqni (eng katta pastki tarmoq niqobi bilan) tavsiflovchi marshrut paketning marshrutlash qarorida ustunlik qiladi. Marshrutlash jadvalidagi yozuvlarning joylashuvi tanlovga taalluqli emas - asosiy qoida ko'proq o'ziga xosdir.

Mikrotik RouterOS da statik marshrutlash asoslari

Belgilangan sxema bo'yicha barcha marshrutlar faol (FIBda joylashgan). turli pastki tarmoqlarga ishora qiladi va bir-biriga zid bo'lmaydi.

Agar shlyuzlardan biri ishlamay qolsa, bog'langan marshrut nofaol deb hisoblanadi (FIBdan o'chiriladi) va qolgan marshrutlardan paketlar qidiriladi.

0.0.0.0/0 pastki tarmoqli marshrut ba'zan alohida ma'noga ega bo'lib, "Standart marshrut" yoki "So'nggi chora shlyuzi" deb ataladi. Aslida, unda hech qanday sehrli narsa yo'q va u shunchaki barcha mumkin bo'lgan IPv4 manzillarini o'z ichiga oladi, ammo bu nomlar uning vazifasini yaxshi tavsiflaydi - bu boshqa, aniqroq marshrutlar mavjud bo'lmagan paketlarni qaerga yuborish shlyuzini ko'rsatadi.

IPv4 uchun maksimal mumkin bo'lgan pastki tarmoq niqobi /32, bu marshrut ma'lum bir xostga ishora qiladi va marshrutlash jadvalida ishlatilishi mumkin.

Aniqroq marshrutni tushunish har qanday TCP/IP qurilmasi uchun asosiy hisoblanadi.

masofa

Masofalar (yoki ko'rsatkichlar) bir nechta shlyuzlar orqali kirish mumkin bo'lgan bitta quyi tarmoqqa marshrutlarni ma'muriy filtrlash uchun talab qilinadi. Ko'rsatkichi pastroq marshrut ustuvor hisoblanadi va FIBga kiritiladi. Agar pastroq ko'rsatkichga ega marshrut faol bo'lishni to'xtatsa, u FIBda yuqori ko'rsatkichga ega marshrut bilan almashtiriladi.
Mikrotik RouterOS da statik marshrutlash asoslari

Agar bir xil ko'rsatkichga ega bir xil pastki tarmoqqa bir nechta marshrutlar mavjud bo'lsa, marshrutizator o'zining ichki mantig'idan kelib chiqqan holda FIB jadvaliga ulardan faqat bittasini qo'shadi.

Ko'rsatkich 0 dan 255 gacha bo'lgan qiymatni olishi mumkin:
Mikrotik RouterOS da statik marshrutlash asoslari

  • 0 - ulangan marshrutlar uchun ko'rsatkich. Masofa 0 ni administrator belgilab bo'lmaydi
  • 1-254 - marshrutlarni o'rnatish uchun ma'murga mavjud ko'rsatkichlar. Pastroq qiymatga ega ko'rsatkichlar yuqoriroq ustuvorlikka ega
  • 255 - marshrutlarni o'rnatish uchun administrator uchun mavjud ko'rsatkich. 1-254 dan farqli o'laroq, 255 ko'rsatkichli marshrut har doim faol bo'lib qoladi va FIBga tushmaydi.
  • maxsus ko'rsatkichlar. Dinamik marshrutlash protokollaridan olingan marshrutlar standart metrik qiymatlarga ega

shlyuzni tekshiring

Tekshirish shlyuzi - icmp yoki arp orqali shlyuz mavjudligini tekshirish uchun MikroTik RoutesOS kengaytmasi. Har 10 soniyada bir marta (o'zgartirish mumkin emas) shlyuzga so'rov yuboriladi, agar javob ikki marta olinmasa, marshrut mavjud emas deb hisoblanadi va FIBdan o'chiriladi. Tekshirish shlyuzi o'chirilgan bo'lsa, tekshirish marshruti davom etadi va bitta muvaffaqiyatli tekshiruvdan so'ng marshrut yana faollashadi.
Mikrotik RouterOS da statik marshrutlash asoslari

Tekshirish shlyuzi o'zi sozlangan yozuvni va belgilangan shlyuz bilan boshqa barcha yozuvlarni (barcha marshrutlash jadvallari va ecmp marshrutlarida) o'chiradi.

Umuman olganda, shlyuzga paketlarni yo'qotish bilan bog'liq muammolar bo'lmasa, tekshirish shlyuzi yaxshi ishlaydi. Tekshirish shlyuzi tekshirilgan shlyuzdan tashqaridagi aloqa bilan nima sodir bo'layotganini bilmaydi, bu qo'shimcha vositalarni talab qiladi: skriptlar, rekursiv marshrutlash, dinamik marshrutlash protokollari.

Ko'pgina VPN va tunnel protokollarida ulanish faolligini tekshirish uchun o'rnatilgan vositalar mavjud bo'lib, ular uchun shlyuzni tekshirish tarmoq va qurilmaning ishlashiga qo'shimcha (lekin juda kichik) yuk bo'ladi.

ECMP marshrutlari

Teng xarajatli ko'p yo'l - Round Robin algoritmidan foydalangan holda bir vaqtning o'zida bir nechta shlyuzlardan foydalangan holda paketlarni qabul qiluvchiga yuborish.

ECMP marshruti administrator tomonidan bitta quyi tarmoq uchun bir nechta shlyuzlarni belgilash orqali yaratiladi (yoki ikkita ekvivalent OSPF marshruti mavjud bo'lsa, avtomatik ravishda).
Mikrotik RouterOS da statik marshrutlash asoslari

ECMP ikkita kanal o'rtasida yukni muvozanatlash uchun ishlatiladi, nazariy jihatdan, agar ecmp yo'nalishida ikkita kanal mavjud bo'lsa, u holda har bir paket uchun chiquvchi kanal boshqacha bo'lishi kerak. Ammo Marshrutlash kesh mexanizmi paketlarni ulanishdan birinchi paket olgan marshrut bo'ylab jo'natadi, natijada biz ulanishlar (har bir ulanish uchun yuklanish balansi) asosida balanslashning bir turiga ega bo'lamiz.

Agar siz marshrutlash keshini o'chirib qo'ysangiz, ECMP marshrutidagi paketlar to'g'ri taqsimlanadi, ammo NAT bilan bog'liq muammo bor. NAT qoidasi ulanishdan faqat birinchi paketni qayta ishlaydi (qolganlari avtomatik ravishda qayta ishlanadi) va bir xil manba manziliga ega paketlar turli interfeyslarni qoldirishi ma'lum bo'ldi.
Mikrotik RouterOS da statik marshrutlash asoslari

Tekshirish shlyuzi ECMP marshrutlarida ishlamaydi (RouterOS xatosi). Ammo siz ECMP-dagi yozuvlarni o'chirib qo'yadigan qo'shimcha tekshirish marshrutlarini yaratish orqali ushbu cheklovdan o'tishingiz mumkin.

Marshrutlash orqali filtrlash

Type opsiyasi paket bilan nima qilish kerakligini belgilaydi:

  • unicast - belgilangan shlyuzga yuborish (interfeys)
  • qora tuynuk - paketni tashlang
  • taqiqlash, kirish mumkin emas - paketni tashlab yuboring va jo'natuvchiga icmp xabarini yuboring

Filtrlash odatda paketlarni noto'g'ri yo'l bo'ylab yuborishni ta'minlash zarur bo'lganda qo'llaniladi, albatta, siz buni xavfsizlik devori orqali filtrlashingiz mumkin.

Bir-ikki misol

Marshrutlash haqida asosiy narsalarni birlashtirish.

Oddiy uy router
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1

  1. Statik marshrut 0.0.0.0/0 (standart marshrut)
  2. Provayder bilan interfeysda ulangan marshrut
  3. LAN interfeysida ulangan marshrut

PPPoE bilan odatiy uy router
Mikrotik RouterOS da statik marshrutlash asoslari

  1. Standart marshrutga statik marshrut, avtomatik ravishda qo'shiladi. u ulanish xususiyatlarida ko'rsatilgan
  2. PPP ulanishi uchun ulangan marshrut
  3. LAN interfeysida ulangan marshrut

Ikki provayder va ortiqcha bilan odatiy uy router
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 distance=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

  1. Birinchi provayder orqali standart marshrutga statik marshrut 1-metrik koβ€˜rsatkich va shlyuz mavjudligini tekshirish
  2. 2 koΚ»rsatkichli ikkinchi provayder orqali standart marshrutga statik marshrut
  3. Bog'langan marshrutlar

Ushbu shlyuz mavjud bo'lganda 0.0.0.0/0 gacha bo'lgan trafik 10.10.10.1 orqali o'tadi, aks holda u 10.20.20.1 ga o'tadi.

Bunday sxemani kanalni bron qilish deb hisoblash mumkin, ammo bu kamchiliklardan xoli emas. Agar provayder shlyuzidan tashqarida (masalan, operator tarmog'ida) tanaffus yuzaga kelsa, yo'riqnomangiz bu haqda bilmaydi va marshrutni faol deb hisoblashda davom etadi.

Ikki provayder, ortiqcha va ECMP bilan odatiy uy router
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.10.10.1,10.20.20.1 distance=1

  1. Chak shlyuzini tekshirish uchun statik marshrutlar
  2. ECMP marshruti
  3. Bog'langan marshrutlar

Tekshirish uchun marshrutlar ko'k (faol bo'lmagan marshrutlarning rangi), lekin bu tekshirish shlyuziga xalaqit bermaydi. RoS ning joriy versiyasi (6.44) ECMP marshruti uchun avtomatik ustuvorlikni beradi, ammo boshqa marshrutlash jadvallariga sinov marshrutlarini qo'shish yaxshiroqdir (variant). routing-mark)

Speedtest va boshqa shunga o'xshash saytlarda tezlikni oshirish bo'lmaydi (ECMP trafikni paketlar bo'yicha emas, ulanishlar bo'yicha ajratadi), lekin p2p ilovalari tezroq yuklab olinishi kerak.

Marshrutlash orqali filtrlash
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1
add dst-address=192.168.200.0/24 gateway=10.30.30.1 distance=1
add dst-address=192.168.200.0/24 gateway=10.10.10.1 distance=2 type=blackhole

  1. Standart marshrutga statik marshrut
  2. 192.168.200.0/24 ga ipip tunnel orqali statik marshrut
  3. ISP router orqali 192.168.200.0/24 ga statik marshrutni taqiqlash

Ipip interfeysi o'chirilgan bo'lsa, tunnel trafigi provayder yo'riqchisiga o'tmaydigan filtrlash opsiyasi. Bunday sxemalar kamdan-kam talab qilinadi, chunki xavfsizlik devori orqali bloklashni amalga oshirishingiz mumkin.

Marshrutlash davri
Marshrutlash davri - paket ttl muddati tugashidan oldin marshrutizatorlar o'rtasida ishlayotgan vaziyat. Odatda bu konfiguratsiya xatosining natijasidir, katta tarmoqlarda dinamik marshrutlash protokollarini amalga oshirish orqali, kichiklarida - ehtiyotkorlik bilan davolanadi.

Bu shunday ko'rinadi:
Mikrotik RouterOS da statik marshrutlash asoslari

Shunga o'xshash natijani olishning misoli (eng oddiy):
Mikrotik RouterOS da statik marshrutlash asoslari

Marshrutlash tsikli misoli amaliy jihatdan qo'llanilmaydi, lekin u marshrutizatorlarning qo'shnisining marshrutlash jadvali haqida hech qanday tasavvurga ega emasligini ko'rsatadi.

Siyosat bazasi marshrutlash va qo'shimcha marshrutlash jadvallari

Marshrutni tanlashda marshrutizator paket sarlavhasidan (Dst. Address) faqat bitta maydondan foydalanadi - bu asosiy marshrutlashdir. Manba manzili, trafik turi (ToS), ECMPsiz balanslash kabi boshqa shartlarga asoslangan marshrutlash Policy Base Routing (PBR) ga tegishli bo'lib, qo'shimcha marshrutlash jadvallaridan foydalanadi.

Mikrotik RouterOS da statik marshrutlash asoslari

Aniqroq marshrut marshrutlash jadvalidagi asosiy marshrut tanlash qoidasidir.

Odatiy bo'lib, barcha marshrutlash qoidalari asosiy jadvalga qo'shiladi. Administrator o'zboshimchalik bilan qo'shimcha marshrutlash jadvallarini yaratishi va ularga paketlarni yo'naltirishi mumkin. Turli jadvallardagi qoidalar bir-biriga zid kelmaydi. Agar paket belgilangan jadvalda mos qoidani topmasa, u asosiy jadvalga o'tadi.

Xavfsizlik devori orqali tarqatish misoli:
Mikrotik RouterOS da statik marshrutlash asoslari

  • 192.168.100.10 -> 8.8.8.8
    1. 192.168.100.10 dan olingan trafik etiketlanadi orqali-isp1 Π² [Prerouting|Mangle]
    2. Jadvaldagi Marshrutlash bosqichida orqali-isp1 8.8.8.8 ga marshrutni qidiradi
    3. Marshrut topildi, trafik 10.10.10.1 shlyuziga yuborildi
  • 192.168.200.20 -> 8.8.8.8
    1. 192.168.200.20 dan olingan trafik etiketlanadi orqali-isp2 Π² [Prerouting|Mangle]
    2. Jadvaldagi Marshrutlash bosqichida orqali-isp2 8.8.8.8 ga marshrutni qidiradi
    3. Marshrut topildi, trafik 10.20.20.1 shlyuziga yuborildi
  • Agar shlyuzlardan biri (10.10.10.1 yoki 10.20.20.1) mavjud bo'lmasa, paket jadvalga o'tadi. asosiy va u erda mos yo'lni qidiradi

Terminologiya masalalari

RouterOS-da ma'lum terminologiya muammolari mavjud.
Qoidalar bilan ishlashda [IP]->[Routes] marshrutlash jadvali ko'rsatilgan, garchi unda yorliq yozilgan bo'lsa:
Mikrotik RouterOS da statik marshrutlash asoslari

Π’ [IP]->[Routes]->[Rule] jadvaldagi yorliq holatida hamma narsa to'g'ri:
Mikrotik RouterOS da statik marshrutlash asoslari

Muayyan marshrutlash jadvaliga paketni qanday yuborish kerak

RouterOS bir nechta vositalarni taqdim etadi:

  • Qoidalar [IP]->[Routes]->[Rules]
  • Marshrut belgilari (action=mark-routing) [IP]->[Firewall]->[Mangle]
  • VRF

qoidalarga [IP]->[Route]->[Rules]
Qoidalar ketma-ket qayta ishlanadi, agar paket qoida shartlariga mos kelsa, u boshqa o'tmaydi.

Marshrutlash qoidalari nafaqat qabul qiluvchi manziliga, balki paket qabul qilingan manba manzili va interfeysiga tayangan holda marshrutlash imkoniyatlarini kengaytirish imkonini beradi.

Mikrotik RouterOS da statik marshrutlash asoslari

Qoidalar shartlar va harakatlardan iborat:

  • Shartlar. FIBda paket tekshiriladigan belgilar ro'yxatini amalda takrorlang, faqat ToS yo'q.
  • Amallar
    • qidirish - paketni jadvalga yuborish
    • faqat jadvalda qidirish - paketni jadvalda qulflash, agar marshrut topilmasa, paket asosiy jadvalga o'tmaydi.
    • tushirish - paketni tashlab yuborish
    • erishib bo'lmaydigan - jo'natuvchining bildirishnomasi bilan paketni tashlang

FIBda mahalliy jarayonlarga trafik qoidalarni chetlab o'tib qayta ishlanadi [IP]->[Route]->[Rules]:
Mikrotik RouterOS da statik marshrutlash asoslari

Belgilar [IP]->[Firewall]->[Mangle]
Marshrutlash belgilari deyarli har qanday xavfsizlik devori shartlaridan foydalangan holda paket uchun shlyuzni o'rnatishga imkon beradi:
Mikrotik RouterOS da statik marshrutlash asoslari

Amalda, chunki ularning hammasi ham mantiqiy emas, ba'zilari esa beqaror ishlashi mumkin.

Mikrotik RouterOS da statik marshrutlash asoslari

Paketni belgilashning ikki yo'li mavjud:

  • Darhol qo'ying marshrut belgisi
  • Birinchi qo'ying ulanish belgisi, keyin asoslangan ulanish belgisi qo'yish marshrut belgisi

Xavfsizlik devorlari haqidagi maqolada men ikkinchi variant afzalroq ekanligini yozdim. protsessorga yukni kamaytiradi, marshrutlarni belgilashda - bu mutlaqo to'g'ri emas. Ushbu markalash usullari har doim ham ekvivalent emas va odatda turli muammolarni hal qilish uchun ishlatiladi.

Foydalanish misollar

Keling, Policy Base Routing-dan foydalanish misollariga o'tamiz, bularning barchasi nima uchun kerakligini ko'rsatish juda oson.

MultiWAN va chiquvchi (Chiqish) trafikni qaytarish
MultiWAN konfiguratsiyasi bilan bog'liq keng tarqalgan muammo: Mikrotik Internetdan faqat "faol" provayder orqali mavjud.
Mikrotik RouterOS da statik marshrutlash asoslari

Router so'rov qaysi IP ga kelganiga ahamiyat bermaydi, javobni yaratishda u marshrutlash jadvalida isp1 orqali marshrut faol bo'lgan marshrutni qidiradi. Bundan tashqari, bunday paket, ehtimol, oluvchiga boradigan yo'lda filtrlanadi.

Yana bir qiziq nuqta. Ether1 interfeysida "oddiy" nat manbasi sozlangan bo'lsa: /ip fi nat add out-interface=ether1 action=masquerade paket src bilan onlayn bo'ladi. manzil=10.10.10.100, bu esa vaziyatni yanada yomonlashtiradi.

Muammoni hal qilishning bir necha yo'li mavjud, ammo ularning har biri qo'shimcha marshrutlash jadvallarini talab qiladi:
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 check-gateway=ping distance=1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 check-gateway=ping distance=2
add dst-address=0.0.0.0/0 gateway=10.10.10.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 routing-mark=over-isp2

foydalanish [IP]->[Route]->[Rules]
Belgilangan Manba IP-ga ega paketlar uchun foydalaniladigan marshrutlash jadvalini belgilang.
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route rule
add src-address=10.10.10.100/32 action=lookup-only-in-table table=over-isp1
add src-address=10.20.20.200/32 action=lookup-only-in-table table=over-isp2

Siz foydalanishingiz mumkin action=lookup, lekin mahalliy chiquvchi trafik uchun ushbu parametr noto'g'ri interfeysdan ulanishlarni butunlay chiqarib tashlaydi.

  • Tizim Src bilan javob paketini yaratadi. Manzil: 10.20.20.200
  • Marshrutlash qarori (2) bosqichi tekshiradi [IP]->[Routes]->[Rules] va paket marshrutlash jadvaliga yuboriladi haddan tashqari isp2
  • Marshrutlash jadvaliga ko'ra, paket ether10.20.20.1 interfeysi orqali 2 shlyuziga yuborilishi kerak.

Mikrotik RouterOS da statik marshrutlash asoslari

Bu usul Mangle jadvalidan farqli o'laroq, ishlaydigan ulanish kuzatuvchisini talab qilmaydi.

foydalanish [IP]->[Firewall]->[Mangle]
Ulanish kiruvchi paketdan boshlanadi, shuning uchun biz uni belgilaymiz (action=mark-connection), belgilangan ulanishdan chiquvchi paketlar uchun marshrutlash yorlig'ini o'rnating (action=mark-routing).
Mikrotik RouterOS da statik marshrutlash asoslari

/ip firewall mangle
#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° входящих соСдинСний
add chain=input in-interface=ether1 connection-state=new action=mark-connection new-connection-mark=from-isp1
add chain=input in-interface=ether2 connection-state=new action=mark-connection new-connection-mark=from-isp2
#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° исходящих ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π½Π° основС соСдинСний
add chain=output connection-mark=from-isp1 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=output connection-mark=from-isp2 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Agar bitta interfeysda bir nechta IP sozlangan bo'lsa, siz shartga qo'shishingiz mumkin dst-address ishonch hosil qilish uchun.

  • Paket ether2 interfeysida ulanishni ochadi. Paket ichiga kiradi [INPUT|Mangle] bu ulanishdagi barcha paketlarni shunday belgilashni aytadi from-isp2
  • Tizim Src bilan javob paketini yaratadi. Manzil: 10.20.20.200
  • Routing Decision(2) bosqichida paket marshrutlash jadvaliga muvofiq ether10.20.20.1 interfeysi orqali 1 shlyuziga yuboriladi. Buni paketlarga kirish orqali tekshirishingiz mumkin [OUTPUT|Filter]
  • Sahnada [OUTPUT|Mangle] ulanish belgisi tekshiriladi from-isp2 va paket marshrut belgisini oladi haddan tashqari isp2
  • Marshrutni sozlash (3) bosqichi marshrutlash yorlig'ining mavjudligini tekshiradi va uni tegishli marshrutlash jadvaliga yuboradi.
  • Marshrutlash jadvaliga ko'ra, paket ether10.20.20.1 interfeysi orqali 2 shlyuziga yuborilishi kerak.

Mikrotik RouterOS da statik marshrutlash asoslari

MultiWAN va dst-nat trafigini qaytarish

Misol murakkabroq, agar shaxsiy ichki tarmoqda marshrutizatorning orqasida server (masalan, veb) mavjud bo'lsa va siz har qanday provayder orqali unga kirishni ta'minlashingiz kerak bo'lsa, nima qilish kerak.

/ip firewall nat
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether1 action=dst-nat to-address=192.168.100.100
add chain=dstnat proto=tcp dst-port=80,443 in-interface=ether2 action=dst-nat to-address=192.168.100.100

Muammoning mohiyati bir xil bo'ladi, yechim Firewall Mangle variantiga o'xshaydi, faqat boshqa zanjirlar qo'llaniladi:
Mikrotik RouterOS da statik marshrutlash asoslari

/ip firewall mangle
add chain=prerouting connection-state=new in-interface=ether1 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp1
add chain=prerouting connection-state=new in-interface=ether2 protocol=tcp dst-port=80,443 action=mark-connection new-connection-mark=web-input-isp2
add chain=prerouting connection-mark=web-input-isp1 in-interface=ether3 action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting connection-mark=web-input-isp2 in-interface=ether3 action=mark-routing new-routing-mark=over-isp2 passthrough=no

Mikrotik RouterOS da statik marshrutlash asoslari
Diagrammada NAT ko'rsatilmagan, lekin menimcha, hamma narsa aniq.

MultiWAN va chiquvchi ulanishlar

Turli router interfeyslaridan bir nechta vpn (misolda SSTP) ulanishlarini yaratish uchun PBR imkoniyatlaridan foydalanishingiz mumkin.

Mikrotik RouterOS da statik marshrutlash asoslari

Qo'shimcha marshrutlash jadvallari:

/ip route
add dst-address=0.0.0.0/0 gateway=192.168.100.1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 routing-mark=over-isp3

add dst-address=0.0.0.0/0 gateway=192.168.100.1 distance=1
add dst-address=0.0.0.0/0 gateway=192.168.200.1 distance=2
add dst-address=0.0.0.0/0 gateway=192.168.0.1 distance=3

Paket belgilari:

/ip firewall mangle
add chain=output dst-address=10.10.10.100 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp1 passtrough=no
add chain=output dst-address=10.10.10.101 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp2 passtrough=no
add chain=output dst-address=10.10.10.102 proto=tcp dst-port=443 action=mark-routing new-routing-mark=over-isp3 passtrough=no

Oddiy NAT qoidalari, aks holda paket noto'g'ri Src bilan interfeysni tark etadi. manzil:

/ip firewall nat
add chain=srcnat out-interface=ether1 action=masquerade
add chain=srcnat out-interface=ether2 action=masquerade
add chain=srcnat out-interface=ether3 action=masquerade

Tushirish:

  • Router uchta SSTP jarayonini yaratadi
  • Routing Decision (2) bosqichida ushbu jarayonlar uchun asosiy marshrutlash jadvali asosida marshrut tanlanadi. Xuddi shu marshrutdan paket Src ni oladi. Manzil ether1 interfeysiga ulangan
  • Π’ [Output|Mangle] turli ulanishlar paketlari turli teglar oladi
  • Paketlar Routing Adjusment bosqichida yorliqlarga mos keladigan jadvallarga kiradi va paketlarni jo'natish uchun yangi marshrutni oladi.
  • Ammo paketlarda hali ham Src mavjud. Ether1 dan manzil, sahnada [Nat|Srcnat] manzil interfeysga muvofiq almashtiriladi

Qizig'i shundaki, marshrutizatorda siz quyidagi ulanish jadvalini ko'rasiz:
Mikrotik RouterOS da statik marshrutlash asoslari

Connection Tracker avvalroq ishlaydi [Mangle] ΠΈ [Srcnat], shuning uchun barcha ulanishlar bir xil manzildan keladi, agar siz batafsilroq ko'rib chiqsangiz, unda Replay Dst. Address NATdan keyin manzillar bo'ladi:
Mikrotik RouterOS da statik marshrutlash asoslari

VPN serverida (mening sinov stolida bittasi bor), siz barcha ulanishlar to'g'ri manzillardan kelganini ko'rishingiz mumkin:
Mikrotik RouterOS da statik marshrutlash asoslari

Yo'lni ushlab turing
Buning oson yo'li bor, siz har bir manzil uchun ma'lum bir shlyuzni belgilashingiz mumkin:

/ip route
add dst-address=10.10.10.100 gateway=192.168.100.1
add dst-address=10.10.10.101 gateway=192.168.200.1
add dst-address=10.10.10.102 gateway=192.168.0.1

Ammo bunday yo'nalishlar nafaqat chiquvchi, balki tranzit trafigiga ham ta'sir qiladi. Bundan tashqari, noo'rin aloqa kanallari orqali o'tish uchun vpn serveriga trafik kerak bo'lmasa, siz yana 6 ta qoidani qo'shishingiz kerak bo'ladi. [IP]->[Routes]с type=blackhole. Oldingi versiyada - 3 ta qoida [IP]->[Route]->[Rules].

Aloqa kanallari bo'yicha foydalanuvchi ulanishlarini taqsimlash

Oddiy, kundalik vazifalar. Shunga qaramay, qo'shimcha marshrutlash jadvallari kerak bo'ladi:

/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2

Foydalanish [IP]->[Route]->[Rules]
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route rules
add src-address=192.168.100.0/25 action=lookup-only-in-table table=over-isp1
add src-address=192.168.100.128/25 action=lookup-only-in-table table=over-isp2

Agar ishlatilsa action=lookup, keyin kanallardan biri o'chirilgan bo'lsa, trafik asosiy stolga o'tadi va ishchi kanaldan o'tadi. Bu kerakmi yoki yo'qmi, vazifaga bog'liq.

Belgilardan foydalanish [IP]->[Firewall]->[Mangle]
IP manzillar ro'yxati bilan oddiy misol. Asos sifatida, deyarli har qanday sharoitdan foydalanish mumkin. Layer7ning yagona ogohlantirishi, hatto ulanish yorliqlari bilan bog'langan bo'lsa ham, hamma narsa to'g'ri ishlayotgandek tuyulishi mumkin, ammo trafikning bir qismi hali ham noto'g'ri yo'ldan ketadi.
Mikrotik RouterOS da statik marshrutlash asoslari

/ip firewall mangle
add chain=prerouting src-address-list=users-over-isp1 dst-address-type=!local action=mark-routing new-routing-mark=over-isp1
add chain=prerouting src-address-list=users-over-isp2 dst-address-type=!local action=mark-routing new-routing-mark=over-isp2

Siz foydalanuvchilarni bitta marshrutlash jadvalida β€œqulflash”ingiz mumkin [IP]->[Route]->[Rules]:

/ip route rules
add routing-mark=over-isp1 action=lookup-only-in-table table=over-isp1
add routing-mark=over-isp2 action=lookup-only-in-table table=over-isp2

Yoki orqali [IP]->[Firewall]->[Filter]:

/ip firewall filter
add chain=forward routing-mark=over-isp1 out-interface=!ether1 action=reject
add chain=forward routing-mark=over-isp2 out-interface=!ether2 action=reject

Retreat pro dst-address-type=!local
Qo'shimcha shart dst-address-type=!local foydalanuvchilarning trafiki yo'riqnoma mahalliy jarayonlariga (dns, winbox, ssh, ...) etib borishi kerak. Agar marshrutizatorga bir nechta mahalliy quyi tarmoqlar ulangan bo'lsa, ular orasidagi trafik Internetga tushmasligini ta'minlash kerak, masalan, dst-address-table.

Foydalanish misolida [IP]->[Route]->[Rules] bunday istisnolar yo'q, lekin transport mahalliy jarayonlarga etib boradi. Gap shundaki, FIB paketiga kirish belgilangan [PREROUTING|Mangle] marshrut yorlig'iga ega va mahalliy interfeys mavjud bo'lmagan asosiydan boshqa marshrutlash jadvaliga kiradi. Marshrutlash qoidalari bo'lsa, avval paket mahalliy jarayon uchun mo'ljallanganligi tekshiriladi va faqat Foydalanuvchi PBR bosqichida u belgilangan marshrutlash jadvaliga o'tadi.

Foydalanish [IP]->[Firewall]->[Mangle action=route]
Bu amal faqat ichida ishlaydi [Prerouting|Mangle] va qo'shimcha marshrutlash jadvallaridan foydalanmasdan, shlyuz manzilini to'g'ridan-to'g'ri ko'rsatgan holda trafikni belgilangan shlyuzga yo'naltirish imkonini beradi:

/ip firewall mangle
add chain=prerouting src-address=192.168.100.0/25 action=route gateway=10.10.10.1
add chain=prerouting src-address=192.168.128.0/25 action=route gateway=10.20.20.1

ta'sir route marshrutlash qoidalariga qaraganda pastroq ustuvorlikka ega ([IP]->[Route]->[Rules]). Marshrut belgilariga kelsak, hamma narsa qoidalarning pozitsiyasiga bog'liq, agar qoida bilan action=route dan qimmatroq action=mark-route, keyin u ishlatiladi (bayroqdan qat'iy nazar passtrough), aks holda marshrutni belgilash.
Ushbu harakat haqida wiki-da juda kam ma'lumot mavjud va barcha xulosalar eksperimental ravishda olingan, har qanday holatda, men ushbu parametrdan foydalanishda boshqalarga nisbatan afzalliklarni topmadim.

PPC asosidagi dinamik muvozanatlash

Ulanish uchun tasniflagich - ECMP ning yanada moslashuvchan analogidir. ECMP dan farqli o'laroq, u ulanishlar bo'yicha trafikni qat'iyroq ajratadi (ECMP ulanishlar haqida hech narsa bilmaydi, lekin Routing Cache bilan bog'langanda shunga o'xshash narsa olinadi).

PCC oladi belgilangan maydonlar ip sarlavhasidan ularni 32 bitli qiymatga aylantiradi va bo'linadi maxraj. Bo'linishning qolgan qismi ko'rsatilgan bilan solishtiriladi qolgan va agar ular mos kelsa, u holda belgilangan harakat qo'llaniladi. Nizom. Aqldan ozgandek tuyuladi, lekin u ishlaydi.
Mikrotik RouterOS da statik marshrutlash asoslari

Uchta manzilli misol:

192.168.100.10: 192+168+100+10 = 470 % 3 = 2
192.168.100.11: 192+168+100+11 = 471 % 3 = 0
192.168.100.12: 192+168+100+12 = 472 % 3 = 1

Trafikni src.address bo'yicha uchta kanal o'rtasida dinamik taqsimlashga misol:
Mikrotik RouterOS da statik marshrutlash asoslari

#Π’Π°Π±Π»ΠΈΡ†Π° ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ
/ip route
add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=2 check-gateway=ping
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=3 check-gateway=ping

add dst-address=0.0.0.0/0 gateway=10.10.10.1 dist=1 routing-mark=over-isp1
add dst-address=0.0.0.0/0 gateway=10.20.20.1 dist=1 routing-mark=over-isp2
add dst-address=0.0.0.0/0 gateway=10.30.30.1 dist=1 routing-mark=over-isp3

#ΠœΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° соСдинСний ΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ²
/ip firewall mangle
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/0 action=mark-connection new-connection-mark=conn-over-isp1
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/1 action=mark-connection new-connection-mark=conn-over-isp2
add chain=prerouting in-interface=br-lan dst-address-type=!local connection-state=new per-connection-classifier=src-address:3/2 action=mark-connection new-connection-mark=conn-over-isp3

add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp1 action=mark-routing new-routing-mark=over-isp1
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp2 action=mark-routing new-routing-mark=over-isp2
add chain=prerouting in-interface=br-lan connection-mark=conn-over-isp3 action=mark-routing new-routing-mark=over-isp3

Marshrutlarni belgilashda qo'shimcha shart mavjud: in-interface=br-lan, ostida u holda action=mark-routing Internetdan javob trafigini oladi va marshrutlash jadvallariga muvofiq provayderga qaytadi.

Aloqa kanallarini almashtirish

Pingni tekshirish yaxshi vositadir, lekin u faqat eng yaqin IP-peer bilan ulanishni tekshiradi, provayder tarmoqlari odatda ko'p sonli marshrutizatorlardan iborat bo'lib, eng yaqin tengdoshdan tashqarida ulanish uzilishi mumkin, keyin esa magistral aloqa operatorlari ham bor. Muammolar mavjud, umuman olganda, ping tekshiruvi har doim ham global tarmoqqa kirish haqidagi dolzarb ma'lumotlarni ko'rsatmaydi.
Agar provayderlar va yirik korporatsiyalar BGP dinamik marshrutlash protokoliga ega bo'lsa, uy va ofis foydalanuvchilari ma'lum bir aloqa kanali orqali Internetga kirishni qanday tekshirishni mustaqil ravishda aniqlashlari kerak.

Odatda, ma'lum bir aloqa kanali orqali Internetda IP-manzil mavjudligini tekshiradigan, masalan, google dns: 8.8.8.8 ishonchli narsani tanlashda skriptlardan foydalaniladi. 8.8.4.4. Ammo Mikrotik jamoasida buning uchun yanada qiziqarli vosita moslashtirilgan.

Rekursiv marshrutlash haqida bir necha so'z
Multihop BGP peeringini yaratishda rekursiv marshrutlash zarur bo'lib, statik marshrutlash asoslari haqidagi maqolaga faqat makkor MikroTik foydalanuvchilari tufayli kirishdi, ular qo'shimcha skriptlarsiz aloqa kanallarini almashtirish uchun tekshirish shlyuzi bilan bog'langan rekursiv marshrutlardan qanday foydalanishni aniqladilar.

Umumiy ma'noda qamrov/maqsad imkoniyatlarini va marshrut interfeysga qanday bog'langanligini tushunish vaqti keldi:
Mikrotik RouterOS da statik marshrutlash asoslari

  1. Marshrut paketni yuborish uchun interfeysni uning qamrovi qiymatiga va asosiy jadvaldagi maqsadli qamrov qiymatidan kam yoki teng bo'lgan barcha yozuvlarga qarab qidiradi.
  2. Topilgan interfeyslardan siz belgilangan shlyuzga paketni yuborishingiz mumkin bo'lgan interfeys tanlanadi
  3. Topilgan ulangan yozuvning interfeysi paketni shlyuzga yuborish uchun tanlanadi

Rekursiv marshrut mavjud bo'lganda, xuddi shu narsa sodir bo'ladi, lekin ikki bosqichda:
Mikrotik RouterOS da statik marshrutlash asoslari

  • 1-3 Ulangan marshrutlarga yana bitta marshrut qo'shiladi, ular orqali ko'rsatilgan shlyuzga borish mumkin
  • 4-6 "Oraliq" shlyuz uchun ulangan marshrutni topish

Rekursiv qidiruv bilan barcha manipulyatsiyalar RIBda sodir bo'ladi va faqat yakuniy natija FIBga o'tkaziladi: 0.0.0.0/0 via 10.10.10.1 on ether1.

Marshrutlarni almashtirish uchun rekursiv marshrutlashdan foydalanishga misol
Mikrotik RouterOS da statik marshrutlash asoslari

Konfiguratsiya:
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add dst-address=0.0.0.0/0 gateway=8.8.8.8 check-gateway=ping distance=1 target-scope=10
add dst-address=8.8.8.8 gateway=10.10.10.1 scope=10
add dst-address=0.0.0.0/0 gateway=10.20.20.1 distance=2

Paketlar 10.10.10.1 ga yuborilishini tekshirishingiz mumkin:
Mikrotik RouterOS da statik marshrutlash asoslari

Tekshirish shlyuzi rekursiv marshrutlash haqida hech narsa bilmaydi va oddiygina pinglarni 8.8.8.8 ga yuboradi, unga (asosiy jadval asosida) 10.10.10.1 shlyuzi orqali kirish mumkin.

Agar 10.10.10.1 va 8.8.8.8 oralig'ida aloqa uzilgan bo'lsa, u holda marshrut uziladi, lekin 8.8.8.8 ga qadar bo'lgan paketlar (jumladan, test pinglari) 10.10.10.1 orqali o'tishda davom etadi:
Mikrotik RouterOS da statik marshrutlash asoslari

Ether1 ga havola yo'qolsa, 8.8.8.8 dan oldingi paketlar ikkinchi provayder orqali o'tganda noxush holat yuzaga keladi:
Mikrotik RouterOS da statik marshrutlash asoslari

8.8.8.8 mavjud bo'lmaganda skriptlarni ishga tushirish uchun NetWatch-dan foydalansangiz, bu muammo. Agar havola buzilgan bo'lsa, NetWatch shunchaki zaxira aloqa kanali orqali ishlaydi va hamma narsa yaxshi deb hisoblaydi. Qo'shimcha filtr yo'nalishini qo'shish orqali hal qilindi:

/ip route
add dst-address=8.8.8.8 gateway=10.20.20.1 distance=100 type=blackhole

Mikrotik RouterOS da statik marshrutlash asoslari

HabrΓ©da bor maqola, bu erda NetWatch bilan vaziyat batafsilroq ko'rib chiqiladi.

Va ha, bunday zahiradan foydalanganda, 8.8.8.8 manzili provayderlardan biriga ulanadi, shuning uchun uni DNS manbasi sifatida tanlash yaxshi fikr emas.

Virtual marshrutlash va yo'naltirish (VRF) haqida bir necha so'z

VRF texnologiyasi bitta jismoniy qurilma ichida bir nechta virtual marshrutizatorlarni yaratish uchun mo'ljallangan, bu texnologiya telekommunikatsiya operatorlari tomonidan (odatda MPLS bilan birgalikda) bir-biriga mos keladigan quyi tarmoq manzillari bo'lgan mijozlarga L3VPN xizmatlarini taqdim etish uchun keng qo'llaniladi:
Mikrotik RouterOS da statik marshrutlash asoslari

Ammo Mikrotik-dagi VRF marshrutlash jadvallari asosida tashkil etilgan va bir qator kamchiliklarga ega, masalan, routerning mahalliy IP manzillari barcha VRF-larda mavjud, siz ko'proq o'qishingiz mumkin. aloqa.

vrf konfiguratsiyasiga misol:
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.200.1/24 interface=ether2 network=192.168.200.0

Ether2-ga ulangan qurilmadan biz ping boshqa vrf-dan router manziliga o'tishini ko'ramiz (va bu muammo), ping esa Internetga kirmaydi:
Mikrotik RouterOS da statik marshrutlash asoslari

Internetga kirish uchun siz asosiy jadvalga kiradigan qo'shimcha marshrutni ro'yxatdan o'tkazishingiz kerak (vrf terminologiyasida bu marshrutning oqishi deb ataladi):
Mikrotik RouterOS da statik marshrutlash asoslari

/ip route
add distance=1 gateway=172.17.0.1@main routing-mark=vrf1
add distance=1 gateway=172.17.0.1%wlan1 routing-mark=vrf2

Marshrutni oqizishning ikkita usuli bor: marshrutlash jadvalidan foydalanish: 172.17.0.1@main va interfeys nomidan foydalanish: 172.17.0.1%wlan1.

Va qaytib kelgan trafik uchun belgini o'rnating [PREROUTING|Mangle]:
Mikrotik RouterOS da statik marshrutlash asoslari

/ip firewall mangle
add chain=prerouting in-interface=ether1 action=mark-connection new-connection-mark=from-vrf1 passthrough=no
add chain=prerouting connection-mark=from-vrf1 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf1 passthrough=no 
add chain=prerouting in-interface=ether2 action=mark-connection new-connection-mark=from-vrf2 passthrough=no
add chain=prerouting connection-mark=from-vrf2 routing-mark=!vrf1 action=mark-routing new-routing-mark=vrf2 passthrough=no 

Mikrotik RouterOS da statik marshrutlash asoslari

Bir xil manzilga ega pastki tarmoqlar
VRF va netmap yordamida bitta routerda bir xil manzilga ega pastki tarmoqlarga kirishni tashkil etish:
Mikrotik RouterOS da statik marshrutlash asoslari

Asosiy konfiguratsiya:

/ip route vrf
add interfaces=ether1 routing-mark=vrf1
add interfaces=ether2 routing-mark=vrf2

/ip address
add address=192.168.100.1/24 interface=ether1 network=192.168.100.0
add address=192.168.100.1/24 interface=ether2 network=192.168.100.0
add address=192.168.0.1/24 interface=ether3 network=192.168.0.0

xavfsizlik devori qoidalari:

#ΠœΠ°Ρ€ΠΊΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ
/ip firewall mangle
add chain=prerouting dst-address=192.168.101.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf1 passthrough=no
add chain=prerouting dst-address=192.168.102.0/24 in-interface=ether3 action=mark-routing new-routing-mark=vrf2 passthrough=no

#БрСдствами netmap замСняСм адрСса "эфимСрных" подсСтСй Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ подсСти
/ip firewall nat
add chain=dstnat dst-address=192.168.101.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24
add chain=dstnat dst-address=192.168.102.0/24 in-interface=ether3 action=netmap to-addresses=192.168.100.0/24

Qaytgan trafik uchun marshrutlash qoidalari:

#Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ интСрфСйса Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ route leaking, Π½ΠΎ ΠΏΠΎ сути Ρ‚ΡƒΡ‚ создаСтся Π°Π½Π°Π»ΠΎΠ³ connected ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°
/ip route
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf1
add distance=1 dst-address=192.168.0.0/24 gateway=ether3 routing-mark=vrf2

Dhcp orqali olingan marshrutlarni berilgan marshrutlash jadvaliga qo'shish
Agar ma'lum bir marshrutlash jadvaliga dinamik marshrutni (masalan, dhcp mijozidan) avtomatik ravishda qo'shishingiz kerak bo'lsa, VRF qiziqarli bo'lishi mumkin.

Vrf-ga interfeys qo'shish:

/ip route vrf
add interface=ether1 routing-mark=over-isp1

Jadval orqali trafikni (chiqish va tranzit) jo'natish qoidalari haddan tashqari isp1:

/ip firewall mangle
add chain=output out-interface=!br-lan action=mark-routing new-routing-mark=over-isp1 passthrough=no
add chain=prerouting in-interface=br-lan dst-address-type=!local action=mark-routing new-routing-mark=over-isp1 passthrough=no

Chiqish marshrutining ishlashi uchun qo'shimcha, soxta marshrut:

/interface bridge
add name=bare

/ip route
add dst-address=0.0.0.0/0 gateway=bare

Bu marshrut faqat mahalliy chiquvchi paketlar Marshrutlash qaroridan (2) oldin o'tishi uchun kerak [OUTPUT|Mangle] va marshrutlash yorlig'ini oling, agar asosiy jadvalda 0.0.0.0/0 dan oldin marshrutizatorda boshqa faol marshrutlar mavjud bo'lsa, bu shart emas.
Mikrotik RouterOS da statik marshrutlash asoslari

Zanjirlar connected-in ΠΈ dynamic-in Π² [Routing] -> [Filters]

Marshrutni filtrlash (kirish va chiqish) odatda dinamik marshrutlash protokollari bilan birgalikda ishlatiladigan vositadir (va shuning uchun faqat paketni o'rnatgandan so'ng foydalanish mumkin). marshrut), lekin kiruvchi filtrlarda ikkita qiziqarli zanjir mavjud:

  • Connect-in β€” ulangan marshrutlarni filtrlash
  • dynamic-in - PPP va DCHP tomonidan qabul qilingan dinamik marshrutlarni filtrlash

Filtrlash nafaqat marshrutlarni yo'q qilish, balki bir qator variantlarni o'zgartirish imkonini beradi: masofa, marshrut belgisi, sharh, qamrov, maqsad doirasi, ...

Bu juda aniq vosita va agar siz marshrutlash filtrlarisiz (lekin skriptlar emas) biror narsa qilishingiz mumkin bo'lsa, u holda Marshrutlash filtrlaridan foydalanmang, o'zingizni va sizdan keyin routerni sozlaydiganlarni aralashtirib yubormang. Dinamik marshrutlash kontekstida Marshrutlash filtrlari tez-tez va samaraliroq qo'llaniladi.

Dinamik marshrutlar uchun marshrutlash belgisini o'rnatish
Uy routeridan misol. Menda ikkita VPN ulanishi sozlangan va ulardagi trafik marshrutlash jadvallariga muvofiq o'ralgan bo'lishi kerak. Shu bilan birga, interfeys faollashtirilganda marshrutlar avtomatik ravishda yaratilishini xohlayman:

#ΠŸΡ€ΠΈ создании vpn ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ созданиС default route ΠΈ Π·Π°Π΄Π°Π΅ΠΌ Π΄ΠΈΡΡ‚Π°Π½Ρ†ΠΈΡŽ
/interface pptp-client
add connect-to=X.X.X.X add-default-route=yes default-route-distance=101 ...
add connect-to=Y.Y.Y.Y  add-default-route=yes default-route-distance=100 ...

#Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°ΠΌΠΈ отправляСм ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС подсСти назначСния ΠΈ дистанции
/routing filter
add chain=dynamic-in distance=100 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn1
add chain=dynamic-in distance=101 prefix=0.0.0.0/0 action=passthrough set-routing-mark=over-vpn2

Nima uchun bilmayman, ehtimol xato, lekin agar siz ppp interfeysi uchun vrf yaratsangiz, u holda 0.0.0.0/0 yo'nalishi hali ham asosiy jadvalga kiradi. Aks holda, hamma narsa osonroq bo'ladi.

Ulangan marshrutlarni o'chirish
Ba'zan bu talab qilinadi:

/route filter
add chain=connected-in prefix=192.168.100.0/24 action=reject

Nosozliklarni tuzatish vositalari

RouterOS marshrutni tuzatish uchun bir qator vositalarni taqdim etadi:

  • [Tool]->[Tourch] - paketlarni interfeyslarda ko'rish imkonini beradi
  • /ip route check - paket qaysi shlyuzga yuborilishini ko'rish imkonini beradi, marshrutlash jadvallari bilan ishlamaydi
  • /ping routing-table=<name> ΠΈ /tool traceroute routing-table=<name> - belgilangan marshrutlash jadvali yordamida ping va kuzatish
  • action=log Π² [IP]->[Firewall] - paket oqimi bo'ylab paket yo'lini kuzatish imkonini beruvchi ajoyib vosita, bu harakat barcha zanjirlar va jadvallarda mavjud

Manba: www.habr.com

a Izoh qo'shish