nftables链的优先级

在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 priorityPriority within hook

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/web/1285.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注