当在特定端口上使用 dnat 为“type nat hook prerouting”链中的规则设置计数器时,计数器将仅计算该规则的初始数据包,并且将不再计算来自同一 conntrack 的后续数据包。
我可以在前向挂钩上设置一个计数器,但它必须基于后 dnat 目标 IP/端口。但是,我希望计数器应用于 dnat 前的 IP/端口,因为我可以将其他 IP/端口 dnat'ing 到同一目标 IP/端口,并且我想根据 dnat 前的目标 IP/端口来区分计数器港口。有办法实现吗?
提前谢谢了。
答案1
在预路由挂钩中的类型过滤器链中创建一个带有计数器的单独规则,但其优先级早于 -200 (NF_IP_PRI_CONNTRACK),将对 conntrack 的所有数据包进行计数。
因此,如果您想统计触发DNAT的报文数量,只需在dnat规则中设置一个计数器即可。