PF 临时重新路由到不同的 IP

PF 临时重新路由到不同的 IP

我有一台 FreeBSD 主机,它是内部网络上其他系统的入口点。因此,我已pf配置将某些端口(例如,端口 5000)上的传入流量重定向到该机器上运行网络服务的其中一个 jail 上的主机本地地址。如下所示:

---port 5000--->[Main host]
                     |
                     |---port 5000--->[Machine A]
                     |~~~~~~~~~~~~~~~~[Machine B]

重定向由 PF 规则执行:

rdr pass on egress proto tcp from any to $IP port 5000 -> $MACHINE_A_IP

这是我几乎一直想要的状态,也是默认配置。不过,有时我想暂时地将端口 5000 重定向到机器 B,如下所示:

---port 5000--->[Main host]
                     |
                     |~~~~~~~~~~~~~~~~[Machine A]
                     |---port 5000--->[Machine B]

我曾尝试设置 PF 锚点来实现这一点,但由于我是 PF 新手,我发现很难解析文档来涵盖这种用例。

如何在主机上发布动态 PF 规则以将 5000 从机器 A 临时重定向到机器 B?

答案1

实现此目的的正确方法是使用表作为重定向的目标。您可以使用 更改表的内容而无需重新加载 pf pfctl。请注意,现有防火墙状态将继续将流量转发到旧主机,直到 tcp 流关闭或 udp“流”超时。

相关内容