![为什么我的 nat-to 没有应用于传递规则?](https://linux22.com/image/59338/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E7%9A%84%20nat-to%20%E6%B2%A1%E6%9C%89%E5%BA%94%E7%94%A8%E4%BA%8E%E4%BC%A0%E9%80%92%E8%A7%84%E5%88%99%EF%BC%9F.png)
我在使用 pf 的 OpenBSD-Box 上遇到一个关于 NAT 的奇怪问题。我已将 pf.conf 缩减为以下几行:
extif = "pcn0"
intif = "pcn1"
block drop all
#Allow all incoming traffic from intif
pass in on $intif inet from $intif:network to any
#NAT everything which comes from intif and goes out on extif
match out on $extif inet from $intif:network to any nat-to $extif
pass out quick on $extif inet from $intif:network to any
这在某种程度上不起作用,nat-to 不适用于传递规则。但如果我使用这样的规则:
[...]
match out on $extif inet from $intif:network to any nat-to $extif
pass out quick all
它确实有效。另外,如果我不使用匹配语句,它也可以工作:
[...]
pass out quick on $extif inet from $intif:network to any nat-to $extif
这真的很奇怪,不是一个解决方案,因为我想进一步限制我的规则并通过匹配应用 nat-to。有谁知道为什么这不适用于比赛或者我的错字在哪里? (是的,IP 转发已启用)
答案1
老问题但不妨回答一下......
“匹配”规则将地址重写为 $extif ....看到问题了吗?
下面的过程没有考虑到这一点,并且...地板上的数据包...好吧 /dev/null 或
我建议在“匹配”规则的末尾添加“允许的标签”,然后更改通过规则:
pass out quick on $extif tagged ALLOWED