Ubuntu

nftables 和 iptables/ip6tables 規則可以同時應用嗎?如果是這樣:優先順序是什麼?

  • October 3, 2021

這個問題幾乎已經在標題中了:

nftables 和 iptables/ip6tables 規則可以同時應用嗎?如果是這樣:優先順序是什麼?

我問的原因是:許多工具——尤其是來自容器化領域的工具——仍然依賴iptablesip6tables添加規則,並使容器化服務對網路上的其他實體可用或不可用。因此,如果我想用它來表達我的標準防火牆規則,nft它必須與iptables/並行工作ip6tables

或者這是通過使用iptables-legacy/ ip6tables-legacywithupdate-alternatives或類似方式來滿足的?即所有這些容器化工具繼續使用他們假設的iptables/ ip6tables,但實際上它是 nftables 提供的兼容性“層”?

至於優先順序,如果可以顯示規則具有哪些優先級,我將不勝感激。

除了 NAT 之外,還可以同時使用核心的iptablesand nftables,但需要注意。應用規則的順序由鉤子優先級決定;傳統iptables預設值為 0,因此nft如果應該在之前應用掛鉤,則可以將優先級設置為 -1,如果應該在iptables之後應用,則可以將其設置為 1。

iptables-nft旨在促進遷移到nft. 將其安裝在一起nft將允許期望iptables/ip6tables介面的程序繼續工作,nftables在核心中使用。

這是目前容器化環境(例如 Kubernetes)中使用的方法:容器應該檢測主機使用哪一組表,並使用相應的iptables介面(饋送遺留表或nftables)。有關詳細資訊,請參閱Kubernetes 問題 #71305

主要的痛點來自於組合iptables-nftiptables-legacy:它們使用相同的優先級,因此數據包通過兩條鏈並最終無處可去。

有關優先級的詳細資訊,請參閱何時以及如何在 nftables 中使用鏈優先nftables級。

引用自:https://unix.stackexchange.com/questions/596493