В этой статье описана самая полная инструкция, как настроить роутер MikroTik на два провайдера.
Одновременное подключение к двум интернет-провайдерам используют, чтобы организовать резервный канал связи на тот случай, если пропадет связь с одним из провайдеров. В этом случае роутер автоматически переключится на второго провайдера, и вы сможете продолжать работать в интернете. Подключение к двум провайдерам используют в организациях, где нужно обеспечить постоянный доступ сотрудников к интернету.
Для обеспечения отказоустойчивого интернет-канала вам понадобится роутер, который поддерживает настройку на несколько провайдеров. Роутеры MikroTik прекрасно подходят для данной задачи.
Проверка переключения интернета между двумя провайдерами
Проверим, как работает переключение между двумя провайдерами.
- Откройте меню IP — Routes. Маршрут второго провайдера должен быть серого цвета, т.е. не активен;



Настройка роутера MikroTik на два провайдера работает правильно. Теперь можно увеличить интервал пингования сервера Google.
Предположим, что у нас есть два интернет провайдера. Первый получает настройки по L2TP, для второго необходимо задать настройки статически, а нам требуется организовать безотказную работу интернет соединения. То есть, в случае отказа первого интернет провайдера маршрутизатор должен автоматически переключиться на второго (резервного) провайдера. А при восстановлении связи с первым провайдером маршрутизатор должен снова начать с ним работать.
Последовательность действий. Подключаем маршрутизатор к порту №3 и соответственно LAN интерфейсу ПК. Для конфигурации RouterOS будет использоваться утилита winbox. Заходим по MAC-адресу и авторизуемся. Видим интерфейс конфигурации маршрутизатора. (Рис. 1)

Рис. 1. Интерфейс конфигурации RouterOS
Первое, что мы делаем – настраиваем интерфейсы провайдера «1» и провайдера «2» Рис.2, а так же настраиваем LAN для портов 3, 4 и 5.

Рис. 2. Настройка провайдера «1» и провайдера «2»
В данном случае Интерфейс-1 принадлежит провайдеру «1» (ISP1 – имя для удобства) Интерфейс-2 принадлежит провайдеру «2» (ISP2). Для организации LAN переходим в пункт меню «Bridge» и добавляем интерфейс c именем LAN. (Рис.3).

Рис. 3. Организация LAN
Указывает порты, которые будут относиться к внутренней сети (Рис. 4)

Рис. 4. Добавление портов в LAN
Теперь необходимо добавить IP-адреса провайдеров, а так же указать IP-адрес шлюза нашей локальной сети (Рис. 5).
Описание: Первое, что мы делаем, добавляем шлюз локальной сети (цифры 4, 5). Интерфейс указываем LAN. Второе – добавляем статический адрес второго провайдера (цифры 6, 7)

Рис. 5. Добавление адресов для интерфейсов
Так как организация подключения с первым провайдером осуществляется по L2TP необходимо добавить L2TP-клиента (Рис. 6)
Замечание: Добавляем L2TP-client (Цифра 2). Указываем соответствующие параметры во вкладке Dial-out, а именно адрес сервера, логин и пароль которые выданы первым провайдером (цифры 4, 5 и 6).

Рис. 6. Добавление L2TP-клиента
После добавления клиента во вкладке status получим соединение. (Рис. 7)

Рис. 7. Статус L2TP-соединения
Теперь займемся организацией DHCP-сервера для раздачи адресов нашим клиентам внутренней сети. Первое что сделаем, создадим pool выдаваемых адресов (Рис. 8), а затем настроим сам DHCP-сервер. (Рис 9).

Рис. 8. Создание pool’а выдаваемых адресов

Рис. 9. Добавление и настройка DHCP-сервера
Описание DHCP-сервера: Добавляем сервер с именем (server1) к интерфейсу внутренней сети LAN c пулом адресов который создавали ранее. В network указываем, какие параметры передавать серверу клиентам.
Теперь нам необходимо добавить статические маршруты, так как всё взаимодействие между сетями осуществляется в соответствии с таблицей маршрутизации. Ее управление в RouterOS осуществляется в меню «Routes». Адресация с локальной сетью и с внутренними сетями провайдеров была добавлена динамически. Осталось добавить маршруты в интернет (на адрес 0.0.0.0/0) через шлюзы провайдеров. (Рис. 10).

Рис. 10. Добавление статических маршрутов
Далее, необходимо организовать переключение каналов в случае недоступности 1 канала. В ОС роутера есть встроенная утилита «Netwatch», которая позволяет отслеживать состояние хостов в сети посредством отправки ICMP-запросов (ping) и выполнять какие-либо действия на основе их доступности. Мы будем отслеживать IP-адрес 8.8.4.4 через первый канал, и в случае его недоступности переключать маршруты на работу по второму.
Создаем новый «Netwatch host», в графе «Host» указываем отслеживаемый IP-адрес, а в «Interval» — частоту осуществляемых проверок. (Рис. 11).

Рис. 11. Настройка переключения каналов
И в заключение, в закладке Up (цифра 5) необходимо прописать следующее правило:
Настройка правил для проходящего трафика
Материал является вводным и предназначен для знакомства с вопросом управления сетью с двумя провайдерами.
Приступая к выполнению задачи я рассчитывал на легкую прогулку в тени дубового парка, созерцая природу и предаваясь размышлениям… Однако позже стало понятно, что это будет тернистый и сложный поход сквозь горные реки с подводными камнями, обледеневшими скалами и глубокими пещерами.
Через медитации, борьбу со стихиями и собственной тупостью преодоление себя я, все таки, достиг желанной нирваны.
В этой статье я не только предоставлю готовый набор правил, но и постараюсь максимально доступно объяснить почему и как именно они работают.

Конкретно в моем случае, нужно было настроить роутер так, чтобы web-сервер в локальной сети за ним был доступен по IP любого из 3-х провайдеров.
Заключение
Очень рад, если мои объяснения понятны, а данный труд станет полезен.
Ушел медитировать, всем удачи!
Автоматическое переключение между двумя провайдерами в MikroTik
Это пример будет состоять из двух линий интернета – основной и резервной. Резервная линия будет включать лишь тогда, когда основная будет недоступной.

В маршрутизаторах(роутерах) MikroTik чаще всего используют два самых распространённых метода по ограничиванию скорости для локальных подключений:
- С резервированием канала. Имеет популярность в QOS трафике – звук и видео, тем самым не позволяет создавать прерывания при загрузке общего канала.
- Равномерное распределение ширины канала на всех участников. Продуктивный способ использования интернет канала на всю ширину.
И масса других вариантов, когда можно комбинировать оба способа в разной последовательности. В рамках данной статьи рассмотрим п.2, как более часто встречаемое в частном и корпоративном сегменте.
Для использования метода для автоматического переключения, маршруты нужно привести значением:
Провайдер-1 Distance = 1;
Настройка находится в IP->Routes

Провайдер-2 Distance = 2.

Методы указания Distance возлагаются на фантазию специалиста по настройке MikroTik.
Маркировка маршрутов Mangle
Настройка находится в IP->Firewall-Mangle



Поддержи автора статьи, сделай клик по рекламе ↓↓↓
Аналогичную маркировку в разделе Mangle нужно создать для Group-2.
Настройка двух провайдеров на MikroTik, балансировка и автопереключение

Краткое описание: Руководство по настройке нескольких провайдеров на маршрутизаторе(роутере) MikroTik. Описание популярных моделей по распределению трафика между провайдерами: ручная и автоматическая балансировка, а также автопереключение между каналами.
Настройка переключения интернет каналов между двумя провайдерами
Для настройки переключения интернет каналов между двумя провайдерами будем использовать маршруты (Routes) и встроенную утилиту Netwatch.
У нас будет два маршрута, через которые может идти интернет трафик. Весь трафик будет идти по умолчанию через 1-го провайдера.
Если вдруг пропадет связь с 1-ым провайдером, то мы активируем 2-ой маршрут, и весь трафик пойдет через 2-го провайдера.
Как только восстановится связь через 1-го провайдера, мы деактивируем 2-ой маршрут, и весь трафик пойдет через 1-го провайдера.
Утилита Netwatch поможет пинговать ip-адрес в интернете и выполнять скрипты, если ip-адрес перестал пинговаться или снова начал. Она будет выполнять активацию и деактивацию маршрута.
Сначала удалим маршрут через первого провайдера, который создался автоматически, поскольку мы не можем редактировать его свойства.

Теперь изменим параметры маршрута второго провайдера:



Дальше нужно добавить маршрут первого провайдера заново, но прежде определим, какой IP-адрес шлюза выдает первый провайдер.
- Откройте меню IP — DHCP Client;
- Сделайте двойной щелчок левой кнопкой мыши на интерфейсе ether1;
- Перейдите на вкладку Status;
- Выпишите IP-адрес шлюза из поля Gateway. Он будет нужен при создании маршрута через первого провайдера.

Теперь добавляем маршрут через первого провайдера:


3-й маршрут понадобится для того, чтобы сервер Google по умолчанию пинговался только через 1-го провайдера.


Также добавим в Firewall правило, которое запретит пинговать ip-адрес 8.8.4.4 через 2-го провайдера. Иначе утилита Netwatch подумает, что связь с 1-ым провайдером восстановилась, и будет постоянно переключать маршруты по кругу.


Netwatch будет проверять связь с интернетом путем пингования сервера Google с IP-адресом 8.8.4.4. Как только сервер перестанет пинговаться, выполнится скрипт, который активирует 2-й маршрут и трафик пойдет через 2-го провайдера. Как только связь через 1-го провайдера восстановится, то выполнится другой скрипт, который деактивирует 2-й маршрут и трафик пойдет через 1-го провайдера.



Настройка резервирования интернета в MikroTik, автопереключение провайдера через Netwatch

В расширении статьи “Настройка двух провайдеров на MikroTik, балансировка и автопереключение → ” будет рассмотрен сценарий, когда маршрут не работает, но при этом не переключается по параметру Distance:
- не обновляется IP по DHCP;
- шлюз провайдера виден, а за ним нет сети;
- не корректно отрабатывает PPPOE подключение при плохой связи.
Для решения задачи по корректному автопереключению стоит обратиться к утилите Netwatch, принцип которой состоит из действий: отправка ICMP запросов будет сопровождаться выполнением скрипта под изменение состояния UP и DOWN. В обоих сценариях будет заложена логика, в соответствии с техническим требованием.
Настройка Netwatch
В каждом действии Up и Down правило Netwatch-1 будет наблюдать за статусом правила Netwatch-2 и в зависимости от значения выполнять переключение между балансировкой и отдельным провайдером. Это также распространяется в отношении работы Netwatch-2.
Поддержи автора статьи, сделай клик по рекламе ↓↓↓
Есть вопросы или предложения по настройке Netwatch для 2 провайдеров в MikroTik? Активно предлагай свой вариант настройки! Оставить комментарий →
Не работает автоматические переключение интернета в MikroTik
Достаточная большая часть статических маршрутов с указанным Distance и параметром Ping может не отработать при отсутствии интернета на основном канале. В этом случае стоит обратиться к утилите Netwatch, которая лучше отработает сценарий при изменении состояния интерфейса с UP на DOWN и в обратную сторону. Как правильно настроить правила для переключения между провайдера используя утилиту Netwatch в MikroTik рассмотрено в статье “Настройка резервирования интернета в MikroTik, автопереключение провайдера через Netwatch → ”
или по IP
Список всех соединений можно посмотреть в IP→Firewall→Connection

Поддержи автора статьи, сделай клик по рекламе ↓↓↓
Указать Distance в типе подключения
PPPoe
Настройка находится в PPP->Interface

DHCP клиент
Настройка находится в IP->DHCP client

Поддержи автора статьи, сделай клик по рекламе ↓↓↓

Настройка NAT
Чтобы компьютеры получили выход в интернет, необходимо настроить NAT.
Добавляем правило NAT для первого провайдера:


Добавляем правило NAT для второго провайдера:
- На вкладке NAT нажмите кнопку Add (синий крестик);
- В появившемся окне на вкладке General в списке Chain должно быть выбрано srcnat;
- В списке Out. Interface выберите интерфейс второго провайдера ether2;
- Перейдите на вкладку Action;


Теперь на подключенных к роутеру компьютерах должен появиться интернет. Проверьте это.
Нужна настройка 2 провайдеров в MikroTik?
Настройка сервисов на маршрутизаторах MikroTik: подключение интернета, DHCP, brige, VLAN, WiFi, Capsman, VPN, IpSec, PPTP, L2TP, Mangle, NAT, проброс портов, маршрутизация(routing), удаленное подключение и объединение офисов.
Балансировка нагрузки между двумя интернет провайдерами в MikroTik
Пропускная способность канала и его стабильность выносятся за рамки данной настройки. Предположим есть две линии интернета по 100мб.
Настройка находится в IP->Routes

Суть этого правила в том, что первый узел будет переадресован к провайдеру-1, а второй – к провайдеру-2. Если ширина каналов не равномерная, к примеру у первого провайдера 50Мб, а у второго 100Мб, то правило можно привести к виду

Поддержи автора статьи, сделай клик по рекламе ↓↓↓
Создаем интерфейс Bridge-local и объединяем в нем LAN порты и Wi-Fi
Чтобы LAN порты 3-5 объединить с Wi-Fi в одну сеть, нужно создать bridge интерфейс, и добавить в него мастер порт свитча ether3 и Wi-Fi интерфейс wlan1.
Создаем интерфейс bridge-local:

Добавляем главный порт свитча ether3 в bridge-local:

Добавляем Wi-Fi интерфейс в bridge-local:

Назначаем IP-адрес интерфейсу bridge-local:

Настраиваем DHCP сервер локальной сети.
Чтобы компьютеры, подключенные к роутеру, получали сетевые настройки автоматически, настроим DHCP сервер:








Как работает автоматическое переключение интернета в MikroTik
Как было уже описано ранее, в основе конфигурации две линии интернета – основная и резервная. Штатная работа маршрутизации заключается в полном использовании основной линии, в то время как резервная будет простаивать.
Настройка находится в IP->Routes

Но как только основная линия станет недоступной, на основании значения Distance произойдет переключение на резервную линию. Резервная линия будет оставаться в работе до тех пора, пока интернет на основной линии не восстановится. Это полностью автоматический процесс.

Поддержи автора статьи, сделай клик по рекламе ↓↓↓
Настройка 2-го WAN порта
2-й порт настраиваем на статический IP-адрес 20.20.20.20, шлюз 20.20.20.1 и маску 255.255.255.0

Настоим IP-адрес интернет шлюза:

Добавим IP-адрес DNS сервера:


При переключении провайдеров в MikroTik не работает SIP или видеонаблюдение
Дело в том, что когда происходит переключение между провайдерами, старое соединение между внешним SIP телефоном и АТС “Asterisk” продолжает быть активным, но не работает из-за перестроенной таблицы маршрутизации. В этом случае нужно дополнить правила переключения провайдеров очисткой:
Настройка Firewall
Правилами необходимо запретить отправку пакета для тестирования статуса интернет канала через другой интерфейс. Т.е. конкретный PING должен уходить только через определённого провайдера.
Настройка находится в основном меню Ip→Firewall→Filter Rules
или с дополнением по порту
Описание подключений
В примере мы будем использовать роутер MikroTik RB951Ui-2HnD.
В 1-ый порт роутера подключен кабель от 1-го провайдера, во 2-ой порт подключен кабель от 2-го провайдера, порты 3-5 и Wi-Fi используются для подключения компьютеров локальной сети.

1-й порт будет настроен на динамическое получение сетевых настроек от провайдера по DHCP. Провайдер выдает роутеру динамический IP-адрес 10.10.10.10
2-й порт будет настроен вручную на статический IP-адрес 20.20.20.20, шлюз 20.20.20.1 и маску 255.255.255.0
Настройка маршрутизации
Будет создано три маршрута: отдельный для балансировки и два отдельных маршрута на случай падения одного из провайдеров.
Настройка находится в основном меню Ip→Routes→Routes
Запрет на отправку пакетов для Netwatch через другие интерфейсы
Настройка находится IP→Firewall→Filter rules


Настройка LAN портов 3-5 и Wi-Fi
LAN порты 3-5 будут объединены с Wi-Fi интерфейсом в единую локальную сеть, к которой будут подключаться компьютеры.
Балансировка 2 провайдеров используя Mangle
Этот пример от всех остальных будет отличаться тем, чтобы в рамках настройки внимание также будет уделено соединениям. Переключение станет более мягким и незаметным и это будет достигнуто благодаря маркировке соединений и частичную их очистку при переключении между провайдерами.
Когда работают оба провайдеры, нагрузка распределяется согласно ручному распределению в Address list.
ISP-1= Down & ISP-2= Up → соединения Group-1 очищаются и начинают работать через ISP-2. При этом соединения Group-2 остаются не тронутыми. При восстановлении связи с ISP-1, соединения Group-1 также очищаются и трафик вместо ISP-2 начинает проходить через ISP-1.
ISP-1= Up & ISP-2= Down → соединения Group-2 очищаются и начинают работать через ISP-1. При этом соединения Group-1 остаются не тронутыми. При восстановлении связи с ISP-2, соединения Group-2 также очищаются и трафик вместо ISP-1 начинает проходить через ISP-2.
Настройка Wi-Fi
Сначала включим Wi-Fi:
- Откройте меню Wireless;
- Нажмите левой кнопкой мыши на интерфейсе wlan1 и нажмите кнопку Enable (синяя галочка).

Создаем пароль для подключения к точке доступа MikroTik:

Настраиваем параметры Wi-Fi точки MikroTik:

TCP соединений
Одновременное использование двух провайдеров в MikroTik
Будет рассмотрена ситуация, когда нужно использовать одновременно две линии интернета по принципу:
- Группа-1(192.168.0.2-192.168.0.100) – через провайдера-1;
- Группа-2(192.168.0.101-192.168.0.200) – через провайдера-2;
Различные варианты это схемы чаще всего используются для серверов, но также и популярны в сетях с большой нагрузкой.
Для удобства редактирования групп будут созданы Address List, в которые необходимо добавлять или удалять узлы, которые будут назначать или провайдеру-1 или провайдеру-2.
Настройка находится в IP->Firewall-Address Lists


Подготовленные адрес листы, а точнее маршруты в интернет нужно промаркировать с помощью Mangle
Часть 1.
Для начала пробежимся по всем настройкам, дабы самые нетерпеливые могли скопипастить не читая.
Версия RouterOS:
Не помню начиная с какой версии RouterOS появилась эта фишка. Она позволяет группировать интерфейсы, что весьма удобно (например, в правилах /ip firewall). У меня создана группа из 3-х WAN-интерфейсов.
AcidVenom подсказал, что в 6.36
IP-адреса (адреса, по понятным причинам, «левые»):
Для организации Failover’а я настроил рекурсивную маршрутизацию, подробнее расскажу в 2-ой части.
Firewall (для данной публикации я сознательно привожу правила, разрешающие все.
Не делайте так!):
dst и src nat:
Оглавление
Для настройки двух провайдеров маршрутизатор(роутер) MikroTik необходимо привести к Базовой настройке → .
Создание статического маршрута для маркированных узлов
Настройка находится в IP->Routes


Стоит обратить внимание на параметр Distance, в этой схеме он не участвует. Но если нужно расширить эту схему автоматическим переключением на резервную линию между провайдерами, достаточно добавить два статических маршрута со значением distance 1 и 2.
Объединяем LAN порты 3-5 в свитч
Повторите тоже самое для интерфейса ether5.

Напротив портов ether4 и ether5 появится буква S (Slave — ведомый).

Настройка 1-го WAN порта
Настраиваем 1-й порт на динамическое получение сетевых настроек от провайдера по DHCP.

Теперь мы получили IP адрес от провайдера, который отображается в столбце IP Address.


Netwatch не работает, основной провайдер меняет шлюз у DHCP client
Для решения этой проблемы можно адаптировать такие скрипты:
Вариант-1
который сравнивает установленное значение gateway провайдера ISP-1 в маршрутах Routes со значением gateway, установленного в DHCP client.
Вариант-2
В свойствах DHCP клиента добавить скрипт
который будет отрабатывать на любое изменение статуса DHCP клиента, удаляя и создавая новый маршрут в таблице маршрутизации.
Создание правила Netwatch
Настройка находится Tools→Netwatch


Поддержи автора статьи, сделай клик по рекламе ↓↓↓

Сброс конфигурации по умолчанию
С помощью программы Winbox сбрасываем заводскую конфигурацию по умолчанию, чтобы настроить роутер MikroTik на два провайдера с нуля:
- Откройте меню System — ResetConfiguration;
- Поставьте галочку No Default Configuration;
- Нажмите ResetConfiguration.


После перезагрузки в Winbox выберите в списке MAC адрес устройства, и подключитесь с пользователем admin без пароля.

Настройка Netwatch для балансировки нагрузки двух провайдеров
Данные правила будут регулировать работу интернет каналов, если один из провайдеров перестанет работать. Ниже приведён отрезок из рабочей конфигурации, который передаваёт последовательность настроек.
Динамическая и статическая маршрутизация в MikroTik
Для регулирования последовательностью движения трафика, в свойствах маршрута(route) есть атрибут Distance. Значением этого атрибута и нужно манипулировать для указания в какой из интернет каналов в будет убегать трафик.
Настройка находится в IP->Routes

При появлении 2-ого провайдера нужно контролировать значение Distance. Есть два пути для этого действия:
UDP соединений
Балансировка и резервирование в MikroTik используя NTH
Можно также применить схему, в которой каждое соединение будет промаркировано по принципу:
четный-пакет = провайдер-1
нечетный-пакет = провайдер-2
Такой подход к балансировке будет совмещать два свойства: балансировка + резервирование.
Балансировка. Когда оба провайдера будут работать, нагрузка будет распределяться 50:50.
Резервирование. Если один из провайдеров перестанет работать – его нагрузка будет назначена второму провайдеру.
Часть 2.
Рассмотрим все подробнее.
/ip route
В первых трех строчках мы указываем default gateway каждого из 3-х наших провайдеров.
Маршруты имеют одинаковый вес (distance), но работают в разных таблицах маршрутизации.
Другими словами, эти маршруты работают для пакетов промаркированных соответствующим тегом (routing-mark). Теги пакетам мы будем навешивать в /ip firewall mangle (о чем я подобно расскажу ниже).
Следующие 3 строки — указание маршрутов по умолчанию в основной таблице маршрутизации.
Здесь стоит обратить внимание на:
- Параметр distance. Для каждого маршрута разный и, соответственно, «вес» маршрутов тоже разный.
ISP1 — основной, за ним ISP2 и ISP3 замыкает, т.е. при отказе провайдера ISP1 работать будем через ISP2, если и ISP2 почил в бозе, то за дело возьмется ISP3.
На самом деле трафик отправится активному провайдеру, а дальше тот отправит его в Интернет через свои аплинки.
Во-первых, определимся с некоторыми терминами.
Nexthop — следующий прыжок, если дословно. Следующий шлюз/роутер/маршрутизатор на пути следования пакета из точки А(от моего роутера, например) в точку Б (допустим до гуглового DNS 8.8.8.8), т.е. следующий транзитный участок, на котором будет обрабатываться пакет. В переводе будет использоваться словосочетание “следующий хоп” (простите за англицизм).
Immediate nexthop — следующий шлюз/роутер/маршрутизатор на пути следования пакета из точки А в точку Б, доступный непосредственно. Для моего домашнего MikroTik, с маршрутом по-умолчанию:
89.189.163.1 — это и есть immediate nexthop, т.к. доступен он через ether1-gateway. В переводе будет использоваться словосочетание “непосредственно доступный следующий хоп”.
Connected route — связанный маршрут. Маршрут, шлюз которого доступен непосредственно.
Gateway — сетевой шлюз/роутер/маршрутизатор.
Я буду пользоваться всеми тремя вариантами перевода.
scope — Используется в механизме поиска следующего хопа, т.е. решения какой же хоп станет следующим. Нужный маршрут может быть выбран только среди маршрутов, значения scope которых меньше либо равно значению target-scope. Значения по-умолчанию зависят от протокола:
- связанные маршруты: 10 (если интерфейс запущен(running))
- OSPF, RIP, MME маршруты: 20
- статические маршруты: 30
- BGP маршруты: 40
- связанные маршруты: 200 (если интерфейс не запущен)
Табличка значений обоих параметров.

Поиск следующего хопа.
Поиск следующего хопа является частью процесса выбора маршрута.
Маршрутам, находящимся в FIB, нужен интерфейс, соответствующий каждому из адресов шлюзов. Адрес следующего хопа-шлюза должен быть непосредственно доступен через этот интерфейс. Интерфейс, который следует использовать для посылки исходящего пакета каждому из шлюзов, находится с помощью поиска следующего хопа.
Некоторые маршруты (например, iBGP), в качестве адреса шлюза, могут иметь адрес принадлежащий маршрутизатору, находящемуся через несколько прыжков-шлюзов от нашего MikroTik. Для установки таких маршрутов в FIB необходимо найти адрес шлюза, доступного непосредственно (an immediate nexthop), т.е. напрямую от нас, который и будет использоваться для достижения адреса шлюза в этом маршруте. Непосредственный адрес следующего хопа также может быть найден при помощи механизма поиска следующего хопа.
Поиск следующего хопа выполняется только в основной таблице маршрутизации main, даже для маршрутов, имеющих отличное значение параметра routing-mark. Это необходимо для ограничения установки маршрутов, которые могут быть использованы для поиска непосредственно доступных хопов (immediate nexthops). В маршрутах для протоколов RIP или OSPF предполагается, что следующий маршрутизатор доступен непосредственно и должен быть найдены используя только связанные маршруты(connected routes).
Маршруты с именем интерфейса в качестве шлюза не используются в поиске следующего хопа. Если есть маршрут с именем интерфейса, а также маршрут с активным IP-адресом, то маршрут с интерфейсом игнорируется.
Маршруты, имеющие значение параметра scope больше максимально допустимого не используются в поиске следующего хопа. В каждом маршруте указывается максимально допустимое значение параметра scope, для его следующего хопа, в параметре target-scope. Значение по-умолчанию для этого параметра позволяет выполнить поиск следующего хопа только через связанные маршруты (connected routes), за исключением iBGP-маршрутов, которые имеют большее значение по-умолчанию и могут выполнить поиск следующего хопа также через IGP и статические маршруты.

Интерфейс и адрес следующего непосредственно доступного маршрутизатора выбираются основываясь на результатах поиска следующего хопа:
- Если наиболее точный активный маршрут, который был обнаружен в ходе поиска адреса следующего хопа, является связанным маршрутом, то интерфейс этого связанного маршрута используется как интерфейс следующего хопа и шлюз помечается как reachable. После того как маршрутизатор становится непосредственно доступным через этот интерфейс (именно это и следует понимать как “связанный маршрут” или “connected route”) его адрес используется как адрес непосредственно доступного маршрутизатора (immediate nexthop address).
Он и принимает, и таким образом маршруты по-умолчанию через:
Надеюсь мой перевод и объяснение будут вам полезны.
Пока самые охочие до знаний читают под спойлером, расскажу немого короче и проще.
Когда мы указываем scope=10 в последних трех строках, мы даем понять MikroTik’у, что:
/ip firewall mangle
Для пояснения правил этого раздела пригласим несколько помощников.
- MANGLE — данная таблица предназначена для операций по классификации и маркировке пакетов и соединений, а также модификации заголовков пакетов (поля TTL и TOS) (викиучебник).
- PREROUTING — позволяет модифицировать пакет до принятия решения о маршрутизации.
- INPUT — позволяет модифицировать пакет, предназначенный самому хосту.
- FORWARD — цепочка, позволяющая модифицировать транзитные пакеты.
- OUTPUT — позволяет модифицировать пакеты, исходящие от самого хоста.
- POSTROUTING — дает возможность модифицировать все исходящие пакеты, как сгенерированные самим хостом, так и транзитные.
Начем с первых двух.
В первом мы сообщаем роутеру, что все входящие chain=input соединения на интерфейс ISP1 нужно маркировать action=mark-connection new-connection-mark=ISP1-conn, а так же указаваем passthrough=yes, чтобы пакет, после прохождения этого правила, не покинул таблицу и продолжил следование по правилам.
Во втором говорим MikroTik’у, чтобы он отловил исходящие соединения chain=output помеченные как ISP1-conn и присвоил им метку роутинга(для помещения в соответствующую таблицу маршрутизации, вы ведь помните первые три маршрута?), а также сообщаем passthrough=no , как бы говоря — нечего делать здесь пакету после этого правила, т.е. пакет покинет таблицу.
Все описанное выше справедливо и для ISP2 и для ISP3. Таким образом мы добились того, что роутер ответит именно с того интерфейса, на который к нему прийдет запрос.
Переходим к завершающим шести правилам.
Уже понятно, они также разбиты на подгруппы по 2, для каждого из наших ISP.
Первое из них поручает роутеру следить за цепочкой FORWARD и если происходит соединение через интерфейс ISP1, то оно маркируется action=mark-connection новым тегом new-connection-mark=ISP1-conn-f (обратите внимание! отличным от тега трафика самого маршрутизатора, в данном случае мы маркируем транзитный трафик). passthrough=no, т.к. мы не хотим, чтобы пакет, после попадания в это правило, обрабатывался в таблице как-то еще.
Второе навешивает нужную метку роутинга new-routing-mark=ISP1-route в цепочке PREROUTING, т.е. ДО принятия решения о маршрутизации, и отслеживает трафик пришедший к нам из локальной сети in-interface=bridge.
Здесь нас выручает механизм CONNECTION TRACKING, позволяющий поймать промаркированные правилом выше соединения из локальной сети(от WEB-сервера) и навесить им необходимый тег роутинга.
Это позволяет транзитному трафику(здесь к/от web-сервера) идти именно тем путем, которым он и пришел, т.е. пришел через ISP1 — уходи через него же.
Как настроить Netwatch в MikroTik для переключения между провайдерами
Схема интернет подключений будет состоять из двух провайдеров, между которыми нужно организовать автоматическое переключение в случае обрыва. Как было упомянуто выше, параметр Distance и Ping не всегда может решить эту проблему. Комплекс правил по автопереключению будет состоять из настроек таких разделов:
- Создание записи Netwatch с соответствующими сценариями при состоянии UP и DOWN;
- Запрет отправки пакетов узлов указанных в Netwatch через другие интерфейсы(Firewall);
- Создание статических маршрутов(Routes) для трафика Netwatch.
Создание статического маршрута для работы Netwatch
Настройка находится IP→Routes

Создание статического маршрута
На примере DHCP client: необходимо зафиксировать шлюз, который указан в динамическом маршруте.

Отключить добавление маршрута по умолчанию
Настройка находится в IP->DHCP client

Создать статический маршрут, где
Dst. Address = 0.0.0.0/0;
Gateway = зафиксированный шлюз.
Настройка находится в IP->Routes

Также этот способ является методом по умолчанию описания свойств интернет подключения для статического IP адреса.