第 14 章 Networking
NetworkManager rebase 到版本 1.8
NetworkManager 软件包升级至上游版本 1.8,它提供了大量的程序错误修复和增强。主要变更包括:
- 添加了对其他路由选项的支持。
- 在重启之前,受管设备状态一直存在。
- 现在,外部管理的设备可以被正确处理。
- 在多方主机上网络的可靠性已被改进。
- 现在,主机名管理更加灵活地配置。
- 添加了对更改和强制实施
802-3 链接属性
的支持。(BZ#1414103)
NetworkManager
现在支持路由的其他功能
在这个版本中,
NetworkManager
可以设置一些高级选项: source_address (src、IPv4 only)、从、type_of_service (tos)、窗口、max_transmission_unit (mtu)、congestion_window (cwnd)、initial_congestion_window (initcwnd)和 initial_receiver_window (initrwnd)用于静态 IPv4 和 IPv6 连接的连接。(BZ#1373698)
NetworkManager
现在更好地处理设备状态
在这个版本中,
NetworkManager
在服务重启后维护设备状态,并在重启过程中接管设置为受管模式的接口。另外,NetworkManager
还可处理未明确设置为非受管设备,但由用户或者其它网络服务手动控制。(BZ#1394579)
NetworkManager
现在支持 MACsec(IEEE 802.1AE)
在这个版本中,增加了对将 Media Access Control Security(MACsec)加密配置为
NetworkManager
的支持。(BZ#1337997)
NetworkManager
现在支持更改和强制实施 802-3 链接属性
在以前的版本中,
NetworkManager
只公开 802-3 链接属性
: 802-3-ethernet.speed
,802-3 ethernet.duplex
, 和 802-3-ethernet.auto-negotiate
。在这个版本中,可以更改和强制实施。您可以使用自动协商 =yes 自动执行此操作,也可以使用自动协商 =
no、speed=<
Mbit/s> , duplex
=[half,full]
。
请注意,
如果没有设置自动协商=no
,并且未设置 速度
或 duplex
,则将跳过链路协商,并且 自动协商=no, speed=0, duplex=NULL
默认值会被保留。
另请注意,
自动协商默认值
已从 yes
改为 no
来保持向后兼容性。在以前的版本中,这个属性会被忽略,但现在会 自动协商
值 yes
可以强制链路协商。在取消 速度和
/或双工时将其设置为 no
,表示链接协商将被忽略。
(BZ#1353612)
NetworkManager
现在支持根据设备名称排序绑定从设备
在以前的版本中,从连接激活的现有顺序可能会导致问题确定主接口的 MAC 地址。在这个版本中,根据设备名称增加了更可预测的排序。您可以使用
NetworkManager
配置中的 slaves-order=name
设置启用新排序。
请注意,新排序默认为禁用,必须明确启用。(BZ#1420708)
NetworkManager
现在支持 SR-IOV 设备的 VF
在这个版本中,NetworkManager
系统服务
支持为单根 I/O 虚拟化(SR-IOV)PCI 设备创建虚拟功能(VF)。可使用 NetworkManager
配置文件的 device 部分的 sriov-num-vfs 选项指定 VF 的数量。创建 VF 后,NetworkManager
可以在它们上激活连接配置集。
请注意,VF 接口的一些属性(如最大传输单元(MTU))只能设置为与物理接口上设置的值兼容的值。(BZ#1398934)
内核 GRE rebase 到版本 4.8
内核通用路由封装(GRE)隧道已更新至上游版本 4.8,它提供了大量的程序错误修复和增强。最显著的变化包括:
- 用于传输和接收 IPv4 GRE 和 IPv6 GRE 的路径的代码合并
- 允许在不关闭
gre
(IPv4 GRE)或ip6gre
(IPv6 GRE)设备的情况下进行链路层地址更改的改进 - 支持用于 IPv6 GRE 流量的各种卸载,如
checksum
、scatter-gather
、highdma
、gso
或gro
- 添加
ip6gretap
设备时自动内核模块载入 - 各种隧道修复(如错误处理、MTU 计算、路径 MTU 发现)以及影响 GRE 隧道(BZ#1369158)的 Linux 内核版本 4.8
dnsmasq rebase 到版本 2.76
dnsmasq 软件包已升级到 2.76 版本,它提供了很多程序错误修复和增强。主要变更包括:
- 现在支持
dhcp_release6
工具程序。 - 添加了
ra-param
选项。 - 添加了对回复 DHCPv6 信息请求的 RFC-4242 information-refresh-time 选项的支持。
- 添加了 RFC-3775- 兼容移动 IPv6 支持的
ra-advrouter
模式。 - 添加
script-arp
脚本,并包括了dhcp-script
脚本的两个新功能。 - 现在,可以将随机地址用于 DHCPv6 临时地址分配,而不是以算法确定的稳定地址。
- 禁用了新的可选的 DNS 安全扩展(DNSSEC)支持。
BIND 更改了处理 URI 资源记录的方式,会影响 URI 向后兼容性
在这个版本中,在使用 URI 资源记录时,BIND 套件不再为值字段添加额外的长度字节。这也意味着 Red Hat Enterprise Linux(RHEL)7.4 中的 BIND 仅以 RFC 7553 中描述的格式进行通信。https://tools.ietf.org/html/rfc7553
请注意,此次更新使新的 URI 记录与在之前的 RHEL 版本中使用 BIND 创建的记录不兼容。即,RHEL 7.4 中的 BIND 无法:
- 了解 RHEL 中以前由 BIND 版本提供的 URI 记录。
- 在 RHEL 中使用之前版本的 BIND,为客户端提供 URI 记录。
但是,RHEL 7.4 中的 BIND 仍然可以:
- 在 RHEL 中缓存和接收来自之前和将来的 BIND 版本中的记录。
- 提供旧 URI 格式的记录,编码为 Unknown DNS Resource Record。详情请查看 RFC 35 97。
在此次更新之后,您不需要对 DNS 区域文件进行任何更改。(BZ#1388534)
为 Microsoft Azure 云添加了 DDNS 的 DHCP
客户端 hook 示例
为 Microsoft Azure 云的
DHCP
客户端 hook 示例已添加到 dhclient 软件包中。管理员现在可以轻松启用此 hook,并使用 DDNS
服务器注册 Red Hat Enterprise Linux 客户端。(BZ#1374119)
dhcp_release6
现在发行 IPv6 地址
在这个版本中,
dhcp_release6
实用程序可以为本地 dnsmasq 服务器上的 IPv6 地址释放 DHCPv6)租期。有关 dhcp_release6 命令的详情,请查看 dhcp_release6 (1)man page。(BZ#1375569)
Sendmail
现在支持 ECDHE
在这个版本中,Red Hat Enterprise Linux 7
Sendmail
添加了对 Elliptic Curve Diffie-Hellman Ephemeral Keys(ECDHE)支持。ECDHE 是 Diffie-Hellman 协议的一个变体,它使用 elliptic curve 加密。这是一个匿名密钥协议,允许两个方通过不安全的频道建立共享 secret。(BZ#1124827)
telnet
现在支持 -6 选项
在 Unbound
中调整可缓存负 DNS 响应的 TTL 限制
在这个版本中,为
Unbound
服务添加了 cache-max-negative-ttl 配置选项,它启用了调整专用于缓存负 DNS 响应的最大 TTL。在以前的版本中,这个限制由域 SOA 记录决定,或者它自动与缓存所有 DNS 响应的最大 TTL 限值相同(如果配置了)。
请注意,如果
Unbound
正在确定 DNS 响应缓存的 TTL,则为 cache-min-ttl 选项设置的值优先于 cache-max-negative-ttl 指定的值。(BZ#1382383)
改进了 UDP 套接字的可扩展性
这个版本改进了 UDP 转发内存核算,并减少了 UDP 套接字的锁定争用。因此,在没有发生功能改变的情况下,从多个 peer 接收流量的 UDP 套接字的整体入口吞吐量会显著提高。(BZ#1388467)
IP 现在支持内核中 IP_BIND_ADDRESS_NO_PORT
在这个版本中,内核添加了
IP_BIND_ADDRESS_NO_PORT
套接字选项。这允许内核在将 bind()
请求用于端口号 0
时跳过 L4 tuple 保留。因此,可以维护多个到不同目标主机的同步连接。(BZ#1374498)
IPVS Source Hash 调度现在支持 L4 散列和 SH 回退
在这个版本中,IP Virtual Server(IPVS)源散列调度算法包括:
- L4 哈希
- 如果目标服务器的权重为
0,
则向下一个活动服务器的请求回退到下一个活动服务器,这表明目标服务器不活动。
因此,可以根据端口号平衡来自一个源 IP 地址的请求负载。对不活跃服务器的请求不再超时。(BZ#1365002)
iproute 现在支持更改网桥端口选项
在这个版本中,在 iproute 软件包中添加了新的桥接端口选项,如 state、priority 和 cost。因此,iproute 可用作 bridge-utils 软件包的替代选择。(BZ#1373971)
SCTP(RFC 6458)的 Sockets API Extensions 的新选项
这个版本实现选项 SCTP_SNDINFO、SCTP_NXTINFO、SCTP_NXTINFO 和 SCTP_DEFAULT_SNDINFO,到 Sockets API 扩展,用于流控制传输协议(RFC 6458)。
这些新选项替换了 SCTP_SNDRCV、SCTP_EXTRCV 和 SCTP_DEFAULT_SEND_PARAM 选项,它们现已弃用。另请参阅已弃用的功能部分。(BZ#1339791)
s
现在支持 SCTP 套接字列表
wpa_supplicant rebase 到版本 2.6
wpa_supplicant 软件包已升级到上游版本 2.6,它提供很多程序错误修复和增强。值得注意的是,
wpa_supplicant
程序现在支持 Media Access Control Security(MACsec)加密 802.1AE,它默认启用 MACsec。(BZ#1404793, BZ#1338005)
Linux 内核现在包含 switchdev
基础架构和 mlxsw
这个版本将以下功能反向移植到 Linux 内核中:
- 以太网交换机设备驱动程序模型 -
switchdev
基础架构; 因此,交换机设备现在可以从内核卸载转发数据平面 mlxsw
驱动程序
mlxsw
支持的交换机硬件:
- Mellanox SwitchX-2(仅以下路径)
- Mellanox SwitchIB 和 SwitchIB-2
- Mellanox Spectrum
mlxsw
支持的功能:
- 每个端口巨型帧,速度设置、状态设置、统计信息
- 端口分割和分割电缆
- 端口镜像
- QoS: 802.1p,Data Center Bridging(DCB)
- 使用 TC 流卸载的访问控制列表(ACL)作为技术预览引进
第 2 层功能:
- VLAN
- 生成树协议(STP)
- 使用团队或绑定卸载链接聚合(LAG)
- 链路层发现协议(LLDP)
第 3 层功能:
- 单播路由
要配置所有这些功能,请使用已经更新的 iproute 软件包提供的标准工具。(BZ#1297841, BZ#1275772, BZ#1414400, BZ#1434587, BZ#1434591)
Linux 网桥代码 rebase 到版本 4.9
Linux 网桥代码升级至上游版本 4.9,它提供了大量的程序错误修复和增强。主要变更包括:
- 支持 802.1ad VLAN 过滤和 Tx VLAN 加速
- 支持 802.11 代理地址解析协议(ARP)
- 支持使用
switchdev
进行切换卸载 - 对用户
mdb
条目的 VLAN 支持 - 支持
mdb
条目中的扩展属性 - 支持临时端口路由器
- 支持每个 VLAN 统计
- 支持互联网组管理协议/多广播发现(IGMP/MLD)统计
- netlink 现在支持使用
sysfs
支持的所有配置设置 - 添加了每个端口标记来控制未知的多播 flood(BZ#1352289)
bind-dyndb-ldap rebase 到版本 11.1
bind-dyndb-ldap 软件包升级至上游版本 11.1,它提供了大量的程序错误修复和增强。
从 Red Hat Enterprise Linux 中添加了 BIND 的上游版本 9.11.0 的 DynDB API
这个版本反向移植
dyndb
系统插件的 API,它在上游社区的 bind 软件包版本 9.11.0 中引入。因此,Red Hat Enterprise Linux 中的 bind-dyndb-ldap
插件现在使用新的 API。在之前的 Red Hat Enterprise Linux 版本中使用的下游功能 dynamic_db
不再被支持。
tboot rebase 到版本 1.9.5
tboot 软件包已升级到上游版本 1.9.5,它提供很多程序错误修复和增强。主要变更包括:
- 这个版本为受信任的平台模块(TPM)2.0 以及更新的 LCP 创建实用程序添加了第二代链接控制协议(LCP)创建实用程序。
- 已实施一个临时解决方案,以确保 Intel Platform Trust Technology(PTT)和 Linux PTT 驱动程序的正确行为。
- 在 Linux 内核标题 struct 声明中添加了新的字段,以便适应 Linux 内核的新功能。(BZ#1384210)
与 rdma 相关的软件包由 rebase 合并到 rdma-core 版本 13 中
与 rdma 软件包相关的软件包已升级并整合到单一源软件包 rdma-core 版本 13 中。软件包是:
- rdma
- iwpmd
- libibverbs
- librdmacm
- ibacm
- libibumad
- libocrdma
- libmlx4
- libmlx5
- libhfi1verbs
- libi40iw
- srp_daemon(以前为 srptools)
- libmthca
- libcxgb3
- libcxgb4
- libnes
- libipathverbs
- librxe
- rdma-ndd
以前没有包括的软件包作为新软件包 rdma-core 的一部分提供:
- libqedr
- libhns
- libvmw_pvrdma
现在,libibverbs 子软件包中捆绑了所有与硬件相关的供应商库,简化了安装过程并防止可能不匹配的情况。
(BZ#1404035)
为静态 MAC 地址添加的 OVN IP 地址管理支持
在这个版本中,增加了对使用用户指定的静态 MAC 地址的动态 IP 地址分配的支持。因此,Open Virtual Network(OVN)用户现在可以使用与静态 MAC 地址关联的动态 IP 创建配置。(BZ#1368043)
在多方主机上增强的网络可靠性
现在支持 GENEVE、VXLAN 和 GRE 隧道卸载
借助此次更新,增加了对 GENEVE、VXLAN 和 GRE 隧道卸载的基础架构。另外,在
GENEVE
隧道实现中修复了各种程序错误。(BZ#1326309)
现在支持用于隧道流量的 LCO
在这个版本中,添加了
Local Checksum Offloading
(LCO)技术来启用某些网卡,以将校验和卸载用于隧道流量。此功能增强提高了 VXLAN、GRE 和其他隧道的性能。(BZ#1326318)
改进了 NIC 的隧道性能
在这个版本中,一些不支持隧道卸载的网络接口卡(NIC)的隧道性能已被改进。现在,用户可以利用这些 NIC 上的现有硬件卸载功能。(BZ#1326353)
现在在内核中支持 NPT
在这个版本中,在 Netfilter 框架中添加了 RFC 6296 中定义的
IPv6-to-IPv6 网络前缀转换
(NPTv6)函数。现在,可以在 IPv6 前缀之间为无状态转换启用 NPT
。(BZ#1432897)
DNS 配置现在通过 D-Bus API 支持
在以前的版本中,外部应用程序无法轻松地检索
NetworkManager
使用的 DNS
参数。在这个版本中,DNS 配置已通过 D-Bus API 支持。因此,所有 DNS 相关信息(包括名称服务器和域)都可通过 NetworkManager
的 D-Bus API 提供给客户端应用程序。例如,mcli 工具是 nmcli
工具,它现在可以显示 DNS 配置。(BZ#1404594)
PPP 支持现在被移到一个单独的软件包中
在这个版本中,点对点协议(PPP)支持被移到一个单独的可选 NetworkManager-ppp 软件包中。因此,
NetworkManager
的依赖项链会较小,并且可以限制安装的软件包的数量。
请注意,要配置 PPP 设置,您必须确保安装了 NetworkManager-ppp 软件包。(BZ#1404598)
tc
工具现在支持 flower
修复了对 SCTP 转发路径中的 CRC32c
值计算的问题
在以前的版本中,当内核将其转发到不支持卸载的接口时,内核会错误地计算流控制传输协议(SCTP)数据包的
CRC32c
值。在这个版本中,转发路径中的 CRC32c
计算已被修复。现在,在上述情况下,SCTP 数据包会被正确传输。(BZ#1072503)
新软件包: iperf3
在这个版本中,iperf3 软件包版本 3.1.7 添加到 Red Hat Enterprise Linux 7 中。
iperf3
实用程序启用 IP 网络的最大可利用带宽的活动测量。(BZ#913329)
OVN 的安装现在支持易配置的 firewalld
规则
此功能为 openvswitch 软件包添加了 Open Virtual Network(OVN)的
firewalld
配置规则。因此,用户可以通过启用 firewalld
来更轻松地安装 OVN,而不必手动创建 firewalld
配置。(BZ#1390938)
netlink
现在支持网桥 master 属性
在这个版本中,当网桥属性被改变时,都会向监听器发送通知。这包括 sysfs、rtnl、ioctl 或用户应用程序(如
NetworkManager
)触发的更改。(BZ#950243)