在nftables中,每个链都有一个优先级(Priority),用于定义该链的处理顺序。当数据包到达nftables时,它将按照链的优先级顺序逐一应用每个链的规则,直到数据包被匹配或者所有规则都被阻止或允许。
nftables中的链优先级范围为-2147483648至2147483647。默认情况下,新创建的链优先级为0。如果需要修改链的优先级,可以使用”priority”选项,例如:
nft add chain ip filter INPUT { type filter hook input priority 0 \; }
在上面的例子中,创建了一个名为”INPUT”的链,并将其优先级设置为0。
优先级采用整数值表示,数字较小的链优先处理,并且可以是负数。nftables内部优先级:
- NF_IP_PRI_CONNTRACK_DEFRAG (-400)
- NF_IP_PRI_RAW (-300)
- NF_IP_PRI_SELINUX_FIRST (-225)
- NF_IP_PRI_CONNTRACK (-200)
- NF_IP_PRI_MANGLE (-150)
- NF_IP_PRI_NAT_DST (-100)
- NF_IP_PRI_FILTER (0)
- NF_IP_PRI_SECURITY (50)
- NF_IP_PRI_NAT_SRC (100)
- NF_IP_PRI_SELINUX_LAST (225)
- NF_IP_PRI_CONNTRACK_HELPER (300)
也就是:
type nat hook prerouting priority dstnat; policy accept; #上条等价于下条 type nat hook prerouting priority -100; policy accept;
参考链接:Base chain priority、Priority within hook
技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/1285.html