You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多drop策略表导致nftables规则被覆盖?配置疑问求助

nftables多表规则冲突问题解答

核心逻辑说明

你遇到的现象是nftables的正常行为,根源在于同hook、同优先级的多链处理规则:

  • 当多个链挂载到同一个hook(如input/output)且优先级相同时,nftables会按表的加载顺序依次执行这些链。
  • 若某条链设置了policy drop,当流量未匹配到该链内的任何规则时,会直接被这条链的策略拒绝,后续链根本没有机会处理该流量。
  • 反之,若流量在前面的链中被accept规则匹配,整个hook的处理会立即终止,不会进入后续链。

你的具体问题解答

  1. SSH流量是否会被specific_table拒绝?
    取决于两个表的加载顺序:

    • 如果dev表先加载,SSH流量会先匹配input_dev链的tcp dport 22 accept规则,直接被放行,不会走到specific_table的input链。
    • 如果specific_table先加载,SSH流量未匹配到该链内的规则,会被它的policy drop直接拒绝,dev表的SSH规则完全失效。
  2. 是否必须将所有规则放在同一个table中?
    不需要。你可以通过以下方式实现规则分组且不冲突:

    • 只保留一条挂载到hook的主链,并将其policy设为drop。
    • 其他表中的链不挂载hook,仅作为子链使用,由主链通过jump指令调用。
    • 子链无需设置policy,仅存放匹配规则;流量依次经过所有子链,若都未匹配,最终由主链的policy drop拒绝。

修正后的配置示例

# 主表:挂载hook,统一设置默认拒绝策略
table inet main {
    chain input {
        type filter hook input priority filter; policy drop;
        # 跳转至dev表的输入子链
        jump input_dev
        # 跳转至specific_table的输入子链
        jump input_specific
    }

    chain output {
        type filter hook output priority filter; policy drop;
        jump output_dev
        jump output_specific
    }
}

# dev表:仅存放基础规则,链不挂载hook
table inet dev {
    chain input_dev {
        iifname "lo" accept
        ct state { established, related } accept
        tcp dport 22 accept
        ip protocol icmp accept
    }

    chain output_dev {
        oifname "lo" accept
        tcp sport 22 accept
        ip protocol icmp accept
    }
}

# specific_table:存放业务专属规则,链不挂载hook
table inet specific_table {
    chain input_specific {
        ip6 saddr <some_specific_ip> udp sport 42999 udp dport 42544 ip6 daddr ff14::1:0 accept
        # 更多Excel生成的规则
    }

    chain output_specific {
        ip6 saddr <some_specific_ip> udp sport 42999 udp dport 42564 ip6 daddr ff14::1:0 accept
    }
}

关键注意事项

  • 确保主链的jump顺序符合你的规则优先级需求(比如基础规则先执行,业务规则后执行)。
  • 子链内的规则仅需处理匹配放行的场景,无需设置policy,未匹配的流量会自动回到主链继续处理。

内容的提问来源于stack exchange,提问作者minoset

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 01:24:29