4.4. 使用 nmcli 配置网络团队

要在命令行中配置网络团队,请使用 nmcli 工具。

重要

网络 teaming 在 Red Hat Enterprise Linux 9 中已弃用。考虑使用网络绑定驱动程序作为替代方案。详情请参阅 配置网络绑定

前提条件

  • 已安装 teamdNetworkManager-team 软件包。
  • 在服务器中安装两个或者两个以上物理或者虚拟网络设备。
  • 要将以太网设备用作组的端口,必须在服务器中安装物理或者虚拟以太网设备并连接到交换机。
  • 要使用 bond、bridge 或 VLAN 设备作为团队的端口,您可以在创建团队时创建这些设备,或者预先创建它们,如下所述:

流程

  1. 创建团队接口:

    # nmcli connection add type team con-name team0 ifname team0 team.runner activebackup

    此命令创建一个使用 activebackup runner、名为 team0 的网络团队。

  2. 另外,还可设置链接监视器。例如,要在 team0 连接配置文件中设置 ethtool 链接监视器:

    # nmcli connection modify team0 team.link-watchers "name=ethtool"

    链路监视器支持不同的参数。要为链路监视器设置参数,请在 name 属性中以空格分隔的方式来指定它们。请注意,name 属性必须用引号括起来。例如,要使用 ethtool 链接监视器,并将其 delay-up 参数设置为 2500 毫秒(2.5 秒):

    # nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2500"

    要设置多个链路监视器,每个都使用特定的参数,不同的连接监视器以逗号分隔。以下示例使用 delay-up 参数设置 ethtool 链接监视器,使用 source-hosttarget-host 参数设置 arp_ping 链路监视器:

    # nmcli connection modify team0 team.link-watchers "name=ethtool delay-up=2, name=arp_ping source-host=192.0.2.1 target-host=192.0.2.2"
  3. 显示网络接口,并记录您要添加到团队中的接口名称:

    # nmcli device status
    DEVICE  TYPE      STATE         CONNECTION
    enp7s0  ethernet  disconnected  --
    enp8s0  ethernet  disconnected  --
    bond0   bond      connected  bond0
    bond1   bond      connected  bond1
    ...

    在本例中:

    • 没有配置 enp7s0enp8s0 。要将这些设备用作端口,请在下一步中添加连接配置集。请注意,您只能在没有分配给任何连接的团队中使用以太网接口。
    • bond0bond1 已有连接配置文件。要将这些设备用作端口,请在下一步中修改其配置集。
  4. 为团队分配端口接口:

    1. 如果没有配置您要分配给团队的接口,为其创建新的连接配置集:

      # nmcli connection add type ethernet slave-type team con-name team0-port1 ifname enp7s0 master team0
      # nmcli connection add type ethernet slave-type team con-name team0-port2 ifname enp8s0 master team0

      这些命令为 enp7s0enp8s0 创建配置文件,并将它们添加到 team0 连接中。

    2. 将现有的连接配置文件分配给团队:

      1. 将这些连接的 master 参数设为 team0

        # nmcli connection modify bond0 master team0
        # nmcli connection modify bond1 master team0

        这些命令将名为 bond0bond1 的现有连接配置文件分配给 team0 连接。

      2. 重新激活连接:

        # nmcli connection up bond0
        # nmcli connection up bond1
  5. 配置 IPv4 设置:

    • 要将这个团队设备用作其它设备的端口,请输入:

      # nmcli connection modify team0 ipv4.method disabled
    • 要使用 DHCP,不需要进行任何操作。
    • 要为 team0 连接设置静态 IPv4 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:

      # nmcli connection modify team0 ipv4.addresses '192.0.2.1/24' ipv4.gateway '192.0.2.254' ipv4.dns '192.0.2.253' ipv4.dns-search 'example.com' ipv4.method manual
  6. 配置 IPv6 设置:

    • 要将这个团队设备用作其它设备的端口,请输入:

      # nmcli connection modify team0 ipv6.method disabled
    • 要使用 DHCP,不需要进行任何操作。
    • 要为 team0 连接设置静态 IPv6 地址、网络掩码、默认网关和 DNS 服务器设置,请输入:

      # nmcli connection modify team0 ipv6.addresses '2001:db8:1::1/64' ipv6.gateway '2001:db8:1::fffe' ipv6.dns '2001:db8:1::fffd' ipv6.dns-search 'example.com' ipv6.method manual
  7. 激活连接:

    # nmcli connection up team0

验证

  • 显示团队状态:

    # teamdctl team0 state
    setup:
      runner: activebackup
    ports:
      enp7s0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
            down count: 0
      enp8s0
        link watches:
          link summary: up
          instance[link_watch_0]:
            name: ethtool
            link: up
            down count: 0
    runner:
      active port: enp7s0

    在这个示例中,两个端口都是上线的。