family 是指以下表类型之一:ip、arp、ip6、bridge、inet、netdev。
和
type 是指要创建的链的种类。可能的类型有:
过滤器:由 arp、bridge、ip、ip6 和 inet 表族支持。
route:标记数据包(如输出钩子的 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
家庭呢?
我是新手,但也对 nftables 规则感兴趣。我在 nftables wiki 中找到:“这个(netdev)系列的主要(唯一?)用途是用于使用 ingress 挂钩的基本链,这是 Linux 内核 4.2 中的新功能。” 更多信息在文章末尾:https ://wiki.nftables.org/wiki-nftables/index.php/Nftables_families
Ingress hook 允许您过滤 L2 流量。它出现在预路由之前,在数据包从 NIC 驱动程序向上传递之后。这意味着您可以实施非常早的过滤策略。数据包路径中的这个非常早的位置非常适合丢弃与 DDoS 攻击相关的数据包。在入口钩子上添加链时,必须指定将附加链的设备
来源:https ://www.datapacket.com/blog/securing-your-server-with-nftables
如何指定设备可以在这里找到: How to use variable for device name when declaring a chain to use the (netdev) ingress hook?