6.7. 网络
现在,当句柄为 0xffffffff时,tc filter show 命令可以正确地显示过滤器
在以前的版本中,TC 流代码中的一个错误会导致不必要的整数溢出。因此,使用 0xffffffff 作为句柄的转储流器规则可能会导致死循环。这个版本可防止 64 位构架中的整数溢出。因此,tc 过滤器显示 在这种情况下不再循环,过滤器现在可以被正确显示。
(BZ#1712737)
当尝试应用无效的 TC 规则时,内核不再崩溃
在以前的版本中,当尝试使用具有无效 goto chain 参数的规则替换流量控制(TC)规则时,会出现内核崩溃。在这个版本中,内核避免了上述场景中的 NULL 解引用。因此,内核不再崩溃,并记录错误信息。
(BZ#1712918)
现在,当收到 ICMPv6 Packet Too Big 消息时,内核可以正确地更新 PMTU
在某些情况下,比如本地链接地址,多个路由可以与源地址匹配。在以前的版本中,当收到互联网控制消息协议版本 6 (ICMPv6)数据包时,内核不会检查输入接口。因此,路由查找可能会返回与输入接口不匹配的目的地。因此,当收到 ICMPv6 Packet Too Big 消息时,内核可以为不同的输入接口更新路径最大传输单元(PMTU)。在这个版本中,内核会在路由查找过程中检查输入接口。因此,内核现在根据源地址更新正确的目的地,在上述场景中 PMTU 可以正常工作。
(BZ#1722686)
MACsec 不再丢弃有效帧
在以前的版本中,如果 AES-GCM 的加密上下文没有完全初始化,则传入的帧的解密会失败。因此,MACsec 丢弃有效的传入帧,并增加 InPktsNotValid 计数器。在这个版本中,加密上下文的初始化已被修复。现在,使用 AES-GCM 解密可以成功,MACsec 不再丢弃有效的帧。
(BZ#1698551)
当 goto chain 用作二级 TC 控制操作时,内核不再崩溃
在以前的版本中,当 操作 g 策略流量控制(TC)规则使用无效的 act 和操作goto chain 参数作为辅助控制操作时,内核会意外终止。在这个版本中,内核避免使用 NULL 解引用的 goto 链,且不再在上述场景中崩溃。相反,内核会返回 -EINVAL 错误消息。
(BZ#1729033)
内核不再允许使用 NLM_F_EXCL 设置添加重复规则
在以前的版本中,当添加了新策略路由规则时,内核不会检查规则内容。因此,内核可能会添加两个完全相同的规则。这使规则集复杂,NetworkManager 试图缓存规则时可能会造成问题。在这个版本中,NLM_F_EXCL 标志已添加到内核中。现在,当添加了一个规则并设置了标志时,内核会检查规则内容,并在规则已存在时返回 EEXIST 错误。因此,内核不再添加重复的规则。
(BZ#1700691)
ipset list 命令为 哈希 设置类型报告一致的内存
当您向 hash 设置类型中添加条目时,ipset 会通过分配额外的内存块来为新条目重新定义内存表示的大小。在以前的版本中,ipset 将每个组分配的总量设置为仅新块的大小,而不是将值添加到当前内存大小中。因此,ip list 命令会报告内存大小不一致。在这个版本中,ipset 可以正确计算内存大小。因此,ipset list 命令现在显示集合的正确内存大小,输出与 哈希 设置类型的实际分配内存匹配。
如果禁用 IPv6 协议,firewalld 不再尝试创建 IPv6 规则
在以前的版本中,如果禁用了 IPv6 协议,firewalld 服务会错误地尝试使用 ip6tables 工具创建规则,即使 ip6tables 不应该可用。因此,当 firewalld 初始化防火墙时,服务会记录错误消息。在这个版本中解决了这个问题,firewalld 现在仅在禁用 IPv6 时初始化 IPv4 规则。
firewall-cmd 的 --remove-rules 选项现在只删除与指定条件匹配的直接规则
在以前的版本中,firewall-cmd 命令的 --remove-rules 选项不会检查要删除的规则。因此,命令删除了所有直接规则而不是子集规则。在这个版本中解决了这个问题。因此,firewall-cmd 现在只删除与指定条件匹配的直接规则。
(BZ#1723610)
删除带有 forward-ports 的 firewalld 富规则现在可以正常工作
在以前的版本中,firewalld 服务错误地使用 forward-ports 设置处理删除规则。因此,从运行时配置中删除带有 forward-ports 的富规则会失败。在这个版本中解决了这个问题。因此,删除带有 转发端口的 富规则可以正常工作。
数据包不再偏移到其他区,并导致意外行为
在以前的版本中,当在一个区中设置规则时,firewalld 守护进程允许数据包受到多个区的影响。这个行为违反了 firewalld 区概念,其中数据包只能是单一区的一部分。在这个版本中解决了这个程序错误,firewalld 现在可防止数据包受到多个区的影响。
警告:如果用户知道或不依赖于区偏移行为,这个更改可能会影响某些服务的可用性。