Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Проблема с переключением WAN и/или рекурсивной маршрутизацией

    Проблема с переключением WAN и/или рекурсивной маршрутизацией

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Проблема с переключением WAN и/или рекурсивной маршрутизацией, RouterOS
     
    unlikely
    Guest
    #1
    0
    27.10.2023 14:39:00
    Я пытаюсь реализовать временное автоматическое переключение WAN на CCR2004 согласно официальной странице поддержки “Failover (WAN Backup)” https://help.mikrotik.com/docs/pages/viewpage.action?pageId=26476608. Не могу воспроизвести точные шаги из руководства, потому что: мой вторичный WAN-роутер выдает адреса через внутренний DHCP, но я отключил «add default route» в DHCP-клиенте ROS для этого интерфейса; сейчас я использую большое количество маркировок соединений в правилах mangle для очередей. NAT, Raw Filtering, Firewall-фильтрация вроде в порядке, потому что при «ручном фейловере» (включаю правильный вторичный маршрут по умолчанию в /ip/route и отключаю первичный) с LAN интернет работает. Но когда оставляю решение маршрутизации на ROS — вообще не могу пинговать интернет-хосты прямо с роутера. То, что я сделал, приведено в коде ниже.

    /ip/firewall/mangle  
    add action=mark-routing chain=output comment="Mark routing ISP1" new-routing-mark=ISP1 out-interface-list="WAN ISP1" passthrough=no  
    add action=mark-routing chain=output comment="Mark routing ISP2" new-routing-mark=ISP2 out-interface-list="WAN ISP2" passthrough=no  

    /ip route  
    add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=172.30.32.126 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 vrf-interface=vlan-wan-isp-l2  
    add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=192.168.0.1 pref-src="" routing-table=main scope=30 suppress-hw-offload=no target-scope=10 vrf-interface=vlan-wan-isp-l2  
     
    add disabled=no distance=1 dst-address=8.8.8.8/32 gateway=172.30.32.126 pref-src="" routing-table=main scope=10 suppress-hw-offload=yes target-scope=10  
    add disabled=no distance=1 dst-address=8.8.4.4/32 gateway=192.168.0.1 pref-src="" routing-table=main scope=10 suppress-hw-offload=yes target-scope=10  

    add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=8.8.8.8 pref-src="" routing-table=ISP1 scope=30 suppress-hw-offload=yes target-scope=11  
    add check-gateway=ping disabled=no distance=2 dst-address=0.0.0.0/0 gateway=8.8.4.4 pref-src="" routing-table=ISP1 scope=30 suppress-hw-offload=yes target-scope=11  

    add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=8.8.4.4 pref-src="" routing-table=ISP2 scope=30 suppress-hw-offload=yes target-scope=11  
    add check-gateway=ping disabled=no distance=2 dst-address=0.0.0.0/0 gateway=8.8.8.8 pref-src="" routing-table=ISP2 scope=30 suppress-hw-offload=yes target-scope=11  

    Есть идеи, в чем может быть проблема?
     
     
     
    unlikely
    Guest
    #2
    0
    13.11.2023 21:55:00
    Я проверил вашу конфигурацию — всё работает как надо. Спасибо. Мне всегда было и всё ещё интересно, как устроен подход «официального» руководства Mikrotik по WAN Failover (https://help.mikrotik.com/docs/pages/viewpage.action?pageId=26476608) и тема на форуме Mikrotik “Advanced Routing Failover without Scripting” (http://forum.mikrotik.com/t/advanced-routing-failover-without-scripting/136599/1). Благодаря этой теме, кажется, я лучше понял сам вопрос, хотя пришлось прочитать очень много сообщений.

    Я понял, что обе ссылки касаются failover и балансировки нагрузки, что интересно, потому что это мой следующий шаг (если вторичный LTE WAN выдаст нормальную скорость). Сейчас я тестирую именно такой подход. Следуя странице помощи, у меня не получилось настроить, и, как новичок, я не до конца понимаю некоторые моменты, например:

    - если для балансировки нагрузки весь трафик должен быть помечен как ISP1 или ISP2, почему правила mangle находятся в цепочке output? Кажется, правильнее было бы помечать трафик в цепочках forward и output;
    - зачем помечать соединение, а потом все пакеты из этого соединения? Разве пометка только пакета недостаточна?
    - почему правила mangle в цепочке output помечают пакеты ISP1, которые выходят через интерфейс 1? Если у пакетов уже есть исходящий интерфейс, как маркировка маршрута может повлиять на маршрут и направить их на другой интерфейс?
    - параметры scope и target-scope в маршрутах кажутся странными.

    Потом я попробовал следовать теме на форуме — там мне стало понятнее. В правилах mangle я помечаю все форвардящиеся и исходящие пакеты как ISP1 с некоторыми исключениями, помеченными ISP2. Но у меня всё равно есть один вопрос. Ничего не работает, если я не добавляю дефолтные маршруты для обоих ISP в основную таблицу маршрутов. Не уверен, влияет ли это на результат. В теме про это не сказано ни слова.

    Но я читал в документации по policy routing: чтобы таблица, созданная пользователем, могла разрешать назначения, основная таблица маршрутизации тоже должна это делать. Может, с тех пор, как была написана тема, это поведение изменилось? Правильно ли добавлять два дефолтных маршрута для обоих ISP в основную таблицу с разными distance?
     
     
     
    anav
    Guest
    #3
    0
    13.11.2023 22:31:00
    Подумайте об этом. Либо у вас по умолчанию идут маршруты из ppoe или IP DHCP клиента, потому что была отмечена галочка «по умолчанию для маршрутов». ЛИБО вам нужно создать их вручную.

    Если вдруг кто-то добавляет приватный IP-адрес напрямую для WANIP, тогда придется добавить соответствующий маршрут по умолчанию. Для первичного трафика к провайдеру и обратно, а также для установления соединений и рукопожатий, роутеру нужны его основные маршруты.
     
     
     
    unlikely
    Guest
    #4
    0
    14.11.2023 09:35:00
    У нас нет DHCP клиента или PPPoE. WAN-интерфейсы имеют статические IP-адреса из частного диапазона ISP L2. ПРИМЕЧАНИЕ: пожалуйста, игнорируйте следующие маршруты, смотрите следующий пост.
     
     
     
    unlikely
    Guest
    #5
    0
    14.11.2023 19:12:00
    Кажется, я кое-что сдвинул с мёртвой точки. В предыдущих маршрутах была, наверное, какая-то мелкая ошибка, но была и более серьёзная в правилах mangle. Теперь форвардинг работает как надо, и дефолтные маршруты в главной таблице больше не нужны для корректного балансирования нагрузки и переключения при форвардинге пакета.

    Что по-прежнему совсем не работает без дефолтного маршрута в главной таблице — это трафик, который исходит от самого роутера. Пинг с терминала до любого интернет-хоста даёт «no route to host». Я пытался добавлять маркировку маршрутизации пакетам (или маркировку соединения + маркировку пакетов) в разных комбинациях в цепочке mangle output, но, похоже, пакеты от роутера вообще не маркируются и, соответственно, не маршрутизируются.

    Чтобы начать с простого: какое правильное правило mangle для применения моей «ISP1 routing mark» ко всем пакетам, чтобы всё шло через таблицу маршрутизации ISP1?

    5 X  ;;; Routing Mark for ISP1 (балансировка нагрузки по умолчанию)
    chain=output action=mark-routing new-routing-mark=ISP1 passthrough=yes src-address-type=local
    dst-address-list=!rfc6890_not_global_ipv4 log=yes log-prefix="output-mark-ISP1"
     
     
     
    anav
    Guest
    #6
    0
    14.11.2023 19:50:00
    Диаграмма сети помогла бы понять, какие устройства задействованы и так далее. Конфигурация — чтобы увидеть маршрутизацию, действия mangling и правила фаервола в контексте... А в чем проблема вручную создать стандартный маршрут для WAN? Это ведь ничего не сломает? Если, например, проблема в том, что шлюз один и тот же, просто сделайте так:  
    /ip route add dst-address=0.0.0.0/0 gateway=145.26.22.1%ether1-wan1 routing-table=main  
    add dst-address=0.0.0.0/0 gateway=145.26.22.1%ether2-wan2 routing-table=main  

    Где:  
    /interface ethernet  
    set [ find default-name=ether1 ] name=ether1-wan1
    set [ find default-name=ether2 ] name=ether2-wan2
     
     
     
    unlikely
    Guest
    #7
    0
    14.11.2023 20:53:00
    Перенаправление работает с указанными маршрутами, а вывод — нет. В роутере два WAN-интерфейса, у каждого фиксированный IP-адрес и фиксированный шлюз в L2-доменах провайдеров. Это всё, что я знаю. Цепочка mangle output сейчас состоит только из вышеуказанного правила. Чтобы всё «просто работало», мне пришлось добавить маршрут по умолчанию в главной таблице для основного WAN, но если основной WAN-соединение падает, трафик из LAN идёт через ISP2, а трафик с самого роутера — нет. Нужно ли мне продублировать рекурсивные маршруты, которые я сделал в таблицах ISP1 и ISP2, также в главной таблице? Возможно. Но было бы неплохо этого избежать. Кстати, насколько я знаю, в мангле маркировка маршрутов разрешена в prerouting и output и должна работать. Я бы хотел понять, почему не работает. Из документации по цепочке output (https://help.mikrotik.com/docs/display/ROS/Packet+Flow+in+RouterOS): Routing Adjustment — это обходной путь, который позволяет настроить политическую маршрутизацию в цепочке mangle output (routing-mark).
     
     
     
    anav
    Guest
    #8
    0
    14.11.2023 21:12:00
    Как правило, чтобы трафик WAN выходил через правильный WAN, нужно настроить Sourcenat Masquerade для этого интерфейса. Обычно это решается с помощью правила по умолчанию.  
    add chain=srcnat action=masquerade out-interface-list=WAN  

    Правила Mangle:  
    Чтобы гарантировать, что входящий трафик на WANX уходит через WANX, добавьте:  
    add chain=prerouting action=mark-connections connection-mark=no-mark in-interface=WANX new-connection-mark=incomingISPX passthrough=yes  
    add chain=output action=mark-routing connection-mark=incomingISPX new-routing-mark=useWANX passthrough=no  

    /routing table  
    add fib name=useWANX  

    /ip route  
    add dst-address=0.0.0.0/0 gateway=ISPX routing-table=useWANX  

    ИЛИ.  

    Правила маршрутизации, чтобы трафик, исходящий с WANX, уходил через WANX:  
    /routing table  
    add fib name=useWANX  

    /routing rule  
    add src-address=own.ip.of.wanX action=lookup-only-in-table table=via-wanX  

    Примечание: если IP WANX статический, то это очень просто настроить.
     
     
     
    unlikely
    Guest
    #9
    0
    14.11.2023 23:16:00
    Думаю, NAT работает нормально, потому что без настроек резервных маршрутов я могу отправлять запросы из локальной сети и с самого роутера в интернет через обоих провайдеров — ISP1 и ISP2. Исходящие соединения через ISP1 проходят src-NAT с нашим публичным IP-адресом, а через ISP2 — маскарадинг (хотя, по идее, их тоже можно src-NAT’ить на фиксированный адрес 4.4.4.1, который провайдер выдал для интерфейса ISP2). Идея, что входящий трафик с WANX должен выходить через WANX, интересна, но сейчас не критична, потому что у нас пока нет важного входящего трафика, да и IP-адрес от ISP2 пока непубличный, поэтому весь входящий трафик приходит только через ISP1. Главная загвоздка сейчас — как сделать так, чтобы большая часть трафика с самого роутера шла в интернет через таблицу маршрутизации ISP1, а отдельные исключения — через таблицу ISP2. По предыдущим изображениям, ISP1 использует WAN1 в приоритете, а WAN2 — резервом; ISP2 — наоборот. Такое решение работает для пересылки трафика, но не для исходящего.
     
     
     
    unlikely
    Guest
    #10
    0
    16.11.2023 13:19:00
    Похоже, я нашёл объяснение здесь: http://forum.mikrotik.com/t/is-mangle-output-chain-broken/135569/5 Если моё объяснение верно, я не понимаю, почему эта необходимость не упоминается в конкретных темах про WAN Failover с рекурсивными маршрутами, даже в официальном руководстве Mikrotik.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры