Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Приоритет IPv6 на пирах WireGuard с IP Cloud при смешанных DNS-записях A/AAAA?

    Приоритет IPv6 на пирах WireGuard с IP Cloud при смешанных DNS-записях A/AAAA?

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Приоритет IPv6 на пирах WireGuard с IP Cloud при смешанных DNS-записях A/AAAA?, RouterOS
     
    Larsa
    Guest
    #1
    0
    19.02.2024 22:15:00
    Мы работаем с некоторыми клиентами, где региональный NMO вскоре полностью откажется от всех публичных IPv4-адресов в пользу CGNAT. В NMO внедрен IPv6, но доступны только динамические префиксы /64. Чтобы решить эту возможную проблему, мы хотим как можно скорее приоритетизировать IPv6-подключения для всех затронутых WireGuard-пиров. WAN-адреса роутеров публикуются через MikroTik IP Cloud (xxxx.sn.mynetname.net) и содержат как A, так и AAAA записи. В данный момент WireGuard-пиры по умолчанию используют IPv4, когда в DNS есть смешанные A/AAAA записи, несмотря на то, что вызывающий пир использует только IPv6. Тестировалось на Ros 7.12.1 и 7.13.5.

    Вопросы:
    Можно ли заставить WireGuard-пир устанавливать соединение через IPv6, если в DNS MikroTik IP Cloud-эндпойнта есть и A, и AAAA записи?
    Есть ли способ в CLI resolver специально запросить и отобразить только AAAA записи, например, с помощью [:resolve server-with-mixed-a-records.com type=AAAA] или каким-то похожим методом?
     
     
     
    varkey
    Guest
    #2
    0
    15.07.2024 07:05:00
    Заметил ту же проблему сегодня, когда настраивал туннель WG. С обеих сторон только публичный IPv6 (хотя и динамический), IPv4 — CGNAT. Конфигурация пира WG отдает предпочтение IPv4 (приватному, CGNAT) и из-за этого не удаётся подключиться. Должен быть способ отдавать приоритет IPv6.
     
     
     
    demetris
    Guest
    #3
    0
    12.12.2024 10:22:00
    Я тоже столкнулся с такой же проблемой. У моего провайдера GCNAT, но при этом он выдает ipv6-адреса. Внутри моей локальной сети у меня есть Linux-машина, и мне удалось подключиться к интерфейсу Wireguard через его публичный ipv6-адрес (с телефона, используя мобильный интернет). Для этого я написал скрипт на Python, который обновляет hostname, полученный с dynv6.com, используя их API, но только AAAA-запись. Поле ipv4 я пропустил, и у этого hostname только AAAA-запись. Таким образом, Wireguard-клиент подключается только по ipv6. Однако мне нужен доступ и к моему роутеру Mikrotik, а IP Cloud от роутера использовать не могу, так как он обновляет и ipv4, и ipv6. Возможно, можно добавить опцию — использовать только один или оба варианта IP. Еще один вариант, который хочу попробовать — добавить контейнер с минимальным Linux в Docker, чтобы сделать то же самое: обновлять только AAAA-запись hostname с публичным ipv6-адресом Mikrotik.
     
     
     
    CGGXANNX
    Guest
    #4
    0
    12.12.2024 11:27:00
    Вы можете запланировать скрипт, похожий на этот:

    :local peer_domain "my.domain.net";  
    :local peer_comment "XYZ";  
    :local new_addr [:resolve type=ipv6 domain-name="$peer_domain"]

    /interface wireguard peers;  
    :foreach peer in=[find comment="$peer_comment"] do={
       :local old_addr [get number=$peer endpoint-address];
       :if ($new_addr!=$old_addr) do={  
           :log info "update_wireguard_endpoint: Обновление \"$peer_comment\" $old_addr -> $new_addr (от \"$peer_domain\").";  
           set number=$peer endpoint-address="$new_addr";  
       };  
    };

    Добавьте соответствующий комментарий к записям пиров. В последних версиях RouterOS у WG-пиров есть также поле name, вы можете использовать его вместо комментария.
     
     
     
    demetris
    Guest
    #5
    0
    12.12.2024 11:41:00
    Спасибо за скрипт, но, как мне кажется, всё наоборот. Я подключаюсь к Mikrotik. Поэтому я не добавляю никаких конечных точек в peers на своём интерфейсе WireGuard Mikrotik. Но мне нужно добавить публичный IPv6-адрес PPPoE-интерфейса Mikrotik как конечную точку в peer, который я добавил на телефоне (он указывает на WireGuard Mikrotik).
     
     
     
    CGGXANNX
    Guest
    #6
    0
    12.12.2024 15:09:00
    О, в таком случае тебе нужен простой скрипт на роутере, который с помощью /tool fetch и API обновления dynv6.com https://dynv6.com/docs/apis#update будет автоматически обновлять DNS-запись каждый раз, когда DHCPv6 клиент получает новый префикс. Можно попробовать что-то вроде этого (я адаптировал из своего скрипта для другого DDNS-провайдера, не dynv6.com, так что не тестировал):

    Создай скрипт, назовём его update_dynv6 (vlan10 — интерфейс с IPv6-адресом, который роутер обычно использует для выхода в интернет. Также убери check-certificate=yes, если у тебя не установлены все сертификаты CA):

    :local token "xxxxxxxx";
    :local host "my.domain.com";
    :local ipv6Interface "vlan10";

    :local PREFIX2IP6 do={
       :return [:toip6 [:pick $1 0 [:find $1 "/" 0]]];
    }

    :if ([/interface get $ipv6Interface value-name=running]) do={
       :local i6Addresses [/ipv6 address find global !dynamic interface=$ipv6Interface];

       :if (1 > [:len $i6Addresses]) do={
           :log error "Dynv6-Updater: Найдено $[:len $i6Addresses] глобальных IPv6-адресов для интерфейса \"$ipv6Interface\".";
       } else={
           :if (1 != [:len $i6Addresses]) do={
               :log warning "Dynv6-Updater: Найдено $[:len $i6Addresses] глобальных IPv6-адресов для интерфейса \"$ipv6Interface\".";
           }

           :local currentIPv6 [$PREFIX2IP6 [/ipv6 address get number=($i6Addresses->0) address]];
           :local url ("https://dynv6.com/api/update?zone=" . $host . "&token=" . $token . "&ipv4=-&ipv6=" . $currentIPv6);  
           :local resolvedIPv6 "";

           do {
               :set resolvedIPv6 [:resolve $host type=ipv6];
           } on-error={
               :log warning "Dynv6-Updater: Для $host нет существующей IPv6 записи";
           }
           
           :if ($currentIPv6 = $resolvedIPv6) do={
               :log info "Dynv6-Updater: Хост $host уже зарегистрирован на Dynv6.com с IP $currentIPv6";
           } else={
               :log info "Dynv6-Updater: Отправка обновления для $host — $currentIPv6";
               /tool fetch url=$url mode=https check-certificate=yes output=none;
               :log warning "Dynv6-Updater: Хост $host обновлён на Dynv6.com с IP $currentIPv6";
           }
       }
    } else={
       :log info "Dynv6-Updater: Интерфейс $ipv6Interface сейчас не активен.";
    }

    Запускай скрипт из раздела “Script” на вкладке “Advanced” в настройках DHCPv6 клиента так:

    if (1=$"pd-valid") do={
       /delay 2
       /system script run update_dynv6;
    }
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры