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. Маршрутизатор тарабынан кабыл алынган маршруттук пакеттер. Бул этапта пакет локалдык процесске кетеби же андан ары тармакка жөнөтүлөбү чечилет. Транзиттик пакеттер кабыл алынат Output Interface
  2. Жергиликтүү чыгуучу пакеттерди багыттоо. Чыгуучу пакеттер кабыл алынат Output Interface
  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, Connected)
  • C - ички тармак түз роутерге туташтырылган
  • S - Статикалык маршрут
  • r,b,o,m - Маршрут динамикалык маршрутташтыруу протоколдорунун бири менен кошулган
  • B,U,P - чыпкалоо маршруту (берүүнүн ордуна пакеттерди түшүрөт)

Шлюзда эмнени көрсөтүү керек: ip-дареги же интерфейси?

Система экөөнү тең көрсөтүүгө мүмкүндүк берет, бирок ал ант бербейт жана туура эмес кылган болсоңуз, кыйытма бербейт.

IP дареги
Шлюз дареги Layer2 аркылуу жеткиликтүү болушу керек. Ethernet үчүн, бул роутердин активдүү IP интерфейстеринин биринде ошол эле ички тармактын дареги болушу керек дегенди билдирет, ppp үчүн, шлюз дареги активдүү интерфейстердин биринде субтармактын дареги катары көрсөтүлгөн.
Эгерде Layer2 үчүн жеткиликтүүлүк шарты аткарылбаса, маршрут жигердүү эмес деп эсептелет жана FIBге кирбейт.

колдонмо
Баары татаалыраак жана роутердин жүрүм-туруму интерфейстин түрүнө жараша болот:

  • PPP (Asyc, PPTP, L2TP, SSTP, PPPoE, OpenVPN *) туташуусу эки гана катышуучуну болжолдойт жана пакет ар дайым берүү үчүн шлюзге жөнөтүлөт, эгерде шлюз алуучунун өзү экенин аныктаса, анда ал пакетти төмөнкүгө өткөрүп берет анын жергиликтүү процесси.
    Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери
  • Ethernet көптөгөн катышуучулардын болушун болжолдойт жана arp интерфейсине пакетти алуучунун дареги менен суроо-талаптарды жөнөтөт, бул туташкан маршруттар үчүн күтүлгөн жана нормалдуу көрүнүш.
    Бирок сиз интерфейсти алыскы ички тармак үчүн маршрут катары колдонууга аракет кылганыңызда, сиз төмөнкү кырдаалга туш болосуз: маршрут активдүү, шлюзга пинг өтөт, бирок көрсөтүлгөн ички тармактан алуучуга жетпейт. Эгерде сиз снайфер аркылуу интерфейсти карасаңыз, сиз алыскы ички тармактан даректер менен arp сурамдарын көрөсүз.
    Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Мүмкүн болушунча IP даректи шлюз катары көрсөтүүгө аракет кылыңыз. Өзгөчө бул туташкан маршруттар (автоматтык түрдө түзүлгөн) жана PPP (Asyc, 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ге кирбейт
  • конкреттүү көрсөткүчтөр. Динамикалык маршруттук протоколдордон алынган маршруттар стандарттык метрикалык маанилерге ээ

шлюз текшерүү

Текшерүү шлюзи icmp же arp аркылуу шлюздун жеткиликтүүлүгүн текшерүү үчүн MikroTik RoutesOS кеңейтүүсү. Ар бир 10 секундда бир жолу (өзгөртүү мүмкүн эмес) шлюзге суроо-талап жөнөтүлөт, эгерде жооп эки жолу алынбаса, каттам жеткиликсиз болуп эсептелет жана FIBден чыгарылат. Текшерүү шлюзи өчүрүлгөн болсо, текшерүү маршруту уланат жана бир ийгиликтүү текшерүүдөн кийин маршрут кайра активдүү болот.
Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Текшерүү шлюзи ал конфигурацияланган жазууну жана көрсөтүлгөн шлюз менен бардык башка жазууларды (бардык маршруттук таблицаларда жана ecmp маршруттарында) өчүрөт.

Жалпысынан алганда, текшерүү шлюзи шлюзге пакетти жоготуу менен байланышкан көйгөйлөр болбосо, жакшы иштейт. Текшерүү шлюзи текшерилген шлюзден тышкары байланышта эмне болуп жатканын билбейт, бул үчүн кошумча куралдар керек: скрипттер, рекурсивдүү маршрутизация, динамикалык маршрутташтыруу протоколдору.

Көпчүлүк VPN жана туннель протоколдору туташуунун активдүүлүгүн текшерүү үчүн орнотулган куралдарды камтыйт, алар үчүн текшерүү шлюзи тармакка жана түзмөктүн иштешине кошумча (бирок өтө кичинекей) жүктөм болуп саналат.

ECMP маршруттары

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

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

ECMP эки каналдын ортосундагы жүктү баланстоо үчүн колдонулат, теориялык жактан алганда, ecmp маршрутунда эки канал бар болсо, анда ар бир пакет үчүн чыгуучу канал ар башка болушу керек. Бирок Маршруттук кэш механизми биринчи пакет алган маршрут боюнча байланыштан пакеттерди жөнөтөт, натыйжада биз туташуулардын негизинде балансташтыруунун бир түрүн алабыз (байланыш боюнча жүктөө балансы).

Эгер Routing Cache өчүрүлсө, анда ECMP маршрутундагы пакеттер туура бөлүшүлөт, бирок NAT менен көйгөй бар. NAT эрежеси туташуудан биринчи пакетти гана иштетет (калгандары автоматтык түрдө иштетилет) жана бир булак дареги бар пакеттер ар кандай интерфейстерди калтырат экен.
Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Текшерүү шлюзи ECMP маршруттарында иштебейт (RouterOS катасы). Бирок сиз ECMPдеги жазууларды өчүрө турган кошумча текшерүү жолдорун түзүү менен бул чектөөдөн чыга аласыз.

Багыттоо аркылуу чыпкалоо

Тип опциясы пакет менен эмне кылууну аныктайт:

  • 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 ичиндеги статикалык маршрутташтыруунун негиздери

Конкреттүү Маршрут маршруттук таблицадагы негизги маршрут тандоо эрежеси.

Демейки боюнча, бардык маршруттук эрежелер негизги таблицага кошулат. Администратор ыктыярдуу сандагы кошумча маршруттук таблицаларды түзө алат жана аларга пакеттерди багыттай алат. Ар кандай таблицалардагы эрежелер бири-бирине карама-каршы келбейт. Эгерде пакет көрсөтүлгөн таблицадан ылайыктуу эреже таппаса, анда ал негизги таблицага өтөт.

Firewall аркылуу бөлүштүрүүгө мисал:
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де пакет текшерилген белгилердин тизмесин иш жүзүндө кайталаңыз, ТоС гана жок.
  • Действия
    • издөө - пакетти столго жөнөтүү
    • таблицада гана издөө - пакетти таблицага бекитүү, эгер маршрут табылбаса, пакет негизги таблицага өтпөйт
    • таштоо - пакетти таштоо
    • жеткиликсиз - жөнөтүүчүнүн эскертмеси бар пакетти жокко чыгарыңыз

FIBде жергиликтүү процесстерге трафик эрежелерди кыйгап өтүп иштетилет [IP]->[Route]->[Rules]:
Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

белги [IP]->[Firewall]->[Mangle]
Маршруттук энбелгилер дээрлик бардык Firewall шарттарын колдонуу менен пакет үчүн шлюз орнотууга мүмкүндүк берет:
Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Иш жүзүндө, анткени алардын баары эле мааниси жок, кээ бирлери туруксуз иштеши мүмкүн.

Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Пакетти белгилөөнүн эки жолу бар:

  • Дароо кой маршруттук белги
  • Биринчи кой байланыш белгиси, андан кийин негизделген байланыш белгиси койду маршруттук белги

Firewalls жөнүндө макалада мен экинчи вариант артык деп жаздым. маршруттарды белгилөө учурда cpu жүгүн азайтат - бул толугу менен туура эмес. Бул белгилөө ыкмалары дайыма эле эквиваленттүү боло бербейт жана адатта ар кандай маселелерди чечүү үчүн колдонулат.

Колдонуунун мисалдары

Саясаттын Базасын Маршрутизациялоонун мисалдарына өтөлү, мунун баары эмне үчүн керек экенин көрсөтүү оңой.

MultiWAN жана кайра чыгуучу (Output) трафик
MultiWAN конфигурациясынын жалпы көйгөйү: Mikrotik Интернеттен "активдүү" провайдер аркылуу гана жеткиликтүү.
Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Маршрутизатор суроо-талаптын эмнеге келгендигине маани бербейт, жоопту түзүүдө ал 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
  • Маршруттук чечим (2) кадамы текшерилет [IP]->[Routes]->[Rules] жана пакет маршруттук таблицага жөнөтүлөт over-isp2
  • Маршруттук таблицага ылайык, пакет ether10.20.20.1 интерфейси аркылуу 2 шлюзуна жөнөтүлүшү керек.

Mikrotik RouterOS ичиндеги статикалык маршрутташтыруунун негиздери

Бул ыкма Mangle таблицасын колдонуудан айырмаланып, иштөөчү Connection 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

Эгерде бир интерфейсте бир нече IP конфигурацияланса, сиз шартка кошо аласыз dst-address ишенүү үчүн.

  • Пакет ether2 интерфейсинде байланышты ачат. Пакет ичине кирет [INPUT|Mangle] Бул туташуунун бардык пакеттерин катары белгилөө үчүн айтылат from-isp2
  • Система Src менен жооп пакетин жаратат. Дареги: 10.20.20.200
  • Багыттоо чечими(2) стадиясында маршруттук таблицага ылайык пакет ether10.20.20.1 интерфейси аркылуу 1 шлюзуна жөнөтүлөт. Муну пакеттерге кирүү менен текшере аласыз [OUTPUT|Filter]
  • Сахнада [OUTPUT|Mangle] байланыш энбелгиси текшерилет from-isp2 жана пакет маршрут белгисин алат over-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 жана чыгуучу байланыштар

Сиз PBR мүмкүнчүлүктөрүн ар кандай роутер интерфейстеринен бир нече vpn (мисалы SSTP) байланыштарын түзүү үчүн колдоно аласыз.

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 негизинде динамикалык баланстоо

Per Connection классификатору - ECMPдин ийкемдүү аналогу. ECMPден айырмаланып, ал трафикти туташуулар боюнча катуураак бөлөт (ECMP байланыштар жөнүндө эч нерсе билбейт, бирок Routing Cache менен жупташканда, окшош нерсе алынат).

PCC алат көрсөтүлгөн талаалар ip аталышынан, аларды 32 биттик мааниге айландырат жана бөлөт бөлүүчү. Бөлүмдүн калган бөлүгү көрсөтүлгөн менен салыштырылат калган жана алар дал келсе, анда көрсөтүлгөн аракет колдонулат. More. Жинди угулат, бирок ал иштейт.
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 Интернеттен жооп трафиги келип, маршруттук таблицаларга ылайык, провайдерге кайтып келет.

Байланыш каналдарын алмаштыруу

Текшерүү ping - бул жакшы курал, бирок ал эң жакынкы IP теңдеши менен байланышты гана текшерет, провайдер тармактары, адатта, көп сандагы роутерлерден турат жана туташуу үзгүлтүккө учурашы эң жакын курдаштын сыртында болушу мүмкүн, андан кийин магистралдык байланыш операторлору да бар. көйгөйлөр бар, жалпысынан текшерүү пинг дайыма эле глобалдык тармакка кирүү жөнүндө акыркы маалыматты көрсөтө бербейт.
Эгерде провайдерлерде жана ири корпорацияларда BGP динамикалык маршруттоо протоколу бар болсо, анда үй жана офис колдонуучулары белгилүү бир байланыш каналы аркылуу Интернетке кирүүнү кантип текшерүүнү өз алдынча аныкташы керек.

Эреже катары, скрипттер колдонулат, алар белгилүү бир байланыш каналы аркылуу Интернетте IP дарегинин бар-жогун текшерип, ошол эле учурда ишенимдүү нерсени тандашат, мисалы, google dns: 8.8.8.8. 8.8.4.4. Бирок Mikrotik коомчулугунда бул үчүн кызыктуураак курал ыңгайлаштырылган.

Рекурсивдүү багыттоо жөнүндө бир нече сөз
Multihop BGP пирингин курууда рекурсивдүү маршрутизация зарыл жана кошумча скрипттерсиз байланыш каналдарын алмаштыруу үчүн текшерүү шлюзи менен жупташкан рекурсивдүү маршруттарды кантип колдонууну түшүнгөн айлакер 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 ичиндеги статикалык маршрутташтыруунун негиздери

Текшерүү шлюзи рекурсивдүү маршруттоо жөнүндө эч нерсе билбейт жана жөн гана 8.8.8.8ге пингдерди жөнөтөт, ал (негизги таблицага негизделген) 10.10.10.1 шлюзи аркылуу жеткиликтүү.

Эгерде 10.10.10.1 жана 8.8.8.8 ортосунда байланыш үзүлсө, анда маршрут ажыратылат, бирок 8.8.8.8ге чейинки пакеттер (анын ичинде сыноо пингдери) 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 булагы катары тандоо жакшы идея эмес.

Virtual Routing and Forwarding (VRF) жөнүндө бир нече сөз

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

Бирок Микротиктеги 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ге туташтырылган түзмөктөн биз пинг башка vrfден роутердин дарегине (жана бул көйгөй) барарын көрөбүз, ал эми пинг Интернетке кирбейт:
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 жана нетмапты колдонуу менен бир эле роутерде бирдей даректүү субсеттерге кирүүнү уюштуруу:
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

Таблица аркылуу трафикти (чыгыш жана транзиттик) жөнөтүү эрежелери over-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] - пакеттин агымы боюнча пакеттин жолун байкоого мүмкүндүк берген эң сонун курал, бул аракет бардык чынжырларда жана таблицаларда жеткиликтүү

Source: www.habr.com

Комментарий кошуу