Привет! Я проверил форум и вики, нашёл примеры настройки маршрутизации с резервированием, но все они основывались на отказе шлюза… На самом деле успешный ответ шлюза не гарантирует наличие подключения к публичному интернету. Например, в системах Vsat шлюз — это роутер, расположенный прямо в той же локации, а у других провайдеров шлюзы зачастую находятся в одном городе. Поэтому нам нужно тестировать IP-адрес, который находится за пределами локальной сети, чтобы убедиться, что публичный интернет действительно работает, а не просто «упал». Вот почему я сделал вот так и протестировал — всё работает успешно. Хочу выложить сюда, чтобы быть уверен в своей работе и чтобы друзья помогли улучшить.
gateway1 = 192.168.1.1
gateway2 = 192.168.2.1
/ip route add comment=gw1 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1 scope=30 target-scope=10
/ip route add comment=gw2 disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=192.168.2.1 scope=30 target-scope=10
/ip route add comment="Testing gw1" disabled=no distance=1 dst-address=4.2.2.3/32 gateway=192.168.1.1 scope=30 target-scope=10
У нас включён шлюз gw1 = 192.168.1.1, gw2 отключён. Последняя строка отвечает за тестирование gw1, предполагая, что это предпочтительный шлюз. Тест идёт по публичному IP — такому, который вы или ваши клиенты обычно не используете. Как видите, я выбрал 4.2.2.3 — этот IP можно достичь только через gw1.
/tool netwatch add comment="" disabled=no down-script="/ip route set [find comment=\"gw1\"] disabled=yes\r\n/ip route set [find comment=\"gw2\"] disabled=no\r\n" host=4.2.2.3 interval=15s timeout=480ms up-script="/ip route set [find comment=\"gw1\"] disabled=no\r\n/ip route set [find comment=\"gw2\"] disabled=yes"
Инструмент netwatch пингует 4.2.2.3 каждые 15 секунд. Если приходит ответ — gw1 включён, gw2 отключён. Если таймаут — gw1 отключается, gw2 включается, и через 15 секунд проверка повторяется. Я тестировал на трёх системах — всё работает отлично. Есть предложения или исправления?
gateway1 = 192.168.1.1
gateway2 = 192.168.2.1
/ip route add comment=gw1 disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.1 scope=30 target-scope=10
/ip route add comment=gw2 disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=192.168.2.1 scope=30 target-scope=10
/ip route add comment="Testing gw1" disabled=no distance=1 dst-address=4.2.2.3/32 gateway=192.168.1.1 scope=30 target-scope=10
У нас включён шлюз gw1 = 192.168.1.1, gw2 отключён. Последняя строка отвечает за тестирование gw1, предполагая, что это предпочтительный шлюз. Тест идёт по публичному IP — такому, который вы или ваши клиенты обычно не используете. Как видите, я выбрал 4.2.2.3 — этот IP можно достичь только через gw1.
/tool netwatch add comment="" disabled=no down-script="/ip route set [find comment=\"gw1\"] disabled=yes\r\n/ip route set [find comment=\"gw2\"] disabled=no\r\n" host=4.2.2.3 interval=15s timeout=480ms up-script="/ip route set [find comment=\"gw1\"] disabled=no\r\n/ip route set [find comment=\"gw2\"] disabled=yes"
Инструмент netwatch пингует 4.2.2.3 каждые 15 секунд. Если приходит ответ — gw1 включён, gw2 отключён. Если таймаут — gw1 отключается, gw2 включается, и через 15 секунд проверка повторяется. Я тестировал на трёх системах — всё работает отлично. Есть предложения или исправления?
