二维码

有多少人觉得 nftables 比 iptables 更好?

1643 人阅读 | 时间:2019年10月23日 09:31

最近研究了下 iptables 的后继者 nftables。感觉这玩意还是挺有趣的,在用户态把网络规则编译成字节码,然后由内核的虚拟机执行。尽管和 iptables 一样都是基于 netfilter 的,但灵活性高多了。

之前使用 iptables 匹配大量数据时,还得需要 ipset 配合,而在 nftables 里内置查表查集合的功能,这点是非常方便的。

不过觉得 nftables 的槽点还是很多。

第一个就是语法太晦涩了。比如判断语句都不用加 if、查表都不用索引符号,等等。稍微长一点的语句要是不换行的话,就很难读懂了。

只能自己通过续行、缩进,来快速识别哪些是条件,哪些是动作。比如开头几行没缩进的是条件,有缩进的是动作,一行一个,这样就相对好理解一些:

 有多少人觉得 nftables 比 iptables 更好?

当然 nftables 本质上仍是基于规则的,其实算不上语言,所以也不指望像编程那样控制网络了。


第二个是性能问题。在普通的场合下 nftables 还没有 iptables 性能高,比如这里有个测试 https://developers.redhat.com/blog/2017/04/11/benchmarking-nftables/

大致原因是 iptables 的规则是线性存储的,访问会更快一些。(当然添加删除时会慢得多)

这就是很大一个槽点了,既然都用字节码了,为什么不再加个 JIT 编译器,编译成机器指令呢。事实上 iptables 里对于复杂的匹配,还可以使用 BPF 匹配器(类似 tcpdump 规则),那个性能还是很的。

另外最近 Linux 4.18 还真出了一个 bpfilter,据说比 nftables/iptables 都先进的。不过暂时还没使用。。。

©著作权归作者所有:来自ZhiKuGroup博客作者没文化的原创作品,如需转载,请注明出处,否则将追究法律责任 来源:ZhiKuGroup博客,欢迎分享。

评论专区
  • 昵 称必填
  • 邮 箱选填
  • 网 址选填
◎已有 0 人评论
搜索
作者介绍
30天热门
×
×
本站会员尊享VIP特权,现在就加入我们吧!登录注册×
»
会员登录
新用户注册
×
会员注册
已有账号登录
×