EL 8:nftables 取代 iptables
EL 8 把防火墙栈的默认后端从 iptables 切换为 nftables:firewalld 生成的规则落到 nftables 内核框架,iptables 等命令则通过 nft 兼容层继续可用。这是 EL 网络栈现代化的关键一步,也为后续更复杂的流表与性能优化铺路。
这是什么变化
Section titled “这是什么变化”nftables 是 iptables/ip6tables/arptables/ebtables 的统一继任者:单一内核框架、单一用户态工具 nft,规则以表达式语法描述,支持原子批量更新(不再有”改一半规则”的窗口),性能与可维护性更好。
EL 8 的切换方式是”后端替换 + 前端兼容”:
- firewalld 的配置项
FirewallBackend=nftables(/etc/firewalld/firewalld.conf)成为默认; iptables/ip6tables/arptables/ebtables命令变为 nft 的兼容前端,看到的规则是 nft 规则的翻译视图;- 直接使用 iptables 内核 API 的程序(部分老容器网络插件、安全 agent)需要适配。
EL 7 → EL 8 对比
Section titled “EL 7 → EL 8 对比”| 项 | EL 7 | EL 8 |
|---|---|---|
| firewalld 后端 | iptables | nftables(默认) |
| 规则查看 | iptables -L | nft list ruleset(兼容命令仍可用) |
| 批处理更新 | 逐条 | 原子 |
| 框架数量 | iptables/ip6tables/arptables/ebtables | 统一 nftables |
- 用 firewalld 的管理流程:
firewall-cmd语法不变,几乎无感。 - 手写 iptables 规则/脚本:
iptables-save输出格式与语义细节有差异;把规则翻译进 firewalld 或改写为nft语法更稳妥。 - 第三方网络组件:老版本容器网络插件、入侵检测/流量镜像 agent 若直接操作 iptables 内核表,需升级到支持 nftables 的版本。
- 排障习惯:看规则请用
nft list ruleset,兼容命令的视图可能与实际表结构不一致。
grep FirewallBackend /etc/firewalld/firewalld.confsudo nft list ruleset | head -30- 盘点现网手写 iptables 规则与依赖 iptables 的组件版本;
- 规则迁入 firewalld(zone/service/rich rule)或改写为 nft 脚本;
- 升级第三方组件到声明支持 nftables 的版本。
- firewalld 基础 — zone、service 与 rich rule 实操
- firewalld 进阶 — 复杂规则与排障
- EL 9:cgroup v2 成为默认 — 下一代默认切换
- EL 8:工具链全面更新 — 同版本的内核变化