Страница 1 из 1

Проброс порта для подключения по wireguard к пиру за микротиком

Добавлено: 14 сен 2023, 08:32
Gorshochek
Здравствуйте. Нужна подсказка, где я ошибся. Буду благодарен за помощь.

Есть микротиком с внешним статическим IP. За этим микротиком находится wireguard пир, а если быть точным, то что можно обозвать сервером (концентрирует других пиров для их последующего взаимодействия). Тут сразу оговорюсь, что мне именно так и нужно. Wireguard на микротике мне не подходит.

Для подключения к условному wireguard серверу (обзову его просто сервер) я на микротик написал правила:

Код: Выделить всё

Flags: X - disabled, I - invalid; D - dynamic 
 0    ;;; defconf: masquerade
      chain=srcnat action=masquerade out-interface-list=WAN ipsec-policy=out,none 

 1    chain=dstnat action=dst-nat to-addresses=192.168.77.44 to-ports=49998 protocol=udp dst-address=1.1.1.1 dst-port=49998 log=yes log-prefix="dstnat to nuc"
1.1.1.1 это условный внешний статический IP моего сервера.

В таблице filter я добавил форвардинг для сервера (правило 13)

Код: Выделить всё

10    ;;; defconf: accept established,related
      chain=forward action=accept connection-state=established,related log=no log-prefix="not new" 
13    ;;; Wireguard port forwarding
      chain=forward action=accept protocol=udp in-interface=ether1 dst-port=49998 log=no
При подключении извне все работает, я проверил и протестировал. Однако есть другая проблема. Чтобы не заниматься бесконечным подключением-отключением wireguard пиров моего сервера при подключении их к сети микротика я хочу чтобы изннутри сети микротика (локалки) подключение по wireguard точно также работало, как оно работает при подключении к серверу извне.

Естественно в конфигурациях пиров в качестве адреса подключения к серверу прописан внешний статический IP, то есть 1.1.1.1:49998. Для подключения по такому адресу:порту изнутри микротик должен понимать, что обращение идет к нему изнутри, но по внешнему адресу. По идее правило dnat подходит под эти условия, т.к. я не указал явно, что проброс надо осуществлять только с WAN (интерфейса наружу).

В таблице filter правило для форвардинга изнутри я добавил

Код: Выделить всё

14    chain=forward action=accept protocol=udp in-interface=bridge dst-port=49998 log=no
В итоге с таким набором правил я вижу пакеты, которые в случае подключения изнутри к серверу идут через микротик (dnstnat + forwarding), я вижу по tcpdump на 49998 порту, что пакеты доходят до сервера, я вижу что сервер отвечает, но я не вижу, чтобы пакеты доходили обратно до пира. На микротике я их тоже не вижу. Судя по тому, что я логировал все указанные мной правила, они режутся где-то на микротике, хотя для меня это тоже не точно.

Подскажите, как поправить конфигурацию, чтобы без пересройки пиры могли подключатся и соединятся с ресурсами инета как извне, так и изнутри?

Re: Проброс порта для подключения по wireguard к пиру за микротиком

Добавлено: 14 сен 2023, 08:53
xvo
Поиском hairpin nat.

Re: Проброс порта для подключения по wireguard к пиру за микротиком

Добавлено: 14 сен 2023, 09:45
Gorshochek
xvo писал(а): 14 сен 2023, 08:53 Поиском hairpin nat.
Благодарю от души! Даже не натыкался на эту сущность при поиске :-( Оф. статья отсюда - https://help.mikrotik.com/docs/display/ ... HairpinNAT все разъяснила. Вечером буду настраивать. Тему пока не закрываю, вдруг будут вопросы.