35.3. 使用 iproute2 为 MPTCP 应用程序临时配置和启用多个路径


每个 MPTCP 连接都使用一个类似于纯 TCP 的单个子流。要获得 MPTCP 好处,请为每个 MPTCP 连接的最大子流数指定高些的限制。然后配置额外的端点以创建这些子流。

重要

在重启机器后,这个过程中的配置不会保留。

请注意,MPTCP 尚不支持为同一套接字混合 IPv6 和 IPv4 端点。使用属于同一地址系列的端点。

先决条件

  • iperf3 软件包已安装
  • 服务器网络接口设置:

    • enp4s0: 192.0.2.1/24
    • enp1s0: 198.51.100.1/24
  • 客户端网络接口设置:

    • enp4s0f0: 192.0.2.2/24
    • enp4s0f1: 198.51.100.2/24

流程

  1. 将客户端配置为接受最多 1 个额外的远程地址,如服务器提供的地址:

    # ip mptcp limits set add_addr_accepted 1
    Copy to Clipboard Toggle word wrap
  2. 在服务器上将 IP 地址 198.51.100.1 添加为新的 MPTCP 端点:

    # ip mptcp endpoint add 198.51.100.1 dev enp1s0 signal
    Copy to Clipboard Toggle word wrap

    signal 选项可确保在三向手后发送 ADD_ADDR 数据包。

  3. 启动 iperf3 服务器:

    # iperf3 -s
    
    Server listening on 5201
    Copy to Clipboard Toggle word wrap
  4. 将客户端连接到服务器:

    # iperf3 -c 192.0.2.1 -t 3
    Copy to Clipboard Toggle word wrap

验证

  1. 验证连接是否已建立:

    # ss -nti '( sport :5201 )'
    Copy to Clipboard Toggle word wrap
  2. 验证连接和 IP 地址限制:

    # ip mptcp limit show
    Copy to Clipboard Toggle word wrap
  3. 验证新添加的端点:

    # ip mptcp endpoint show
    Copy to Clipboard Toggle word wrap
  4. 在服务器上使用 nstat MPTcp* 命令验证 MPTCP 计数器:

    # nstat MPTcp*
    
    #kernel
    MPTcpExtMPCapableSYNRX          2                  0.0
    MPTcpExtMPCapableACKRX          2                  0.0
    MPTcpExtMPJoinSynRx             2                  0.0
    MPTcpExtMPJoinAckRx             2                  0.0
    MPTcpExtEchoAdd                 2                  0.0
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat