nftables NETDEV 系列支持哪些鏈類型?
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?