Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • 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, оба на DHCP

    Мульти WAN, оба на DHCP

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Мульти WAN, оба на DHCP, RouterOS
     
    markdutton
    Guest
    #1
    0
    21.12.2021 01:45:00
    Привет, команда экспертов! У меня есть два WAN-соединения, и оба получают IP по DHCP. Поскольку шлюзовые адреса постоянно меняются, они не являются P2P (основанными на интерфейсе), а сами маршруты динамические, у меня нет надёжной точки отсчёта, чтобы настроить какую-либо политику маршрутизации. Было бы здорово, если бы в настройках DHCP-клиента можно было назначить имя таблицы маршрутизации в параметрах default route и metric. Есть ли сейчас способ использовать политику маршрутизации или правила mangle с двумя WAN-подключениями, которые работают через DHCP? Полагаю, что придётся немного скриптить. Также думаю, что нельзя вызвать скрипт как действие в каких-либо правилах файрвола? Я здесь немного запутался.
     
     
     
    BrianRS
    Guest
    #2
    0
    20.03.2023 14:38:00
    Всем привет, у меня тоже есть такая потребность, но я так и не понял, как использовать этот скрипт. В приложении два примера, где мне пришлось вручную обновлять шлюз на двух маршрутах. Буду очень благодарен за любую помощь. Большое спасибо, B.
     
     
     
    Amm0
    Guest
    #3
    0
    20.03.2023 16:05:00
    Один из маршрутов должен иметь комментарий с надписью «dhcp1» для скрипта. Если у вас есть две копии скрипта, то во второй скрипт нужно добавить комментарий «dhcp2», чтобы он искал именно его в IP > DHCP Client. И этот комментарий нужно добавить к тому маршруту, который вы хотите изменить. [редактирование: комментарии нужны именно в /ip/routes]
     
     
     
    BrianRS
    Guest
    #4
    0
    20.03.2023 17:13:00
    Спасибо, @Amm0, за быстрый ответ… Я правильно понимаю, что комментарий может быть любым, главное — чтобы я воспроизвел этот комментарий в скрипте, или же комментарий обязателен для работы? Моя проблема в том, что пока один из маршрутов использует сеть /32 (DHCP через интерфейс PPPoE), и с ней просто работать как с шлюзом, то другой маршрут гораздо сложнее: сеть, которую он рекламирует, иногда /28, /29 или /30, поэтому сложнее получить следующий переход (шлюз). Пока что я справляюсь, подключаясь через RoMON к моему MT RBLHGGR (в режиме passthrough) и беря IP оттуда. Большое спасибо, B
     
     
     
    anav
    Guest
    #5
    0
    20.03.2023 17:16:00
    Да, ты просто указываешь роутеру, куда идти, сопоставляя комментарий в скрипте с уже существующим комментарием! Иными словами, мы используем блок комментариев как инструмент для создания уникальной записи, которую роутер находит во время выполнения скрипта.
     
     
     
    BrianRS
    Guest
    #6
    0
    20.03.2023 17:25:00
    Спасибо, @anav, за твой вклад. А как насчёт моего второго вопроса… попробовать динамически определить шлюз для маршрута WAN2? Большое спасибо, B
     
     
     
    anav
    Guest
    #7
    0
    20.03.2023 17:31:00
    Вне моей компетенции! Ха-ха-ха (игра слов намеренная)
     
     
     
    Amm0
    Guest
    #8
    0
    20.03.2023 17:35:00
    Ты можешь использовать любой уникальный параметр из атрибутов маршрута в части [find …], например, адрес назначения и так далее. Смотри раздел [find] в https://help.mikrotik.com/docs/display/ROS/Scripting. По сути, это можно использовать, чтобы проверить нужный «find» — очевидно, он должен найти ровно один результат, но ты можешь использовать несколько атрибутов в find, чтобы отличить их. Например, измени параметры так, чтобы он нашёл WAN2: :put [/ip route get [find gateway=1.1.1.1 scope=10]]; Ты берёшь часть find и используешь её в скрипте вместо comment=.
     
     
     
    BrianRS
    Guest
    #9
    0
    21.03.2023 12:13:00
    Я всё ещё в замешательстве из-за синтаксиса… Этот скрипт, который мне нужно использовать, должен извлечь новый IP-шлюз и заменить им существующий маршрут, но при этом везде встречается только одна строка кода — либо «находится» нужная информация (в моём случае GW), либо создаётся новый маршрут (а это я делать не хочу). Или я опять неправильно читаю все эти примеры…???
     
     
     
    Amm0
    Guest
    #10
    0
    21.03.2023 12:45:00
    Это запутанно. По скриншоту похоже, что у вас рекурсивная маршрутизация. Вам не нужен скрипт, если вы хотите, чтобы DHCP-клиент добавлял маршрут с 0.0.0.0/0 к полученному IP от DHCP. Но при рекурсивной маршрутизации маршрут по умолчанию ведёт к вашему «канарейке» (8.8.8.8 в примерах MikroTik). При этом маршрут к 8.8.8.8 должен использовать IP-адрес, полученный от DHCP (например, WAN-IP). Поэтому идея скрипта в том, чтобы НЕ добавлять маршрут по умолчанию, а найти маршрут к 8.8.8.8 и установить для него адрес назначения как DHCP-адрес. Если вы используете «Monitor ISP1» и «Monitor ISP2» в поле комментариев в скрипте, всё должно работать. Я просто приводил более сложный пример, а вам нужно всего лишь обновить маршруты 1.1.1.1 и 8.8.8.8 с DHCP-адресом — так что комментарии тут очень простые.
     
     
     
    BrianRS
    Guest
    #11
    0
    21.03.2023 13:32:00
    Привет, @Amm0, судя по твоему расположению, ты либо рано встал, либо поздно ещё не ложишься! Ты прав, я использую рекурсивную маршрутизацию и понял, что мне нужно лишь обновить существующий маршрут “Monitor ISPx” с новым шлюзом, полученным через DHCP-клиент на интерфейсе eth2-WAN2-LTE. Так что раз это уже произошло (см. вложение), я правильно использую скрипт, как на следующем скриншоте? Ещё на втором скриншоте мне интересно, как именно мне обновить правило prerouting accept manage, хотя оно, похоже, вообще ничего не делает, поскольку пакеты через него не проходят? После того как разберусь с ISP2, надо понять, как сделать то же самое для шлюза PPPoE, ведь у меня там нет запущенного DHCP-клиента и нет настроек для скриптов прямо в интерфейсе, разве что через System\Scripts? Большое спасибо, B.
     
     
     
    Amm0
    Guest
    #12
    0
    21.03.2023 14:29:00
    Да, я заменяю конфигурацию RouterOS на кроссворды с чашечкой кофе. В общем, можно менять любой код в DHCP клиенте, так что можно просто добавить еще одну строку в скрипт для правила mangle. Если добавить тот же комментарий к вашему правилу фаервола, что и в /ip/route, то обновление будет работать так же. Вот еще одна строка конфигурации:

    :if ($bound=1) do={
     /ip route set [find where comment~"Monitor ISP2"] gateway=$"gateway-address" disabled=no
     /ip firewall mangle set [find comment~"Monitor ISP2"] disabled=no dst-address=$"gateway-address"
    } else={
     /ip route set [find where comment~"Monitor ISP2"] disabled=yes
     /ip firewall mangle set [find where comment~"Monitor ISP2"] disabled=yes
    }

    Команда «set» обновляет существующую запись, но для этого нужно её найти… именно поэтому используется синтаксис [find xxx], и он работает для любых команд. Фишка в том, чтобы использовать комментарий, так скрипт проще, чем искать какие-то специальные или уникальные атрибуты. Комментарий служит фиксированной ссылкой для скрипта — главное не трогать поля с комментариями, и всё будет работать.

    Еще я использовал ~ вместо = — это значит, что ищется подстрока «Monitor ISP2», на случай если по ошибке будет добавлен пробел. ~ — это regex, но по сути работает как поиск подстроки. = же требует точного совпадения текста комментария.
     
     
     
    BrianRS
    Guest
    #13
    0
    21.03.2023 14:48:00
    Спасибо, Amm0, это сработало отлично после освобождения старого IP! Теперь, если можно, хотел бы попросить твоё мнение по сценарию с ISP1: почему, по твоему мнению, этот mangle-правило (пункт 4 на прикреплённом скриншоте) не захватывает пакеты, учитывая, что оба WAN успешно используются через PCC?
     
     
     
    Amm0
    Guest
    #14
    0
    21.03.2023 15:28:00
    Точно сложно сказать. Но у LTE с CGNAT практически нет шансов получить входящие подключения к роутеру. LTE в основном занимается пересылкой трафика от LAN-клиентов, и этот трафик покрывается установленными/связанными правилами в файрволе.
     
     
     
    BrianRS
    Guest
    #15
    0
    21.03.2023 16:22:00
    Ок, спасибо, Amm0, всё понятно… Теперь к последнему пункту… С чего начать, чтобы применить такой же или похожий скрипт для обновления шлюза маршрута ISP1, используя удалённый адрес/сеть с интерфейса PPPoE? Большое спасибо, B
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры