nftables 和 iptables/ip6tables 规则可以同时应用吗?如果是这样:优先顺序是什么?

nftables 和 iptables/ip6tables 规则可以同时应用吗?如果是这样:优先顺序是什么?

这个问题几乎已经在标题中了:

nftables 和 iptables/ip6tables 规则可以同时应用吗?如果是这样:优先顺序是什么?

我问的原因是:大量工具(尤其是来自容器化领域的工具)仍然依赖iptablesip6tables添加规则,并使容器化服务对网络上的其他实体可用或不可用。因此,如果我想用nft它来表达我的标准防火墙规则,则必须与iptables/并行工作ip6tables

或者这是通过使用iptables-legacy/ ip6tables-legacywithupdate-alternatives或类似的方式来满足的?即所有这些容器化工具继续使用他们假设的iptables/ ip6tables,但实际上它是 nftables 提供的兼容性“层”?

至于优先顺序,如果可以显示规则具有哪些优先级,我希望有某种图表。

答案1

可以同时使用内核的iptablesnftables,但是需要一些注意。规则的应用顺序由钩子优先级决定;旧版iptables默认值为 0,因此nft如果钩子应在 之前应用,则可以将其优先级设置为 -1 iptables;如果应在之后应用,则可以将其设置为 1。

同步 NAT 需要内核 >= 4.18。

iptables-nft旨在促进迁移到nft.与它一起安装将允许期望/接口的nft程序继续工作,在内核中使用。iptablesip6tablesnftables

这是当前容器化环境(例如 Kubernetes)中使用的方法:容器应该检测主机使用哪组表,并使用相应的iptables接口(提供旧表或nftables)。看Kubernetes 问题 #71305了解详情。

主要的痛点来自于组合iptables-nftiptables-legacy:它们使用相同的优先级,因此数据包会穿过两条链,最终无处可去。

何时以及如何在 nftables 中使用链优先级了解nftables优先事项的详细信息。

相关内容