Основе статичког рутирања у Микротик РоутерОС-у

Рутирање је процес проналажења најбоље путање за пренос пакета преко ТЦП/ИП мрежа. Сваки уређај повезан на ИПв4 мрежу садржи табеле процеса и рутирања.

Овај чланак није КАКО, већ на примерима описује статичко рутирање у РоутерОС-у, намерно сам изоставио остала подешавања (нпр. срцнат за приступ Интернету), тако да разумевање материјала захтева одређени ниво знања о мрежама и РоутерОС-у.

Пребацивање и рутирање

Основе статичког рутирања у Микротик РоутерОС-у

Пребацивање је процес размене пакета унутар једног сегмента Лаиер2 (Етхернет, ппп, ...). Ако уређај види да је прималац пакета на истој Етхернет подмрежи са њим, он учи мац адресу користећи арп протокол и директно преноси пакет, заобилазећи рутер. ППП (поинт-то-поинт) веза може имати само два учесника и пакет се увек шаље на једну адресу 0кфф.

Рутирање је процес преноса пакета између сегмената Лаиер2. Ако уређај жели да пошаље пакет чији је прималац изван Етхернет сегмента, он гледа у своју табелу рутирања и прослеђује пакет мрежном пролазу, који зна где да пошаље пакет следећи (или можда не зна, оригинални пошиљалац пакета није свестан овога).

Најлакши начин да замислите рутер је као уређај повезан са два или више Лаиер2 сегмената и способан да преноси пакете између њих одређивањем најбоље руте из табеле рутирања.

Ако све разумете, или сте то већ знали, онда читајте даље. За остало, топло препоручујем да се упознате са малим, али веома пространим чланак.

Рутирање у РоутерОС-у и ПацкетФлов-у

Скоро све функције везане за статичко рутирање налазе се у пакету систем. Пластична кеса усмјеравање додаје подршку за динамичке алгоритме рутирања (РИП, ОСПФ, БГП, ММЕ), филтере рутирања и БФД.

Главни мени за подешавање рутирања: [IP]->[Route]. Сложене шеме могу захтевати да пакети буду унапред обележени ознаком рутирања у: [IP]->[Firewall]->[Mangle] (ланци PREROUTING и OUTPUT).

Постоје три места на ПацкетФлов-у где се доносе одлуке о рутирању ИП пакета:
Основе статичког рутирања у Микротик РоутерОС-у

  1. Рутирање пакета које је примио рутер. У овој фази се одлучује да ли ће пакет ићи у локални процес или ће бити послат даље у мрежу. Транзитни пакети примају Излазни интерфејс
  2. Рутирање локалних одлазних пакета. Одлазни пакети примају Излазни интерфејс
  3. Додатни корак рутирања за одлазне пакете, омогућава вам да промените одлуку о рутирању [Output|Mangle]

  • Путања пакета у блоковима 1, 2 зависи од правила у [IP]->[Route]
  • Путања пакета у тачкама 1, 2 и 3 зависи од правила у [IP]->[Route]->[Rules]
  • Путања пакета у блоковима 1, 3 може се утицати помоћу [IP]->[Firewall]->[Mangle]

РИБ, ФИБ, Кеш за рутирање

Основе статичког рутирања у Микротик РоутерОС-у

База информација о рутирању
База у којој се прикупљају руте из динамичких протокола рутирања, руте са ппп и дхцп, статичке и повезане руте. Ова база података садржи све руте, осим оних које филтрира администратор.

Условно, можемо претпоставити да [IP]->[Route] приказује РИБ.

База информација о прослеђивању
Основе статичког рутирања у Микротик РоутерОС-у

База у којој су сакупљене најбоље руте из РИБ-а. Све руте у ФИБ-у су активне и користе се за прослеђивање пакета. Ако рута постане неактивна (онемогућена од стране администратора (система), или интерфејс преко кога треба послати пакет није активан), рута се уклања из ФИБ-а.

Да би донела одлуку о рутирању, ФИБ табела користи следеће информације о ИП пакету:

  • Изворна адреса
  • Дестинација Адреса
  • изворни интерфејс
  • Ознака рутирања
  • ТоС (ДСЦП)

Улазак у ФИБ пакет пролази кроз следеће фазе:

  • Да ли је пакет намењен за процес локалног рутера?
  • Да ли пакет подлеже системским или корисничким ПБР правилима?
    • Ако јесте, онда се пакет шаље у наведену табелу рутирања
  • Пакет се шаље на главни сто

Условно, можемо претпоставити да [IP]->[Route Active=yes] приказује ФИБ.

Кеш за рутирање
Механизам кеширања руте. Рутер памти где су пакети послати и ако постоје слични (вероватно са исте везе) пушта их да иду истом рутом, без провере у ФИБ-у. Кеш рута се периодично брише.

За администраторе РоутерОС-а, нису направили алате за преглед и управљање кешом рутирања, али када се може онемогућити у [IP]->[Settings].

Овај механизам је уклоњен из језгра Линука 3.6, али РоутерОС и даље користи кернел 3.3.5, можда је Роутинг цахце један од разлога.

Дијалог за додавање руте

[IP]->[Route]->[+]
Основе статичког рутирања у Микротик РоутерОС-у

  1. Подмрежа за коју желите да креирате руту (подразумевано: 0.0.0.0/0)
  2. ИП мрежног пролаза или интерфејс на који ће пакет бити послат (можда их има неколико, погледајте ЕЦМП испод)
  3. Провера доступности мрежног пролаза
  4. Врста записа
  5. Удаљеност (метрика) за руту
  6. Табела рутирања
  7. ИП за локалне одлазне пакете преко ове руте
  8. Сврха обима и циљни обим је написана на крају чланка.

Заставице руте
Основе статичког рутирања у Микротик РоутерОС-у

  • Кс - Руту је онемогућио администратор (disabled=yes)
  • О – Рута се користи за слање пакета
  • Д – Рута се додаје динамички (БГП, ОСПФ, РИП, ММЕ, ППП, ДХЦП, повезан)
  • Ц - Подмрежа је директно повезана са рутером
  • С - Статичка рута
  • р,б,о,м - Рута додата једним од протокола за динамичко рутирање
  • Б,У,П - Филтрирање руте (испушта пакете уместо да их шаље)

Шта навести у мрежном пролазу: ИП-адресу или интерфејс?

Систем вам омогућава да наведете и једно и друго, док не псује и не даје наговештаје да ли сте нешто погрешили.

ИП адреса
Адреса мрежног пролаза мора бити доступна преко Лаиер2. За Етхернет, ово значи да рутер мора имати адресу из исте подмреже на једном од активних ИП интерфејса, за ппп, да је адреса мрежног пролаза наведена на једном од активних интерфејса као адреса подмреже.
Ако услов приступачности за слој 2 није испуњен, рута се сматра неактивном и не спада у ФИБ.

interfejs
Све је компликованије и понашање рутера зависи од типа интерфејса:

  • ППП (Асинц, ППТП, Л2ТП, ССТП, ПППоЕ, ОпенВПН *) веза претпоставља само два учесника и пакет ће увек бити послат гејтвеју за пренос, ако гејтвеј открије да је прималац сам, онда ће пренети пакет на њен локални процес.
    Основе статичког рутирања у Микротик РоутерОС-у
  • Етернет претпоставља присуство многих учесника и шаље захтеве на арп интерфејс са адресом примаоца пакета, што је очекивано и сасвим нормално понашање за повезане руте.
    Али када покушате да користите интерфејс као руту за удаљену подмрежу, добићете следећу ситуацију: рута је активна, пинг до гејтвеја пролази, али не стиже до примаоца из наведене подмреже. Ако погледате интерфејс кроз њушкало, видећете арп захтеве са адресама из удаљене подмреже.
    Основе статичког рутирања у Микротик РоутерОС-у

Основе статичког рутирања у Микротик РоутерОС-у

Покушајте да наведете ИП адресу као мрежни пролаз кад год је то могуће. Изузетак су повезане руте (креиране аутоматски) и ППП (Асинц, ППТП, Л2ТП, ССТП, ПППоЕ, ОпенВПН*) интерфејси.

ОпенВПН не садржи ППП заглавље, али можете користити име ОпенВПН интерфејса да бисте креирали руту.

Специфичнија рута

Основно правило рутирања. Рута која описује мању подмрежу (са највећом маском подмреже) има предност у одлуци о рутирању пакета. Положај уноса у табели рутирања није релевантан за избор – главно правило је Специфичније.

Основе статичког рутирања у Микротик РоутерОС-у

Све руте из наведене шеме су активне (налазе се у ФИБ-у). указују на различите подмреже и не сукобљавају се једна са другом.

Ако један од мрежних пролаза постане недоступан, придружена рута ће се сматрати неактивном (уклоњеном из ФИБ-а) и пакети ће се претраживати са преосталих рута.

Рути са подмрежом 0.0.0.0/0 понекад се придаје посебно значење и назива се „Подразумевана рута“ или „Гатеваи оф ласт ресорт“. У ствари, нема ничег магичног у томе и једноставно укључује све могуће ИПв4 адресе, али ова имена добро описују његов задатак – указује на гејтвеј где се прослеђују пакети за које не постоје друге, тачније руте.

Максимална могућа маска подмреже за ИПв4 је /32, ова рута указује на одређени хост и може се користити у табели рутирања.

Разумевање специфичније руте је фундаментално за сваки ТЦП/ИП уређај.

Растојање

Удаљености (или метрике) су потребне за административно филтрирање рута до једне подмреже којој се приступа преко више мрежних пролаза. Рута са нижим показатељем сматра се приоритетом и биће укључена у ФИБ. Ако рута са нижом метриком престане да буде активна, тада ће бити замењена рутом са вишом метриком у ФИБ-у.
Основе статичког рутирања у Микротик РоутерОС-у

Ако постоји неколико рута до исте подмреже са истом метриком, рутер ће додати само једну од њих у ФИБ табелу, вођен својом унутрашњом логиком.

Показатељ може имати вредност од 0 до 255:
Основе статичког рутирања у Микротик РоутерОС-у

  • 0 – метрика за повезане руте. Администратор не може подесити удаљеност 0
  • 1-254 – метрике доступне администратору за постављање рута. Показатељи са нижом вредношћу имају већи приоритет
  • 255 – метрика доступна администратору за постављање рута. За разлику од 1-254, рута са метриком од 255 увек остаје неактивна и не спада у ФИБ
  • специфичне метрике. Руте изведене из динамичких протокола рутирања имају стандардне метричке вредности

проверите гатеваи

Цхецк гатеваи је проширење МикроТик РоутесОС за проверу доступности гатеваи-а преко ицмп-а или арп-а. Сваких 10 секунди (не може се променити), захтев се шаље на гатеваи, ако се одговор не прими два пута, рута се сматра недоступном и уклања се из ФИБ-а. Ако је гејтвеј за проверу онемогућен, рута провере се наставља и рута ће поново постати активна након једне успешне провере.
Основе статичког рутирања у Микротик РоутерОС-у

Цхецк гатеваи онемогућава унос у коме је конфигурисан и све остале уносе (у свим табелама рутирања и ецмп рутама) са наведеним мрежним пролазом.

Уопштено говорећи, цхецк гатеваи ради добро све док нема проблема са губитком пакета на мрежном пролазу. Цхецк гатеваи не зна шта се дешава са комуникацијом ван провереног гатеваи-а, за то су потребни додатни алати: скрипте, рекурзивно рутирање, динамички протоколи рутирања.

Већина ВПН и тунелских протокола садржи уграђене алате за проверу активности везе, омогућавајући проверу гејтвеја за њих је додатно (али веома мало) оптерећење мреже и перформанси уређаја.

ЕЦМП руте

Вишеструка путања једнаке цене – слање пакета примаоцу користећи неколико мрежних пролаза истовремено користећи Роунд Робин алгоритам.

ЕЦМП руту креира администратор тако што наведе више мрежних пролаза за исту подмрежу (или аутоматски, ако постоје две еквивалентне ОСПФ руте).
Основе статичког рутирања у Микротик РоутерОС-у

ЕЦМП се користи за балансирање оптерећења између два канала, теоретски, ако постоје два канала на ецмп рути, онда би за сваки пакет одлазни канал требао бити другачији. Али механизам кеша рутирања шаље пакете са везе дуж руте коју је први пакет узео, као резултат тога добијамо неку врсту балансирања засновану на везама (балансирање оптерећења по конекцији).

Ако онемогућите Роутинг Цацхе, онда ће се пакети на ЕЦМП рути исправно делити, али постоји проблем са НАТ-ом. НАТ правило обрађује само први пакет из везе (остатак се обрађује аутоматски), а испоставља се да пакети са истом изворном адресом напуштају различите интерфејсе.
Основе статичког рутирања у Микротик РоутерОС-у

Проверите да мрежни пролаз не ради у ЕЦМП рутама (грешка РоутерОС-а). Али ово ограничење можете заобићи тако што ћете креирати додатне руте за валидацију које ће онемогућити уносе у ЕЦМП.

Филтрирање путем рутирања

Опција Типе одређује шта да се ради са пакетом:

  • уницаст - пошаљи на наведени мрежни пролаз (интерфејс)
  • црна рупа - одбацити пакет
  • забранити, недоступно - одбацити пакет и послати ицмп поруку пошиљаоцу

Филтрирање се обично користи када је потребно да се обезбеди слање пакета на погрешној путањи, наравно, ово можете филтрирати кроз заштитни зид.

Пар примера

Да консолидујемо основне ствари о рутирању.

Типичан кућни рутер
Основе статичког рутирања у Микротик РоутерОС-у

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

  1. Статичка рута до 0.0.0.0/0 (подразумевана рута)
  2. Повезана рута на интерфејсу са провајдером
  3. Повезана рута на ЛАН интерфејсу

Типичан кућни рутер са ПППоЕ
Основе статичког рутирања у Микротик РоутерОС-у

  1. Статичка рута до подразумеване руте, додата аутоматски. то је наведено у својствима везе
  2. Повезана рута за ППП везу
  3. Повезана рута на ЛАН интерфејсу

Типичан кућни рутер са два провајдера и редундансом
Основе статичког рутирања у Микротик РоутерОС-у

/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

Таква шема се може сматрати резервацијом канала, али није без недостатака. Ако дође до прекида изван мрежног пролаза провајдера (на пример, унутар мреже оператера), ваш рутер неће знати за то и наставиће да сматра руту активном.

Типичан кућни рутер са два провајдера, редундансом и ЕЦМП
Основе статичког рутирања у Микротик РоутерОС-у

/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. ЕЦМП рута
  3. Повезане руте

Руте за проверу су плаве (боја неактивних рута), али то не омета пролаз за проверу. Тренутна верзија (6.44) РоС-а даје аутоматски приоритет ЕЦМП рути, али је боље додати тест руте у друге табеле рутирања (опција routing-mark)

На Спеедтест-у и другим сличним сајтовима неће бити повећања брзине (ЕЦМП дели саобраћај по конекцијама, а не по пакетима), али п2п апликације би требало да се преузимају брже.

Филтрирање путем рутирања
Основе статичког рутирања у Микротик РоутерОС-у

/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. Статичка рута до 192.168.200.0/24 преко ипип тунела
  3. Забрана статичке руте до 192.168.200.0/24 преко ИСП рутера

Опција филтрирања у којој тунелски саобраћај неће ићи на рутер провајдера када је ипип интерфејс онемогућен. Такве шеме су ретко потребне, јер можете имплементирати блокирање кроз заштитни зид.

Роутинг лооп
Петља рутирања - ситуација када се пакет креће између рутера пре него што ттл истекне. Обично је то резултат грешке у конфигурацији, у великим мрежама се третира имплементацијом динамичких протокола рутирања, у малим - пажљиво.

Изгледа отприлике овако:
Основе статичког рутирања у Микротик РоутерОС-у

Пример (најједноставнији) како да добијете сличан резултат:
Основе статичког рутирања у Микротик РоутерОС-у

Пример петље рутирања није од практичне користи, али показује да рутери немају појма о табели рутирања свог суседа.

Рутирање основе политике и додатне табеле рутирања

Приликом избора руте рутер користи само једно поље из заглавља пакета (Дст. Аддресс) – ово је основно рутирање. Рутирање засновано на другим условима, као што су адреса извора, тип саобраћаја (ТоС), балансирање без ЕЦМП-а, припада Полици Басе Роутинг (ПБР) и користи додатне табеле рутирања.

Основе статичког рутирања у Микротик РоутерОС-у

Специфичнија рута је главно правило за избор руте унутар табеле рутирања.

Подразумевано, сва правила рутирања се додају у главну табелу. Администратор може креирати произвољан број додатних табела рутирања и усмеравати пакете ка њима. Правила у различитим табелама нису у сукобу. Ако пакет не пронађе одговарајуће правило у наведеној табели, прећи ће на главну табелу.

Пример са дистрибуцијом преко заштитног зида:
Основе статичког рутирања у Микротик РоутерОС-у

  • 192.168.100.10 -> 8.8.8.8
    1. Саобраћај са 192.168.100.10 добија ознаку виа-исп1 в [Prerouting|Mangle]
    2. У фази Роутинг у табели виа-исп1 тражи пут до 8.8.8.8
    3. Пронађена рута, саобраћај се шаље на гатеваи 10.10.10.1
  • 192.168.200.20 -> 8.8.8.8
    1. Саобраћај са 192.168.200.20 добија ознаку виа-исп2 в [Prerouting|Mangle]
    2. У фази Роутинг у табели виа-исп2 тражи пут до 8.8.8.8
    3. Пронађена рута, саобраћај се шаље на гатеваи 10.20.20.1
  • Ако један од гејтвеја (10.10.10.1 или 10.20.20.1) постане недоступан, онда ће пакет отићи на сто главни и тамо ће потражити одговарајући пут

Терминолошка питања

РоутерОС има одређене терминолошке проблеме.
Када радите са правилима у [IP]->[Routes] назначена је табела рутирања, иако је написано да је ознака:
Основе статичког рутирања у Микротик РоутерОС-у

В [IP]->[Routes]->[Rule] све је исправно, у стању ознаке у радњи табеле:
Основе статичког рутирања у Микротик РоутерОС-у

Како послати пакет у одређену табелу рутирања

РоутерОС нуди неколико алата:

  • Правила у [IP]->[Routes]->[Rules]
  • Маркери руте (action=mark-routing) ин [IP]->[Firewall]->[Mangle]
  • ВРФ

прописи [IP]->[Route]->[Rules]
Правила се обрађују секвенцијално, ако пакет одговара условима правила, не пролази даље.

Правила рутирања вам омогућавају да проширите могућности рутирања, ослањајући се не само на адресу примаоца, већ и на изворну адресу и интерфејс на који је пакет примљен.

Основе статичког рутирања у Микротик РоутерОС-у

Правила се састоје од услова и радње:

  • Услови. Практично поновите листу знакова по којима се пакет проверава у ФИБ-у, недостаје само ТоС.
  • Активност
    • лоокуп - послати пакет на сто
    • тражи само у табели - закључај пакет у табели, ако рута није пронађена, пакет неће ићи у главну табелу
    • испустити - испустити пакет
    • недостижан - одбаците пакет са обавештењем пошиљаоца

У ФИБ-у, саобраћај ка локалним процесима се обрађује заобилазећи правила [IP]->[Route]->[Rules]:
Основе статичког рутирања у Микротик РоутерОС-у

обележавање [IP]->[Firewall]->[Mangle]
Ознаке рутирања вам омогућавају да подесите мрежни пролаз за пакет користећи скоро све услове заштитног зида:
Основе статичког рутирања у Микротик РоутерОС-у

Практично, јер немају сви смисла, а неки могу радити нестабилно.

Основе статичког рутирања у Микротик РоутерОС-у

Постоје два начина за означавање пакета:

  • Одмах ставити ознака руте
  • Ставите прво ознака везе, затим на основу ознака везе ставити ознака руте

У чланку о заштитним зидовима написао сам да је друга опција пожељнија. смањује оптерећење процесора, у случају обележавања рута - то није сасвим тачно. Ове методе означавања нису увек еквивалентне и обично се користе за решавање различитих проблема.

Примери употребе

Пређимо на примере коришћења Полици Басе Роутинг-а, они много лакше показују зашто је све ово потребно.

МултиВАН и повратни одлазни (излазни) саобраћај
Уобичајени проблем са МултиВАН конфигурацијом: Микротик је доступан са Интернета само преко „активног“ провајдера.
Основе статичког рутирања у Микротик РоутерОС-у

Рутер не брине на који ИП је захтев стигао, при генерисању одговора тражиће руту у табели рутирања где је рута кроз исп1 активна. Даље, такав пакет ће највероватније бити филтриран на путу до примаоца.

Још једна занимљива тачка. Ако је „једноставан“ изворни нат конфигурисан на интерфејсу етхер1: /ip fi nat add out-interface=ether1 action=masquerade пакет ће бити на мрежи са срц. адреса=10.10.10.100, што чини ствари још горим.

Постоји неколико начина да решите проблем, али за сваки од њих ће бити потребне додатне табеле рутирања:
Основе статичког рутирања у Микротик РоутерОС-у

/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 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, али за локални одлазни саобраћај, ова опција потпуно искључује везе са погрешног интерфејса.

  • Систем генерише пакет одговора са Срц. Адреса: 10.20.20.200
  • Корак Одлуке о рутирању(2) проверава [IP]->[Routes]->[Rules] а пакет се шаље у табелу рутирања овер-исп2
  • Према табели рутирања, пакет мора бити послат на мрежни пролаз 10.20.20.1 преко етхер2 интерфејса

Основе статичког рутирања у Микротик РоутерОС-у

Овај метод не захтева радни Цоннецтион Трацкер, за разлику од коришћења Мангле табеле.

Коришћење [IP]->[Firewall]->[Mangle]
Веза почиње са долазним пакетом, па га означавамо (action=mark-connection), за одлазне пакете са означене везе, поставите ознаку усмеравања (action=mark-routing).
Основе статичког рутирања у Микротик РоутерОС-у

/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

Ако је неколико ИП-ова конфигурисано на једном интерфејсу, можете додати услов dst-address да будемо сигурни.

  • Пакет отвара везу на етхер2 интерфејсу. Пакет иде у [INPUT|Mangle] који каже да се сви пакети из везе означи као фром-исп2
  • Систем генерише пакет одговора са Срц. Адреса: 10.20.20.200
  • У фази одлуке о рутирању(2), пакет се, у складу са табелом рутирања, шаље на мрежни пролаз 10.20.20.1 преко етер1 интерфејса. Ово можете проверити пријављивањем пакета [OUTPUT|Filter]
  • На позорници [OUTPUT|Mangle] ознака везе је проверена фром-исп2 а пакет добија ознаку руте овер-исп2
  • Корак Усмеравање рутирања(3) проверава присуство налепнице за рутирање и шаље је одговарајућој табели за рутирање
  • Према табели рутирања, пакет мора бити послат на мрежни пролаз 10.20.20.1 преко етхер2 интерфејса

Основе статичког рутирања у Микротик РоутерОС-у

МултиВАН и повратни дст-нат саобраћај

Пример је компликованији, шта учинити ако постоји сервер (на пример, веб) иза рутера на приватној подмрежи и морате да му омогућите приступ преко било ког од провајдера.

/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

Суштина проблема ће бити иста, решење је слично опцији Фиревалл Мангле, само ће се користити други ланци:
Основе статичког рутирања у Микротик РоутерОС-у

/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

Основе статичког рутирања у Микротик РоутерОС-у
На дијаграму није приказан НАТ, али мислим да је све јасно.

МултиВАН и излазне везе

Можете користити ПБР могућности да креирате више впн (ССТП у примеру) веза са различитих интерфејса рутера.

Основе статичког рутирања у Микротик РоутерОС-у

Додатне табеле рутирања:

/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

Једноставна НАТ правила, иначе ће пакет напустити интерфејс са погрешним Срц. адреса:

/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

Анализа:

  • Рутер креира три ССТП процеса
  • У фази одлуке о рутирању (2), бира се рута за ове процесе на основу главне табеле рутирања. Са исте руте, пакет прима Срц. Адреса везана за етхер1 интерфејс
  • В [Output|Mangle] пакети са различитих веза добијају различите ознаке
  • Пакети улазе у табеле које одговарају ознакама у фази подешавања рутирања и добијају нову руту за слање пакета
  • Али пакети и даље имају Срц. Адреса из етера1, на сцени [Nat|Srcnat] адреса се замењује према интерфејсу

Занимљиво је да ћете на рутеру видети следећу табелу повезивања:
Основе статичког рутирања у Микротик РоутерОС-у

Цоннецтион Трацкер ради раније [Mangle] и [Srcnat], дакле све везе долазе са исте адресе, ако погледате детаљније, онда у Replay Dst. Address биће адресе после НАТ-а:
Основе статичког рутирања у Микротик РоутерОС-у

На ВПН серверу (имам један на тестној клупи), можете видети да све везе долазе са исправних адреса:
Основе статичког рутирања у Микротик РоутерОС-у

Задржи пут
Постоји лакши начин, можете једноставно одредити одређени пролаз за сваку од адреса:

/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

Али такве руте ће утицати не само на одлазни већ и на транзитни саобраћај. Осим тога, ако вам није потребан саобраћај на впн серверу да бисте прошли кроз неприкладне комуникационе канале, онда ћете морати да додате још 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]
Основе статичког рутирања у Микротик РоутерОС-у

/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]
Једноставан пример са листама ИП адреса. У принципу, могу се користити скоро сви услови. Једино упозорење слоја 7, чак и када је упарено са ознакама везе, може изгледати да све ради исправно, али ће део саобраћаја и даље ићи погрешним путем.
Основе статичког рутирања у Микротик РоутерОС-у

/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

Ретреат про dst-address-type=!local
Додатни услов dst-address-type=!local потребно је да саобраћај од корисника стигне до локалних процеса рутера (днс, винбок, ссх, ...). Ако је на рутер повезано неколико локалних подмрежа, потребно је осигурати да саобраћај између њих не иде на Интернет, на пример, користећи dst-address-table.

У примеру коришћења [IP]->[Route]->[Rules] нема таквих изузетака, али саобраћај стиже до локалних процеса. Чињеница је да улазак у пакет ФИБ означен у [PREROUTING|Mangle] има ознаку руте и иде у табелу рутирања која није главна, где не постоји локални интерфејс. У случају Правила рутирања, прво се проверава да ли је пакет намењен локалном процесу и тек у фази Усер ПБР иде у наведену табелу рутирања.

Коришћење [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), иначе означавање руте.
На вики има врло мало информација о овој акцији и сви закључци се добијају експериментално, у сваком случају нисам нашао опције када коришћење ове опције даје предности у односу на друге.

ППЦ засновано динамичко балансирање

Класификатор по конекцији - је флексибилнији аналог ЕЦМП-а. За разлику од ЕЦМП-а, он строжије дели саобраћај по везама (ЕЦМП не зна ништа о везама, али када се упари са кешом за рутирање, добија се нешто слично).

ПЦЦ узима наведена поља из ип заглавља, претвара их у 32-битну вредност и дели са називник. Остатак поделе се упоређује са наведеним остатак а ако се поклапају, онда се примењује наведена радња. више. Звучи лудо, али функционише.
Основе статичког рутирања у Микротик РоутерОС-у

Пример са три адресе:

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

Пример динамичке дистрибуције саобраћаја по срц.адреси између три канала:
Основе статичког рутирања у Микротик РоутерОС-у

#Таблица маршрутизации
/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 одговор саобраћај са Интернета ће добити и, у складу са табелама рутирања, вратити се провајдеру.

Пребацивање комуникационих канала

Провера пинга је добра алатка, али проверава само везу са најближим ИП равноправним рачунаром, мреже провајдера се обично састоје од великог броја рутера и прекид везе може да се деси ван најближег равноправног уређаја, а затим постоје и телеком оператери који такође могу ако имате проблема, генерално, провера пинг не приказује увек ажурне информације о приступу глобалној мрежи.
Ако провајдери и велике корпорације имају БГП динамички протокол рутирања, онда кућни и канцеларијски корисници морају самостално да схвате како да провере приступ Интернету преко одређеног комуникационог канала.

Обично се користе скрипте које преко одређеног комуникационог канала проверавају доступност ип адресе на Интернету, при чему се бира нешто поуздано, на пример, гоогле днс: 8.8.8.8. 8.8.4.4. Али у заједници Микротик, за ово је прилагођен занимљивији алат.

Неколико речи о рекурзивном рутирању
Рекурзивно рутирање је неопходно када се гради Мултихоп БГП пееринг и ушао је у чланак о основама статичког рутирања само због лукавих корисника МикроТик-а који су схватили како да користе рекурзивне руте упарене са цхецк гатеваи-ом за пребацивање комуникационих канала без додатних скрипти.

Време је да разумете опције опсега/циљног опсега у општем смислу и како је рута повезана са интерфејсом:
Основе статичког рутирања у Микротик РоутерОС-у

  1. Рута тражи интерфејс за слање пакета на основу његове вредности опсега и свих уноса у главној табели са мањим или једнаким вредностима циљног опсега
  2. Од пронађених интерфејса се бира онај преко којег можете послати пакет на наведени мрежни пролаз
  3. Интерфејс пронађеног повезаног уноса је изабран да пошаље пакет на мрежни пролаз

У присуству рекурзивне руте, све се дешава исто, али у две фазе:
Основе статичког рутирања у Микротик РоутерОС-у

  • 1-3 Повезаним рутама се додаје још једна рута преко које се може доћи до наведеног гејтвеја
  • 4-6 Проналажење руте повезане руте за "средњи" пролаз

Све манипулације са рекурзивним претраживањем се дешавају у РИБ-у, а само коначни резултат се преноси у ФИБ: 0.0.0.0/0 via 10.10.10.1 on ether1.

Пример коришћења рекурзивног рутирања за пребацивање рута
Основе статичког рутирања у Микротик РоутерОС-у

Конфигурација:
Основе статичког рутирања у Микротик РоутерОС-у

/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:
Основе статичког рутирања у Микротик РоутерОС-у

Цхецк гатеваи не зна ништа о рекурзивном рутирању и једноставно шаље пингове на 8.8.8.8, који (на основу главне табеле) је доступан преко мрежног пролаза 10.10.10.1.

Ако дође до губитка комуникације између 10.10.10.1 и 8.8.8.8, рута је прекинута, али пакети (укључујући пробне пингове) до 8.8.8.8 настављају да пролазе кроз 10.10.10.1:
Основе статичког рутирања у Микротик РоутерОС-у

Ако се веза са етер1 изгуби, онда се јавља непријатна ситуација када пакети пре 8.8.8.8 прођу преко другог провајдера:
Основе статичког рутирања у Микротик РоутерОС-у

Ово је проблем ако користите НетВатцх за покретање скрипти када 8.8.8.8 није доступан. Ако је веза прекинута, НетВатцх ће једноставно радити преко резервног комуникационог канала и претпоставити да је све у реду. Решено додавањем додатне руте филтера:

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

Основе статичког рутирања у Микротик РоутерОС-у

Има на хабре чланак, где се детаљније разматра ситуација са НетВатцх-ом.

И да, када користите такву резервацију, адреса 8.8.8.8 ће бити повезана са једним од провајдера, тако да није добра идеја да је изаберете као ДНС извор.

Неколико речи о виртуелном рутирању и прослеђивању (ВРФ)

ВРФ технологија је дизајнирана да креира неколико виртуелних рутера у оквиру једног физичког, ову технологију широко користе телеком оператери (обично у комбинацији са МПЛС) за пружање Л3ВПН услуга клијентима са подмрежним адресама које се преклапају:
Основе статичког рутирања у Микротик РоутерОС-у

Али ВРФ у Микротику је организован на основу табела рутирања и има низ недостатака, на пример, локалне ИП адресе рутера су доступне са свих ВРФ-ова, можете прочитати више по ссылке.

пример конфигурације врф:
Основе статичког рутирања у Микротик РоутерОС-у

/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

Са уређаја повезаног на етхер2 видимо да пинг иде на адресу рутера са другог врф-а (и то је проблем), док пинг не иде на Интернет:
Основе статичког рутирања у Микротик РоутерОС-у

Да бисте приступили Интернету, потребно је да региструјете додатну руту која приступа главној табели (у врф терминологији, ово се зове цурење руте):
Основе статичког рутирања у Микротик РоутерОС-у

/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]:
Основе статичког рутирања у Микротик РоутерОС-у

/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 

Основе статичког рутирања у Микротик РоутерОС-у

Подмреже са истом адресом
Организација приступа подмрежама са истом адресом на истом рутеру користећи ВРФ и мрежну мапу:
Основе статичког рутирања у Микротик РоутерОС-у

Основна конфигурација:

/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

Додавање рута примљених преко дхцп-а у дату табелу рутирања
ВРФ може бити занимљив ако треба аутоматски да додате динамичку руту (на пример, од дхцп клијента) у одређену табелу рутирања.

Додавање интерфејса у врф:

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

Правила за слање саобраћаја (одлазног и транзитног) кроз табелу овер-исп1:

/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 у главној табели, то није потребно.
Основе статичког рутирања у Микротик РоутерОС-у

Ланци connected-in и dynamic-in в [Routing] -> [Filters]

Филтрирање рута (улазних и одлазних) је алатка која се обично користи у комбинацији са динамичким протоколима за рутирање (и стога доступна тек након инсталирања пакета усмјеравање), али постоје два занимљива ланца у долазним филтерима:

  • повезан — филтрирање повезаних рута
  • динамиц-ин - филтрирање динамичких рута које примају ППП и ДЦХП

Филтрирање вам омогућава не само да одбаците руте, већ и да промените бројне опције: удаљеност, ознака руте, коментар, опсег, циљни опсег, ...

Ово је веома прецизан алат и ако можете нешто да урадите без филтера за рутирање (али не и скрипти), онда немојте користити филтере за рутирање, немојте збуњивати себе и оне који ће после вас конфигурисати рутер. У контексту динамичког рутирања, филтери рутирања ће се користити много чешће и продуктивније.

Постављање ознаке руте за динамичке руте
Пример са кућног рутера. Имам две конфигурисане ВПН везе и саобраћај у њима треба да буде умотан у складу са табелама рутирања. У исто време, желим да се руте аутоматски креирају када се интерфејс активира:

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

Не знам зашто, вероватно грешка, али ако креирате врф за ппп интерфејс, онда ће рута до 0.0.0.0/0 и даље ући у главну табелу. Иначе би све било још лакше.

Онемогућавање повезаних рута
Понекад је ово потребно:

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

Алати за отклањање грешака

РоутерОС пружа бројне алате за отклањање грешака у рутирању:

  • [Tool]->[Tourch] - омогућава вам да видите пакете на интерфејсима
  • /ip route check - омогућава вам да видите на који гатеваи ће пакет бити послат, не ради са табелама рутирања
  • /ping routing-table=<name> и /tool traceroute routing-table=<name> - пинг и праћење коришћењем наведене табеле рутирања
  • action=log в [IP]->[Firewall] - одличан алат који вам омогућава да пратите путању пакета дуж тока пакета, ова акција је доступна у свим ланцима и табелама

Извор: ввв.хабр.цом

Додај коментар