多个公共 IP 无法正确路由。
我想设置以下网络:
public_ip1(已分配的 WAN IF)-> pfSense -> 服务器 1,2,3 - 192.168.0.11,.12,.13
public_ip2(已分配 WAN2 IF)-> pfSense -> 服务器 4 - 192.168.0.22
我为 public_ip2 设置了第二个接口,还添加了防火墙和 NAT 规则,允许/转发 public_ip2 上的任何内容到 192.168.0.22。我添加了一条出站规则,允许 192.168.0.22 上的任何内容到 WAN2。
当我尝试使用 curl 之类的工具时,从 192.168.0.22 服务器http://ipecho.net/plain它返回 public_ip1。我的 public_ip2 的网关在接口设置中设置正确。
我可以通过 ssh 进入 public_ip2 上的 .22 服务器,一切正常。
我错过了什么?
答案1
所以,防火墙规则的顺序很重要。我当然知道这一点,但有时在战斗中很难看出来。
以下是完美运行的设置:
物理设置如下:
电缆调制解调器 -> DMZ 交换机 -> LAN1 接口 -> LAN2 接口
在 pfSense 上设置 LAN1 和 LAN2 接口。
208.xxx.xxx.xxx Gateway 208.xxx.xxx.1
66.xxx.xxx.xxx Gateway 66.xxx.xxx.1
系统->路由 – 应显示两个网关 系统->路由 – 无内容 系统->组 – 无内容 防火墙->虚拟 IP – 无内容 状态->网关 – 均应处于启动状态
防火墙->NAT-必须是首要规则:
WAN2 TCP/UDP * * WAN2 address 1-65535 192.168.0.22
防火墙->NAT – 出站 – 选择手动出站 NAT
WAN2 192.168.0.22/32 * * * WAN2 Address
防火墙->规则 LAN – 必须是第一条规则
LAN 192.168.0.22 * * * WAN2GW
防火墙->规则 WAN2– 必须是第一条规则
WAN2 * * 192.168.0.22 1-65535 *
现在,如果我在 192.168.0.22 服务器上并检查我的 IP,它会显示正确的 208.xxx.xxx.xxx 地址,这意味着它正在使用 LAN2 网关。如果我在除此以外的服务器上,它会显示 66.xxx.xxx.xxx 地址。我还可以完全访问 208.xxx.xxx.xxx 地址的 192.168.0.22 服务器。请注意,所有流量都会转发到运行自己的 iptables 防火墙的 192.168.0.22 服务器。
pfSense 太棒了!
答案2
NAT 仅定义转换,而不是流量方向。如果要应用该 NAT,则需要将该主机路由到第二个 WAN。这在 2.1 版书籍和今年早些时候的多 WAN 通话记录中有详细说明,两者都可供黄金订阅者 @ portal.pfsense.org 使用。