我已经读了一段时间了。
我所理解的是:
请让我知道以上陈述是对是错。如果错了,请给我正确的陈述。
发布于 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规则集。
打招呼。
https://unix.stackexchange.com/questions/687857
复制相似问题