MikroTik настройка Dual WAN

В данной статье мы затронем тему маркировки пакетов (mangle) и настройку Dual WAN на MikroTik как одну из основных тем. В Mikrotik данный функционал реализован через Mangle — используется для того чтобы пометить пакеты/соединения для дальнейшей их обработки очередями (простыми или деревьями), NAT правилами, таблицами маршрутизации или изменению таких параметров как:
  • TOS (DSCP);
  • TTL;
  • MSS;
На одном пакете/соединении может быть только одна метка
Данные метки работают только на определённом роутере и не передаются по сети другим участникам, хотя при желании можно на это повлиять.
РЕКОМЕНДАЦИЯ
Наша команда советует изучить углубленный курс по администрированию сетевых устройств MikroTik.
В курсе много лабораторных работ по итогам которых вы получите обратную связь.
После обучения вы получите диплом гос. образца РФ. Подробности и доступ к началу курса бесплатно тут.
В сегодняшнем примере мы будем настраивать Dual WAN. Предполагается что у вас есть 2 провайдера, основной и резервный, с помощью Mangle мы сделаем правильную маркировку и выпустим клиентов через основного провайдера. Так же прикрутим скрипт, который будет проверять доступность выхода в интернет через обоих провайдеров, и в случае недоступности через основной, переключать на резервный канал.

Схема сети

  • Предположим, что у нас имеется:
  • Широковещательная плоская 192.168.1.0/24;
  • Два белых статических IP адреса;
  • Один роутер;
  • Два свича;
  • RouterOS 6.48.1.
схема сети Dual WAN Mikrotik

Настройка правил NAT

Для того чтобы наши внутренние клиент выходили в интернет, нам нужно 2 правила NAT. Один под основного провайдера, другой для резервного.
настройка NAT правил для Dual WAN

Маркировка трафика

Следующая задача, промаркировать трафик для каждого провайдера, на вход и на выход. Открываем на микротике IP – Firewall – Mangle, создаём новое правило. Интересует цепочка Prerouting, входящий интерфейс первого оператора. Маркируем соединение и задаём понятное имя марки. Для оптимизации нагрузки можно выбрать только новые соединения.
создание правила prepouting для ISP1
Следующим правилом создаём маркировку роутинга для нашей ранее созданной метки соединения.
Mark routing ISP1
Теперь займемся output. На основе коннекшен марки создаём правило роутинга.
Mark routing output ISP1
Последним правилом маркировки для ISP1 будет цепочка output.
IP адрес на Output Mangle ISP1
Для первого оператора метки заданы. По аналогии создаём и для второго, только придумываем другие имена меткам и в последнем правиле указываем соответствующий адрес.
Задаём соответствующий входящий интерфейс.
правило Mangle prepouting для ISP2
Создаём маркировку роутинга на основе connection mark.
Mark routing для ISP2
И 2 правила на output.
помечаем исходящий трафик через ISP2
В итоге вся маркировка трафика у нас будет выглядеть таким образов.
Mangle маркировка трафика Mikrotik

Настройка Routing Rules

Следующий этап, это настройка правил и таблиц маршрутизации. Следует разнести трафик по соответствующим провайдерам. Создаём Rule с src address первого оператора, впишем вручную новую table.
Route rules для адреса ISP1
По аналогии и для второго провайдера.
список правил маршрутизации
Порядок имеет значение. Необходимо указать все наши локальные сети, трафик к ним будет идти через табличку main.
правило для локальной сети
А теперь все наши mark routing выпустим через соответствующие таблички.
отправляем помеченные соединения в таблицу маршрутизации

Создание таблиц маршрутизации

В основной таблице маршрутизации нужно создать 2 маршрута, основной и резервный. Для этого вам нужно определиться кто из них какую роль будет выполнять. Т.к. активный будет всегда один. У первого метрика 10.
создание маршрута в таблицу main
У второго метрика 20.
добавление резервного маршрута ISP2
Открываем table-ISP1 и создаём default route с любой метрикой через шлюз провайдера.
Routing Table для основного провайдера
Аналогично и для table-ISP2. Не перепутайте шлюзы.
Routing Table для резервного провайдера
Чуть не забыл, обязательно дадим комментарии записям в main. Общий вид Route List следующий.
коментируем маршруты Mikrotik

Настройка переключения интернет-каналов

Есть несколько способов отслеживания состояния. Один из них — это проверка провайдерского шлюза arp или ping запросами в самой настройке маршрута. Но он не эффективен, т.к. gateway может быть и доступен, а доступ в инет за ним нет. Как один из вариантов, проверять доступность на основе пинг запросов каких-либо крупных сервисов, которые доступны круглосуточно. Встроенных средств у Mikrotik нет, и по этой причине будем использовать простенький скрипт ниже.
#Main interface name
:global MainIf ether1
#Failover interface name
:global RsrvIf ether2
:local PingCount 1
:local PingTargets {77.88.8.8; 8.8.8.8}
:local host
:local MainIfInetOk false
:local RsrvIfInetOk false
:local MainPings 0
:local RsrvPings 0
foreach host in=$PingTargets do={
:local res [/ping $host count=$PingCount interface=$MainIf]
:set MainPings ($MainPings + $res)
:local res [/ping $host count=$PingCount interface=$RsrvIf]
:set RsrvPings ($RsrvPings + $res)
:delay 1
}
:set MainIfInetOk ($MainPings >= 1)
:set RsrvIfInetOk ($RsrvPings >= 1)
:put "MainIfInetOk=$MainIfInetOk"
:put "RsrvIfInetOk=$RsrvIfInetOk"
:local MainGWDistance [/ip route get [find comment=" ISP1-WAN-Route"] distance]
:local RsrvGWDistance [/ip route get [find comment=" ISP2-WAN-Route"] distance]
:put "MainGWDistance=$MainGWDistance"
:put "RsrvGWDistance=$RsrvGWDistance"
if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={
/ip route set [find comment="ISP1-WAN-Route"] distance=10
/ip route set [find comment="ISP2-WAN-Route"] distance=20
:put "switched to MAIN internet connection"
/log info "switched to MAIN internet connection"
/ip firewall connection remove [find]
}
if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance <= $RsrvGWDistance)) do={
/ip route set [find comment="ISP1-WAN-Route"] distance=20
/ip route set [find comment="ISP2-WAN-Route"] distance=10
:put "switched to RESERVE internet connection"
/log info "switched to RESERVE internet connection"
/ip firewall connection remove [find]
}
Основные параметры, которые вам нужно будет исправить это:
  • :global MainIf ether1 – основной интерфейс;
  • :global RsrvIf ether2 – резервный интерфейс;
  • :local PingTargets {77.88.8.8; 8.8.8.8} – таргеты, которые будите мониторить;
  • :local MainGWDistance – переменная метрики для ISP1;
  • :local RsrvGWDistance – переменная метрики для ISP2;
  • Комментарий маршрут.
изменяем скрипт проверки доступа в интернет
Добавляем данный скрипт в хранилище, даем имя check-internet.
создание скриптов Mikrotik
Тестируем работу через консоль.
запуск скриптов в Mikrotik
Как мы видим все отлично.
тестируем скрипт переключения каналов
Добавляем задание в планировщик. Обязательно указываем интервал. В данном случае раз в 15 сек. Это самый минимальный рекомендуемый интервал, ниже ставить не советую.
добавление заданий в планировщик
Из особенностей, очищает все соединения, когда происходит переключение. Вы так же можете добавить свои команды в конце тела.

Проверка работоспособности

Итак, мы все настроили и ждём чуда. Т.к. запросы у нас ICMP, для ускорения результата, на вышестоящем оборудовании включу блокировку данного трафика.
автоматическое переключение каналов Mikrotik
Если отключу блокировку, то все встаёт на свои места.
возвращение значений по умолчанию
Вы можете прикрутить отправку письма вам на e-mail в случае переключения, или допустим полный сброс роутера))). Вот и все — в этой статье мы рассмотрели настройку настройка Dual WAN на MikroTik, для этого использовали маркировку трафика «mangle». Теперь основываясь на этом примере можете создавать свои собственные конфигурации.
РЕКОМЕНДАЦИЯ
Вы хорошо разбираетесь в Микротиках? Или впервые недавно столкнулись с этим оборудованием и не знаете, с какой стороны к нему подступиться? В обоих случаях вы найдете для себя полезную информацию в углубленном курсе «Администрирование сетевых устройств MikroTik». В курсе много практических лабораторных работ по результату выполнения которых вы получите обратную связь. После окончания обучения вы получите диплом гос. образца РФ. Подробности и доступ к началу курса бесплатно тут.