Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • 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
    Несколько туннелей Wireguard, использующих разные WAN-соединения

    Несколько туннелей Wireguard, использующих разные WAN-соединения

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Несколько туннелей Wireguard, использующих разные WAN-соединения, RouterOS
     
    tiernano
    Guest
    #1
    0
    16.06.2022 14:16:00
    Доброе утро всем. У меня есть CHR с 2 WAN-ссылками и 1 LAN-ссылкой. Основное его использование — туннелирование и BGP. Без добавления второй WAN-ссылки настройка выглядела так: маршрут по WAN-ссылке был добавлен в main. Три туннеля Wireguard на апстрим-серверы с подсетью /30 на каждый туннель (всего 3). BGP-соединение с апстрим-сервером. Все выученные маршруты помещались в таблицу с именем ASN. Весь трафик с роутера (wireguard, dns и т.д.) шел напрямую по WAN-ссылке. Правило маршрутизации для трафика по LAN-ссылке: lookup с использованием таблицы ASN (все устройства в LAN получают публичный IP из моего IPv4 или IPv6 диапазона). Всё работало идеально.

    Но когда добавил вторую WAN-ссылку, начались проблемы: добавил второй default маршрут в main, теперь он указывает на второй IP-шлюз. Создал 2 новые таблицы — ISP1 и ISP2, две дополнительные default-рутинг-записи для ISP1 и ISP2 с соответствующими шлюзами. Пробовал использовать mangle rule, цепочку output, маркировку маршрутов на заданную таблицу для конкретного IP назначения, обновил wireguard-серверы, чтобы они отправляли трафик на новый IP, но соединение не поднимается... Похоже, трафик уходит по новой ссылке, но с прежнего IP. У меня есть pref-source с статическим IP для каждого ISP, но даже без него подключения нет...

    Так что мне не хватает? Всё ли я делаю правильно, или есть более простой и правильный способ? Спасибо.
     
     
     
    iNaik
    Guest
    #2
    0
    24.10.2022 14:13:00
    Привет! Мне очень интересно настроить два wireguard с двумя провайдерами (ISP) на одном Mikrotik. Я пытался искать информацию в интернете, но найденные конфигурации кажутся слишком сложными. У меня простая сеть: два провайдера на стороне WAN и несколько сетей на стороне LAN. Весь LAN-трафик выходит в интернет через ISP1, а второй провайдер (ISP2) используется только для резервирования. У меня уже настроена сеть wireguard с ISP1, и она отлично работает. Затем я создал второй wireguard, но когда указываю IP/DNS на стороне клиента, соединение не устанавливается. Если же поставить ISP2 как «главный» маршрут, второй wireguard подключается без проблем. Можешь привести небольшой пример, где и что надо настроить, чтобы второй wireguard работал через ISP2, когда тот не является «главным» (то есть используется только для failover)? P.S. Мой failover работает с рекурсивными адресами. У меня RouterOS 7.6 на RB4011 (ARM). Спасибо! Niks Спасибо, Nico
     
     
     
    sindy
    Guest
    #3
    0
    25.10.2022 07:47:00
    Это описано в посте, на который я дал ссылку — при обработке начальных пакетов соединений вы присваиваете метку соединения «via WAN 2» всем соединениям, чей начальный пакет пришёл через WAN 2. А в цепочке вывода вы присваиваете метку маршрутизации «via WAN 2» всем пакетам, принадлежащим соединениям с меткой соединения «via WAN 2».
     
     
     
    tiernano
    Guest
    #4
    0
    24.10.2022 15:46:00
    Итак, у меня IP-адреса от провайдера статические. Поэтому я вручную настраиваю маршруты по умолчанию. У меня всего один маршрут по умолчанию, направленный на основного провайдера. Потом я создаю три таблицы маршрутизации: main (установлена по умолчанию), ISP1 и ISP2. В маршрутах у меня есть вторая копия маршрута по умолчанию для основного провайдера, но она назначена таблице ISP1. Второе соединение использует таблицу маршрутизации ISP2. Основное волшебство происходит в разделе route/rules. Там я настраиваю, чтобы IP моего первого WireGuard-устройства смотрел только в таблицу main, а второе устройство использует таблицу ISP2... Сейчас я не у роутера, но надеюсь, это даст тебе пару идей...
     
     
     
    sindy
    Guest
    #5
    0
    24.10.2022 16:22:00
    @iNaik, что-то в твоём сообщении даёт мне понять, что твой сценарий использования отличается от того, что у @tiernano — в частности, что ты хочешь использовать Wireguard, чтобы внешние устройства из интернета (например, твой телефон и ноутбук) могли получить доступ к подсетям твоей локальной сети, и при этом иметь возможность подключаться к любому из двух WAN-адресов. Так я правильно тебя понял?
     
     
     
    iNaik
    Guest
    #6
    0
    24.10.2022 16:52:00
    IP моего WireGuard: 10.1.20.1/23 (изображение IP-WG). Я создал отдельную таблицу с названием «rFIBRA-VODA» с шлюзом провайдера (в моём случае это pppoe-соединение) (изображение route-ISP2). И создал маршрутизацию/правило, чтобы весь трафик WireGuard шёл через ISP2 (изображение Routing/rules). Но это не сработало. Есть идеи?
     
     
     
    iNaik
    Guest
    #7
    0
    24.10.2022 16:58:00
    Да, моя проблема в том, что у ISP1 иногда возникают проблемы с внутренней сетью, и некоторые сети оказываются недоступны в зависимости от того, где я подключаюсь (например, если я иду к другому клиенту того же ISP1, WG не работает, а у клиентов с другими провайдерами или 4G/5G всё работает). Моя идея — иметь два WG, и если первый (самый используемый с ISP1) не работает, использовать второй WG для доступа к моим LAN-устройствам. Если возможно, иметь один WG и создать два туннеля с разными endpoint’ами (один у ISP1, другой у ISP2). Или если можно, иметь два WG и использовать один и тот же IP для WG-туннеля.
     
     
     
    sindy
    Guest
    #8
    0
    24.10.2022 17:21:00
    Итак, что вам действительно нужно — чтобы ваш Mikrotik отвечал через тот же WAN, на который пришёл исходный запрос. Прочитайте этот пост, начиная с последнего абзаца, где он связывается с вашим сценарием, и возвращайтесь сюда, если что-то останется непонятным. Просто имейте в виду, что здесь мы работаем с внутренним трафиком Mikrotik, поэтому перевод connection-mark в routing-mark должен происходить в цепочке output в mangle.

    Для вашего случая нет необходимости привязывать отдельный экземпляр Wireguard к каждому WAN-интерфейсу, можно использовать один общий. Но есть важный момент: нужно включить keepalive для пиров по двум причинам. Во-первых, UDP-соединения по умолчанию живут 3 минуты, и если в любом направлении не было трафика дольше этого времени, то файервол забудет соединение. Во-вторых, если первый пакет Wireguard после того, как соединение было забыто, будет отправлен Mikrotik, он уйдёт через основную таблицу маршрутизации.

    Файервол/ NAT на стороне клиента тоже забывает соединение спустя некоторое время без трафика.

    Интересный подход у провайдера — не позволять клиентам с публичными IP общаться друг с другом. Это правда только для клиентов, подключённых в одном географическом районе, которые, возможно, получают публичные IP из одной подсети и поэтому изоляция портов на уровне сети доступа имеет смысл? Или это происходит даже если вы подключаетесь из другого города, но через того же провайдера?
     
     
     
    iNaik
    Guest
    #9
    0
    25.10.2022 07:41:00
    Хмм, хорошо. Похоже, я немного лучше понимаю. Мне нужно настроить Mikrotik так, чтобы он отвечал через тот же провайдер, от которого пришёл запрос. Менять routing mark в цепочке output. Но не совсем понятно, как перехватить входящий трафик с ISP2 и ответить через тот же ISP2 по Wireguard-соединению. Попробую разные варианты. Большое спасибо, Niks!
     
     
     
    iNaik
    Guest
    #10
    0
    25.10.2022 08:57:00
    Вот так. Берём входящий трафик с WAN2 на порту WG (13231) и назначаем метку соединения. Затем берём эту метку соединения и помечаем пакеты. Помеченные пакеты переносим в маршрутизирующую метку с WAN2. По-моему, первые два шага работают, а вот с цепочкой «out» — нет.
     
     
     
    sindy
    Guest
    #11
    0
    25.10.2022 10:05:00
    Забудь про packet-mark. Просто присваивай connection-mark пакетам, которые соответствуют connection-state=new и входят через интерфейс WAN2 в prerouting, а потом присваивай routing-mark пакетам с этим connection-mark в output. Packet-mark и routing-mark действуют только для конкретного пакета, которому их присвоили, а connection-mark наследуется всеми пакетами одного и того же соединения, независимо от направления.
     
     
     
    anav
    Guest
    #12
    0
    25.10.2022 19:30:00
    ПОЧЕМУ? SINDY, ты приписала требования в уста OP. К тому же, подтверждено ли, что оба WANIP публичны и доступны извне? Если нет, то использовать этот конкретный WAN для Wireguard нельзя! Иначе говоря, требование неясно объяснено: когда ты говоришь про Wireguard, имеешь в виду только входящих клиентов? Или два соединения к стороннему VPN-провайдеру?

    Например, если речь просто о входящем трафике Wireguard, я, возможно, не согласен с Sindy — там может не понадобиться никакой сложной маршрутизации или манипуляций… Если wan1 недоступен, клиент на удалённом объекте подключается ко второму интерфейсу Wireguard на клиентской стороне, который связан со вторым интерфейсом Wireguard на стороне роутера.

    У меня, например, на iOS телефоне можно создать несколько профилей Wireguard. Так, на основном роутере:

    input chain dst-port=14441 in-interface=WAN1  
    input chain dst-port=15552 in-interface=WAN2  
    /IP address add address=10.10.44.1/24 interface=WG1  
    add address=10.50.55.1/24 interface=WG2 и так далее… Всё просто!

    Маршруты создаются автоматически MT. Allowed IPs на роутере такие же:  
    первый интерфейс Wireguard = WG1, порт прослушивания = 14441  
    wg1 peers allowed IPs = 10.10.44.2/32  
    второй интерфейс Wireguard = WG2, порт прослушивания = 15551  
    wg2 peers allowed IPs = 10.10.55.2/32

    Настройка клиента на удалённом объекте 1  
    Интерфейс: Wireguard IP = 10.10.44.2/32  
    Peer info: endpoint/port = WAN1IP/dydns url : 14441  
    keep alive = 30 секунд

    Настройка клиента 2  
    Интерфейс: Wireguard IP = 10.10.55.2/32  
    Peer info: endpoint/port = WAN2IP/dyndns url : 15551  
    keep alive = 35 секунд
     
     
     
    iNaik
    Guest
    #13
    0
    28.10.2022 17:05:00
    Привет, anav, спасибо за информацию. Проблема с тем, что ISP не обеспечивает связь между клиентами, — это вопрос, над которым мы сейчас работаем вместе с провайдером. Представим, что сеть клиента и моя сеть правильно доступны. Сейчас я пытаюсь подключиться через 4G. Пробую использовать DDNS от ISP1 и DDNS от ISP2. Разные DDNS, но один и тот же порт (13231). Вопрос в том, можно ли иметь один интерфейс Wireguard на Mikrotik и использовать его с двумя WAN-портами, которые у меня есть. Например, менять DDNS у WG или создавать два туннеля Wireguard (идентичных, кроме endpoint). На изображении показана схема подключения и маршруты 0.0.0.0/0 (основной маршрут [ISP1] и второй маршрут [ISP2]), а также снимки главного маршрута (ISP1) и второго маршрута (ISP2) на Mikrotik. Мне кажется, нужно настроить так, чтобы при запуске WG через WAN2 ответы выходили именно через WAN2 (сейчас ответ идёт через WAN1 и соединение не устанавливается). Пробовал настраивать через mangle, но не смог понять, как изменить исходящий интерфейс соединения, которое стартовало с WAN2. (На изображениях показана моя конфигурация.)
     
     
     
    sindy
    Guest
    #14
    0
    28.10.2022 18:03:00
    Вместо того чтобы выкладывать кучу скриншотов, лучше покажи результат команды /export в тегах
    Код
     и 
    (или используй кнопку [</>], после того как уберёшь серийный номер и анонимизируешь все публичные IP-адреса и логины к сервисам. Мне смутно помнится, что в ранних версиях ROS 7 были проблемы с обработкой Wireguard-пакетов транспортного уровня через цепочку mangle output. Какую версию ROS ты используешь? В любом случае, я бы посоветовал открыть окно [Terminal] в Winbox, максимально растянуть его по ширине экрана, запустить там /tool sniffer quick port=13231 и попробовать подключиться с клиента. В сниффере ты должен увидеть входящий запрос и исходящий ответ, а также интерфейсы, через которые они проходят. Если запрос приходит, но ответа нет, скорее всего, проблема с фаерволом. Если виден исходящий ответ, но через неправильный WAN-интерфейс — что-то не так с настройкой routing mark.
     
     
     
    iNaik
    Guest
    #15
    0
    29.10.2022 09:10:00
    Извиняюсь за количество фоток, обычно я больше работаю с графическим интерфейсом, а не с терминалом (но и с командами терминала тоже справляюсь). У меня версия RouterOS 7.6. На скриншоте сниффера (не знаю, как в терминале посмотреть, чтобы скопировать код) запрос от CLIENT на WAN2, а ответ с WAN1 клиенту. У меня есть настройки firewall, но они для других портов (в NAT), и фильтры блокируют IP (проверил, что нет блокировок IP, которые я использую), а также есть mangle для изменения маршрута по списку адресов.  

    С “mark connection” и “mark routing” пытаюсь изменить маршрут подключения, которое приходит через WAN2, чтобы ответ уходил тоже через WAN2. Но “mark routing” с цепочкой “output” не получает трафик пакетов, а “mark connection” ловит пакеты, когда запускаю WG с клиента, настроенного на WAN2.  

    /ip firewall mangle  
    chain=prerouting action=mark-connection new-connection-mark=WG-VODA-conn connection-state=new protocol=udp in-interface=pppoe-VODAFONE dst-port=13231  
    chain=output action=mark-routing new-routing-mark=rFIBRA-VODA connection-mark=WG-VODA-conn  

    Есть идеи, как решить?
     
     
     
    sindy
    Guest
    #16
    0
    29.10.2022 12:53:00
    Я не прошу тебя менять свои рабочие привычки, просто прошу предоставить конфигурацию в виде, который будет полноценным и гораздо более эффективным с точки зрения информации на пиксель, чем скриншоты. Действительно есть проблема с присвоением routing-mark. Если бы дело было в фильтре, то ответа вообще бы не было. Я не вижу, есть ли дополнительное условие совпадения на одной из других вкладок, так что это может быть либо баг, либо проблема с конфигурацией; экспорт (или скриншот каждой вкладки для этого правила) бы развеял сомнения. Поэтому убери (или просто отключи) правило action=mark-routing в цепочке output и вместо этого добавь следующее правило маршрутизации: /routing/rule/add src-address=ip.of.wan.2 action=lookup table=rFIBRA-VODA (при условии, что это будет единственное правило маршрутизации в твоей конфигурации — порядок правил важен, так что если это не так, их, возможно, придется переставить). Решение с connection-mark и его переводом в routing-mark в mangle более универсальное и при необходимости его можно настроить тоньше; решение через правило маршрутизации — более простое, но для этого конкретного случая достаточно. Это либо решит проблему, либо как минимум покажет, что действительно есть баг в обработке исходящих Wireguard-транспорта. Что касается отсутствия MAC-адресов на интерфейсе PPPoE, это нормально — PPPoE это интерфейс L3, так что IP-пакеты, проходящие через него, не имеют Ethernet-заголовка.
     
     
     
    iNaik
    Guest
    #17
    0
    31.10.2022 11:21:00
    Привет! С кодом routing/rule/add src-address=ip.of.wan.2 action=lookup table=rFIBRA-VODA подключение через Wireguard и WAN2 работает идеально! Предполагаю, что это правило не повлияет на обычное использование. Есть какой-то способ сделать это через фильтры/NAT/mangle? Если так будет лучше. Большое-большое спасибо!!!
     
     
     
    sindy
    Guest
    #18
    0
    31.10.2022 11:37:00
    Таким образом, все запросы, которые приходят через WAN 2 к самому роутеру, обрабатываются и отправляются обратно через WAN 2. Для проброса портов на какие-то хосты в LAN вам потребуется использовать правила mangle, если вы хотите точную настройку по протоколам и портам или если хотите, чтобы ответы от того же LAN-хоста маршрутизировались через тот же WAN, через который пришёл запрос. Сам роутер отвечает на запросы с того адреса, на который пришёл запрос, поэтому можно использовать исходный адрес как ключ для выбора таблицы маршрутизации. Для запросов, которые перенаправляются на один и тот же адрес в LAN независимо от того, через какой WAN они пришли, ответ всегда приходит с одного и того же адреса, поэтому такие запросы неотличимы друг от друга, и тогда нужно использовать connection-mark.
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры