Самая простая настройка отказоустойчивости для WAN или других каналов связи
Обеспечьте бесперебойность: Простая настройка Failover (отказоустойчивости) в MikroTik
В современном мире надежное подключение к интернету или внутренней сети — это критически важный фактор. Если у вас есть несколько каналов связи (например, два провайдера WAN), вы, вероятно, хотите настроить Failover (отказоустойчивость). Это механизм, который автоматически переключает трафик на резервный канал, когда основной выходит из строя, и возвращает его обратно, когда основной восстанавливается.
Метод 1: Базовая проверка шлюза (check-gateway=ping)
Самый простой способ добиться отказоустойчивости — использовать механизм приоритетов и проверку доступности шлюза. Для этого вам понадобятся два маршрута по умолчанию (default route):
-
Приоритет через Distance (Расстояние): В RouterOS параметр
distance(расстояние) действует как приоритет: чем ниже число, тем выше приоритет. -
Настройка основного маршрута (ISP 1):
-
Назначьте шлюз провайдера 1.
-
Установите
distance=1(высокий приоритет). -
Установите
check-gateway=ping. Эта команда заставляет маршрутизатор постоянно проверять доступность шлюза.
-
-
Настройка резервного маршрута (ISP 2):
-
Назначьте шлюз провайдера 2.
-
Установите
distanceна более высокое значение, например,distance=2. -
Для резервного маршрута проверка шлюза не требуется, так как он активируется, только если основной маршрут станет неактивным.
-
Как это работает: Маршрутизатор использует маршрут с distance=1. Если пинг к шлюзу провайдера 1 прекращается, основной маршрут деактивируется, и RouterOS автоматически переключается на следующий по приоритету маршрут (distance=2).
Внимание: У этого метода есть существенный недостаток. Проверка
check-gateway=pingпроверяет только доступность самого шлюза провайдера. Если шлюз работает, но на стороне провайдера произошел обрыв дальше по сети, маршрутизатор об этом не узнает и не переключится.
Метод 2: Надежная проверка Failover через рекурсивную маршрутизацию (Hack)
Чтобы убедиться, что отказ произошел не только до шлюза, но и дальше (например, нет доступа к публичным ресурсам), можно использовать рекурсивную маршрутизацию для проверки надежного публичного IP-адреса, например, Google DNS (8.8.8.8).
Этот метод требует всего трех строк дополнительной конфигурации:
1. Создайте "фиктивный" маршрут по умолчанию к Google DNS Вместо того чтобы указывать шлюз, вы указываете в качестве назначения сам Google DNS. Звучит странно, но это основа:
- Назначение (Dst. Address):
0.0.0.0/0(маршрут по умолчанию). - Шлюз (Gateway):
8.8.8.8(адрес для проверки). - Дистанция (Distance):
1(основной приоритет). - Проверка шлюза (Check Gateway):
ping. - Целевой охват (Target Scope):
15(или любое число, которое будет выше, чемScopeследующего маршрута).
Изначально этот маршрут будет неактивным, так как маршрутизатор не знает, как добраться до 8.8.8.8 напрямую.
2. Создайте рекурсивный маршрут к Google DNS через ISP 1 Теперь вы "говорите" маршрутизатору, как добраться до 8.8.8.8, используя шлюз провайдера 1:
- Назначение (Dst. Address):
8.8.8.8/32. - Шлюз (Gateway):
[Адрес шлюза ISP 1]. - Охват (Scope):
10(число, меньшее чемTarget Scopeв первом маршруте).
Как это работает:
- Маршрутизатор пытается активировать основной маршрут (шаг 1), но не знает, как добраться до 8.8.8.8.
- Он рекурсивно обращается ко второму маршруту (шаг 2), чтобы узнать путь до 8.8.8.8 (через шлюз ISP 1).
- Как только путь найден, основной маршрут активируется, и маршрутизатор начинает пинговать 8.8.8.8 через ISP 1.
- Если пинг к 8.8.8.8 (который находится в интернете) не удается, маршрут деактивируется, и трафик переключается на резервный маршрут (с
distance=2, настроенный в Методе 1).
Таким образом, вы добиваетесь проверки доступности интернета, а не только локального шлюза, с минимальными настройками. Этот "хак" позволяет настроить надежный Failover с гораздо более точной проверкой работоспособности канала. Не забудьте также настроить соответствующие правила Masquerade для обоих провайдеров в вашем файрволе.