![拆分 DNS 和内部端口转发](https://linux22.com/image/726672/%E6%8B%86%E5%88%86%20DNS%20%E5%92%8C%E5%86%85%E9%83%A8%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91.png)
我有一个 pfSense 防火墙,它运行在一个相当标准的配置中,1 个 WAN,1 个 LAN。在 pfsense 的两侧,我想通过 DNS 名称提供服务,比如说“service.domain.com”。对于 WAN,DNS 条目指向 pfsense 的 WAN IP 地址,并且我已经为 LAN 设置了一个有效的拆分 DNS 配置,因此设备被重定向到服务的 LAN IP。
在 WAN 端,目标服务器上有一个从 443 TCP 到端口 444 TCP 的端口转发,因此服务在非 HTTPS 端口(已在使用中)上运行。当我尝试为 pfSense 的 LAN 端镜像此配置时,麻烦就开始了。我在 pfSense 上添加了一个虚拟 IP,专门用于拆分 DNS 配置。
到目前为止我已经尝试过:
在 LAN 端配置了端口转发规则(新虚拟 IP 443 TCP --> 目标服务器 444 TCP)。流量通过正确的端口到达目标服务器,并从服务器到达正确的目的地(通过 tcpdump 和 Microsoft Netmon 验证)。客户端超时(telnet、openssl 用于测试)。
我的猜测是,客户端接收到了流量,但丢弃了它,因为它无法将其与已建立的连接关联起来。
另一项测试是 1:1 NAT,但在这个 1:1 NAT 中我无法更改目标端口,而我需要在该配置中执行此操作。
实现这种“内部端口转发”的最佳方法是什么?
谢谢!
答案1
我最终在防火墙中添加了手动出站 NAT 规则:
- 传入接口:LAN
- 源 IP:任意
- 源端口:任意
- 目标:目标服务器 LAN IP
- 目标端口:目标服务器端口(例如 444 TCP)
- NAT 地址:pfSense LAN 接口地址
该服务现在可与裂脑 DNS 和内部端口转发配合使用。