*КУБ– полный комплекс облачных услуг!

Настройка резервного канала Mikrotik CHR с маркировкой трафика и уведомлением на почту

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

Для выхода в интернет нужно создать правило NAT для основного и резервного провайдера.

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

Маркируем входящий и исходящий трафик для провайдеров ISP1 и ISP2.

Меню IP – Firewall – Mangle — новое правило. Выбираем цепочку Prerouting, входящий интерфейс ISP1. Маркируем соединение и задаём имя марки From-ISP1. Для оптимизации нагрузки выбираем только новые соединения.

Создаём маркировку роутинга для созданной марки соединения From-ISP1.

Маркируем правило роутинга output

Последним правилом маркировки для ISP1 будет цепочка output.

По аналогии создаём и для второго. Должно получиться так:

Настройка Routing Rules

Следующий этап, это настройка правил и таблиц маршрутизации. Следует разнести трафик по соответствующим провайдерам. Создаём Rule с src address первого оператора, впишем вручную новую table.

Порядок имеет значение. Необходимо указать все наши локальные сети, трафик к ним будет идти через табличку main.

А теперь mark routing выпустим через соответствующие таблички.

  

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

В основной таблице маршрутизации нужно создать 2 маршрута, основной и резервный. Для этого вам нужно определиться кто из них какую роль будет выполнять. Т.к. активный будет всегда один. У первого метрика 1

Открываем table ISP1 и создаём default route с любой метрикой через шлюз провайдера.

Аналогично и для table ISP2

Обязательно дадим комментарии записям в main. Общий вид Route List следующий.

 

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

 

Есть несколько способов отслеживания состояния. Один из них — это проверка провайдерского шлюза arp или ping запросами в самой настройке маршрута. Но он не эффективен, т.к. gateway может быть и доступен, а доступ в инет за ним нет. Как один из вариантов, проверять доступность на основе пинг запросов каких-либо крупных сервисов, которые доступны круглосуточно. Встроенных средств у Mikrotik нет, и по этой причине будем использовать простенький скрипт ниже.

 

#Main interface name

:global MainIf ether1

#Failover interface name

:global RsrvIf ether2

:local PingCount 1

:local PingTargets {GW1; 8.8.8.8: GW2}

: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″] distance]

:local RsrvGWDistance [/ip route get [find comment=»ISP2″] distance]

:put «MainGWDistance=$MainGWDistance»

:put «RsrvGWDistance=$RsrvGWDistance»

if ($MainIfInetOk && ($MainGWDistance >= $RsrvGWDistance)) do={

/ip route set [find comment=»ISP1″] distance=1

/ip route set [find comment=»ISP2″] distance=2

:put «switched to main internet connection»

:log info «switched to main internet connection»

;tool e-mail send to=»[email protected]» subject «Mikrotik to main internet connection»

}

if (!$MainIfInetOk && $RsrvIfInetOk && ($MainGWDistance <= $RsrvGWDistance)) do={

/ip route set [find comment=»ISP1″] distance=2

/ip route set [find comment=»ISP2″] distance=1

:put «switched to reserve internet connection»

:log info «switched to reserve internet connection»

;tool e-mail send to=»[email protected]» subject «Mikrotik to reserv internet connection»

}

Основные параметры, которые вам нужно будет исправить это:

  • :global MainIf ether1 – основной интерфейс;
  • :global RsrvIf ether2 – резервный интерфейс;
  • :local PingTargets {8.8.4.4; 8.8.8.8} – IP для мониторинга;
  • :local MainGWDistance – переменная метрики для ISP1;
  • :local RsrvGWDistance – переменная метрики для ISP2;
  • Комментарий маршрут.

Сохраните скрипт с именем dual_wan

Проверяем работу в терминале командой
/system script run dual_wan

Если настроена почта, скрипт отправит письмо о переключении каналов.