第 11 章 网络

SNMP 现在可以通过 clientaddr 指令正确发送 IPv6 消息

以前,snmp.confclientaddr 选项只影响通过 IPv4 发送的转出消息。在这个版本中,可以从 clientaddr 指定的接口正确发送转出的 IPv6 消息。

tcpdump 支持 -J、-j 和 time-stamp-precision 选项

因为 kernelglibclibpcap 现在提供 API 来获取纳秒级的时间戳,已升级 tcpdump 以便利用这个功能。用户现在可以查询哪些时间戳源可用(-J)、设置专有的时间戳源(-j)以及用指定的精度(--time-stamp-precision)请求时间戳。

TCP/IP 恢复至版本 3.18

TCP/IP 栈已升级至上游版本 3.18,与之前的版本相比,本版本提供了大量程序错误修复和增强。值得注意的是,这次更新修复了 TCP Fast Open(TFO)扩展,现在 IPv6 时也可如预期工作。此外,本次更新还提供了对可选的 TCP Autocorking 的支持,并实现了 Data Center TCP(DCTCP)。

NetworkManager libreswan 恢复至版本 1.0.6

整合了大量来自上游的程序错误修复和增强,例如:
* 现在处理密码的能力更可靠
* 启动和停止连接操作更可靠
* 现在已可以在推送的路由中自动探测路由
* 添加互动密码请求支持
* 修复错误导入和导出功能广告。

NetworkManager 现在支持在绑定的接口中设置 MTU

'nmcli' 和 GUI 界面现在允许在绑定的接口中设置 MTU。

NetworkManager 现在会在应用这些选项前验证 IPv6 Router Advertisement MTU 选项

恶意或错误配置的代码会发送一个 IPv6 MTU,应用此选项会让网络通讯问题更严重,甚至根本无法通讯。NetworkManager 现在可更完善地处理这些问题,以保持 IPv6 连接性。

现在默认启用 IPv6 隐私扩展

为在激活该设备时决定并完成 IPv6 隐私设置,NetworkManager 现在可以默认检查 NetworkManager.conf 中的网络配置,必要时可回退到 /proc/sys/net/ipv6/conf/default/use_tempaddr

控制中心网络面板现在会显示设备容量

现在会在控制中心网络面板中显示支持的 WiFi 设备操作频率。

NetworkManager 现在可在多个接口指向同一网关时妥善解决路由冲突

NetworkManager 现在可追踪配置的路由,并可避免设定冲突的路由。当冲突的路由不再活跃时会将其删除。

修复由 multihomed 连接造成的网络中断

NetwrokManager 现在可以在激活 multihomed 中的第二个设备时避免网络中断。

可防止 NetworkManager 覆盖 ip route add 的新选项

在连接的 IP 配置中添加了新的 'never-default' 选项。这个选项可防止 NetworkManager 自己设置默认路由,而是要由管理员根据需要设置不同的默认路由。

修复在之前在某些硬件中探测到运营商故障后的原始 network.service 错误

如果在引导过程中设备没有载波,NetworkManager 会等待探测载波,而不是立即造成激活失败。

NetworkManager 现在支持 Wake on Lan 命令

现在 nmcli 程序允许在每个设备中设定 Wake on Lan 命令。

改进 VPN 连接的 firewalld 区支持

现在可在为基于设备的 VPN 连接配置防火墙区时,在 firewalld 中正确配置该区。

现在支持公平队列(Fair Queue)数据包调度程序

在 Red Hat Enterprise Linux 7.2 中添加了公平队列数据包调度程序,也称 fq,并可使用 tc(流量控制器)程序选择。

添加传输合并支持

已实施 xmit_more 扩展,改进 virtio-net 及其他驱动程序的传输性能,特别是禁用了 TSO(TCP 分段分载)。

改进网络帧接收性能

通过代码重构消除 NAPI 内存分配中的 IRQ 保存和恢复,减少了接收网络帧时的延迟。

显著改善路由查找性能

已使用上游代码更新 IPv4 FIB(转发信息库)代码以改进性能。

虚拟接口的网络名称空间支持

现在在虚拟接口中支持 netns id,允许跨网络名称空间的连接的网络接口进行可靠追踪。

Docker 和 LXC 容器现在可读取 net.ipv4.ip_local_port_range

已添加 net.ipv4.ip_local_port_range sysctl 的网络名称空间支持,改进需要访问此信息的软件支持的容器。

使用 'ip' 工具改进自动配置的 IPv6 路由报告

已修复 ip 工具无法从路由播发中获取 mtu 或 hoplimit 信息的问题。

现在可正确导出双协议栈套接字选项

只有在设置 IPV6_V6ONLY 时会排除 AF_INET6 套接字。在其他情况下,该套接字还可以使用 IPv4。现在可正确导出该信息,并可使用 iproute2 进行整合。

现在支持数据中心 TCP

这个发行本包括 DCTCP 实施,以改进数据中心环节中的网络性能。可在 sysctl 中设置 dctcp 参数,也可以使用 ip route 在每个路由上设置该参数。

根据各个路由进行拥塞控制

要在每个路由上启用不同的拥塞控制算法,请在 ip route 中添加 congctl 参数。

使用 GRO 时改进处理 TCP Cubic 和 Reno 的拥塞窗口

改进了决定带宽和拥塞窗口大小的方法,减少传送大量数据时的 ACK 数据包。

现在支持 TCP 节奏

已添加 SO_MAX_PACING_RATE 参数。这样会在考虑这个问题时更好地控制环境的吞吐率。

支持客户端和服务器 TFO

已添加 TCP 快速打开功能,可使用由 RFC 7413 分配的选项数。

缓解 TCP ACK 循环

已改进对重复 TCP ACK 的处理,可防止出现 buggy 问题,或可能的恶意中间盒。

使用 nf_conntrack_proto_sctp 的辅助端点的最基本支持

已在 SCTP 中添加基本多重连接支持。

重新设定 AF_UNIX 实施

已更新 AF_UNIX(有时也称 AF_LOCAL)代码,包含了多个修复及增强。特别是现在还支持 sendpage 和 splice(也称 zerocopy)。

内核隧道支持恢复至上游版本

已将内核隧道驱动程序更新至 kernel 4,为您提供大量修复和增强,特别是用于 VXLAN。

为 GRE 添加跨网络名称空间支持

现在在 x-netns 中支持 gre 和 ip6gre。

通过 VXLAN 运行虚拟机流量时可改进性能

更新传输流哈希代码,改进了将来自虚拟机的流量重新定向到隧道的功能。

改进了从 VXLAN 或 GRE 隧道接收帧的卸载

引进了大量改动,以便 GRO 支持和提高 VXLAN 和 NVGRE 隧道性能。

改进了开源 vSwitch 隧道性能

现在默认禁用 tx-nocache-copy 设备功能。之前的默认选项消耗大量负载,特别是通过 VXLAN 运行的 OVS 隧道。

改进的 IPsec 处理

已更新 IPsec,提供了大量修复及某些增强。特别值得关注的是这个发行本现在可提供匹配输出接口的功能。

所包含的 VTI6 支持包括 netns 功能

在内核栈添加了 IPv6 的虚拟隧道接口,其中包括 netns 功能。

增大了 nf_conntrack_buckets 的默认值

如果在装载模块的过程中没有指定,则默认存储区数量是通过将总内存除以 16384 来计算决定。该哈希表从未小于 32,上限为 16384 个存储区。但对于超过 4GB 内存的系统,这个上限是 65536 个存储区。

大型 SMP 机器中的 iptalbes 内存使用改进

之前,大型 iptables 规则集可能会使用大量不必要的内存,这是由在每个 CPU 中存储规则集造成的。已更改保存规则集的方法降低内存消耗。

更新网络绑定驱动程序

为提高可维护性更新了内核网络绑定驱动程序,以便其与上游资源一致。

绑定和 802.3ad 的内核 netlink 接口(LACP)

在内核中添加了用于在 LACP 设备中读取和设置捆绑参数的 netlink 接口。

VLAN 的 mactap 和 macvtap 性能改进

解决了一些设计片段问题所涉及的低输出问题:
* e1000 设备通过 mactap 与 virtio 设备通讯。
* 在虚拟机中使用 VLANs 时通过外部主机通讯。
* 在虚拟机和主机中均可通过 VLAN 与 KVM 主机通讯。

改进了 ethtool 网络查询

IBM System z 上 Red Hat Enterprise Linux 7.2 的技术预览提高了 ethtool 工具的网络查询能力,并从 Red Hat Enterprise Linux 7.2 开始提供全面支持。当使用与改进的查询兼容的硬件时,ethtool 工具提供了改进的监控选项,它可以更正确地显示网卡设置和值。