Linux NF表中表/链的顺序是如何安排的?

Linux NF表中表/链的顺序是如何安排的?,linux,networking,firewall,Linux,Networking,Firewall,例如,我有两个表: table inet filter2 { chain forward { type filter hook forward priority 0; policy accept; ct state established,related accept iifname $wireif oifname $wirelessif accept } } table inet filter { chain forward { type filt

例如,我有两个表:

table inet filter2 {
  chain forward {
    type filter hook forward priority 0; policy accept;
    ct state established,related accept
    iifname $wireif oifname $wirelessif accept
  }
}

table inet filter {
  chain forward {
    type filter hook forward priority 0; policy accept;
    drop
  }
}

首先执行
过滤器
,因此我的所有转发数据包都被丢弃,这不是我想要的。如何设置最后要执行的表/链,使其作为默认选项工作?

Nftables使用位于linux内核网络堆栈不同位置的底层netfilter框架

当在同一钩点添加一个或多个规则时,netfilter框架将按规则的优先级设置规则

例如,在添加链时,可以为每个链使用不同的优先级类型。 假设您希望为的规则定义的前向链赋予更高的优先级

过滤器表
过滤器2表

nft添加表ip筛选器2

nft添加链ip筛选器2转发{type filter hook forward priority 0\;}

现在为
过滤器
表的
前向链
赋予更高的优先级,将优先级分配为小于0

nft添加表inet过滤器

nft add chain inet filter'{type filter hook forward priority-1}'

这里,较高的优先级值意味着较低的优先级,反之亦然

但在使用不同的优先级类型时要小心,因为它有时可能会导致数据包出现意外行为。欲了解更多信息,请阅读


PS:有轻微的问题。

发布问题时,优先级没有实现(虽然我们可以指定它们,但根本不起作用)。尽管如此,我还是会接受你的回答。谢谢现在它有7个挂钩(+入口)