Есть интересная задачка!
Как сделать перенаправление трафика из локалки, адресованного на внешний интерфейс, обратно в локалку на веб-сервер, работающий на порту 3000/tcp (Mdaemon)?
Вот конфиг:
Код: Выделить всё
table <firewall> const { self }
....
#################
## Translation ##
#################
nat on $ext_if from $lan_net to any -> ($ext_if)
rdr on $ext_if proto tcp from any to <firewall> port 80 -> 192.168.254.15 port 3000
rdr on $int_if proto tcp from $lan_net to <firewall> port 80 -> 192.168.254.15 port 3000
###############
## Filtering ##
###############
block in on $ext_ifs all
antispoof quick for $int_if inet
# Rules for lan-interface
pass in quick on $int_if all
pass out quick on $int_if all
# Rules for out-traffic
pass out quick on $ext_if proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if proto { udp, icmp } from any to any keep state
# Rules to INBOUND connections
pass in quick on $ext_if proto tcp from $routers to any port 3000

RINETD очень неплохо справляется с этой задачей, но хочется, чтобы все было в одном флаконе PF.
Это нужно для того, чтобы пользователи, указывая в браузере только одно DNS-имя сервера, могли попасть на него как с внешки, так и из локалки (проклятые юзвери, их не научишь разным адресам

Настраивать локальный DNS-сервер - не вариант, т.к. он настроен на другие зоны, и не хотелось бы из-за одного адреса заводить целую зону.
Пробовал настраивать как тут: http://house.hcn-strela.ru/BSDCert/BSDA ... reflection - но никак не получается

Помогите дописать данные правила, чтобы работало!