我有一个FreeBSD主机,作为内部networking上其他系统的入口点。 因此,我已经configuration好将某些端口(比如端口5000)上的传入stream量redirect到在该机器上运行networking服务的一个jail上的主机本地地址。 这看起来像这样:
---port 5000--->[Main host] | |---port 5000--->[Machine A] |~~~~~~~~~~~~~~~~[Machine B]
redirect由PF规则执行:
rdr pass on egress proto tcp from any to $IP port 5000 -> $MACHINE_A_IP
这是我几乎总是想要的状态,这是默认情况下configuration的。 但是,我想暂时将端口5000redirect到机器B,如下所示:
---port 5000--->[Main host] | |~~~~~~~~~~~~~~~~[Machine A] |---port 5000--->[Machine B]
我已经尝试设置PF锚来促进这一点,但是因为我是PF新手,所以很难parsing文档以涵盖这个用例。
如何在主要主机上发布dynamicPF规则以将5000从机器A暂时redirect到机器B?
实现这一点的正确方法是使用表格作为redirect的目标。 您可以使用pfctl来更改表格的内容而无需重新加载pf。 只要知道,现有的防火墙状态将继续转发stream量到旧的主机,直到tcpstreamclosures或udp“stream”超时。