Настройка Failover в MikroTik: резервирование двух интернет-каналов с нул
Настройка Failover в MikroTik: резервирование двух интернет-каналов с нуля
Приветствую коллег! «Интернет пропадает раз в неделю, и мы теряем деньги» — это запрос №1 от корпоративных клиентов. Решение — отказоустойчивая схема с двумя провайдерами (Failover). Но большинство администраторов настраивают её «наугад», не понимая, как RouterOS выбирает маршрут и почему при обрыве у провайдера резерв не включается.
Согласно программе курса «Администрирование сетевых устройств MikroTik» (Модуль 4), грамотная настройка Failover — это комбинация статической маршрутизации, параметра Distance и утилиты Netwatch. Сегодня мы пройдем путь от заводской настройки до полностью рабочего резервирования.
📖 Словарь терминов (База для администратора)
- Failover (Отказоустойчивость) — автоматическое переключение на резервный канал при падении основного. Пользователи даже не замечают сбоя.
- Distance (Дистанция) — параметр статического маршрута в RouterOS. Чем меньше число, тем «привлекательнее» маршрут для роутера. Маршрут с Distance=1 будет выбран вместо маршрута с Distance=10.
- Default Route (Маршрут по умолчанию) — маршрут
0.0.0.0/0. «Путь в никуда», по которому роутер отправляет весь трафик, для которого не нашлось более конкретного маршрута. Обычно ведет в интернет. - Netwatch — утилита RouterOS для периодической проверки доступности IP-адресов (через ICMP ping). Может запускать скрипты при смене статуса хоста.
- Check Gateway — параметр статического маршрута (
pingилиarp), позволяющий роутеру самостоятельно отключать маршрут, если шлюз перестал отвечать.
Теория: Алгоритм выбора маршрута в MikroTik
Чтобы понять, как работает Failover, нужно усвоить простой алгоритм выбора маршрута (актуален и для RouterOS v6, и для v7):
- Роутер ищет маршрут с максимально точным совпадением префикса (самый «длинный» маска). Например,
/32важнее, чем/24, а/24важнее, чем/0. - Если префиксы одинаковые, выбирается маршрут с меньшим Distance.
- Если и Distance одинаковый, выбирается маршрут с меньшим Gateway Distance (для динамических протоколов).
Ключевая идея Failover: Мы создаем два маршрута по умолчанию (
0.0.0.0/0) с разным Distance. Основной — с Distance=1, резервный — с Distance=10. Пока жив основной, резервный «спит» в таблице маршрутов с пометкойunreachableили просто неактивен. Как только основной пропадает — резервный мгновенно вступает в игру.
🚀 БЛОК «С НУЛЯ ДО РЕЗУЛЬТАТА»: Практическое применение
А теперь самое важное. Представьте: вы приехали к клиенту, достали из коробки новый MikroTik (например, hEX или RB4011), подключили ноутбук и начали настройку. Сохраните этот блок как шпаргалку — это готовый сценарий для продажи услуги «Настройка Failover под ключ».
Шаг 0. Сброс до заводских настроек
Нажимаем кнопку Reset на 5 секунд, пока не замигает индикатор. После перезагрузки у нас есть базовая конфигурация: ether1 — WAN (DHCP-клиент), ether2-5 — объединены в Bridge с DHCP-сервером (подсеть 192.168.88.0/24).
Шаг 1. Подключаем два провайдера
Договоримся о топологии:
ether1— Основной провайдер (статический IP, например,203.0.113.10/29, шлюз203.0.113.1)ether2— Резервный провайдер (DHCP-клиент, динамический IP)ether3-5— локальная сеть (Bridge-LAN)
Перенастраиваем заводской Bridge, убирая из него ether2:
# Удаляем ether2 из заводского Bridge
/interface bridge port
remove [find interface=ether2]
# Создаем отдельный Bridge для LAN (ether3-5)
/interface bridge
add name=bridge-LAN
/interface bridge port
add bridge=bridge-LAN interface=ether3
add bridge=bridge-LAN interface=ether4
add bridge=bridge-LAN interface=ether5
# Переносим DHCP-сервер и IP-адрес на новый Bridge
/ip dhcp-server
set [find] interface=bridge-LAN
/ip address
set [find interface=bridge] interface=bridge-LAN
Шаг 2. Настраиваем WAN-интерфейсы
# Основной провайдер (статика на ether1)
/ip address
add address=203.0.113.10/29 interface=ether1
/ip route
add gateway=203.0.113.1 distance=1 check-gateway=ping comment="MAIN-ISP"
# Резервный провайдер (DHCP на ether2)
/ip dhcp-client
add interface=ether2 use-peer-dns=yes add-default-route=no
# ВАЖНО: add-default-route=no, чтобы DHCP сам не создал маршрут по умолчанию
Шаг 3. Настраиваем Source NAT для обоих каналов
Это та самая «ошибка, которая есть на 99% устройств» из программы курса — забывают про NAT на резервном интерфейсе.
# Маскарадинг для обоих WAN-интерфейсов
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1 comment="NAT-MAIN"
add action=masquerade chain=srcnat out-interface=ether2 comment="NAT-BACKUP"
Шаг 4. Решаем проблему «доступности шлюза» через Netwatch
Согласно программе курса, есть классическая проблема: check-gateway=ping проверяет только шлюз провайдера. Но что если шлюз жив, а интернет за ним — нет (авария у вышестоящего провайдера)? Для этого используем Netwatch, который пингует удаленный хост (например, 8.8.8.8) и отключает маршрут при потере связи.
# Создаем резервный маршрут по умолчанию (пока отключен)
/ip route
add gateway=0.0.0.0 distance=10 comment="BACKUP-ISP" disabled=yes
# Netwatch: пингуем Google DNS
/tool netwatch
add host=8.8.8.8 timeout=2s interval=30s \
down-script="/ip route set [find comment=\"MAIN-ISP\"] disable=yes; \
/ip route set [find comment=\"BACKUP-ISP\"] disable=no" \
up-script="/ip route set [find comment=\"MAIN-ISP\"] disable=no; \
/ip route set [find comment=\"BACKUP-ISP\"] disable=yes" \
comment="ISP-FAILOVER"
Шаг 5. Проверка работы
Как убедиться, что Failover работает? Выполняем в терминале:
# Смотрим таблицу маршрутов
/ip route print where dst-address=0.0.0.0/0
# Должны увидеть два маршрута:
# 0.0.0.0/0 via 203.0.113.1 (MAIN-ISP, distance=1, активен)
# 0.0.0.0/0 via DHCP (BACKUP-ISP, distance=10, disabled)
# Проверяем статус Netwatch
/tool netwatch print
Чтобы протестировать переключение, временно отключите ether1 (/interface ethernet set ether1 disable=yes). Через 30 секунд Netwatch сработает, и резервный маршрут активируется. Включите ether1 обратно — через 30 секунд всё вернется на основной канал.
⚠️ Типичные ошибки, которые стоят клиенту денег
- Забыли NAT на резервном интерфейсе. Резерв включается, но интернет не работает — трафик выходит с «серым» IP.
- Не отключили
add-default-routeв DHCP-клиенте. Резервный провайдер создает свой маршрут по умолчанию с Distance=0, и начинается хаос. - Используют только
check-gateway=ping. При аварии «выше» шлюза провайдера Failover не срабатывает, так как шлюз отвечает на пинг. - Настраивают балансировку вместо Failover. Клиент просил резерв, а ему сделали ECMP — и при падении одного канала половина сессий «виснет».
Резюме для сетевых инженеров
Настройка Failover в MikroTik — это не просто «два маршрута по умолчанию». Это архитектурное решение, которое требует понимания:
- Алгоритма выбора маршрута (префикс → Distance → Gateway Distance).
- Разницы между
check-gateway=pingиNetwatch. - Правил Source NAT для нескольких WAN.
Именно такие задачи — «золотая жила» для специалиста. Средняя рыночная стоимость настройки отказоустойчивой схемы для офиса на 50 человек — от 15 000 до 40 000 рублей. А занимает она у опытного инженера 2-3 часа.
Материал основан на программе курса «Администрирование сетевых устройств MikroTik» (Модуль 4: Маршрутизация). В следующей статье мы перейдем к Модулю 5: Туннели и разберем, как объединить два офиса в единую сеть через L2TP/IPsec Site-to-Site. Подписывайтесь на обновления!
Комментариев 0