Редирект портов на одном интерфейсе

Обсуждение ПО и его настройки
Ответить
mitrios
Сообщения: 6
Зарегистрирован: 07 апр 2024, 22:11

Добрый день!

Прошу помощи в решении проблемы. Микротик настроен на две подсети на одном интерфейсе ether2 (подключен один провод, так надо). С одной стороны физическая подсеть организации и шлюз в Интернет, с другой - wireguard. С обеих сторон микротик отлично работает, всё видно, всё передается, инет работает, короче проблем нет. Все порты ethernet и wlan отключены, бриджа нет, работают только weireguard1, ether2 и lo. Т.е. микротик одновременно смотрит в инет по дефолтному маршруту и в ВПН с маршрутом 10.8.0.0/24 и в сеть компании физически через ether2.

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

/ip address
add address=192.168.0.3/16 interface=ether2 network=192.168.0.0
add address=10.8.0.10/24 interface=wireguard1 network=10.8.0.0

/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=192.168.0.10 routing-table=main suppress-hw-offload=no

/ip fi na
add action=dst-nat chain=dstnat dst-port=22080 in-interface=wireguard1 log=yes protocol=tcp to-addresses=192.168.10.22 to-ports=80
Не работает dst-nat с подсети VPN в подсеть физическую. Потому что при редиректе в физ подсеть идёт пакет, где src-ip из подсети VPN, т.е. микротик не подставляет свой адрес со стороны сети как адрес источника. При этом, снифер пакетов показывает, что после редиректа пакет в сеть уходит через ether2 (получен был естественно с подсети wg), но адрес источника не 192.168.0.3, а 10.8.0.x и, соответственно, сервер внутренней сети не может обратно отправить пакет.

10.8.0.2:PORT => 10.8.0.10:22080 => dst-nat => 10.8.0.10:PORT => 192.168.10.11:80 адрес источника не меняется.
Почему? Не потому ли, что всё находится на одном интерфейсе? Сервер показывает что пакеты приходят от 10.8.0.10

Снифер:

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

wg1  rx 10.8.0.2:45853 => 10.8.0.10:22080 (TCP/IP)
eth2 tx 10.8.0.2:45853 => 192.168.10.22:80 (TCP/IP)
При этом, рядом с микротиком стоит комп на win10 с такой же конфой - одна сетевуха, wg интерфейс, и команда в терминале:

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

netsh interface portproxy add v4tov4 listenport=22080 listenaddress=10.8.0.4 connectport=80 connectaddress=192.168.10.22
всё решает - редирект работает отлично. при этом на сервере видно, что пакеты приходят от 192.168.0.2 (адрес винды)

В микротике нет никаких настроек - он после сброса. В файрволе только одно правило dst-nat.

Буду благодарен за поддержку!


bst-botsman
Сообщения: 189
Зарегистрирован: 13 окт 2018, 20:53
Откуда: Беларусь

настройте под это дело SRC-NAT.


RB3011UiAS x 1
RB4011iGS+5HacQ2HnD x 3
951Ui-2nD x 2
hAP ac^2 x 24
CheckPoint 1590 x 1
mitrios
Сообщения: 6
Зарегистрирован: 07 апр 2024, 22:11

bst-botsman писал(а): 08 апр 2024, 07:27 настройте под это дело SRC-NAT.
Я пробовал src-nat: эти пакеты не попадают в цепочку, правило никак не реагирует, логи пустые


mitrios
Сообщения: 6
Зарегистрирован: 07 апр 2024, 22:11

Я провел такой эксперимент:
подключил ether1 к отдельному роутеру (10.10.0.101) и в его же сети ноут (10.10.0.102)
на ether2 повесил только внутреннюю сеть 192.168.0.0/16 и отключил шлюз
wireguard вообще отключил
Всё чисто. dst-nat настроил на редирект с внешнего ether1 на внутреннюю сеть ether2, и всё равно ip источника НЕ МЕНЯЕТСЯ, причем ip стоит той машины, с которой идет запрос. Но интерфейс, с которого уходят пакеты во внутр сеть указан верно eth2. Это касяк прошивки?!
/ip dhcp-client
add interface=ether

/ip address
add address=192.168.0.3/16 interface=ether2 network=192.168.0.0

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=22080 in-interface=ether1 log=yes protocol=tcp \
to-addresses=192.168.10.22 to-ports=80


bst-botsman
Сообщения: 189
Зарегистрирован: 13 окт 2018, 20:53
Откуда: Беларусь

mitrios писал(а): 08 апр 2024, 10:59
/ip dhcp-client
add interface=ether

/ip address
add address=192.168.0.3/16 interface=ether2 network=192.168.0.0

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=22080 in-interface=ether1 log=yes protocol=tcp \
to-addresses=192.168.10.22 to-ports=80
Ну и где здесь правило для SRC-NAT?


RB3011UiAS x 1
RB4011iGS+5HacQ2HnD x 3
951Ui-2nD x 2
hAP ac^2 x 24
CheckPoint 1590 x 1
mitrios
Сообщения: 6
Зарегистрирован: 07 апр 2024, 22:11

bst-botsman, я уже писал, что делал правило src-nat и в логах пусто, оно не обрабатывает пакеты. Если вы знаете решение проблемы, тогда подскажите:
1. почему должно быть правило src-nat?
2. какие параметры правила - откуда и что принимать и куда что перенаправлять?
3. покажите пример правила, я попробую и пойму в чем у меня была проблема.

Буду очень благодарен


mitrios
Сообщения: 6
Зарегистрирован: 07 апр 2024, 22:11

Заработало:

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

/ip firewall nat
add action=dst-nat chain=dstnat dst-port=22080 protocol=tcp to-addresses=192.168.10.22 to-ports=80
add action=src-nat chain=srcnat dst-address=192.168.10.22 dst-port=80 protocol=tcp to-addresses=192.168.0.3 to-ports=80
тупая винда сама всё делает, а умный микротик нужно вести за руку.

Спасибо пользователю q2ker (viewtopic.php?t=14074)


mitrios
Сообщения: 6
Зарегистрирован: 07 апр 2024, 22:11

Есть ещё один момент, не знаю с чем связан...
Я пробросил кучу портов до разных устройств, в основном это коммутаторы, но есть и серверы Трассир. Для трассир есть стандартные порты 3080 и 3081 для Десктопной версии и 8080, 555 для мобильной. Проблема возникла в работе именно мобильного приложения - авторизация проходила, но не было ни коннекта с сервером (либо он возникал редко и рвался), и потока видео не было соответственно. На одном из форумов я нашел пост за 2018 год, где была такая же проблема, но её там не решили. В моем случае получилось решить, если убрать параметр to-ports из правила src-nat, т.е. оставить подмену IP, а порт оставить пустым. Предыдущий мой ответ на свой же вопрос должен быть такой:
add action=dst-nat chain=dstnat dst-port=22080 protocol=tcp to-addresses=192.168.10.22 to-ports=80
add action=src-nat chain=srcnat dst-address=192.168.10.22 dst-port=80 protocol=tcp to-addresses=192.168.0.3
в последней строчке правила убираем to-ports=80

Для Трассиров:
/ip firewall nat
add action=dst-nat chain=dstnat dst-port=18080 protocol=tcp to-addresses=192.168.0.12 to-ports=8080
add action=src-nat chain=srcnat dst-address=192.168.0.12 dst-port=8080 protocol=tcp to-addresses=192.168.0.3
add action=dst-nat chain=dstnat dst-port=1555 protocol=udp to-addresses=192.168.0.12 to-ports=555
add action=src-nat chain=srcnat dst-address=192.168.0.12 dst-port=555 protocol=udp to-addresses=192.168.0.3
Самое интересное в том, что после удаления во всех src-nat параметра to-pors трафик начал летать. По http, ssh всё стало загружаться гораздо быстрее, а Десктопный трассир начал заливать камеры почти мгновенно...


bst-botsman
Сообщения: 189
Зарегистрирован: 13 окт 2018, 20:53
Откуда: Беларусь

Вам бы перед тем как что-то делать хоть немного почитать за что отвечают параметры в правилах файрвола...
Вот, спрашивается, нафига ВЫ в правилах SRC-NAT подменяли кроме адреса источника еще и порт источника???


RB3011UiAS x 1
RB4011iGS+5HacQ2HnD x 3
951Ui-2nD x 2
hAP ac^2 x 24
CheckPoint 1590 x 1
Ответить