我在OpenBSD机器上面对我的PF防火墙的挑战。
从客户端(A)我使用目标IP(SRV-IP-1)连接到服务器(B)。 服务器正在回复我的请求,但从不同的IP(SRV-IP-2)获取回复。
防火墙正在放弃回复,因为它不能理解回复是从内部networking发起的对话的一部分(它认为回复是从外部开始的连接)。
有没有办法指示防火墙考虑来自地址池而不是用作对话目标(SRV-IP-1)的地址的有效答复? 例如,将一个指定的地址与其他地址进行映射来“链接”状态将会很好。
谢谢。
防火墙不知道服务器B有两个IP地址 – 它将每个IP地址视为不同的源/对象。 下图显示了您的防火墙正在看到的内容。 
为了让防火墙从这台“其他”计算机上传输stream量,你需要添加明确的规则来允许绿色stream量(从第二个IP到互联网上的任意主机) – 你可以使用单独的规则或地址表(有关表格的更多信息,请参见pf文档 )。
一个更好的解决scheme可能是确定为什么你从一个不同的地址发送回复,而不是你收到请求的地址 – 如果你可以让所有的stream量到达/来自一个地址,你将能够利用pf的自动状态跟踪,并有一个更简单的pipe理环境。
有许多方法允许来自地址池的stream量。
您可以使用CIDR子网:
pass in on [interface] from 10.0.0.0/8
你可以使用一个macros:
allowed-reply = " {10.0.0.1, 10.0.0.3} " pass in on [interface] from allowed-reply
另一种方法是使用锚点
这将允许你“嵌套”在另一个规则的规则…种…
关于PF的OpenBSD文档如果非常有用,就像Calomel的网站一样