- 阶段
开发版
- 形式
提供一个kenerl ABI
- 范围
提单{ip,ip6,arp,eb}tables
- 历史
ipfwadm(kernel V1.2.1,1995)
ipchains(1999)
iptables
Nftables
- 依赖
nftables kernel tree
libmnl:netlink的相关库
libnftables:用户空间,通过libmnl与nftable 的Netlink API交互的库
- 主要特性
1.内核空间状态机
在用户空间解析规则集(用户选定的),然后传递给内核空间的nftable API
整体思路类似BPF (Berkeley Packet Filters)
2.高效查找
基于高效的数据结构查找,比之前的线性方式更高效
允许制定规则集合
3.减少内核代码量
提供了一套指令集,需要的功能通过其构建
更多的逻辑在用户空间实现,对内核的升级频度降低
4.用统一接口替换 {ip,ip6,arp,eb} 多个接口