Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Чиглүүлэлт нь TCP/IP сүлжээгээр пакетуудыг дамжуулах хамгийн сайн замыг олох үйл явц юм. IPv4 сүлжээнд холбогдсон аливаа төхөөрөмж нь процесс болон чиглүүлэлтийн хүснэгтүүдийг агуулна.

Энэ нийтлэл нь HOWTO биш бөгөөд энэ нь RouterOS дахь статик чиглүүлэлтийн талаар жишээн дээр тайлбарласан, би бусад тохиргоог зориудаар орхисон (жишээ нь, Интернетэд нэвтрэх srcnat), тиймээс материалыг ойлгоход сүлжээ болон RouterOS-ийн талаар тодорхой түвшний мэдлэг шаардагдана.

Шилжүүлэх, чиглүүлэх

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Switching гэдэг нь нэг Layer2 сегмент (Ethernet, ppp, ...) дотор пакетуудыг солилцох үйл явц юм. Хэрэв төхөөрөмж нь пакетийн хүлээн авагч нь түүнтэй нэг Ethernet дэд сүлжээнд байгааг харвал arp протоколыг ашиглан mac хаягийг сурч, чиглүүлэгчийг алгасаж пакетыг шууд дамжуулдаг. Ppp (цэгээс цэг рүү) холболт нь зөвхөн хоёр оролцогчтой байж болох ба пакет нь үргэлж нэг хаяг руу илгээгддэг 0xff.

Чиглүүлэлт нь Layer2 сегментүүдийн хооронд пакетуудыг шилжүүлэх үйл явц юм. Хэрэв төхөөрөмж нь хүлээн авагч нь Ethernet сегментээс гадуур байгаа пакетийг илгээхийг хүсвэл өөрийн чиглүүлэлтийн хүснэгтийг харж, пакетийг дараа нь хаана илгээхийг мэддэг гарц руу дамжуулдаг (эсвэл пакетын анхны илгээгч нь мэдэхгүй байж болно). Үүнийг мэдэхгүй).

Чиглүүлэгчийн тухай бодох хамгийн хялбар арга бол хоёр ба түүнээс дээш Layer2 сегменттэй холбогдсон төхөөрөмж бөгөөд чиглүүлэлтийн хүснэгтээс хамгийн сайн маршрутыг тодорхойлох замаар тэдгээрийн хооронд пакет дамжуулах чадвартай төхөөрөмж юм.

Хэрэв та бүх зүйлийг ойлгож байгаа бол эсвэл аль хэдийн мэдэж байсан бол цааш уншина уу. Үлдсэн тохиолдолд жижиг, гэхдээ маш их багтаамжтай танилцахыг би танд зөвлөж байна нийтлэл.

RouterOS болон PacketFlow дээр чиглүүлэлт хийх

Статик чиглүүлэлттэй холбоотой бараг бүх функцууд багцад байдаг систем. Гялгар уут чиглүүлэлт динамик чиглүүлэлтийн алгоритмууд (RIP, OSPF, BGP, MME), чиглүүлэлтийн шүүлтүүрүүд болон BFD-ийн дэмжлэгийг нэмдэг.

Чиглүүлэлт тохируулах үндсэн цэс: [IP]->[Route]. Нарийн төвөгтэй схемүүд нь пакетуудыг дараах байдлаар чиглүүлэлтийн тэмдэгээр урьдчилан шошголохыг шаардаж болно: [IP]->[Firewall]->[Mangle] (гинж PREROUTING и OUTPUT).

PacketFlow дээр IP пакетийн чиглүүлэлтийн шийдвэр гаргадаг гурван газар байдаг:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  1. Чиглүүлэгчийн хүлээн авсан чиглүүлэлтийн пакетууд. Энэ үе шатанд пакет нь дотоод процесс руу шилжих үү эсвэл цааш нь сүлжээнд илгээх үү гэдгийг шийддэг. Нийтийн тээврийн багц хүлээн авна Гаралтын интерфейс
  2. Орон нутгийн гарч буй пакетуудыг чиглүүлэх. Гарсан пакетуудыг хүлээн авдаг Гаралтын интерфейс
  3. Гарч буй пакетуудын чиглүүлэлтийн нэмэлт алхам нь чиглүүлэлтийн шийдвэрийг өөрчлөх боломжийг танд олгоно [Output|Mangle]

  • 1, 2-р блок дахь багцын зам нь дүрмээс хамаарна [IP]->[Route]
  • 1, 2, 3-р цэгүүдийн багцын зам нь дүрмээс хамаарна [IP]->[Route]->[Rules]
  • 1, 3-р блокуудын багцын замыг ашиглан нөлөөлж болно [IP]->[Firewall]->[Mangle]

RIB, FIB, Routing Cache

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Чиглүүлэлтийн мэдээллийн бааз
Динамик чиглүүлэлтийн протоколууд, ppp болон dhcp, статик болон холбогдсон маршрутуудаас чиглүүлэлтүүдийг цуглуулдаг суурь. Энэ мэдээллийн сан нь администраторын шүүсэнээс бусад бүх маршрутыг агуулна.

Нөхцөлтэйгээр, бид үүнийг таамаглаж болно [IP]->[Route] RIB харуулж байна.

Дамжуулах мэдээллийн бааз
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

RIB-аас хамгийн сайн маршрутуудыг цуглуулсан суурь. FIB дахь бүх маршрутууд идэвхтэй бөгөөд пакетуудыг дамжуулахад ашиглагддаг. Хэрэв маршрут идэвхгүй болсон бол (администратор (систем) идэвхгүй болсон эсвэл пакет илгээх интерфейс идэвхгүй бол) маршрутыг FIB-ээс хасна.

Чиглүүлэлтийн шийдвэр гаргахын тулд FIB хүснэгт нь IP пакетийн талаарх дараах мэдээллийг ашиглана.

  • Эх сурвалжийн хаяг
  • Очих газрын хаяг
  • эх интерфэйс
  • Чиглүүлэлтийн тэмдэг
  • ToS (DSCP)

FIB багцад орох нь дараах үе шатуудыг дамждаг.

  • Багц нь дотоод чиглүүлэгчийн процесст зориулагдсан уу?
  • Пакет нь систем эсвэл хэрэглэгчийн PBR дүрэмд хамаарах уу?
    • Хэрэв тийм бол багцыг заасан чиглүүлэлтийн хүснэгт рүү илгээнэ
  • Багцыг үндсэн хүснэгт рүү илгээдэг

Нөхцөлтэйгээр, бид үүнийг таамаглаж болно [IP]->[Route Active=yes] FIB харуулж байна.

Чиглүүлэлтийн кэш
Маршрутыг кэшлэх механизм. Чиглүүлэгч нь пакетуудыг хаашаа илгээснийг санаж, хэрэв ижил төстэй (ижил холболтоос) байгаа бол FIB-ийг шалгахгүйгээр тэдгээрийг ижил маршрутаар явуулах боломжийг олгодог. Маршрутын кэшийг үе үе цэвэрлэдэг.

RouterOS-ийн администраторуудын хувьд тэд чиглүүлэлтийн кэшийг харах, удирдах хэрэгслийг бүтээгээгүй, гэхдээ үүнийг идэвхгүй болгох боломжтой үед. [IP]->[Settings].

Энэ механизмыг linux 3.6 цөмөөс устгасан боловч RouterOS нь цөм 3.3.5-ыг ашигладаг хэвээр байгаа бөгөөд магадгүй Routing cahce шалтгаануудын нэг юм.

Маршрутын харилцах цонх нэмэх

[IP]->[Route]->[+]
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  1. Чиглэл үүсгэхийг хүссэн дэд сүлжээ (өгөгдмөл: 0.0.0.0/0)
  2. Пакет илгээгдэх гарцын IP эсвэл интерфейс (хэд хэдэн байж болно, доорх ECMP-ийг үзнэ үү)
  3. Гарцын бэлэн байдлыг шалгах
  4. Бичлэгийн төрөл
  5. Маршрутын зай (хэмж).
  6. Чиглүүлэлтийн хүснэгт
  7. Энэ замаар орон нутгийн гадагш илгээх пакетуудын IP
  8. Хамрах хүрээ, зорилтот хамрах хүрээний зорилго нь нийтлэлийн төгсгөлд бичигдсэн болно.

Маршрутын тугнууд
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  • X - Маршрутыг администратор идэвхгүй болгосон (disabled=yes)
  • A - Маршрутыг пакет илгээхэд ашигладаг
  • D - Маршрутыг динамикаар нэмсэн (BGP, OSPF, RIP, MME, PPP, DHCP, холбогдсон)
  • C - Дэд сүлжээ нь чиглүүлэгчтэй шууд холбогдсон
  • S - Статик зам
  • r,b,o,m - Маршрутыг динамик чиглүүлэлтийн протоколуудын аль нэгээр нэмсэн
  • B,U,P - Маршрутыг шүүх (дамжуулахын оронд пакетуудыг буулгах)

Гарцад юу зааж өгөх вэ: IP хаяг эсвэл интерфейс?

Энэ систем нь тангараглахгүй бөгөөд буруу зүйл хийсэн бол сануулга өгөхгүй байхад хоёуланг нь зааж өгөх боломжийг олгодог.

IP хаяг
Гарцын хаяг нь Layer2 дээр хандах боломжтой байх ёстой. Ethernet-ийн хувьд энэ нь чиглүүлэгч нь идэвхтэй IP интерфэйсүүдийн аль нэгэнд ижил дэд сүлжээний хаягтай байх ёстой гэсэн үг бөгөөд ppp-ийн хувьд гарцын хаягийг идэвхтэй интерфейсүүдийн аль нэгэнд дэд сүлжээний хаягаар зааж өгсөн байх ёстой.
Хэрэв Layer2-ийн хүртээмжийн нөхцөл хангагдаагүй бол маршрут идэвхгүй гэж тооцогддог бөгөөд FIB-д хамаарахгүй.

интерфэйс
Бүх зүйл илүү төвөгтэй бөгөөд чиглүүлэгчийн үйлдэл нь интерфейсийн төрлөөс хамаарна.

  • PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) холболт нь зөвхөн хоёр оролцогч байх ёстой бөгөөд хэрэв гарц нь хүлээн авагч өөрөө мөн болохыг илрүүлбэл пакетийг дамжуулах гарц руу үргэлж илгээх болно. түүний орон нутгийн үйл явц.
    Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс
  • Ethernet нь олон оролцогчид байгаа гэж үздэг бөгөөд пакет хүлээн авагчийн хаягаар arp интерфэйс рүү хүсэлт илгээдэг бөгөөд энэ нь холбогдсон маршрутын хувьд хүлээгдэж буй бөгөөд хэвийн үйлдэл юм.
    Гэхдээ та интерфэйсийг алсын дэд сүлжээний маршрут болгон ашиглахыг оролдох үед та дараах нөхцөл байдлыг олж авах болно: чиглүүлэлт идэвхтэй байна, гарц руу ping хийх нь дамждаг боловч заасан дэд сүлжээнээс хүлээн авагчид хүрэхгүй. Хэрэв та sniffer-ээр дамжуулан интерфейсийг харвал алсын дэд сүлжээнээс хаягтай arp хүсэлтийг харах болно.
    Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Боломжтой бол IP хаягийг гарц болгон зааж өгөхийг хичээгээрэй. Үл хамаарах зүйл бол холбогдсон чиглүүлэлтүүд (автоматаар үүсгэгдсэн) болон PPP (Async, PPTP, L2TP, SSTP, PPPoE, OpenVPN*) интерфэйсүүд юм.

OpenVPN нь PPP гарчиг агуулаагүй ч та OpenVPN интерфэйсийн нэрийг ашиглан маршрут үүсгэх боломжтой.

Илүү тодорхой маршрут

Чиглүүлэлтийн үндсэн дүрэм. Жижиг дэд сүлжээг (хамгийн том дэд сүлжээний масктай) тодорхойлсон маршрут нь пакетийн чиглүүлэлтийн шийдвэрт тэргүүлэх байр суурь эзэлнэ. Чиглүүлэлтийн хүснэгт дэх оруулгуудын байрлал нь сонголтод хамааралгүй - гол дүрэм бол илүү тодорхой юм.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Заасан схемийн бүх маршрутууд идэвхтэй байна (FIB-д байрладаг). өөр өөр дэд сүлжээнд зааж, хоорондоо зөрчилдөхгүй.

Хэрэв гарцуудын аль нэг нь боломжгүй бол холбогдох маршрутыг идэвхгүй (FIB-ээс хассан) гэж үзэж, үлдсэн маршрутуудаас пакетуудыг хайх болно.

0.0.0.0/0 дэд сүлжээтэй маршрутыг заримдаа онцгой утгаар нь "Өгөгдмөл маршрут" эсвэл "хамгийн сүүлчийн гарц" гэж нэрлэдэг. Үнэн хэрэгтээ үүнд ямар ч ид шидийн зүйл байхгүй бөгөөд энэ нь зүгээр л бүх боломжит IPv4 хаягуудыг агуулдаг боловч эдгээр нэр нь түүний даалгаврыг маш сайн дүрсэлдэг - энэ нь өөр, илүү нарийвчлалтай маршрут байхгүй пакетуудыг хааш нь дамжуулах гарцыг заадаг.

IPv4-ийн хамгийн дээд боломжит дэд сүлжээний маск нь /32 бөгөөд энэ чиглүүлэлт нь тодорхой хост руу чиглэдэг бөгөөд чиглүүлэлтийн хүснэгтэд ашиглагдаж болно.

Илүү тодорхой маршрутыг ойлгох нь аливаа TCP/IP төхөөрөмжийн үндсэн суурь юм.

зайны

Олон гарцаар дамжуулан хандах боломжтой нэг дэд сүлжээнд хүрэх замыг захиргааны шүүлтүүрт зай (эсвэл хэмжигдэхүүн) шаардлагатай. Бага хэмжигдэхүүнтэй маршрутыг тэргүүлэх чиглэл гэж үзэж, FIB-д оруулна. Хэрэв бага хэмжигдэхүүнтэй маршрут идэвхжихээ больсон бол түүнийг FIB-д илүү өндөр хэмжигдэхүүнтэй маршрутаар солино.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Хэрэв ижил хэмжигдэхүүнтэй нэг дэд сүлжээнд хэд хэдэн маршрут байгаа бол чиглүүлэгч нь дотоод логикийн дагуу тэдгээрийн зөвхөн нэгийг нь FIB хүснэгтэд нэмнэ.

Хэмжилт нь 0-ээс 255 хүртэлх утгыг авч болно:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  • 0 - Холбогдсон маршрутын хэмжигдэхүүн. 0 зайг админ тохируулах боломжгүй
  • 1-254 - Маршрутыг тохируулахад администраторт боломжтой хэмжүүрүүд. Бага утгатай хэмжүүрүүд нь илүү чухал ач холбогдолтой
  • 255 - Маршрутыг тохируулахад администратор ашиглах боломжтой хэмжигдэхүүн. 1-254-ээс ялгаатай нь 255 хэмжигдэхүүнтэй маршрут үргэлж идэвхгүй хэвээр байх бөгөөд FIB-д ордоггүй.
  • тодорхой хэмжүүрүүд. Динамик чиглүүлэлтийн протоколуудаас үүссэн маршрутууд нь стандарт хэмжигдэхүүнтэй байдаг

гарц шалгах

Check gateway нь icmp эсвэл arp-ээр дамжуулан гарц байгаа эсэхийг шалгах зориулалттай MikroTik RoutesOS өргөтгөл юм. 10 секунд тутамд (өөрчлөх боломжгүй) хүсэлтийг гарц руу илгээдэг, хэрэв хариу хоёр удаа ирээгүй бол маршрут боломжгүй гэж тооцогдож, FIB-ээс хасагдана. Хэрэв шалгах гарцыг идэвхгүй болгосон бол шалгах маршрут үргэлжлэх бөгөөд нэг амжилттай шалгасны дараа маршрут дахин идэвхжинэ.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Check gateway нь тохируулагдсан болон бусад бүх оруулгуудыг (бүх чиглүүлэлтийн хүснэгтүүд болон ecmp чиглүүлэлтүүд) заасан гарцтай идэвхгүй болгодог.

Ерөнхийдөө, гарц руу пакет алдагдах асуудал байхгүй л бол check gateway сайн ажилладаг. Шалгах гарц нь шалгагдсан гарцын гаднах харилцаанд юу болж байгааг мэдэхгүй, үүнд нэмэлт хэрэгсэл шаардлагатай: скрипт, рекурсив чиглүүлэлт, динамик чиглүүлэлтийн протоколууд.

Ихэнх VPN болон туннелийн протоколууд нь холболтын үйл ажиллагааг шалгах хэрэгслүүдийг агуулдаг бөгөөд тэдгээрийн шалгах гарцыг идэвхжүүлснээр сүлжээ болон төхөөрөмжийн гүйцэтгэлд нэмэлт (гэхдээ маш бага) ачаалал өгдөг.

ECMP маршрутууд

Equal-Cost Multi-Path - Round Robin алгоритмыг ашиглан хэд хэдэн гарцыг нэгэн зэрэг ашиглан хүлээн авагч руу пакет илгээх.

ECMP маршрутыг администратор нэг дэд сүлжээнд олон гарц зааж өгөх замаар үүсгэнэ (эсвэл автоматаар, хэрэв хоёр ижил OSPF чиглүүлэлт байгаа бол).
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

ECMP-ийг хоёр сувгийн хооронд ачааллыг тэнцвэржүүлэхэд ашигладаг, онолын хувьд хэрэв ecmp маршрутад хоёр суваг байгаа бол пакет бүрийн хувьд гарах суваг өөр байх ёстой. Гэхдээ Routing кэш механизм нь эхний пакет авсан маршрутын дагуу холболтоос пакетуудыг илгээдэг бөгөөд үүний үр дүнд бид холболтууд дээр суурилсан тэнцвэржүүлэлтийг олж авдаг (холболт бүрт ачааллыг тэнцвэржүүлэх).

Хэрэв та чиглүүлэлтийн кэшийг идэвхгүй болговол ECMP маршрутын багцуудыг зөв хуваалцах болно, гэхдээ NAT-д асуудал байна. NAT дүрэм нь холболтоос зөвхөн эхний пакетийг боловсруулдаг (бусад нь автоматаар боловсруулагддаг) бөгөөд ижил эх хаягтай пакетууд өөр өөр интерфэйсүүдийг орхидог.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Шалгах гарц нь ECMP маршрутуудад ажиллахгүй байна (RouterOS алдаа). Гэхдээ та ECMP дахь оруулгуудыг идэвхгүй болгох нэмэлт баталгаажуулалтын маршрутуудыг бий болгосноор энэ хязгаарлалтыг даван туулж чадна.

Routing ашиглан шүүж байна

Type сонголт нь багцыг юу хийхийг тодорхойлдог:

  • unicast - заасан гарц руу илгээх (интерфейс)
  • хар нүх - багцыг хая
  • хориглох, хүрэх боломжгүй - пакетыг хаяж, илгээгч рүү icmp мессеж илгээнэ үү

Шүүлтүүрийг ихэвчлэн пакетуудыг буруу чиглэлд илгээх шаардлагатай үед ашигладаг, мэдээжийн хэрэг та үүнийг галт ханаар шүүж болно.

Хэдэн жишээ

Чиглүүлэлтийн талаархи үндсэн зүйлсийг нэгтгэх.

Ердийн гэрийн чиглүүлэгч
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

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

  1. 0.0.0.0/0 хүртэлх статик маршрут (өгөгдмөл маршрут)
  2. Үйлчилгээ үзүүлэгчтэй интерфэйс дээр холбогдсон маршрут
  3. LAN интерфейс дээр холбогдсон маршрут

PPPoE бүхий ердийн гэрийн чиглүүлэгч
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  1. Өгөгдмөл чиглүүлэлтийн статик маршрут автоматаар нэмэгдсэн. Энэ нь холболтын шинж чанарт тодорхойлогддог
  2. PPP холболтод холбогдсон маршрут
  3. LAN интерфейс дээр холбогдсон маршрут

Хоёр үйлчилгээ үзүүлэгчтэй, илүүдэлтэй ердийн гэрийн чиглүүлэгч
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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. Эхний үйлчилгээ үзүүлэгчээр дамжуулан өгөгдмөл чиглүүлэлтийн статик маршрут 1 хэмжигдэхүүн болон гарцын бэлэн байдлыг шалгах
  2. 2 хэмжигдэхүүнтэй хоёр дахь үйлчилгээ үзүүлэгчээр дамжуулан өгөгдмөл чиглүүлэлтийн статик зам
  3. Холбогдсон маршрутууд

0.0.0.0/0 хүртэлх урсгал нь энэ гарцыг ашиглах боломжтой үед 10.10.10.1-ээр дамждаг, үгүй ​​бол 10.20.20.1 рүү шилжинэ.

Ийм схемийг сувгийн захиалга гэж үзэж болох боловч энэ нь сул тал биш юм. Хэрэв үйлчилгээ үзүүлэгчийн гарцаас гадуур (жишээлбэл, операторын сүлжээнд) завсарлага гарвал таны чиглүүлэгч энэ талаар мэдэхгүй бөгөөд чиглүүлэгчийг идэвхтэй гэж үзэх болно.

Хоёр үйлчилгээ үзүүлэгч, нөөц ба ECMP бүхий ердийн гэрийн чиглүүлэгч
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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. Чак гарцыг шалгах статик маршрутууд
  2. ECMP маршрут
  3. Холбогдсон маршрутууд

Шалгах замууд нь цэнхэр (идэвхгүй маршрутын өнгө) боловч энэ нь шалгах гарцад саад болохгүй. RoS-ийн одоогийн хувилбар (6.44) нь ECMP маршрутад автоматаар давуу эрх олгодог боловч бусад чиглүүлэлтийн хүснэгтүүдэд туршилтын маршрутыг нэмэх нь илүү дээр юм (сонголт). routing-mark)

Speedtest болон бусад ижил төстэй сайтууд дээр хурд нэмэгдэхгүй (ECMP нь траффикийг пакетаар бус холболтоор хуваадаг), гэхдээ p2p програмууд илүү хурдан татагдах ёстой.

Чиглүүлэлтээр шүүж байна
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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. Өгөгдмөл чиглүүлэлтийн статик зам
  2. ipip хонгилоор 192.168.200.0/24 хүртэлх статик зам
  3. ISP чиглүүлэгчээр дамжуулан 192.168.200.0/24 хүртэлх статик замыг хориглож байна

ipip интерфэйс идэвхгүй болсон үед туннелийн урсгал үйлчилгээ үзүүлэгчийн чиглүүлэгч рүү очихгүй шүүлтүүрийн сонголт. Ийм схемийг ховор шаарддаг, учир нь та галт ханаар дамжуулан блоклох боломжтой.

Чиглүүлэлтийн гогцоо
Чиглүүлэлтийн давталт - ttl дуусахаас өмнө чиглүүлэгчдийн хооронд пакет ажиллах нөхцөл байдал. Ихэнхдээ энэ нь тохиргооны алдааны үр дүн бөгөөд том сүлжээнд үүнийг динамик чиглүүлэлтийн протоколыг хэрэгжүүлэх замаар, жижиг сүлжээнд болгоомжтой ханддаг.

Энэ дараахтай адил юм.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Үүнтэй төстэй үр дүнг хэрхэн авах жишээ (хамгийн энгийн):
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Чиглүүлэлтийн давталтын жишээ нь практик хэрэглээгүй боловч чиглүүлэгчид хөршийнхөө чиглүүлэлтийн хүснэгтийн талаар ямар ч ойлголтгүй байгааг харуулж байна.

Бодлогын үндсэн чиглүүлэлт ба нэмэлт чиглүүлэлтийн хүснэгтүүд

Маршрутыг сонгохдоо чиглүүлэгч нь багцын толгой хэсгээс (Dst. Address) зөвхөн нэг талбарыг ашигладаг - энэ нь үндсэн чиглүүлэлт юм. Эх сурвалжийн хаяг, хөдөлгөөний төрөл (ToS), ECMPгүйгээр тэнцвэржүүлэх зэрэг бусад нөхцөл дээр суурилсан чиглүүлэлт нь бодлогын суурь чиглүүлэлт (PBR)-д хамаарах бөгөөд нэмэлт чиглүүлэлтийн хүснэгтүүдийг ашигладаг.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Илүү тодорхой маршрут нь чиглүүлэлтийн хүснэгт доторх маршрут сонгох гол дүрэм юм.

Анхдагч байдлаар, бүх чиглүүлэлтийн дүрмийг үндсэн хүснэгтэд нэмдэг. Администратор дурын тооны нэмэлт чиглүүлэлтийн хүснэгтүүдийг үүсгэж, тэдгээрт пакетуудыг чиглүүлэх боломжтой. Өөр өөр хүснэгтэд байгаа дүрмүүд хоорондоо зөрчилддөггүй. Хэрэв багц нь заасан хүснэгтэд тохирох дүрмийг олж чадаагүй бол үндсэн хүснэгт рүү очно.

Галт ханаар түгээх жишээ:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  • 192.168.100.10 -> 8.8.8.8
    1. 192.168.100.10-аас ирсэн замын хөдөлгөөнийг тэмдэглэсэн via-isp1 в [Prerouting|Mangle]
    2. Хүснэгтийн чиглүүлэлтийн үе шатанд via-isp1 8.8.8.8 хүртэлх замыг хайж байна
    3. Маршрут олдсон, урсгалыг гарц руу илгээсэн 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. 192.168.200.20-аас ирсэн замын хөдөлгөөнийг тэмдэглэсэн via-isp2 в [Prerouting|Mangle]
    2. Хүснэгтийн чиглүүлэлтийн үе шатанд via-isp2 8.8.8.8 хүртэлх замыг хайж байна
    3. Маршрут олдсон, урсгалыг гарц руу илгээсэн 10.20.20.1
  • Хэрэв гарцуудын аль нэг нь (10.10.10.1 эсвэл 10.20.20.1) боломжгүй бол пакет хүснэгт рүү очно. үндсэн мөн тэнд тохиромжтой маршрут хайх болно

Нэр томъёоны асуудал

RouterOS нь тодорхой нэр томъёоны асуудалтай байдаг.
Дүрэмтэй ажиллахдаа [IP]->[Routes] чиглүүлэлтийн хүснэгтийг зааж өгсөн боловч шошго нь:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

В [IP]->[Routes]->[Rule] бүх зүйл зөв, хүснэгтийн үйлдэл дэх шошгоны нөхцөлд:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Тодорхой чиглүүлэлтийн хүснэгтэд багцыг хэрхэн илгээх вэ

RouterOS нь хэд хэдэн хэрэгслээр хангадаг:

  • Дүрмүүд [IP]->[Routes]->[Rules]
  • Маршрутын тэмдэглэгээ (action=mark-routing) -д [IP]->[Firewall]->[Mangle]
  • VRF

Дүрэм [IP]->[Route]->[Rules]
Дүрмүүдийг дараалан боловсруулдаг бөгөөд хэрэв багц нь дүрмийн нөхцөлтэй тохирч байвал цааш дамжихгүй.

Чиглүүлэлтийн дүрмүүд нь зөвхөн хүлээн авагчийн хаягаас гадна пакет хүлээн авсан эх хаяг, интерфейс дээр тулгуурлан чиглүүлэлтийн боломжийг өргөжүүлэх боломжийг олгодог.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Дүрэм нь нөхцөл, үйлдлээс бүрдэнэ:

  • Нөхцөл байдал. Багцыг FIB-д шалгаж байгаа тэмдгүүдийн жагсаалтыг бараг давтаарай, зөвхөн ToS дутуу байна.
  • Үйлдэл
    • хайх - хүснэгт рүү пакет илгээх
    • Зөвхөн хүснэгтээс хайх - багцыг хүснэгтэд түгжих, хэрэв маршрут олдохгүй бол багц үндсэн хүснэгт рүү орохгүй.
    • буулгах - багц буулгах
    • хүрэх боломжгүй - илгээгчийн мэдэгдэл бүхий багцыг хая

FIB-д орон нутгийн үйл явц руу чиглэсэн урсгалыг дүрмийг тойрон боловсруулдаг [IP]->[Route]->[Rules]:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Тэмдэглэгээ [IP]->[Firewall]->[Mangle]
Чиглүүлэлтийн шошго нь бараг ямар ч Галт ханын нөхцөлийг ашиглан пакетийн гарцыг тохируулах боломжийг танд олгоно.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Практикт, учир нь тэдгээр нь бүгд утгагүй, зарим нь тогтворгүй ажиллаж магадгүй юм.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Багцыг шошголох хоёр арга бий:

  • Шууд тавь чиглүүлэлтийн тэмдэг
  • Эхлээд тавь холболтын тэмдэг, дараа нь үндэслэн холболтын тэмдэг тавих чиглүүлэлтийн тэмдэг

Галт хананы тухай нийтлэлд би хоёр дахь сонголтыг илүүд үздэг гэж бичсэн. маршрутыг тэмдэглэх тохиолдолд CPU дээрх ачааллыг бууруулдаг - энэ нь бүхэлдээ үнэн биш юм. Эдгээр тэмдэглэгээний аргууд нь үргэлж ижил байдаггүй бөгөөд ихэвчлэн янз бүрийн асуудлыг шийдвэрлэхэд ашиглагддаг.

Хэрэглэх жишээ

Бодлогын үндсэн чиглүүлэлт ашиглах жишээнүүд рүү шилжье, энэ бүхэн яагаад хэрэгтэй байгааг харуулахад илүү хялбар байдаг.

MultiWAN болон буцах гарч буй (Гаралтын) урсгал
MultiWAN тохиргооны нийтлэг асуудал: Mikrotik-ийг зөвхөн "идэвхтэй" үйлчилгээ үзүүлэгчээр дамжуулан интернетээс авах боломжтой.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Чиглүүлэгч нь ямар IP хаягаар хүсэлт ирсэн нь хамаагүй, хариулт үүсгэх үед isp1-ээр дамжих зам идэвхтэй байгаа чиглүүлэлтийн хүснэгтээс маршрут хайх болно. Цаашилбал, ийм пакет нь хүлээн авагч руу очих замд шүүгдэх болно.

Өөр нэг сонирхолтой зүйл. Хэрэв "энгийн" эх сурвалж nat ether1 интерфейс дээр тохируулагдсан бол: /ip fi nat add out-interface=ether1 action=masquerade багц src-ээр онлайн болно. хаяг=10.10.10.100 байгаа нь байдлыг улам дордуулж байна.

Асуудлыг засах хэд хэдэн арга байдаг боловч тэдгээрийн аль нэгэнд нь нэмэлт чиглүүлэлтийн хүснэгт шаардагдана.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Ашиглах [IP]->[Route]->[Rules]
Заасан эх сурвалжийн IP-тэй пакетуудад ашиглагдах чиглүүлэлтийн хүснэгтийг зааж өгнө үү.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Ашиглаж болно action=lookup, гэхдээ орон нутгийн гадагш урсгалын хувьд энэ сонголт нь буруу интерфэйсээс холболтыг бүрэн хасдаг.

  • Систем нь Src-тэй хариу багц үүсгэдэг. Хаяг: 10.20.20.200
  • Routing Decision(2) алхам шалгана [IP]->[Routes]->[Rules] ба пакетийг чиглүүлэлтийн хүснэгт рүү илгээдэг хэт isp2
  • Чиглүүлэлтийн хүснэгтийн дагуу пакетийг ether10.20.20.1 интерфейсээр дамжуулан 2 гарц руу илгээх ёстой.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Энэ арга нь Mangle хүснэгтийг ашиглахаас ялгаатай нь ажиллаж байгаа Холболтын Tracker шаарддаггүй.

Ашиглах [IP]->[Firewall]->[Mangle]
Холболт нь ирж буй пакетаас эхэлдэг тул бид үүнийг тэмдэглэв (action=mark-connection), тэмдэглэгдсэн холболтоос гарч буй пакетуудын хувьд чиглүүлэлтийн шошгыг тохируулна уу (action=mark-routing).
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Хэрэв нэг интерфэйс дээр хэд хэдэн ips тохируулагдсан бол та нөхцөлийг нэмж болно dst-address итгэлтэй байх.

  • Пакет нь ether2 интерфейс дээр холболтыг нээнэ. Багц руу ордог [INPUT|Mangle] Энэ нь холболтын бүх пакетуудыг гэж тэмдэглэхийг хэлдэг from-isp2
  • Систем нь Src-тэй хариу багц үүсгэдэг. Хаяг: 10.20.20.200
  • Routing Decision(2) үе шатанд чиглүүлэлтийн хүснэгтийн дагуу пакет ether10.20.20.1 интерфейсээр дамжин 1 гарц руу илгээгдэнэ. Та багцуудад нэвтэрснээр үүнийг баталгаажуулах боломжтой [OUTPUT|Filter]
  • Тайзан дээр [OUTPUT|Mangle] холболтын шошгыг шалгасан from-isp2 мөн пакет нь маршрутын шошгыг хүлээн авдаг хэт isp2
  • Routing Adjusment(3) алхам нь чиглүүлэлтийн шошго байгаа эсэхийг шалгаж, зохих чиглүүлэлтийн хүснэгт рүү илгээдэг.
  • Чиглүүлэлтийн хүснэгтийн дагуу пакетийг ether10.20.20.1 интерфейсээр дамжуулан 2 гарц руу илгээх ёстой.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

MultiWAN болон буцах dst-nat урсгал

Жишээлбэл, хувийн дэд сүлжээнд чиглүүлэгчийн ард сервер (жишээ нь вэб) байгаа бол юу хийх вэ, та аль нэг үйлчилгээ үзүүлэгчээр дамжуулан хандах хэрэгтэй.

/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

Асуудлын мөн чанар нь ижил байх болно, шийдэл нь Firewall Mangle сонголттой төстэй бөгөөд зөвхөн бусад хэлхээг ашиглах болно.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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 дээрх статик чиглүүлэлтийн үндэс
Диаграмм нь NAT-ийг харуулаагүй ч бүх зүйл тодорхой байна гэж би бодож байна.

MultiWAN болон гадагш чиглэсэн холболтууд

Та өөр өөр чиглүүлэгчийн интерфейсээс олон vpn (жишээнд SSTP) холболт үүсгэхийн тулд PBR боломжуудыг ашиглаж болно.

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Нэмэлт чиглүүлэлтийн хүснэгтүүд:

/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

Багцын тэмдэглэгээ:

/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

Энгийн NAT дүрмүүд, эс тэгвээс пакет буруу Src интерфэйсийг орхих болно. хаяг:

/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

Задлах:

  • Чиглүүлэгч нь гурван SSTP процесс үүсгэдэг
  • Чиглүүлэлтийн шийдвэр (2) шатанд эдгээр процессуудад чиглүүлэлтийн үндсэн хүснэгтэд үндэслэн маршрутыг сонгоно. Ижил маршрутаас пакет Src-г хүлээн авна. Хаяг ether1 интерфейстэй холбогдсон байна
  • В [Output|Mangle] Өөр өөр холболтын багцууд өөр өөр шошго хүлээн авдаг
  • Багцууд нь чиглүүлэлтийн тохируулгын үе шатанд шошготой харгалзах хүснэгтэд орж, пакет илгээх шинэ замыг хүлээн авдаг.
  • Гэхдээ багцуудад Src байсаар байна. Тайзан дээрх эфир1-ийн хаяг [Nat|Srcnat] хаягийг интерфэйсийн дагуу орлуулна

Сонирхолтой нь, чиглүүлэгч дээр та дараах холболтын хүснэгтийг харах болно.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Connection Tracker өмнө нь ажилладаг [Mangle] и [Srcnat], тиймээс бүх холболтууд нэг хаягаас ирдэг, хэрэв та илүү дэлгэрэнгүй харвал дотор Replay Dst. Address NAT дараа хаягууд байх болно:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

VPN сервер дээр (би туршилтын вандан дээр байгаа) бүх холболтууд зөв хаягуудаас ирснийг харж болно.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Түр хүлээнэ үү
Илүү хялбар арга бий, та хаяг бүрт тодорхой гарцыг зааж өгч болно:

/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

Гэхдээ ийм чиглэлүүд нь зөвхөн гарах төдийгүй дамжин өнгөрөх урсгалд нөлөөлнө. Нэмж хэлэхэд, хэрэв танд тохиромжгүй холбооны сувгаар дамжихын тулд vpn сервер рүү траффик шаардлагагүй бол та өөр 6 дүрэм нэмэх шаардлагатай болно. [IP]->[Routes]с type=blackhole. Өмнөх хувилбарт - 3 дүрэм [IP]->[Route]->[Rules].

Харилцаа холбооны сувгаар хэрэглэгчийн холболтыг хуваарилах

Энгийн, өдөр тутмын ажил. Дахин хэлэхэд нэмэлт чиглүүлэлтийн хүснэгтүүд хэрэгтэй болно:

/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

Ашиглаж байна [IP]->[Route]->[Rules]
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Хэрэв хэрэглэж байгаа бол action=lookup, дараа нь сувгуудын аль нэг нь идэвхгүй болсон үед урсгал нь үндсэн хүснэгтэд очиж, ажлын сувгаар дамжих болно. Энэ нь шаардлагатай эсэхээс үл хамаарна.

Тэмдэглэгээг ашиглах [IP]->[Firewall]->[Mangle]
IP хаягуудын жагсаалт бүхий энгийн жишээ. Зарчмын хувьд бараг бүх нөхцлийг ашиглаж болно. Давхаргын 7-ын цорын ганц анхааруулга нь холболтын шошготой хослуулсан ч бүх зүйл зөв ажиллаж байгаа мэт санагдаж болох ч зарим урсгал буруу замаар явах болно.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Та хэрэглэгчдийг нэг чиглүүлэлтийн хүснэгтэд "түгжих" боломжтой [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

Аль эсвэл дамжин [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
Нэмэлт нөхцөл dst-address-type=!local Хэрэглэгчдийн урсгал нь чиглүүлэгчийн дотоод процессуудад (dns, winbox, ssh, ...) хүрэх шаардлагатай. Хэрэв чиглүүлэгчид хэд хэдэн дотоод дэд сүлжээ холбогдсон бол тэдгээрийн хоорондох траффик Интернет рүү орохгүй байхыг баталгаажуулах шаардлагатай. dst-address-table.

Хэрэглэх жишээнд [IP]->[Route]->[Rules] ийм үл хамаарах зүйл байхгүй, гэхдээ замын хөдөлгөөн орон нутгийн процессуудад хүрдэг. Баримт нь FIB багцад орох нь тэмдэглэгдсэн байдаг [PREROUTING|Mangle] чиглүүлэлтийн шошготой бөгөөд үндсэн интерфейсээс өөр чиглүүлэлтийн хүснэгтэд ордог бөгөөд тэнд локал интерфейс байхгүй. Чиглүүлэлтийн дүрмийн хувьд эхлээд пакет нь локал процесст зориулагдсан эсэхийг шалгадаг бөгөөд зөвхөн Хэрэглэгчийн PBR шатанд заасан чиглүүлэлтийн хүснэгтэд очдог.

Ашиглаж байна [IP]->[Firewall]->[Mangle action=route]
Энэ үйлдэл нь зөвхөн дотор ажилладаг [Prerouting|Mangle] Мөн гарцын хаягийг шууд зааж өгснөөр нэмэлт чиглүүлэлтийн хүснэгт ашиглахгүйгээр замын хөдөлгөөнийг заасан гарц руу чиглүүлэх боломжийг танд олгоно.

/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

үр нөлөө route чиглүүлэлтийн дүрмээс доогуур ач холбогдолтой ([IP]->[Route]->[Rules]). Маршрутын тэмдэглэгээний хувьд бүх зүйл дүрмийн байрлалаас хамаарна, хэрэв дүрмээр бол action=route -аас илүү үнэ цэнэтэй action=mark-route, дараа нь үүнийг ашиглах болно (тугнаас үл хамааран passtrough), өөрөөр хэлбэл маршрутыг тэмдэглэнэ.
Энэ үйлдлийн талаар вики дээр маш бага мэдээлэл байгаа бөгөөд бүх дүгнэлтийг туршилтаар олж авсан, ямар ч тохиолдолд энэ сонголтыг ашиглах нь бусдаас давуу талтай байх үед би сонголтыг олсонгүй.

PPC дээр суурилсан динамик тэнцвэржүүлэх

Холболтын ангилагч нь ECMP-ийн илүү уян хатан аналог юм. ECMP-ээс ялгаатай нь энэ нь траффикийг холболтоор илүү нарийн хуваадаг (ECMP нь холболтын талаар юу ч мэддэггүй, гэхдээ Routing Cache-тэй хослуулсан тохиолдолд үүнтэй төстэй зүйлийг олж авдаг).

PCC авдаг заасан талбарууд ip толгойноос тэдгээрийг 32 битийн утга болгон хувиргаж, хуваана хуваагч. Хуваалтын үлдсэн хэсгийг заасантай харьцуулна үлдэгдэл хэрэв тэдгээр нь таарч байвал заасан үйлдлийг хэрэгжүүлнэ. Дэлгэрэнгүй. Галзуу сонсогдож байгаа ч энэ нь ажилладаг.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Гурван хаягтай жишээ:

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

Гурван сувгийн хооронд урсгалыг src.address-ээр динамик хуваарилах жишээ:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

#Таблица маршрутизации
/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

Маршрутыг тэмдэглэхдээ нэмэлт нөхцөл бий: in-interface=br-lan, үүнгүйгээр action=mark-routing Интернэтээс хариу траффик авч, чиглүүлэлтийн хүснэгтийн дагуу үйлчилгээ үзүүлэгч рүү буцна.

Харилцааны сувгийг солих

Пинг шалгах нь сайн хэрэгсэл боловч зөвхөн хамгийн ойрын IP үе тэнгийнхэнтэй холболтыг шалгадаг, үйлчилгээ үзүүлэгчийн сүлжээ нь ихэвчлэн олон тооны чиглүүлэгчээс бүрддэг ба холболтын тасалдал нь хамгийн ойрын үе тэнгийнхээс гадна гарч ирдэг, дараа нь үндсэн харилцаа холбооны операторууд байдаг. асуудалтай тул ерөнхийдөө ping шалгах нь дэлхийн сүлжээнд нэвтрэх талаарх хамгийн сүүлийн үеийн мэдээллийг үргэлж харуулдаггүй.
Хэрэв үйлчилгээ үзүүлэгч болон томоохон корпорациуд BGP динамик чиглүүлэлтийн протоколтой бол гэрийн болон оффисын хэрэглэгчид тодорхой холбооны сувгаар интернетийн хандалтыг хэрхэн шалгахаа бие даан тодорхойлох ёстой.

Ихэвчлэн скриптийг тодорхой холбооны сувгаар дамжуулан интернетэд IP хаяг байгаа эсэхийг шалгахын зэрэгцээ найдвартай, жишээлбэл, google dns: 8.8.8.8 сонгохдоо ашигладаг. 8.8.4.4. Гэхдээ Микротик нийгэмлэгт үүнд илүү сонирхолтой хэрэгслийг тохируулсан.

Рекурсив чиглүүлэлтийн талаар хэдэн үг
Multihop BGP peering-ийг бүтээхэд рекурсив чиглүүлэлт зайлшгүй шаардлагатай бөгөөд нэмэлт скриптгүйгээр холбооны сувгийг солихын тулд шалгах гарцтай хосолсон рекурсив маршрутыг хэрхэн ашиглахыг олж мэдсэн зальтай MikroTik хэрэглэгчдийн ачаар статик чиглүүлэлтийн үндсүүдийн тухай нийтлэлд орсон.

Хамрах хүрээ / зорилтот хамрах хүрээний сонголтууд болон маршрут нь интерфэйстэй хэрхэн холбогдож байгааг ерөнхийд нь ойлгох цаг болжээ.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  1. Маршрут нь хамрах хүрээний утга болон зорилтот хамрах хүрээний утгаас бага буюу тэнцүү үндсэн хүснэгтийн бүх оруулгууд дээр үндэслэн пакетийг илгээх интерфэйсийг хайдаг.
  2. Олдсон интерфэйсүүдээс та заасан гарц руу пакет илгээх боломжтой интерфейсийг сонгосон
  3. Пакетийг гарц руу илгээхийн тулд олдсон холбогдсон оруулгын интерфейсийг сонгосон

Рекурсив маршрут байгаа тохиолдолд бүх зүйл адилхан тохиолддог, гэхдээ хоёр үе шаттайгаар:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

  • 1-3 Холбогдсон маршрутуудад дахин нэг маршрут нэмэгдсэн бөгөөд үүгээр дамжуулан заасан гарц руу хүрч болно
  • 4-6 "Завсрын" гарцын холбогдсон маршрутыг олох

Рекурсив хайлттай бүх залруулга RIB-д тохиолддог бөгөөд зөвхөн эцсийн үр дүнг FIB руу шилжүүлдэг. 0.0.0.0/0 via 10.10.10.1 on ether1.

Маршрутыг солиход рекурсив чиглүүлэлт ашиглах жишээ
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Тохиргоо:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Та пакетуудыг 10.10.10.1-д илгээх эсэхийг шалгаж болно:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Check gateway нь рекурсив чиглүүлэлтийн талаар юу ч мэдэхгүй бөгөөд ердөө л 8.8.8.8 руу пинг илгээдэг бөгөөд (үндсэн хүснэгтэд суурилсан) 10.10.10.1 гарцаар дамжуулан хандах боломжтой.

Хэрэв 10.10.10.1-ээс 8.8.8.8-ын хооронд холбоо тасарсан бол зам салгагдах боловч 8.8.8.8 хүртэлх пакетууд (туршилтын ping-г оруулаад) 10.10.10.1-ээр дамжсаар байна:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Хэрэв ether1-ийн холбоос алдагдсан бол 8.8.8.8-аас өмнөх пакетууд хоёр дахь үйлчилгээ үзүүлэгчээр дамжих үед таагүй нөхцөл байдал үүснэ.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Хэрэв та 8.8.8.8 байхгүй үед скрипт ажиллуулахын тулд NetWatch ашиглаж байгаа бол энэ нь асуудал юм. Хэрэв холбоос эвдэрсэн бол NetWatch зүгээр л нөөц холбооны сувгаар ажиллах бөгөөд бүх зүйл зүгээр гэж үзнэ. Нэмэлт шүүлтүүрийн маршрут нэмэх замаар шийдсэн:

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

Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Хабре дээр байдаг нийтлэл, NetWatch-ийн нөхцөл байдлыг илүү нарийвчлан авч үзсэн болно.

Тийм ээ, ийм захиалгыг ашиглах үед 8.8.8.8 хаяг нь үйлчилгээ үзүүлэгчдийн аль нэгэнд холбогдсон байх тул үүнийг dns эх сурвалж болгон сонгох нь тийм ч сайн санаа биш юм.

Виртуал чиглүүлэлт ба дамжуулалтын (VRF) талаар хэдэн үг

VRF технологи нь нэг физик дотор хэд хэдэн виртуал чиглүүлэгчийг үүсгэх зорилготой бөгөөд энэ технологийг харилцаа холбооны операторууд (ихэвчлэн MPLS-тэй хамт) дэд сүлжээний хаягууд нь давхардсан үйлчлүүлэгчдэд L3VPN үйлчилгээг үзүүлэхэд өргөн ашигладаг.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Гэхдээ Mikrotik дахь VRF нь чиглүүлэлтийн хүснэгтийн үндсэн дээр зохион байгуулагдсан бөгөөд хэд хэдэн сул талуудтай, жишээлбэл, чиглүүлэгчийн локал IP хаягийг бүх VRF-ээс авах боломжтой тул та дэлгэрэнгүй унших боломжтой. холбоос.

vrf тохиргооны жишээ:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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-д холбогдсон төхөөрөмжөөс бид ping нь өөр vrf-ээс чиглүүлэгчийн хаяг руу очдогийг харж байна (мөн энэ нь асуудал юм), харин ping нь интернетэд ордоггүй:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Интернетэд нэвтрэхийн тулд та үндсэн хүснэгтэд хандах нэмэлт маршрутыг бүртгүүлэх шаардлагатай (vrf хэллэгээр үүнийг маршрутын алдагдал гэж нэрлэдэг):
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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

Маршрутыг задлах хоёр арга байна: чиглүүлэлтийн хүснэгтийг ашиглан: 172.17.0.1@main болон интерфэйсийн нэрийг ашиглан: 172.17.0.1%wlan1.

Мөн буцах замын хөдөлгөөний тэмдэглэгээг тохируулна уу [PREROUTING|Mangle]:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

/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 дээрх статик чиглүүлэлтийн үндэс

Ижил хаягтай дэд сүлжээнүүд
VRF болон netmap ашиглан ижил чиглүүлэгч дээр ижил хаягтай дэд сүлжээнд нэвтрэх зохион байгуулалт:
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Үндсэн тохиргоо:

/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

галт ханын дүрэм:

#Маркируем пакеты для отправки в правильную таблицу маршрутизации
/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

Буцах замын хөдөлгөөний чиглүүлэлтийн дүрэм:

#Указание имени интерфейса тоже может считаться 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-ээр хүлээн авсан маршрутуудыг нэмж байна
Хэрэв та тодорхой чиглүүлэлтийн хүснэгтэд динамик маршрутыг (жишээлбэл, dhcp клиентээс) автоматаар нэмэх шаардлагатай бол VRF нь сонирхолтой байж болно.

vrf-д интерфэйс нэмэх:

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

Хүснэгтээр дамжуулан урсгалыг (гадагш ба дамжин өнгөрөх) илгээх дүрэм хэт 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

Гадагш чиглүүлэлтийн нэмэлт, хуурамч маршрут:

/interface bridge
add name=bare

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

Энэ чиглүүлэлт нь зөвхөн орон нутгийн гадагш илгээх пакетуудыг өмнө нь чиглүүлэлтийн шийдвэрээр (2) дамжуулж болохын тулд л хэрэгтэй [OUTPUT|Mangle] болон чиглүүлэлтийн шошгыг аваарай, хэрэв чиглүүлэгч дээр үндсэн хүснэгтэд 0.0.0.0/0-ээс өмнө бусад идэвхтэй маршрутууд байгаа бол энэ нь шаардлагагүй.
Mikrotik RouterOS дээрх статик чиглүүлэлтийн үндэс

Гинж connected-in и dynamic-in в [Routing] -> [Filters]

Маршрут шүүлтүүр (дотогшоо болон гарах) нь ихэвчлэн динамик чиглүүлэлтийн протоколуудтай хамт хэрэглэгддэг хэрэгсэл юм (тиймээс багцыг суулгасны дараа л ашиглах боломжтой) чиглүүлэлт), гэхдээ ирж буй шүүлтүүрт хоёр сонирхолтой хэлхээ байдаг:

  • connect-in — холбогдсон маршрутуудыг шүүх
  • dynamic-in - PPP болон DCHP-ээс хүлээн авсан динамик маршрутуудыг шүүх

Шүүлтүүр нь зөвхөн маршрутыг хаяхаас гадна хэд хэдэн сонголтыг өөрчлөх боломжийг олгодог: зай, чиглүүлэлтийн тэмдэг, тайлбар, хамрах хүрээ, зорилтот хамрах хүрээ, ...

Энэ бол маш нарийн хэрэгсэл бөгөөд хэрвээ та чиглүүлэлтийн шүүлтүүргүйгээр ямар нэгэн зүйл хийх боломжтой бол (гэхдээ скрипт биш) чиглүүлэлтийн шүүлтүүрийг бүү ашигла, өөрийгөө болон таны дараа чиглүүлэгчийг тохируулах хүмүүсийг бүү андуураарай. Динамик чиглүүлэлтийн нөхцөлд чиглүүлэлтийн шүүлтүүрийг илүү олон удаа, илүү бүтээмжтэй ашиглах болно.

Динамик маршрутын чиглүүлэлтийн тэмдгийг тохируулах
Гэрийн чиглүүлэгчийн жишээ. Надад хоёр VPN холболт тохируулагдсан бөгөөд тэдгээрийн урсгалыг чиглүүлэлтийн хүснэгтийн дагуу ороосон байх ёстой. Үүний зэрэгцээ интерфэйс идэвхжсэн үед маршрутуудыг автоматаар үүсгэхийг хүсч байна.

#При создании 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

Яагаад гэдгийг би мэдэхгүй байна, магадгүй алдаа байж магадгүй, гэхдээ хэрэв та ppp интерфэйсэд зориулж vrf үүсгэвэл 0.0.0.0/0 хүртэлх маршрут үндсэн хүснэгтэд орох болно. Үгүй бол бүх зүйл илүү хялбар байх болно.

Холбогдсон маршрутуудыг идэвхгүй болгож байна
Заримдаа энэ шаардлагатай:

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

Дибаг хийх хэрэгслүүд

RouterOS нь чиглүүлэлтийн дибаг хийх хэд хэдэн хэрэгслээр хангадаг:

  • [Tool]->[Tourch] - интерфэйс дээрх пакетуудыг үзэх боломжийг танд олгоно
  • /ip route check - пакетийг аль гарц руу илгээхийг харах боломжийг танд олгоно, чиглүүлэлтийн хүснэгттэй ажиллахгүй
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - заасан чиглүүлэлтийн хүснэгтийг ашиглан ping болон мөшгих
  • action=log в [IP]->[Firewall] - багцын урсгалын дагуу пакетийн замыг хянах боломжийг олгодог маш сайн хэрэгсэл бөгөөд энэ үйлдэл нь бүх хэлхээ, хүснэгтэд байдаг.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх