Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?



  • Здравствуйте всем! Прежде всего - спасибо разработчикам, приятный интерфейс и добротный набор сервисов для бесплатного комбайна, рад что не прошел мимо!
    Подскажите, как сделать правило подмены адреса источника для пакетов, исходящих из одной локальной сети на интерфейсе на адрес интерфейса в другой локальной сети, прописанной на том же сетевом интерфейсе?
    Поясню ситуацию - у меня есть сеть, в которой на одном и том же железе сосуществует несколько логических сетей, причем сосуществуют они "по тупому" - без Vlan'ов. Их объединяет шлюз (теперь он на pfsense собственно), на котором на один интерфейс прописаны адреса из каждой подсети. Мне нужно, чтобы они все пользовались общим DNS, а этот DNS разрешал запросы только для устройств из своей подсети. Все другие запросы я по такому случаю провожу через snat в локалку DNS'a, но в pfsense так не получается несмотря на вроде бы корректное правило вида "все udp что пройдет через интерфейс lan на адрес DNS сервера на порт udp 53 сменяет адрес источника (я думаю это должно происходить с пакетами в разделе nat - outbound) на адрес шлюза (и вот тут не понял - адрес шлюза в какой сети?). Такая схема работает в целом (iptables в linux, routerOS в mikrotik - это как минимум), но не в pfsense - подскажите, почему?
    ЗЫ. Решить проблему другими путями я могу, но хочу понять именно эту особенность в новом для меня ПО (с FreeBSD и pf тоже не знаком).



  • @arttemko said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    Такая схема работает в целом (iptables в linux, routerOS в mikrotik - это как минимум), но не в pfsense - подскажите, почему?
    ЗЫ. Решить проблему другими путями я могу, но хоч

    А вы можете привести скриншет правила и схему вашей сети?
    А если попытаться ванговать, то попробуйте поменять параметр NAT reflection в правиле, обычно помогает установка в "Enable (NAT + Proxy)"



  • Доброго.
    @arttemko

    У меня все dns-запросы из лок. сети завернуты на лок. адрес пф. Для этого создан портфорвардинг на ЛАН.
    Плюс создано явное правило fw на ЛАН где, в src - LAN net, а в dst - LAN addr, protocol - TCP\UDP, port - 53
    И это правило, ес-но, стоит выше правил, к-ые касаются выхода лок. сети в Сеть.

    Мне нужно, чтобы они все пользовались общим DNS, а этот DNS разрешал запросы только для устройств из своей подсети.

    Для этого лок. адрес пф должен охватывать всё адресн. пространство всех ваших "сетей". С помощью "меньшей" маски подсети. Также в настр. Unbound на пф имеется возможность указать кому можно\нельзя выполнять к нему dns-запросы.



  • @werter Не понял, зачем портфорвардинг для днс - pf у Вас не является шлюзом, только днс-сервером? Слушайте на нем и все😉
    В целом разобрался - я просто запутался в полях для правила, непривычный интерфейс...
    Спасибо за помощь, потом добавлю скриншот, может кому тоже пригодится.



  • @arttemko said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    Не понял, зачем портфорвардинг для днс - pf

    Отвечу за ув. werter.
    Это делает бесполезной замену DNS на клиентском устройстве. Как продвинутым пользователем, так и зловредом.



  • @pigbrother said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    Это делает бесполезной замену DNS на клиентском устройстве

    Перехват DNS что ли? Нехорошо это, как правда и прозрачный squid в все остальные mitm, да и не спасет от всяких Яндекс.Браузеров с DNSCrypt... ну да это уже оффтоп. Спасибо Всем за помощь, надеюсь и на дальнейшее взаимодействие!



  • Доброго.

    Перехват DNS что ли? Нехорошо это, как правда и прозрачный squid в все остальные mitm

    Почему нехорошо?
    Например, для решения той же задачи по Split DNS , когда почтовый сервер с реальным именем находится внутри локал. сети и при разрешении его имени в IP локальн. клиентам выдается серый локальный адрес, а не внешний. Иначе петля.
    Или когда вы сменили имя и ip-адрес оч. важного(c) сервера со спец. ПО, а перенастроить обращение к нему враз на всех машинах невозможно. И опять поможет заворачивание dns на пф.



  • @werter said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    когда почтовый сервер с реальным именем находится внутри локал. сети

    Так в том и дело ведь, во всех этих случаях уже есть сервер DNS со своим "видением мира" доменных зон. Снаружи никому эти измененные сопоставления не нужны (да и не дай бог DNS запросы из инета обрабатывать начать!) - почему тогда честно не прописать его внутренний адрес в реквизитах клиентов? Да и всякие active directory можно будет по случаю развернуть...
    Ну да хозяин - барин, как говорится. Хотя, насчет второго согласен: когда проблему решить нужно здесь и сейчас, можно и так (да тогда вообще все можно!).



  • Доброго.

    почему тогда честно не прописать его внутренний адрес в реквизитах клиентов

    Потому что прописывать имя (а не ip) и правильнее и универсальнее.

    Да и всякие active directory можно будет по случаю развернуть...

    И для этого 100% нужна Windows. Серверная. Лицензионная. За деньги.



  • @werter said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    Доброго.

    Извиняюсь, здравствуйте конечно. Я и не заметил что у нас диалог по сути.

    почему тогда честно не прописать его внутренний адрес в реквизитах клиентов

    Потому что прописывать имя (а не ip) и правильнее и универсальнее.

    Не понял идеи, прописать имя кого? DNS-сервера? Это как вообще?

    Да и всякие active directory можно будет по случаю развернуть...

    И для этого 100% нужна Windows. Серверная. Лицензионная. За деньги.

    У меня стояла, на бывшей работе правда (и точно знаю что до сих пор стоит) AD на Debian + Samba. Да, не фонтан, но тут как с тем же либреофисом на ПК у школьника - базовый функционал есть, работает стабильно, платить не нужно.



  • Доброго.
    @arttemko

    Не понял идеи, прописать имя кого? DNS-сервера? Это как вообще?

    FQDN почтового сервера. О нем же речь?

    У меня стояла, на бывшей работе правда (и точно знаю что до сих пор стоит) AD на Debian + Samba.

    Попробуйте вложенную группу в такой "AD" создать. Удивитесь. Только базовая функциональность.



  • @werter said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    FQDN почтового сервера. О нем же речь?

    Про почтовый сервер разговора не было! Может и так, когда почтовик и снаружи и внутри один и тот же скорее всего лучше с DNS не мудрить и всё со стороны wan заворачивать... не знаю, не доводилось мне с таким почтовиком работать, всегда разделял на внешний приемник писем и смарт релей для локальных пользователей (не принципиальный подход, просто изначально так сложилось и дальше так и развивал).



  • Доброго.
    @arttemko

    Про почтовый сервер разговора не было!

    Это не так. Был. Поднимите глаза выше.

    Например, для решения той же задачи по Split DNS , когда почтовый сервер с реальным именем находится внутри локал. сети и при разрешении его имени в IP локальн. клиентам выдается серый локальный адрес, а не внешний. Иначе петля.

    Может и так, когда почтовик и снаружи и внутри один и тот же скорее всего лучше с DNS не мудрить и всё со стороны wan заворачивать...

    Split DNS и решается с помощью DNS. В данном случае в кач-ве DNS выступает Unbound, к-ый крутится на пф. Это я и пытаюсь объяснить.



  • @werter said in Почему не проходит snat между подсетями на алиасах одного физического интерфейса в pfsense?:

    Про почтовый сервер разговора не было!

    Это не так. Был. Поднимите глаза выше.

    Извиняюсь, упустил этот момент, спор шел в разном контексте.