Фоновая информация: На удалённом объекте у меня есть два подключения. Подключение 1: AT&T Uverse DSL. Подключение 2: Verizon LTE через Cradlepoint в режиме моста. IP-адреса изменены из соображений конфиденциальности. Поскольку Uverse нельзя перевести в мостовой режим, пришлось настроить его с публичными статическими IP на LAN-стороне и включить каскадный маршрутизатор. Эта опция даёт нам наш /29, но при этом ломает проверку шлюза, потому что шлюз всегда "вверх", даже если провайдер отключился. LTE-шлюз находится далеко от устройства, поэтому он работает как надо, но я не хочу, чтобы он стал основным провайдером, если первичный работает. Я настроил правила mangle для маркировки трафика, чтобы он входил и выходил через одного и того же провайдера, и нашёл на вики скрипт для WAN failover, который вроде работает. Если я на первичном подключении, могу выбрать пинг и интерфейс — пинг нормальный, а если выбрать вторичный — пинг задерживается, как и должно быть на LTE. Скрипт запускается каждые 10 секунд, переключается на вторичный при отвале, но не переключается обратно на первичный после восстановления. После переключения не могу пинговать первичный интерфейс — пинги не восстанавливаются, скрипт не возвращает расстояние на шлюзах. Может, кто поможет исправить эту проблему?
/system script add name=DualWanFailover owner=admin policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive source=“# ---- --------------- header ------------------- # Скрипт от Tomas Kirnak, версия 1.0.7 # Если используете этот скрипт, или редактируете и # используете повторно, пожалуйста, оставьте шапку без изменений. # # Подробности и информация на странице вики: # http://wiki.mikrotik.com/wiki/Failover_Scripting # ------------------- header -------------------
# ------------- начало редактирования ------------- # Отредактируйте переменные ниже под свои нужды
# Заполните имена WAN-интерфейсов :local InterfaceISP1 ether1-WAN :local InterfaceISP2 ether2-WAN
# Заполните IP-шлюзы (или имена интерфейсов для PPP) :local GatewayISP1 10.0.0.1 :local GatewayISP2 172.16.0.1
# Заполните адрес для пинга – сейчас: resolver1.opendns.com :local PingTarget 208.67.222.222
# Сколько пинг-просадок допускается перед переключением :local FailTreshold 20
# Увеличение расстояния маршрута при сбое :local DistanceIncrease 2
# Редактировать скрипт ниже не рекомендуется # -------------- конец редактирования --------------
На моём сайте вы найдёте конфигурацию отказоустойчивости и балансировки нагрузки. Посмотрите configuration5. Вы можете изменить IP-адреса и использовать этот код. Сделано для RB2011 UAS-RM и RB951G 2HnD http://www.wirelessinfo.be/index.php/mikrotik/pages/confige
Отличный ответ dareru касается только аварийного переключения и будет хорошо работать. Если на вашем WAN используется динамический протокол, такой как DHCP или PPPoE, нужно убедиться, что для резервного WAN задан default-route-distance, отличный от 0, чтобы это работало.
Если вы хотите иметь возможность управлять роутером через любой из WAN по любой причине, тогда нужно, чтобы ваши правила mangle отмечали новые соединения с обоих WAN-интерфейсов, а затем добавляли маршрутизирующую метку в цепочки output, чтобы ответный пакет выходил через правильный WAN. Это позволит отправлять весь исходящий трафик через WAN1 и подключаться к роутеру из интернета через любой из WAN.
Проблема, которую я вижу в обоих этих ответах, в том, что в них используется «check-gateway = ping», а автор темы сказал, что Uverse (основной шлюз) всегда работает, потому что его нельзя перевести в режим моста.
Спасибо, ты первый, кто это заметил… Проверка шлюза работает корректно в GNS3 с образами CHR, так что то, что они говорят, действительно работает. Если бы у меня был режим моста — всё было бы отлично. Просто хочу, чтобы кто-то объяснил, почему конфигурация может пинговать через оба интерфейса, когда стоят маршруты по умолчанию на 1 и 2, но когда 1 меняется на 3, пинг не отправляется через интерфейс. Если бы это срабатывало, система переключалась бы обратно, и всё было бы нормально.
Ого, где ты пропадал… Я уж целый месяц с этим борюсь. Большое спасибо, что заглянул и помог с моей проблемой. Всё отлично работает, только что проверил в gns3 с образами CHR.