Настройка статической маршрутизация на MikroTik

В данной статье мы рассмотрим настройку статической маршрутизации на роутере MikroTik. Да, задание маршрутов может происходить и динамически, но сегодня поговорим о процессе определения маршрута (направления) на основе правил, заданных вручную.

Основные моменты

Стоит понимать, что роутинг работает на третьем уровне (L3), для ее работы нужны IP адреса. В роутерах Mikrotik есть определённый алгоритм работы RouterOS, он описан в Packet Flow Diagram v6. Нас интересует диаграмма Packet Flow Chains.
Mikrotik Packet Flow Diagram v6
Можно задать очень интересный вопрос. Все мы знаем, что в заголовке IP пакета есть отправитель и получатель, в процессе его передачи, эти данные не меняются. Так же из определения выше мы знаем, что routing работает на L3, т.е. с IP адресами, на их основе и строятся маршруты. Но как же так, в настройках адаптера клиента указан IPшник основного шлюза, в таблицах маршрутизации так же указаны адреса роутеров, через которые доступны нужные сети. Как так получается, что источник и получатель не меняются в процессе передачи? (а они действительно не меняются).
Все дело в том, что, когда ваш клиентский комп хочет передать данные через шлюз, он делает arp-запрос на его IPшник (не broadcast), шлюз ему отвечает, происходит подстановка MAC шлюза в качестве получателя, на канальном уровне (L2) в ethernet кадр и данные отправляются. Шлюз получивший такой кадр, смотрит в IP заголовок, понимает, что получатель за пределами его локальной базы данных маршрутов, находит подходящий роут (об этом далее), делает arp-запрос нужного роутера, отправляет ethernet (если допустим это обычная сеть) кадр с MACом нужного роутера, и так до самого конца. Интересная штука выходит, IP адреса в пути следования не меняются, а MAC меняются.
Популярным вопросом у многих начинающих админов является «Я задал маршрут в нужную сеть, почему не работает?». На самом деле, пакеты долетают куда надо (если нет блокирующих правил по пути), т.е. в одну сторону. В связи с этим вам встречные вопросы:
  • А вы задали обратный маршрут до вас?
  • Как сеть назначения узнает, куда слать ответные пакеты?
Тут можно прибегнуть к маленькой хитрости, включить NAT на стороне отправителя. Но так делать не стоит. Только в особых случаях.
Алгоритмы выбора маршрута:
  • Самый высокий приоритет имеет сеть/адрес /32 маской. Чем уже маска, тем приоритетнее;
  • Default Route имеет самый наименьший приоритет 0.0.0.0/0.
После выбора маршрута происходит выбор по метрике, чем меньше метрика, тем приоритетнее:
  • distance=0 — наивысшая метрика;
  • distance=254 – наименьшая метрика;
  • distance=255 – недоступный маршрут.
Пора перейти от теории к практике.
РЕКОМЕНДАЦИЯ
Наша команда советует изучить углубленный курс по администрированию сетевых устройств MikroTik.
В курсе много лабораторных работ по итогам которых вы получите обратную связь.
После обучения вы получите диплом гос. образца РФ. Подробности и доступ к началу курса бесплатно тут.

Схема стенда

Внимательно ознакомьтесь со схемой, на примере ее мы будем показывать как на роутерах mikrotik настраивать маршрутизацию между подсетями и как мониторить шлюз и в случае его недоступности переключится на резервный.
статическая маршрутизация Mikrotik схема сети
Входные данные:
  • Имеется 4 шлюза;
  • 4 ПК;
  • Адресация между роутерами 10.10.1.0/24…10.10.4.0/24;
  • Локальные адреса клиентов192.168.1.0/24…192.168.4.0/24;
  • RouterOS 6.48.1

Настройка маршрута между R1 и R2

Мы имеем две сети за обоими роутерами, 192.168.1.0/24 и 192.168.2.0/24 соответственно. Откроем IP-Routes на R1.
таблица маршрутизации R1
У всех записей есть метки состояния. В нашем случае DAC:
  • Dinamic;
  • Active;
  • Connected.
Если роутер имеет IP на интерфейсе, то запись будет с самым высоким приоритетом. Значения всех состояний можно посмотреть на сайте mikrotik.com
Но мы не видим роут в нужную сеть. Добавим его.
добавление маршрута в сеть за R2
В Dst. Address указываем сеть/адрес назначения. Gateway указываем IP шлюза или интерфейс, через который можем передавать данные. Метрику обычно изменяю, т.к. в будущем может понадобится создавать более приоритетные. Если мы сейчас отправим ping запросы с PC1 на PC2, то ответов мы не увидим.
типичная ошибка маршрутизации
Пакеты летят, но только на передачу. В ответ мы ничего не получаем. Исправим ситуацию и пропишем обратный роут на R2.
добавление маршрута в сеть за R1
Теперь все хорошо.
проверка работы статической маршрутизации Mikrotik

Настройка R1 и R3 через R2

Для успешного прохождения трафика, на R1 нужно указать, через кого доступна 192.168.3.0/24.
создание маршрута в сеть за R3
На R2, указываем через кого доступна эта же сеть.
создание маршрута в сеть за R3 на R2
А на R3 в обратную сторону, т.е. до 192.168.1.0/24 через R2
создание маршрута в сеть за R1 на R3

Настройка резервного маршрута на микротике

Сделаем резервный хоп до 192.168.3.0/24 через R4. На R1 создадим роут, но изменим метрику, т.е. понизим.
создание маршрута с низкой метрикой до R3
После применения, запись подсвечивается, это означает что она доступна, но не активна (отсутствует A – Active). В случае недоступности через более приоритетную метрику, Mikrotik будет слать данные через R4.
просмотр резервных маршрутов
На R4 скажем, через кого доступны сети за R1 и R3.
настройка R4
На R3 создадим резервный маршрут с наименьшим приоритетом.
создание маршрута с низкой меткрикой до R1

Check Gateway

Пришло время рассказать про опцию Check Gateway. Она позволяет проверять доступность соседа по ICMP или ARP запросам. Но также вы можете ее отключить. Предлагаю на маршруте к 192.168.3.0/24 через R2, на R1 и R3 включить данную опцию с ping запросами. В этом случае, каждый Mikrotik раз в 10 сек. будет отправлять один ping запрос, если ответа не будет в течении трёх запросов, то он считается недействительным.
включение check gateway icmp
Следом на R2 включаем блокировку ICMP запросов.
создание правила Firewall блокировки icmp
И смотрим как маршруты на R1 и R3 с метрикой 10, стали unreachable.
автоматическая активация резервного маршрута
Проверим роутинг с PC1 на PC3.
проверка работоспособности Check Gateway
Но как только мы отключим правило блокировки на R2, и пройдет хотя бы один ping запрос, маршруты перестроятся обратно.

Балансировка нагрузки

ECMP — Equal-Cost Multi-Path – равнозначный маршрут. Указывая в правиле 2 и более шлюза, мы тем самым включаем ECMP. Данные тем самым будут пересылаться по принципу Round Robin.
Добавим R4 на R1 и R3 в основном маршруте клиентов друг к другу.
настройка ECMP Mikrotik
Обратите внимание на трафик на интерфейсах. На R1 он уходит через один, а возвращается через другой. Так же огорчу читателя. Что Check Gateway с ECMP не работает.
проверка балансировки трафика
Если допустим у вас канал через R2 200Mb/s а через R3 100Mb/s, то можно нагрузить первый канал в 2 (а то и более) раза больше, чем второй.
балансировка нагрузки ECMP
Хотелось бы напоследок отметить, что статическая маршрутизация как на микротик так и на других роутерах является самой экономичной моделью, т.к. на ее работу не нужно включать динамические протоколы маршрутизации. Но сложность администрирования и большая вероятность допущения ошибок являются основными моментами, которые нужно учесть при проектировании.
РЕКОМЕНДАЦИЯ
Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в углубленном курсе «Администрирование сетевых устройств MikroTik». В курсе много практических лабораторных работ по результату выполнения которых вы получите обратную связь. После окончания обучения вы получите диплом гос. образца РФ. Подробности и доступ к началу курса бесплатно тут.