Самая простая настройка отказоустойчивости для WAN или других каналов связи image

Самая простая настройка отказоустойчивости для WAN или других каналов связи

Обеспечьте бесперебойность: Простая настройка Failover (отказоустойчивости) в MikroTik

В современном мире надежное подключение к интернету или внутренней сети — это критически важный фактор. Если у вас есть несколько каналов связи (например, два провайдера WAN), вы, вероятно, хотите настроить Failover (отказоустойчивость). Это механизм, который автоматически переключает трафик на резервный канал, когда основной выходит из строя, и возвращает его обратно, когда основной восстанавливается.

Метод 1: Базовая проверка шлюза (check-gateway=ping)

Самый простой способ добиться отказоустойчивости — использовать механизм приоритетов и проверку доступности шлюза. Для этого вам понадобятся два маршрута по умолчанию (default route):

  1. Приоритет через Distance (Расстояние): В RouterOS параметр distance (расстояние) действует как приоритет: чем ниже число, тем выше приоритет.

  2. Настройка основного маршрута (ISP 1):

    • Назначьте шлюз провайдера 1.

    • Установите distance=1 (высокий приоритет).

    • Установите check-gateway=ping. Эта команда заставляет маршрутизатор постоянно проверять доступность шлюза.

  3. Настройка резервного маршрута (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. Маршрутизатор пытается активировать основной маршрут (шаг 1), но не знает, как добраться до 8.8.8.8.
  2. Он рекурсивно обращается ко второму маршруту (шаг 2), чтобы узнать путь до 8.8.8.8 (через шлюз ISP 1).
  3. Как только путь найден, основной маршрут активируется, и маршрутизатор начинает пинговать 8.8.8.8 через ISP 1.
  4. Если пинг к 8.8.8.8 (который находится в интернете) не удается, маршрут деактивируется, и трафик переключается на резервный маршрут (с distance=2, настроенный в Методе 1).

Таким образом, вы добиваетесь проверки доступности интернета, а не только локального шлюза, с минимальными настройками. Этот "хак" позволяет настроить надежный Failover с гораздо более точной проверкой работоспособности канала. Не забудьте также настроить соответствующие правила Masquerade для обоих провайдеров в вашем файрволе.