4.7. 网络
ARM 上的 RHEL 现在在 RHEL 9.3 中完全支持 wifi 适配器
有了这个增强,您可以启用对 arm64
平台的多个卡的 wifi 适配器的访问。
有关配置 wifi 连接的详情,请参阅 管理 wifi 连接。
Bugzilla:2208365[1]
NetworkManager
现在支持 resolv.conf 中的 no-aaaa
选项
NetworkManager
现在支持在 resolv.conf 文件中添加 no-aaaa
DNS 选项。通过在 DNS 选项设置中使用 no-aaaa
值,您可以禁用 IPv6 DNS 解析。
nmstate
现在支持混合静态 DNS 搜索和动态 DNS 名称服务器
nmstate
框架现在支持静态域名系统(DNS)搜索域和动态 DNS 名称服务器,这些服务器是 nmstate
从动态主机配置协议(DHCP)或 autoconf
机制获得的。在以前的版本中,静态 DNS 搜索域无法与动态 DNS 名称服务器共存,因为动态配置被 nmstate
丢弃了。这通常导致网络设置和管理中不必要的复杂性和限制。此功能增强旨在在管理 DNS 配置方面带来更多的灵活性。因此,nmstate
会尝试查找网络接口,以按照以下顺序存储 DNS 配置:
- 首选接口,当前包含 DNS 配置,仍对 DNS 有效
- 自动接口
- 启用了 IP 的接口
请注意,这个增强不会删除从 DHCP 中学到的 DNS 名称服务器。
以下是应用此功能的 YAML 文件的一个示例:
--- dns-resolver: config: search: - example.com - example.org interfaces: - name: eth1 type: ethernet state: up ipv4: enabled: true dhcp: true ipv6: enabled: true dhcp: true autoconf: true
nmstate
现在支持 bridge.vlan-default-pvid
NetworkManager 配置选项
有了此更新,您可以使用 nmstate
框架来配置 bridge.vlan-default-pvid
NetworkManager 配置选项。通过使用这个选项,您可以在使用 Linux 网桥 VLAN 过滤时,为支持 VLAN 的桥接接口上的未标记流量设置默认端口 VLAN 标识符(PVID)。为此,请使用以下 YAML 配置:
interfaces: - name: linux-br0 type: linux-bridge state: up bridge: options: vlan-default-pvid: 5 port: - name: eth1 stp-hairpin-mode: false stp-path-cost: 100 stp-priority: 32 vlan: mode: access tag: 100
请注意,bridge.vlan-default-pvid
的默认值为 1。当设置为 0 启用了 VLAN 过滤时,未标记的流量将被丢弃。
NetworkManager
服务在 dbus
服务重启后立即重启
在以前的版本中,由于某些原因重启 dbus
后,NetworkManager
会停止。这个行为不是最佳的,导致了连接丢失。因此,这个增强更新了 NetworkManager
,使其更加强大,并使其在 dbus
重启时自动重启。
nm-cloud-setup
工具现在支持 IMDSv2 配置
用户可以使用 nm-cloud-setup
工具配置带有实例元数据服务版本 2 (IMDSv2)的 AWS Red Hat Enterprise Linux EC2 实例。为了遵守改进的安全性,其限制对 EC2 元数据和新功能的未经授权的访问,需要 AWS 和红帽服务间的集成来提供高级功能。此功能增强使 nm-cloud-setup
工具能够获取并保存 IMDSv2 令牌,验证 EC2 环境,并使用安全 IMDSv2 令牌检索有关可用接口和 IP 配置的信息。
当使用已弃用的 ifcfg
格式时,NetworkManager 会发出通知
ifcfg
格式的连接配置文件已在 RHEL 9 中被弃用(请参阅 ifcfg
格式的 NetworkManager 连接配置文件已弃用)。有了此更新,NetworkManager 会通知用户有关此格式的弃用:
如果 NetworkManager 在
/etc/sysconfig/network-scripts/
目录中处理ifcfg
格式的连接配置文件,它会在systemd
日志中记录以下警告:Warning: the ifcfg-rh plugin is deprecated, please migrate connections to the keyfile format using "nmcli connection migrate"
如果您试图修改一个
ifcfg
格式不支持的属性,nmcli
工具会报告以下错误:Error: Failed to modify connection '<name>': failed to update connection: The ifcfg-rh plugin doesn't support setting '<property>'. If you are modifying an existing connection profile saved in ifcfg-rh format, please migrate the connection to keyfile using 'nmcli connection migrate <connection_uuid>' or via the Update2() D-Bus API and try again.
由于这些增强,如果用户仍然使用或修改已弃用的 ifcfg
格式的连接配置文件,NetworkManager 现在会通知用户。
有关将配置文件从 ifcfg
迁移到 keyfile 格式的详情,请参考 将 NetworkManager 配置文件从 ifcfg 迁移到 keyfile 格式。
NetworkManager
现在在绑定配置中支持 lacp_active
选项
通过使用 NetworkManager
,绑定配置中的 lacp_active
选项对链路聚合控制协议数据单元(LACPDU)帧提供精细控制。lacp_active
选项还调整了 LACPDU 帧的行为,并在绑定设置中控制这些帧的定期传输。要自定义网络配置,您可以通过将 lacp_active
设置为 ON
或 OFF
来启用或禁用 LACPDU 帧的定期传输。
NetworkManager
现在支持为绑定接口配置 ns_ip6_target
选项
此增强通过在 NetworkManager
中为绑定接口的 ns_i6_target
选项的配置指定最多 16 个 IPv6 地址作为监控对等点,来允许设置 arp_interval
选项。在以前的版本中,无法在 NetworkManager
中指定 IPv6 监控对等点。有了此更新,您可以使用 nmcli
工具在 bond.options
参数中配置 ns_ip6_target
选项。NetworkManager
通过启用最多 16 个 IPv6 地址的规范来将此设置应用到绑定接口。此增强同样适用于 IPv4 和 IPv6 设置。
NetworkManager
现在支持同一网络接口上的静态和 DHCP IP 配置
通过使用 nmstate
工具,您现在可以在 DHCP 或启用了 Ad-Hoc Network Autoconfiguration (autoconf)的接口上分配一个带有 dhcp: true
或 autoconf: true
值的静态 IP 地址。
有了此增强,nmstate
支持 IP 地址的两个属性:
-
valid_lft
表示有效的生命周期(以秒为单位) -
preferred_lft
表示首选的生命周期(以秒为单位)
两个参数的默认值是 forever
表示静态。
有了上述属性,nmstate
可以忽略基于 DHCP/autoconf 的 IP 地址,以避免在应用查询的状态后将动态 IP 地址转换为静态 IP。如果您的场景需要禁用带有动态 IP 地址的 DHCP/autoconf 设置,则 nmstate
会将这些动态 IP 转换为静态 IP 地址。
nmstate
支持 MAC 地址可识别的网络接口
nmstate
工具支持直接到具有 MAC 地址而不是接口名称的网络接口的网络配置。
此增强引入了基本接口的两个属性:
-
identifier
: 标识网络上的name
或mac-address
。默认值为name
。 -
profile-name
: 字符串
当 identifier
变量设置为 mac-address
值时,nmstate
使用 interface.mac-address
而不是interface.name
来为特定的网络状态选择网络接口。当存储网络配置时,如果没有分配 interface.profile-name
变量,则 nmstate
优先选择 interface.profile-name
而不是 interface.name
。如果您检查当前的网络状态,如果 interface.profile-name 等于 interface.name
,则 interface.profile-name
会保持隐藏状态。
NetworkManager 支持定义在多少次 ARP 检查失败后,绑定驱动程序将端口标记为 down
此增强将arp_missed_max
选项添加到 NetworkManager 中的绑定连接配置文件中。如果您使用地址解析协议(ARP)监控器来检查绑定的端口是否已启动,您可以设置 arp_missed_max
来定义多少次检查失败后,绑定驱动程序将端口标记为 down。
NetworkManager 支持指定与链接相关的属性
此增强在 NetworkManager 连接配置文件中添加了以下网络链接属性:
-
link.tx-queue-length
- 传输(TX)队列长度的大小,以数据包数为单位。 -
link.gro-max-size
- 设备接受的通用接收卸载(GRO)数据包的最大大小,以字节为单位。 -
link.gso-max-segments
- 设备接受的通用段卸载(GSO)数据包的最大段数。 -
link.gso-max-size
- GSO 数据包的最大大小,以字节为单位。
在以前的版本中,您只能使用 ip
命令,或使用 NetworkManager 分配程序脚本中的此类命令来配置这些内核设置。有了这个增强,您可以直接在连接配置文件中配置这些设置。
请注意,NetworkManager 仅在连接配置文件中支持keyfile
格式的这些属性,而不是已弃用的 ifcfg
格式。
nmstate
API 支持 dhcp-send-hostname
和 dhcp-custom-hostname
DHCP 选项
有了此增强,nmstate
工具支持在连接文件中以下两个 DHCP 选项的配置:
-
dhcp-send-hostname
:true
或false
值。如果 DHCP 请求需要主机名或完全限定域名(FQDN)选项,则会从该选项设置主机名。默认值是true
。 dhcp-custom-hostname
: <string>。使用这个选项在 DHCP 请求中配置主机名或 FQDN 选项,值类型是字符串。- 对于 DHCPv4 网络协议
-
如果主机名是 FQDN,请参阅 RFC 4702 中的
完全限定域名(FQDN)
,选项(81)。 如果主机名不是 FQDN,请参阅 RFC 2132 中的
主机名
, 选项(12)。- 对于 DHCPv6 网络协议
支持自定义字符串,空域名,覆盖 DHCP 请求的主机名。请参阅 RFC 4704 中的
完全限定域名(FQDN)
, 选项(29)。
NetworkManager rebase 到版本 1.44.0
NetworkManager
软件包已升级到上游版本 1.44.0,与之前的版本相比,它提供了一些改进和 bug 修复:
- 与链接相关的属性已添加到 NetworkManager 中。
-
arp_missed_max
、lacp_active
和ns_ip6_target
属性已添加到绑定连接配置文件中。 -
现在,您可以在
ipv6.dhcp-pd-hint
连接属性中设置 DHCPv6 前缀委托提示。 -
在
/etc/NetworkManager/NetworkManager.conf
文件的[keyfile]
部分中启用新的rename
参数会导致 NetworkManager 在/etc/NetworkManager/system-connections/
中重命名连接配置文件(如果更改了配置文件名称(connection.id
))。如果外部应用程序或脚本依赖于文件名,请不要启用此参数。 - 当您设置包含非公共顶级域(TLD)的主机名时,NetworkManager 现在使用此 TLD 作为 DNS 搜索域,而不是完整主机名。
-
NetworkManager 现在从
/etc/NetworkManager/NetworkManager.conf
文件中的[global-dns]
部分中应用 DNS 选项。 - 为了避免与其他依赖服务的竞争条件,NetworkManager 现在仅在填充 D-Bus 树后获取 D-Bus 名称。请注意,这可能会在 NetworkManager 启动时添加一个延迟。
-
NetworkManager 现在向
Update2()
D-Bus 调用添加了一个version-id
参数,以防止并发配置文件修改。 - NetworkManager 不再使用临时 IPv6 地址从 DNS 解析系统主机名。
- 为了防止多连接配置文件时的意外行为,NetworkManager 现在跟踪每个设备和连接剩余的自动连接重试次数,而不是每个连接。
-
NetworkManager 使用内核的
netlink
接口而不是sysfs
文件系统来设置 VLAN 过滤选项。 -
nm-cloud-setup
工具现在在 Amazon EC2 上支持实例元数据服务版本 2 (IDMSv2)。 -
用户现在可以在
nmtui
应用程序中启用和禁用 wifi 和 Wireless Wide Area Networks (WWAN)。 -
bond、bridge 和 team 连接现在使用
/etc/NetworkManager/NetworkManager.conf
文件的[main]
部分中的ignore-carrier=no
设置。
SCTP rebase 到 RHEL 9 的内核网络树的最新版本
Stream Control Transport Protocol (SCTP)网络子系统中的显著变化包括:
- 虚拟路由和转发(VRF)支持复杂网络环境中的段和隔离 SCTP 流量。
-
新的流调度程序(
fair capacity
,weighted fair queueing
)以确保网络中有效的和相等的资源分配。
MPTCP rebase 到 RHEL 9 的内核网络树的最新版本
多路径 TCP (MPTCP)协议扩展中的显著变化包括:
- 支持 TCP fastopen (TFO)扩展,包括客户端支持。此功能为您的网络提供延迟、效率和性能改进。
- 支持多个混合 IPv4/IPv6 子流,以便在同时使用两个 IP 版本的网络中具有更大的灵活性和适应性。
Bugzilla:2193330[1]
xdp-tools
软件包 rebase 到版本 1.4.0
xdp-tools
软件包已升级到 1.4.0 版本,其提供多个 bug 修复和增强。主要变更包括:
-
xdp-bench
工具获得对多缓冲 eXpress Data Path (XDP)的支持,以及对内核中xdp_load_bytes ()
帮助程序进行基准测试的支持。此功能允许使用大型最大传输单元(MTU)进行网络基准测试。 -
改进了
xdp-tools
的命令行工具的锁,以便在工具未完全退出时防止过时的锁。 -
libxdp
库包含一个新的xsk_umem__create_with_fd ()
API,该 API 接受一个已打开的AF_XDP
套接字的额外文件描述符。当进程没有CAP_NET_RAW
特权时,您可以使用此函数替换常规xsk_umem__create()
函数。
iproute
rebase 到版本 6.2.0
iproute
软件包已升级到上游版本 6.2.0,与之前的版本相比,它提供了一些改进和 bug 修复。最显著的更改有:
-
新的
ip stats
命令管理和显示接口统计信息。默认情况下,ip stats show
命令显示所有网络设备(包括网桥和绑定)的统计信息。您可以使用dev
和group
选项过滤输出。详情请查看ip-stats (8)
手册页。 -
ss
工具现在提供-T
(--threads
)选项来显示线程信息,这扩展了-p
(--processes
)选项。详情请查看ss (8)
手册页。 -
您可以使用新的
bridge fdb flush
命令删除与提供的选项匹配的特定转发数据库(fdb)条目。详情请查看bridge (8)
手册页。
Jira:RHEL-428[1]
内核支持以特定顺序激活绑定端口
有了这个增强,如果您在 active-backup
中配置了绑定、balance-tlb
或 balance-alb
模式,则内核的 netlink
接口支持在每个端口上设置优先级。优先级值使用 32 位整数,较高的值表示较高的优先级。现在,您可以按特定顺序激活绑定端口。
要使用这个功能,您可以在创建或修改 NetworkManager 端口连接配置文件时设置 bond-port.prio
属性来配置优先级。
Bugzilla:2092194[1]
firewalld
现在避免不必要的防火墙规则刷新
随着 RHBA-2023:7748 的发布,建议升级 firewalld
服务,如果满足以下条件,则不会从 iptables
配置中删除所有现有的规则:
-
firewalld
使用nftables
后端。 -
没有使用
--direct
选项创建的防火墙规则。
这个变化旨在减少不必要的操作(防火墙规则刷新),并改进了与其他软件的集成。
Jira:RHEL-14694[1]
为 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[1]