Pull to refresh

Настройка failover на mikrotik с двумя приходами по PPPoE

Введение


Оговорюсь сразу, на многих ресурсах есть множество инструкций по настройке failover, от простейших настроек до сложных скриптов. Моя же статья подойдёт не всем, тут есть два необходимых условия:

  1. Интернет от провайдера приходит по двум PPPoE туннелям
  2. Провайдер должен отдавать DHCP на основном приходящем интерфейсе

Вводные данные


Инициализировать PPPoE соединения у нас будет роутер MikroTik hAP AC Lite. Перед роутером у нас стоят — GePON ONT Eltex NTE RG-1402G (основной канал) и Ubiquity Litebeam M5-23 (резервный канал, радио). Все устройства подключения к сети провайдера настроены в режиме моста (bridge).

Настройка PPPoE-client


Создаём PPPoE клиент основного канала.
/interface pppoe-client add name=«Opta» interface=[имя интерфейса основного канала] user="[ваше имя пользователя]" password="[ваш пароль]" add-default-route=yes use-peer-dns=yes disabled=no default-route-distance=0

Создаём PPPoE клиент резервного канала.
/interface pppoe-client add name=«Radio» interface=[имя интерфейса резервного канала] user="[ваше имя пользователя]" password="[ваш пароль]" add-default-route=yes use-peer-dns=yes disabled=no default-route-distance=1

Создаём DHCP клиент основного канала.
/ip dhcp-client
add interface=[имя интерфейса основного канала] use-peer-dns=yes add-default-route=yes disabled=no default-route-distance=2

Метрика интерфейсов подобрана специально таким образом, что при активном состоянии основного канала трафик будет идти только через него.

Настройка правил файрвола и статических маршрутов для проверки активности соединения


Создаём статический маршрут. Таким образом у нас будет идти проверка состояния канала. Наверняка провайдер не будет пускать в интернет через DHCP client, в основном DHCP клиент у PPPoE провайдеров используется для внутренних ресурсов(телевидение, личный кабинет). В качестве адреса для проверки состояния можно использовать один из этих ресурсов или же какой-то из BRAS, если правилами файрвола со стороны провайдера не запрещен пинг до него. Также стоит учитывать, что если у провайдера начнутся проблемы с ресурсом, произойдет переключение канала.
/ip route add [адрес, по которому будет вестись проверка состояния] [шлюз, в нашем случае мы указываем шлюз DHCP клиента] distance=2

Запрещаем подключение до проверочного ресурса через PPPoE туннель.
/ip firewall filter add chain=output action=drop dst-address=[адрес, по которому будет вестись проверка состояния] out-interface=Opta

Запрещаем подключение до проверочного ресурса через PPPoE туннель.
/ip firewall filter add chain=output action=drop dst-address=[адрес, по которому будет вестись проверка состояния] out-interface=Radio

Правило NAT позволяющее нам получать доступ к ресурсу из локальной сети.
/ip firewall nat add chain=srcnat action=masquerade out-interface=[имя интерфейса, на котором у нас DHCP клиент]

Настройка failover с помощью netwatch


Добавляем правило netwatch. Interval = время опроса хоста в секундах. Timeout = время ожидания отклика хоста. Down-script = скрипт, который, выполняется при отсутствии отклика от хоста, в нашем случае это отключение основного PPPoE клиента. Up-script = скрипт выполняющийся при появлении отклика до хоста.
/tool netwatch add host=[адрес ресурса для проверки] interval=00:00:05 timeout=1 down-script="/interface pppoe-client disable 0" up-script="/interface pppoe-client enable 0"

Таким образом netwatch производит пинг до указанного хоста, в случае отсутствия отклика выключается основной PPPoE клиент. По скольку резервный канал у нас поднят трафик начинает идти через него. После восстановления основного канала включается основной PPPoE клиент, по скольку метрика у него ниже, трафик автоматически начинает идти через него.

Заключение и примечания


  1. Описанный мной способ подходит под Dual Access c DHCP, в принципе существуют провайдеры, которые выдают PPPoE + Static IP, указанный способ подходит, только соответственно настройки вторичного подключения надо указывать в IP -> Addresses.
  2. Также способ подходит и для VPN подключений (PPtP и L2tP), в правилах соответственно необходимо PPPoE client заменить на другой тип подключения.
  3. Если оба канала приходят от одного провайдера, то при работе на резервном канале не будет доступа на ресурс для проверки. Исправить это можно запретом только ICMP трафика до ресурса с туннелей.
  4. Интервалы для опроса в netwatch можно менять с учетом требований. Еще одно важное отличие, при настройки с консоли параметр «timeout» имеет единицу измерения равную секунде. При настройке с помощью winbox или web — милисекунда.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.