CentOS 8/RHEL 8でNICチーミングまたはバンディングを作成する方法
NICチーミングは、冗長性と高可用性を提供するために、2つ以上のネットワークリンクを1つの論理リンクに集約または結合することです。論理インターフェース/リンクはチームインターフェースとして知られています。アクティブな物理リンクがダウンした場合、バックアップまたは予備のリンクの1つが自動的に切り替わり、サーバーへの接続が途切れないようにします。
チーミング用語
袖をまくる前に、以下の用語を理解することが重要です。
- Teamd – これは、libteamライブラリを使用してLinuxカーネルを介してチームデバイスと通信するnicチーミングデーモンです。
- Teamdctl– これは、ユーザーがteamdのインスタンスを制御できるユーティリティです。ポートの状態を確認および変更し、バックアップ状態とアクティブ状態の間を切り替えることができます。
- ランナー – これはJSONで記述されたコードの単位であり、さまざまなNICチーミング概念の実装に使用されます。ランナーモードの例にはラウンドロビン、負荷分散、ブロードキャスト、アクティブバックアップが含まれます。
このガイドでは、NICチーミングをアクティブ-バックアップモードで構成します。これは、1つのリンクがアクティブのままで、他のリンクはスタンバイ状態となり、アクティブリンクがダウンした際のバックアップリンクとして予約される状態です。
このページで
- CentOSにteamdデーモンをインストールする
- CentOSでNICチーミングを構成する
- ネットワークチーミングの冗長性テスト
- ネットワークチーミングインターフェースの削除
それでは、さっそく始めましょう。
ステップ1: CentOSにteamdデーモンをインストールする
Teamdは、実行時に論理インターフェースとして機能するネットワークチームを作成する責任のあるデーモンです。デフォルトでは、CentOS/RHEL 8にインストールされています。しかし、何らかの理由でインストールされていない場合は、以下のdnfコマンドを実行してインストールしてください。
$ sudo dnf install teamd
インストールが完了したら、rpmコマンドを実行してteamdがインストールされていることを確認してください:
$ rpm -qi teamd
ステップ2: CentOSでNICチーミングを設定する
NICチーミングを設定するには、NetworkManagerサービスの管理に使用できる便利なnmcliツールを使用します。私のシステムには、論理チームインターフェースを作成するために結合または組み合わせる2つのNICカードがあります:enp0s3とenp0s8。あなたの場合は異なる場合があります。
アクティブなネットワークインターフェースを確認するには、次のコマンドを実行します:
$ nmcli device status
出力は2つのアクティブなネットワーク接続の存在を確認しています。UUIDなどのインターフェースに関する詳細情報を収集するには、次のコマンドを実行してください:
$ nmcli connection show
ネットワークチーミングリンクまたはインターフェースを作成するために、これが私たちの論理的なリンクになりますので、既存のネットワークインターフェースを削除します。その後、削除されたインターフェースを使用してスレーブインターフェースを作成し、それらをチーミングリンクに関連付けます。
それぞれのUUIDを使用して、以下のコマンドを実行してリンクを削除します。
$ nmcli connection delete e3cec54d-e791-4436-8c5f-4a48c134ad29
nmcli connection delete dee76b4c-9alb-4f24-a9f0-2c9574747807
今回インターフェースを確認すると、それらが切断されており、サーバーへの接続がないことに気付くでしょう。基本的に、あなたのサーバーはネットワークの他の部分から隔離されることになります。
$ nmcli device status
次に、アクティブバックアップランナーモードでteam0というチームインターフェースを作成します。前述のように、アクティブバックアップランナーモードは1つのアクティブインターフェースを使用し、アクティブリンクがダウンした場合の冗長性のために他のインターフェースを確保します。
$ nmcli connection add type team con-name team0 ifname team0 config '{"runner": {"name": "activebackup"}}'
team0 インターフェースに割り当てられた属性を表示するには、次のコマンドを実行します:
$ nmcli connection show team0
完璧です!この時点で、私たちはteam0インターフェースだけが動作しています。
$ nmcli connection show
次に、nmcliコマンドを使用して、team0インターフェースのIPアドレスを指定された通りに設定します。ネットワークのサブネットおよびIPアドレッシングスキームに従ってIPを割り当てることを忘れないでください。
$ nmcli con mod team0 ipv4.addresses 192.168.2.100/24
nmcli con mod team0 ipv4.gateway 192.168.2.1
nmcli con mod team0 ipv4.dns 8.8.8.8
nmcli con mod team0 ipv4.method manual
nmcli con mod team0 connection.autoconnect yes
その後、スレイブリンクを作成し、スレイブをチームリンクに関連付けます:
$ nmcli con add type team-slave con-name team0-slave0 ifname enp0s3 master team0
nmcli con add type team-slave con-name team0-slave1 ifname enp0s8 master team0
リンクの状態を再確認してください。スレーブリンクが現在アクティブであることに気づくでしょう。
$ nmcli connection show
次に、チームリンクを無効にして再度有効にします。これにより、スレーブリンクとチームリンク間の接続がアクティブになります。
$ nmcli connection down team0 && nmcli connection up team0
次に、示された通りチームリンク接続の状態を確認してください。
$ ip addr show dev team0
私たちは、以前に設定した正しいIPアドレスでリンクが確立されていることを確認できます。
チームリンクに関する追加の詳細を取得するには、次のコマンドを実行します:
$ sudo teamdctl team0 state
出力から、両方のリンク(enp0s3 および enp0s8)がアップしており、アクティブなリンクが enp0s8 であることがわかります。
ステップ3: ネットワークチーミングの冗長性テスト
アクティブバックアップチーミングモードをテストするために、現在アクティブなリンク – enp0s3 – を切断し、他のリンクが機能するかどうかを確認します。
$ nmcli device disconnect enp0s3
sudo teamdctl team0 state
チーミングインターフェースのステータスを確認すると、リンク enp0s8 が有効になり、サーバーへの接続を提供していることがわかります。これにより、私たちのセットアップが正常に動作していることが確認されました!
ステップ4: ネットワークチーミングインターフェイスの削除
チーミングインターフェース/リンクを削除してデフォルトのネットワーク設定に戻したい場合は、まずチーミングリンクをダウンさせてください。
$ nmcli connection down team0
次に、スレーブを削除します。
$ nmcli connection delete team0-slave0 team0-slave1
最後に、チーミングインターフェースを削除します。
$ nmcli connection delete team0
この時点で、すべてのインターフェースがダウンしており、あなたのサーバーに接続できません。ネットワークインターフェースを有効にして接続を回復するには、次のコマンドを実行してください:
$ sudo ifconfig enp0s3 up
sudo ifconfig enp0s8 up
sudo systemctl restart NetworkManager
結論
NICチーミングは、ネットワークの冗長性に対する優れたソリューションを提供します。2つ以上のネットワークインターフェースを使用すると、1つのリンクが偶発的にダウンした場合でも高い可用性を確保するために、任意のランナーモードでチーミングインターフェースを構成することができます。このガイドが役立ったことを願っています。ぜひご連絡いただき、あなたの体験について教えてください。
















