4.7. 网络
NetworkManager rebase 到版本 1.42.2
NetworkManager
软件包已升级到上游版本 1.42.2,与以前的版本相比,它提供很多改进和 bug 修复:
- 以太网绑定支持源负载均衡。
-
NetworkManager 可以管理
loopback
设备上的连接。 - 添加了对 IPv4 equal-cost multi-path(ECMP)路由的支持。
-
添加了对 Virtual Local Area Networks (VLAN)连接中
802.1ad
标记的支持。 -
nmtui
应用程序支持 Wi-Fi WPA-Enterprise、具有 802.1X 身份验证的以太网,以及 MACsec 连接配置文件。 - 如果所有地址的 IPv6 重复地址检测(DAD)都失败,则 NetworkManager 会拒绝 DHCPv6 租期。
有关显著变化的更多信息,请参阅 上游发行注记。
使用 NetworkManager ,在 ECMP 路由中引入了 weight
属性
有了这个更新,在定义 IPv4 Equal-Cost Multi-Path (ECMP)路由时,RHEL 9 支持一个新的属性 weight
。您可以使用 NetworkManager 配置多路径路由来负载均衡和稳定网络流量。这允许对两个节点之间的数据传输使用多路径,这提高了网络效率,并在链接失败时提供冗余。使用 weight
属性的条件包括:
- 有效值为 1-256。
-
使用
weight
属性将多个下一跳路由定义为单跳路由。 -
如果没有设置
weight
,NetworkManager 无法将路由合并到 ECMP 路由中。
NetworkManager 更新为跨多个网络的 DNS 配置提高了灵活性
有了这个更新,您可以使用 /etc/Networkmanager/NetworkManager.conf
文件中现有的 [global-dns]
部分来配置 DNS 选项,而无需在 [global-dns-domain-*]
部分中指定 nameserver
值。这使您能够在 /etc/resolv.conf
文件中配置 DNS 选项,同时仍依赖于网络连接为实际 DNS 解析提供的 DNS 服务器。因此,这个功能可在使用不同的 DNS 服务器连接到不同的网络时更轻松更灵活地管理 DNS 设置。特别是当您使用 /etc/resolv.conf
文件来配置 DNS 选项时。
NetworkManager 现在支持一个新的 vlan.protocol
属性
有了这个更新,vlan
接口类型接受一个新的 protocol
属性。属性类型是字符串。接受的值是 802.1Q
(默认)或 802.1ad
。新属性指定哪个 VLAN 协议控制封装的标签标识符。
NetworkManager 现在允许通过非受管接口的 VLAN 配置
有了这个增强,在使用 NetworkManager 配置虚拟 LAN (VLAN)时,您可以使用非受管网络接口作为基本接口。因此,VLAN 基础接口保持不变,除非通过 nmcli device set enp1s0 managed true
命令明确更改,或者通过 NetworkManager 的其他 API。
现在完全支持使用 NetworkManager 配置多路径 TCP
在这个版本中,NetworkManager 工具为您提供了多路径 TCP (MPTCP) 功能。您可以使用 nmcli
命令控制 MPTCP,并使其设置持久。
如需更多信息,请参阅:
NetworkManager 工具现在支持激活 loopback
接口上的连接
管理员可以管理 loopback
,来:
-
向
loopback
接口添加额外的 IP 地址 - 定义 DNS 配置
- 定义一个不绑定到接口的特殊路由
- 定义一条路由规则,其不与接口相关
-
更改
loopback
接口的最大传输单元(MTU)大小
现在支持 balance-slb
绑定模式
新的 balance-slb
绑定模式源负载均衡不需要交换机配置。balance-slb
使用 xmit_hash_policy
=vlan+srcmac
划分源以太网地址上的流量,NetworkManager 为流量过滤添加必要的 nftables
规则。现在,您可以使用 NetworkManager 启用的 balance-slb
选项创建绑定配置文件。
firewalld
rebase 到版本 1.2
firewalld
软件包已升级到版本 1.2,该版本提供了多个改进。主要变更包括:
- 对新服务(如 netdata、IPFS)的支持
-
fail-safe 模式,以确保系统保持保护状态,如果
firewalld
服务在启动过程中遇到错误,则不会破坏网络通信 -
一些
firewalld
策略命令的命令行(CLI)中的 tab 补全
firewalld
现在支持启动 failsafe 机制
有了这个增强,firewalld
会在启动失败时回到 failsafe 默认值。此功能在出现无效配置或其他启动问题时保护主机。因此,即使用户配置无效,运行 firewalld
的主机也会启动 failsafe。
conntrack-tools
rebase 到版本 1.4.7
conntrack-tools
软件包已升级至版本 1.4.7,它提供多个 bug 修复和增强。主要变更包括:
-
添加
IPS_HW_OFFLOAD
标志,其将conntrack
条目的卸载指定到硬件 -
添加了
clash_resolve
和chaintoolong
统计计数器 - 支持按 IP 地址系列过滤事件
-
在
conntrackd.conf
文件中接受 yes 或 no 作为 on 或 off 的同义词 -
支持用户空间帮助程序在守护进程启动时自动加载。用户不必手动运行
nfct add helper
命令 -
删除了
-o userspace
命令选项,并且始终对用户空间触发的事件进行标记 - 仅将外部注入问题作为记录为警告
- 在查找缓存条目时忽略 conntrack ID,以允许替换卡住的旧条目
-
修复了
ssdp cthelper
模块中的 IPv6M-SEARCH
的解析中断问题 -
消除了
nfct
库中对延迟绑定技术的需求 - 清理协议值解析,捕获无效的值
nmstate
API 现在支持 IPv6 本地链接地址作为 DNS 服务器
有了这个增强,您可以使用 nmstate
API 将 IPv6 本地链接地址设置为 DNS 服务器。使用 <link-local_address>%<interface>
格式,例如:
dns-resolver: config: server: - fe80::deef:1%enp1s0
nmstate
API 现在支持 MPTCP 标记
这个更新增强了支持 MultiPath TCP (MPTCP)标记的 nmstate
API。因此,您可以使用 nmstate
来对具有静态或动态 IP 地址的接口设置 MPTCP 地址标记。
min-mtu
和 max-mtu
属性已添加到所有接口上的 MTU
在以前的版本中,异常信息不够清晰,不足以了解支持的 MTU 范围。此更新为所有接口引入了 min-mtu
和 max-mtu
属性。因此,当所需的 MTU 超出范围时,nmstate
将指示支持的 MTU 范围。
NetworkManager 现在允许通过非受管接口的 VLAN 配置
有了这个增强,在使用 NetworkManager 配置虚拟 LAN (VLAN)时,您可以使用非受管网络接口作为基本接口。因此,VLAN 基础接口保持不变,除非通过 nmcli device set enp1s0 managed true
命令明确更改,或者通过 NetworkManager 的其他 API。
现在支持 balance-slb
绑定模式
新的 balance-slb
绑定模式源负载均衡不需要交换机配置。balance-slb
使用 xmit_hash_policy
=vlan+srcmac
划分源以太网地址上的流量,NetworkManager 为流量过滤添加必要的 nftables
规则。现在,您可以使用 NetworkManager 启用的 balance-slb
选项创建绑定配置文件。
Nmstate 中的新 weight
属性
此更新在 Nmstate API 和工具套件中引入了 weight
属性。您可以使用 weight
来指定 Equal Cost Multi-Path 路由(ECMP)组中每个路径的相对权重。权重是 1 到 256 之间的数字。因此,Nmstate 中的 weight
属性对 ECMP 组中流量分布提供了更大的灵活性和控制。
xdp-tools
rebase 到版本 1.3.1
xdp-tools
软件包已升级到上游版本 1.3.1,与之前的版本相比,其提供了很多改进和 bug 修复:
添加了以下工具:
-
xdp-bench
:在接收端执行 XDP 基准。 -
xdp-monitor
:使用内核跟踪点监控 XDP 错误和统计信息。 -
xdp-trafficgen
:通过 XDP 驱动程序钩子生成并发送流量。
-
在
libxdp
库中添加了以下功能:-
添加了
xdp_multiprog__xdp_frags_support()
、xdp_program__set_xdp_frags_support()
和xdp_program__xdp_frags_support()
函数,以支持具有 XDPfrags
支持的加载程序,这是一个称为multibuffer XDP
的功能。 -
在将程序附加到
AF_XDP
套接字时,库会执行合适的引用计数。因此,在使用套接字时,应用程序不再需要手动与 XDP 程序分离。现在,当程序不再使用时,libxdp
库会自动与程序分离。 在库中添加了以下函数:
-
用于创建
xdp_program
对象的xdp_program__create()
-
用于克隆
xdp_program
引用的xdp_program__clone()
-
用于通过
BPF_PROG_TEST_RUN
内核 API 运行 XDP 程序的xdp_program__test_run()
-
用于创建
-
当设置了
LIBXDP_BPFFS_AUTOMOUNT
环境变量时,如果什么都没有找到,libxdp
库现在支持自动挂载bpffs
虚拟文件系统。现在,当没有挂载bpffs
时,库功能的子集也可以正常工作。
-
添加了
请注意,此版本还会更改正在网络设备上加载的 XDP 分配程序的版本号。这意味着您不能同时使用之前和新版本的 libxdp
和 xdp-tools
。libxdp
1.3 库将显示分配程序的旧版本,但不会自动升级它们。另外,在使用 libxdp
1.3 加载程序后,旧版本不会与新版本进行交互。
iproute
rebase 到版本 6.1.0
iproute
软件包已升级至版本 6.1.0,其提供多个 bug 修复和增强。主要变更包括:
支持读取
vdpa
设备统计信息显示在索引 1 处读取
virtqueue
数据结构的统计信息:# vdpa dev vstats show vdpa-a qidx 1 vdpa-a: vdpa-a: queue_type tx received_desc 321812 completed_desc 321812
演示在索引 16 处读取
virtqueue 数据
结构的统计信息:# vdpa dev vstats show vdpa-a qidx 16 vdpa-a: queue_type control_vq received_desc 17 completed_desc 17
- 更新对应的手册页
现在,内核会在 SYN 洪水信息中记录侦听地址
此增强将侦听的 IP 地址添加到 SYN 洪水信息中:
Possible SYN flooding on port <ip_address>:<port>.
因此,如果很多进程绑定到不同 IP 地址上的同一端口,则管理员现在可以明确地识别受影响的套接字。
Bugzilla:2143850
为 VLAN 接口引进新的 nmstate
属性
使用此 nmstate
框架的更新,引进了以下 VLAN 属性:
-
registration-protocol
: VLAN 注册协议。有效值为gvrp
(GARP VLAN Registration Protocol),mvrp
(Multiple VLAN Registration Protocol)和none
。 -
reorder-headers
:重新排序输出数据包标头。有效值为true
和false
。 -
loose-binding
:放松接口到其主设备的操作状态的绑定。有效值为true
和false
。
您的 YAML 配置文件类似以下示例:
--- interfaces: - name: eth1.101 type: vlan state: up vlan: base-iface: eth1 id: 101 registration-protocol: mvrp loose-binding: true reorder-headers: true
Jira:RHEL-19142