family 指以下表类型之一:ip、arp、ip6、bridge、inet、netdev。
和
type 是指要创建的链的类型。可能的类型有:
过滤器:arp、bridge、ip、ip6 和 inet 表系列支持。
路由:标记数据包(如输出钩子的mangle,其他钩子则使用类型过滤器代替),受ip和ip6支持。
nat:为了进行网络地址转换,ip和ip6都支持。
可能的链类型有:
Filter,用于过滤数据包。这是由 arp、bridge、ip、ip6 和 inet 表系列支持的。
路由,用于在任何相关的 IP 头字段或数据包标记被修改时重新路由数据包。如果您熟悉 iptables,此链类型提供与 mangle 表等效的语义,但仅适用于输出挂钩(对于其他挂钩,请使用类型过滤器)。 ip、ip6 和 inet 表系列支持这一点。
nat,用于执行网络地址转换(NAT)。只有给定流的第一个数据包才会到达此链;后续数据包绕过它。因此,切勿使用该链进行过滤。 ip、ip6 和 inet 表系列支持 nat 链类型。
因此,根据至少两个权威参考资料,该netdev
家族不支持任何连锁类型。既然如此,我们该如何利用netdev
家庭呢?
答案1
我是新人,但也对 nftables 规则感兴趣。我在 nftables wiki 中找到:“这个(netdev)系列的主要(唯一?)用途是使用 ingress hook 的基本链,这是 Linux 内核 4.2 中的新功能。”更多信息请参见文章末尾:https://wiki.nftables.org/wiki-nftables/index.php/Nftables_families
Ingress hook 允许您过滤 L2 流量。它出现在预路由之前,数据包从 NIC 驱动程序向上传递之后。这意味着您可以执行非常早期的过滤策略。数据包路径中的这个非常早期的位置非常适合丢弃与 DDoS 攻击相关的数据包。在入口钩子上添加链时,必须指定链将附加到的设备
来源:https://www.datapacket.com/blog/secure-your-server-with-nftables
如何指定设备可以在这里找到: 在声明链以使用 (netdev) 入口钩子时如何使用设备名称变量?