Резервирование Dual WAN с DHCP на WAN-порту., RouterOS
jpineira
Guest
0
20.01.2015 23:33:00
Мне нужна помощь с настройкой аварийного переключения интернета на Mikrotik. У меня два WAN-подключения, оба получают IP через DHCP. Я просмотрел большинство руководств, но чаще всего сценарии переключения подразумевают WAN-порты со статическими IP и статическими шлюзами. При этом шлюзы на этих двух подключениях иногда меняются. Есть какие-нибудь советы?
anav
Guest
0
15.10.2020 17:31:00
Расстояние я понимаю, а масштаб — всё ещё загадка…
::Для WAN1:: IP > DHCP Client > вкладка DHCP > интерфейс: ether1; добавить маршрут по умолчанию: да IP > DHCP Client > вкладка Advanced > Default Route Distance: 1
::Для WAN2:: IP > DHCP Client > вкладка DHCP > интерфейс: ether2; добавить маршрут по умолчанию: да IP > DHCP Client > вкладка Advanced > Default Route Distance: 2
Раньше у меня были настроены статические маршруты с указанием scope и distance по некоторым предыдущим рекомендациям, но я их удалил. Они не нужны, если использовать решение от InOX. Спасибо, InOX!
Кроме того, я понял, что без проверки отклика (ping check) переключение с одного WAN на другой работает не очень эффективно, особенно если устройство модема/шлюза не отвечает. Поэтому добавил в роутинговый фильтр следующее:
Буду признателен, если другие поделятся своими находками и результатами тестов. Спасибо, tabate47!
viktorcode
Guest
0
21.09.2019 10:56:00
Я пытаюсь сделать примерно то же самое, но с той разницей, что одно из моих WAN-соединений — PPPoE, а другое — DHCP. Проблема в том, что при настройке PPPoE и попытке добавить DHCP-клиента на соответствующий Ethernet-порт, я получаю следующее сообщение: «Не удалось добавить нового DHCP-клиента — нельзя запустить на подключенном интерфейсе (6)». Как мне это сделать?
maxslug
Guest
0
16.09.2020 18:02:00
Это казалось слишком хорошим, чтобы быть правдой! Спасибо, InoX и thewickerman666!
bpwl
Guest
0
15.10.2020 17:19:00
Это действительно очень просто, но функционал очень ограничен. Тебе даже не нужно указывать интерфейс. Просто дай DHCP-клиенту добавить маршрут по умолчанию с другим приоритетом маршрута (вкладка «advanced»). Это стандартный простой фэйловер. Ты НЕ решил ту проблему, которую решают другие. Проверку, есть ли у этого пути доступ в интернет. Даже если шлюз ВКЛЮЧЕН и линия активна, это не значит, что нужно использовать эту линию. Интернет может прерваться в самых разных местах. Другой путь может быть лучше, если он имеет доступ в интернет. Думаю, в других решениях можно использовать интерфейс как путь (заменяя в моём примере фиксированные IP-шлюзы 192.168.90.1 и 192.168.95.1 на их интерфейсы). Вот моя настройка (не с динамическими IP через DHCP, но хотя бы остальная проверка интернета есть).
Механизм такой: играя с «scope», можно назначить/использовать/проверять удалённый (не напрямую достижимый) шлюз. Насколько я знаю, это идёт из iBGP-маршрутизации, не из простой известной нам маршрутизации.
Суть в том, чтобы поставить scope=10 при проверке доступности этого удалённого шлюза (который на самом деле никогда не используется как шлюз, а просто «фантом» для проверки, ведёт ли путь к интернету).
Маршрутный набор №1: Обычно эти маршруты не работали бы. Шлюзы 8.8.4.4 и 8.8.8.8 напрямую недоступны. Но из-за target scope=10 для разрешения маршрутизируются маршруты с scope=10, обычно это только локальные подсети.
Маршрутный набор №2: Это запасной вариант на случай, если все серверы Google упадут и стандартная проверка даст ложный отрицательный результат (серверы недоступны, но интернет всё ещё есть). Игрой с расстоянием (distance) уже реализован фэйловер, который сработает, если указанный шлюз (прямо подключённый) станет недоступен. Чтобы этот набор работал только как резерв для набора №1, у него должно быть большее расстояние.
Маршрутный набор №3: Не в этом списке, добавляется динамически через DHCP. Это запасной запасного, когда шлюз сломан или изменился IP. Чтобы он работал только в крайнем случае, в DHCP клиенте default route должен иметь расстояние больше, чем у набора №2. Я использую 20 и 21.
Маршрутный набор №4: В этом и есть вся фишка. Этот набор маршрутов делает шлюзы из набора №1 достижимыми, если их можно достичь через несколько промежуточных маршрутизаторов (рекурсивно). Главное условие, чтобы эти маршруты помогали маршрутам из набора №1 — scope должен быть 10. Стандартные статические маршруты добавляются с scope=30! Если шлюз доступен, соответствующий маршрут из набора №1 активен. Если нет — маршрут из набора №1 неактивен. Этот маршрутный набор №4 не используется для передачи данных (кроме запросов напрямую к именованным шлюзам, например DNS).
Смотри запутанный док у вики: (Фишка: создаём статические маршруты со scope=10 (обычно это для напрямую подключённых путей). И знаем, что статические маршруты с target scope=10 используют маршруты с scope=10 как помощники. iBGP делает похожее, выставляя target scope=30.)
tweek3333
Guest
0
13.09.2021 06:22:00
Переключение Dual WAN с резервированием через DHCP (Toggle)
Я взял несколько скриптов с этого форума и переделал их под свои нужды. Здесь в качестве WAN-подключений используются Ether1 и WLAN1 (станция). Если пинг до указанных хостов не проходит, то Ether1 отключается, а WLAN1 включается — он подключается к другому хотспоту для резервного выхода в интернет и остается активным, пока пинг не начинает проходить. Если пинг снова перестает проходить, Ether1 включается обратно, а wlan1 отключается.
Если этот скрипт запускать с интервалом в 2 минуты и допустим, что ни одно из интернет-соединений не работает, то он будет проверять каждое WAN-соединение каждые 2 минуты.
Скрипт начинается так:
local host1 “8.8.4.4”; local host2 “1.1.1.1”; local i 0; local F 0;
Пинг каждого хоста 5 раз: for i from=1 to=5 do={ if ([/ping $host1 count=1]=0) do={:set F ($F + 1)} if ([/ping $host2 count=1]=0) do={:set F ($F + 1)} :delay 1; }
if (($F=10)) do={ if ([/ip dhcp-client get [find interface=“ether1”] status] = “bound”) do={ /ip dhcp-client set disable=yes [find interface=“ether1”] /interface enable wlan1 } else={ /ip dhcp-client set disable=no [find interface=“ether1”] /interface disable wlan1 } }