Редирект dst-nat и src-nat

Тема в разделе "Вопросы и решение проблем", создана пользователем mitrios, 6 апр 2024.

  1. mitrios

    mitrios New Member

    Регистрация:
    6 апр 2024
    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Пол:
    Мужской
    Добрый день!
    Не смог найти в Сети ответ на свой вопрос, даже не смотря на то, что были похожие темы. Если есть ответ, дайте ссылку, либо укажите что делаю не так.

    Есть Микротик (М) и предположим, что я могу использовать только один порт, пусть 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

    всё решает - редрект работает. Заранее благодарю за поддержку!
     
    Последнее редактирование: 6 апр 2024
  2. fAntom

    fAntom Moderator

    Регистрация:
    28 апр 2018
    Сообщения:
    276
    Симпатии:
    3
    Баллы:
    18
    Вроде бы "пустой миркотик после сброса" имеет какие-то настройки в разделе файервола, может и "невидимые" (насчет 7 версии не уверен).
     
  3. mitrios

    mitrios New Member

    Регистрация:
    6 апр 2024
    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Пол:
    Мужской
    Только что проверил на той же Винде - другой микротик получает входящее после редиректа с адреса ШЛЮЗА, но не с адреса ВПН. Я полагаю, что микротик, который редиректит, отправляет пакеты и не изменяет в них адрес ИСТОЧНИКА потому, что все эти адреса на одном физическом интерфейса. Завтра проверю эту теорию и отпишусь.

    Не работает: сеть ВНН -> Mikrotik Router -> dst-nat -> Mikrotik Test (получает src-ip VPN)
    Работает: сеть ВПН -> Win10 Router -> dst-nat -> Mikrotik Test (получает src-ip Win10)
     
  4. mitrios

    mitrios New Member

    Регистрация:
    6 апр 2024
    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Пол:
    Мужской
    Решение:

    /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 отправляем через адрес того самого интерфейса.
     
    fAntom нравится это.
  5. mitrios

    mitrios New Member

    Регистрация:
    6 апр 2024
    Сообщения:
    4
    Симпатии:
    2
    Баллы:
    3
    Пол:
    Мужской
    Выше у меня ошибка: нужно в правиле 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

    Иначе мы подменяем адрес источника
     
    Последнее редактирование: 10 апр 2024
    fAntom нравится это.

Поделиться этой страницей

Share