4.4. nmcli を使用したネットワークチームの設定

コマンドラインでネットワークチームを設定するには、nmcli ユーティリティーを使用します。

重要

Red Hat Enterprise Linux 9 では、ネットワークチーミングが非推奨になりました。代わりに、ネットワークボンディングドライバーの使用を検討してください。詳細は、Configuring network bonding を参照してください。

前提条件

  • teamd および NetworkManager-team パッケージがインストールされている。
  • サーバーに、2 つ以上の物理ネットワークデバイスまたは仮想ネットワークデバイスがインストールされている。
  • チームのポートとしてイーサネットデバイスを使用するには、物理または仮想のイーサネットデバイスがサーバーにインストールされ、スイッチに接続されている必要があります。
  • チームのポートにボンディング、ブリッジ、または VLAN デバイスを使用するには、チームの作成時にこれらのデバイスを作成するか、次の説明に従って事前にデバイスを作成することができます。

手順

  1. チームインターフェイスを作成します。

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

    このコマンドは、activebackup ランナーを使用する 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 リンク監視を設定します。arp_ping リンク監視は、source-host パラメーターおよび target-host パラメーターで設定します。

    # 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
    ...

    この例では、以下のように設定されています。

    • enp7s0 および enp8s0 は設定されません。これらのデバイスをポートとして使用するには、次のステップに接続プロファイルを追加します。いずれの接続にも割り当てられていないチームのイーサネットインターフェイスのみを使用できる点に注意してください。
    • bond0 および bond1 には既存の接続プロファイルがあります。これらのデバイスをポートとして使用するには、次の手順でプロファイルを変更します。
  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

      これらのコマンドは、enp7s0 および enp8s0 にプロファイルを作成し、team0 接続に追加します。

    2. 既存の接続プロファイルをチームに割り当てるには、以下を実行します。

      1. これらの接続の master パラメーターを team0 に設定します。

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

        これらのコマンドは、bond0 および bond1 という名前の既存の接続プロファイルを team0 接続に割り当てます。

      2. 接続を再度アクティブにします。

        # nmcli connection up bond0
        # nmcli connection up bond1
  5. IPv4 を設定します。

    • このチームデバイスを他のデバイスのポートとして使用するには、次のように入力します。

      # nmcli connection modify team0 ipv4.method disabled
    • DHCP を使用するために必要な操作はありません。
    • 静的 IPv4 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを team0 接続に設定するには、次のように入力します。

      # 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 を使用するために必要な操作はありません。
    • 静的 IPv6 アドレス、ネットワークマスク、デフォルトゲートウェイ、および DNS サーバーを team0 接続に設定するには、次のように入力します。

      # 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

    この例では、両方のポートが起動しています。