8.2. 网络

作为技术预览,引入了对通过 UDP 隧道封装了 MPLS 流量的 bareudp 设备的支持

现在,ip link 命令支持 bareudp 设备作为一个技术预览。bareudp设备为使用不同 L3 协议的路由流量提供了L3 封装隧道支持,如单播和多播多协议标签切换(MPLS)和 UDP 隧道中的 IPv4/IPv6。通过添加 tc 过滤器和操作,您可以在 UDP 中开始路由 MPLS 数据包。

例如,要创建新的 bareudp 设备,请使用以下命令:

# ip link add dev bareudp0 type bareudp dstport 6635 ethertype mpls_uc

要使用 bareudp0 设备在 UDP 隧道中路由 MPLS 传入的数据包,请使用以下命令:

# tc qdisc add dev enp1s0 ingress
# tc filter add dev enp1s0 ingress proto mpls_uc matchall   \
> action tunnel_key set src_ip 2001:db8::22 dst_ip 2001:db8::21 id 0   \
> action mirred egress redirect dev bareudp0

有关创建 bareudp 设备时所使用的选项和参数的详情,请参阅 ip-link(8)手册页中的 Bareudp Type Support 部分。

(BZ#1849815)

AF_XDP 作为技术预览

Address Family eXpress Data Path (AF_XDP) 是设计用于处理高性能数据包。它包含 XDP,并允许通过编程方式将选定的数据包高效地重定向到用户空间应用,以便进一步处理。

(BZ#1633143)

KTLS 作为技术预览提供

在 Red Hat Enterprise Linux 8 中,KTLS 是作为技术预览提供的。KTLS 使用内核中的对称加密或者解密算法为 AES-GCM 密码处理 TLS 记录。KTLS 还提供将 TLS 记录加密卸载到支持此功能的网络接口控制器(NIC)的接口。

(BZ#1570255)

可作为技术预览的 XDP 功能

红帽提供了以下 eXpress Data Path(XDP)功能作为不受支持的技术预览:

(BZ#1889737)

TC 的多协议标签交换,作为技术预览提供

Multi-protocol Label Switching(MPLS)是一个内核内数据转发机制,用于跨企业网络路由流量。在 MPLS 网络中,接收数据包的路由器根据附加到数据包的标签决定数据包的其他路由。使用标签时,MPLS 网络可以处理带有特定特征的数据包。例如,您可以添加 tc 过滤器,以一致的方式管理从特定端口接收的数据包或执行特定类型的流量。

数据包进入企业网络后,MPLS 路由器对数据包执行多个操作,如 push 来添加标签、swap 来更新标签,以及 pop 来删除标签。MPLS 允许基于 RHEL 中的一个或多个标签在本地定义操作。您可以配置路由器并设置流量控制(tc)过滤器,根据 MPLS 标签堆栈条目(lse)元素来对数据包执行相应的操作,如 labeltraffic classbottom of stack 以及 time to live

例如,以下命令在 enp0s1 网络接口中添加过滤器以匹配传入的数据包,第一个标签为 12323,第二个标签为 45832。在匹配的数据包中,会执行以下操作:

  • 第一个 MPLS TTL 被缩减(如果 TTL 到达 0,则会丢弃数据包)
  • 第一个 MPLS 标签被改为 549386
  • 生成的数据包通过 enp0s2 传输,目标 MAC 地址为 00:00:5E:00:53:01,源 MAC 地址为 00:00:5E:00:53:02

    # tc filter add dev enp0s1 ingress protocol mpls_uc flower mpls lse depth 1 label 12323 lse depth 2 label 45832 \
    action mpls dec_ttl pipe \
    action mpls modify label 549386 pipe \
    action pedit ex munge eth dst set 00:00:5E:00:53:01 pipe \
    action pedit ex munge eth src set 00:00:5E:00:53:02 pipe \
    action mirred egress redirect dev enp0s2

(BZ#1814836, BZ#1856415

act_mpls 模块作为技术预览提供

act_mpls 模块现在作为技术预览在 kernel-modules-extra rpm 中找到。该模块允许使用流量控制(TC)过滤器进行多协议标签交换(MPLS)操作,例如:通过 TC 过滤器推送和弹出 MPLS 标签堆栈条目。模块还允许独立设置 Label、Traffic Class、Stack 的 Bottom 和 Time to Live 字段。

(BZ#1839311)

改进了多路径 TCP 支持作为技术预览提供

多路径 TCP(MPTCP)改进了网络中的资源使用量以及网络故障的恢复能力。例如:在 RHEL 服务器中使用多路径 TCP,启用了 MPTCP v1 的智能手机可以连接到服务器上运行的应用程序,并在 Wi-Fi 和手机网络间切换,而不会中断到服务器的连接。

RHEL 8.4 提供了其他功能,例如:

  • 多个并发活跃子流
  • 支持 active-backup
  • 改进了流性能
  • 更好的内存利用率,以及 receivesend 缓冲区自动调整
  • SYN cookie 支持

请注意,在服务器中运行的应用程序必须原生支持 MPTCP 或管理员必须在内核中载入 eBPF 程序,以便动态地将 IPPROTO_TCP 改为 IPPROTO_MPTCP

详情请查看 多路径 TCP 入门

(JIRA:RHELPLAN-57712)

systemd-resolved 服务现在作为技术预览提供

systemd 解析的服务 为本地应用提供名称解析。该服务实现了缓存和验证 DNS stub 解析器、链接本地多播名称解析(LLMNR)以及多播 DNS 解析器和响应程序。

请注意,即使 systemd 软件包提供 systemd -resolved,这个服务还是一个不受支持的技术预览。

BZ#1906489

The nispor 软件包现在作为技术预览提供

The nispor 软件包现在作为技术预览提供,它是 Linux 网络状态查询的统一接口。它提供了一个通过 python 和 C api 以及 rust crate 查询所有正在运行的网络状态的统一方法。nispor 作为nmstate 工具中的依赖项使用。

您可以将 nispor 软件包作为 nmstate的依赖项或单独的软件包来安装。

  • 要将 nispor作为单独的软件包来安装,请输入:

    # yum install nispor
  • 要将 nispor 作为 nmstate 的依赖项来安装,请输入:

    # yum install nmstate

    nispor 被列为依赖项。

有关使用 nispor 的更多信息,请参阅 /usr/share/doc/nispor/README.md 文件。

(BZ#1848817)