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
现在可防止数据包受到多个区的影响。
警告:如果用户知道或不依赖于区偏移行为,这个更改可能会影响某些服务的可用性。