Добрый день! Не смог найти в Сети ответ на свой вопрос, даже не смотря на то, что были похожие темы. Если есть ответ, дайте ссылку, либо укажите что делаю не так. Есть Микротик (М) и предположим, что я могу использовать только один порт, пусть ether2. На нем настроена подсеть 192.168.0.0/16, дефолтный шлюз 192.168.0.10 и всё прекрасно работает, и сеть, и Инет. В М поднят Wireguard интерфейс и соединен с удаленным VDS (подсеть 10.8.0.0/24) и с той стороны тоже всё работает - видны другие узлы и сам М. Не могу сделать проброс портов с подсети VPN в физическую подсеть к узлу 192.168.10.22. Естественно, что его сам М видит и со стороны узла интерфейс М eth2 по 192.168.0.3 отвечает. Адрес М для VPN = 10.8.0.10/24 и он является маршрутом только для этой же подсети. Firewall отключен совсем, правил нет никаких, фильтров нет, ничего нет - пустой микротик после сброса с прошивкой 7.14.2. Работает в режиме CAP. Все остальные интерфейсы (все eth, wlan) отключены. Работают только eth2, wireguard1 и lo. Мне нужно пробросить: 10.8.0.0/24:XXXX => 10.8.0.10:22080 (M) => 192.168.10.22:80 и попасть в морду. Если предположить, что VPN частная подсеть типа LAN, а Ether2 это WAN, что логично для данного случая (несмотря на то, что wg подключен через тот же eth2 и его шлюз к VDS), то цепочка src-nat в принципе не обрабатывает пакеты от узла из VPN. Какие настройки не делал, просто не видит эти пакеты. Я так понял, для М wireguard это внешний интерфейс и собственно eth2 тоже, раз он на нём чует Интернет. Но вот dst-nat (с чего я изначально и начал), пакеты видит, но перенаправляет с источником 10.8.0.10. Как я понял, он должен ставить src-ip свой 192.168.0.3, который на интерфейсе eth2, или я ошибаюсь? Я полагаю, что узел 192.168.10.22 не может отправить ответ на адрес в другой подсети, что тоже логично. Я пробовал перенаправлять пакеты на другой микрот, чтобы убедится в том, что они приходят, и они приходят. Но адрес источника из VPN. /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-address=10.8.0.10 dst-port=22080 log=yes protocol=tcp src-address=10.8.0.6 to-addresses=192.168.10.22 to-ports=80 так тоже не работает: 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 Сниффер показывает: wg1 rx 10.8.0.6:45853 => 10.8.0.10:22080(TCP/IP) eth2 tx 10.8.0.6:45853 => 192.168.10.22:80(TCP/IP) Пакеты с eth2 уходят с адресом источника VPN, это нормально? Может надо использовать Mangle? Я не суперспец в этих вопросах, но мы учимся благодаря общению и опыту. Сразу скажу, что рядом с микротиком стоит обычный комп на 10-й видне, который также настроен на внутренюю сеть, у него есть такой же вирт. инт. WG и так же подключен одним проводом к тому же свитчу. И одна команда в терминале: netsh interface portproxy add v4tov4 listenport=22080 listenaddress=10.8.0.4 connectport=80 connectaddress=192.168.10.22 всё решает - редрект работает. Заранее благодарю за поддержку!
Вроде бы "пустой миркотик после сброса" имеет какие-то настройки в разделе файервола, может и "невидимые" (насчет 7 версии не уверен).
Только что проверил на той же Винде - другой микротик получает входящее после редиректа с адреса ШЛЮЗА, но не с адреса ВПН. Я полагаю, что микротик, который редиректит, отправляет пакеты и не изменяет в них адрес ИСТОЧНИКА потому, что все эти адреса на одном физическом интерфейса. Завтра проверю эту теорию и отпишусь. Не работает: сеть ВНН -> Mikrotik Router -> dst-nat -> Mikrotik Test (получает src-ip VPN) Работает: сеть ВПН -> Win10 Router -> dst-nat -> Mikrotik Test (получает src-ip Win10)
Решение: /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 В построутинг явно указываем, что пакеты в адрес подсети 192.168.0.0/16 отправляем через адрес того самого интерфейса.
Выше у меня ошибка: нужно в правиле src-nat убрать параметр to-ports: /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 Иначе мы подменяем адрес источника