如果你没有生活在上个世纪,并且是云计算或相关领域的一名搬砖者,那你应该听说最近 CentOS 8 官方正式版已经发布了,CentOS
完全遵守 Red Hat
的再发行政策,并且致力与上游产品在功能上完全兼容。CentOS 8 主要改动和 RedHat Enterprise Linux 8 是一致的,基于 Fedora 28 和内核版本 4.18
,其中网络方面的主要改动是用 nftables
框架替代 iptables
框架作为默认的网络包过滤工具。如果你还没有听说过 nftables,现在是时候学习一下了。
nftables 是一个 netfilter
项目,旨在替换现有的 {ip,ip6,arp,eb}tables 框架,为 {ip,ip6}tables 提供一个新的包过滤框架、一个新的用户空间实用程序(nft)和一个兼容层。它使用现有的钩子、链接跟踪系统、用户空间排队组件和 netfilter
日志子系统。
nftables 主要由三个组件组成:内核实现、libnl netlink 通信和 nftables 用户空间。 其中内核提供了一个 netlink
配置接口以及运行时规则集评估,libnl
包含了与内核通信的基本函数,用户空间可以通过 nft
和用户进行交互。
本文主要介绍用户空间命令行工具 nft
的用法。
nftables VS iptables
nftables 和 iptables 一样,由表(table)、链(chain)和规则(rule)组成,其中表包含链,链包含规则,规则是真正的 action。与 iptables 相比,nftables 主要有以下几个变化:
iptables
规则的布局是基于连续的大块内存的,即数组式布局;而nftables
的规则采用链式布局。其实就是数组和链表的区别,好像 Kubernetes 用户对此应该很兴奋?iptables
大部分工作在内核态完成,如果要添加新功能,只能重新编译内核;而nftables
的大部分工作是在用户态完成的,添加新功能很 easy,不需要改内核。iptables
有内置的链,即使你只需要一条链,其他的链也会跟着注册;而nftables
不存在内置的链,你可以按需注册。由于iptables
内置了一个数据包计数器,所以即使这些内置的链是空的,也会带来性能损耗。简化了
IPv4/IPv6
双栈管理
Read full article from CentOS 8 都发布了,你还不会用 nftables?
No comments:
Post a Comment