首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iptables,xtable,iptables-nft,xtables-nft,nf_tables,nftable之间的关系或区别是什么?

iptables,xtable,iptables-nft,xtables-nft,nf_tables,nftable之间的关系或区别是什么?
EN

Unix & Linux用户
提问于 2022-01-25 12:58:28
回答 1查看 3.7K关注 0票数 5

我已经读了一段时间了。

我所理解的是:

  • nftables是现代Linux内核包分类框架。nftables是iptable的继承者。它取代了现有的iptables、ip6tables、arptable和ebtable框架。
  • x_tables是内核模块的名称,它包含iptables、ip6tables、arptable和ebtables所使用的共享代码部分,因此,Xtable或多或少用于引用整个防火墙(v4、v6、arp和eb)体系结构。作为系统管理员,我不应该担心xtable/ x_tables (有些人使用下划线,所以不确定xtable是否与x_tables相同),这实际上是内核中的一些代码。
  • nftables使用nf_tables,其中nf_tables是内核模块的名称。作为一个系统管理员,我不应该担心nf_tables,它实际上是内核中的一些代码。
  • iptables-nft看起来像iptables,但其行为像nftable。它的全部目的是从iptable迁移到nftable。
  • iptables-nft使用xtables,其中xtables是内核模块的名称。作为一个系统管理员,我不应该担心xtables。

请让我知道以上陈述是对是错。如果错了,请给我正确的陈述。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-01-25 20:48:13

我的观点是iptables、ip6tables、ebtables和arptable是一个前端工具--设置为Netfilter。

它们是一个用户空间工具集,它格式化并编译规则,以便在内核中运行的核心Netfilter中加载它们。您可以在模块目录ls /lib/modules/$(uname -r)/kernel/net/netfilter/中找到Netfilter的所有内核部分,它们具有nf_*, nft_*, xt_*内核模块的形式。

这些工具的问题在于它们以规则粒度操作,因此每次规则调整都意味着下载所有内核规则,在二进制blob上进行修改,然后将其上传回内核。当规则变得太多时,这个过程在CPU负载中变得非常密集。

nftables是在一个独特的工具中对这个工具系列的重写(以规范它们的所有.这使得它的使用更简单,性能更好,但是它仍然是Netfilter的前端,但是主要的区别是它有一个平滑的语法,能够处理Netfilter的每个部分,并且它能够修改整个二进制规则集,直接在Netfilter内部,而不必一个一个地下载和上传它们,这意味着性能上的巨大提高。

这也解释了您可以同时使用iptable和nftable来修改规则,但是不建议使用,因为您看不到不同规则之间的优先级,或者这种优先级可能不是您想要的。

现在,根据分发策略,可以找到不同的包集来使用新的Netfilter核心内核集模块。您提到了xtables:它只是一种快捷方式,可以指定一个由{ip|ip6,eb,arp}tables组成的用户空间工具的中间集(或包),它能够像旧工具那样使用新的Netfilter核心,因此它可以帮助和简化从旧方式到nftable的迁移(新方法)。

还有一个名为iptables的包--传统的ip{,6}tables工具集可以与新的Netfilter核心保持相同的工作方式,而不需要将规则直接转换为nftable,所以像ferm这样的防火墙脚本工具可以继续进行现代内核的新安装。

将两者连接起来,例如,iptables-legacy-save |iptables-nft-restore可以直接将一组旧的iptable规则转换为新的nftable规则集。

打招呼。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/687857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档