第4章 NIC チームの設定
ネットワークインターフェイスコントローラー (NIC) チーミングは、物理ネットワークインターフェイスと仮想ネットワークインターフェイスを結合または集約して、より高いスループットまたは冗長性を備えた論理インターフェイスを提供する方法です。NIC チーミングでは、小さなカーネルモジュールを使用して、パケットフローの高速処理と他のタスク用のユーザー空間サービスを実装します。このように、NIC チーミングは、負荷分散と冗長性の要件に応じて簡単に拡張できるスケーラブルなソリューションです。
Red Hat Enterprise Linux は、チームデバイスを設定するためのさまざまなオプションを管理者に提供します。以下に例を示します。
-
nmcli
を使用し、コマンドラインを使用してチーム接続を設定します。 - RHEL Web コンソールを使用し、Web ブラウザーを使用してチーム接続を設定します。
-
nm-connection-editor
アプリケーションを使用して、グラフィカルインターフェイスでチーム接続を設定します。
NIC チーミングは Red Hat Enterprise Linux 9 では非推奨です。代わりに、ネットワークボンディングドライバーの使用を検討してください。詳細は、ネットワークボンディングの設定 を参照してください。
4.1. ネットワークボンディングへの NIC チーム設定の移行
ネットワークインターフェイスコントローラー (NIC) チーミングは、Red Hat Enterprise Linux 9 では非推奨です。以前の RHEL バージョンからアップグレードした場合など、すでに機能する NIC チームが設定されている場合は、NetworkManager によって管理されるネットワークボンディングに設定を移行できます。
team2bond
ユーティリティーは、チーム設定をボンディングに変換するだけです。その後、IP アドレスや DNS 設定など、ボンディングの詳細設定を手動で行う必要があります。
前提条件
-
team-team0
NetworkManager の接続プロファイルが設定され、team0
デバイスを管理している。 -
teamd
パッケージがインストールされている。
手順
オプション:
team-team0
NetworkManager 接続の IP 設定を表示します。# nmcli connection show team-team0 | egrep "^ip" ... ipv4.method: manual ipv4.dns: 192.0.2.253 ipv4.dns-search: example.com ipv4.addresses: 192.0.2.1/24 ipv4.gateway: 192.0.2.254 ... ipv6.method: manual ipv6.dns: 2001:db8:1::fffd ipv6.dns-search: example.com ipv6.addresses: 2001:db8:1::1/64 ipv6.gateway: 2001:db8:1::fffe ...
team0
デバイスの設定を JSON ファイルにエクスポートします。# teamdctl team0 config dump actual > /tmp/team0.json
NIC チームを削除します。たとえば、NetworkManager でチームを設定した場合は、
team-team0
接続プロファイルと、関連するポートのプロファイルを削除します。# nmcli connection delete team-team0 # nmcli connection delete team-team0-port1 # nmcli connection delete team-team0-port2
team2bond
ユーティリティーをドライランモードで実行して、チームデバイスと同様の設定でネットワークボンディングを設定するnmcli
コマンドを表示します。# team2bond --config=/tmp/team0.json --rename=bond0 nmcli con add type bond ifname bond0 bond.options "mode=active-backup,num_grat_arp=1,num_unsol_na=1,resend_igmp=1,miimon=100,miimon=100" nmcli con add type ethernet ifname enp7s0 controller bond0 nmcli con add type ethernet ifname enp8s0 controller bond0
最初のコマンドには 2 つの
miimon
オプションが含まれます。これは、チーム設定ファイルに 2 つのlink_watch
エントリーが含まれているためです。これはボンディングの作成には影響しないことに注意してください。サービスをチームのデバイス名にバインドし、これらのサービスの更新や破損を回避する場合は、
--rename=bond0
を省略します。この場合、team2bond
は、チームと同じインターフェイス名をボンディングに使用します。-
team2bond
ユーティリティーが推奨するボンディングのオプションが正しいことを確認します。 ボンディングを作成します。推奨される
nmcli
コマンドを実行するか、--exec-cmd
オプションを指定してteam2bond
コマンドを再実行できます。# team2bond --config=/tmp/team0.json --rename=bond0 --exec-cmd Connection 'bond-bond0' (0241a531-0c72-4202-80df-73eadfc126b5) successfully added. Connection 'bond-port-enp7s0' (38489729-b624-4606-a784-1ccf01e2f6d6) successfully added. Connection 'bond-port-enp8s0' (de97ec06-7daa-4298-9a71-9d4c7909daa1) successfully added.
次の手順では、ボンディング接続プロファイル (
bond-bond0
) の名前が必要です。team-team0
で以前設定した IPv4 設定を、bond-bond0
接続に設定します。# nmcli connection modify bond-bond0 ipv4.addresses '192.0.2.1/24' # nmcli connection modify bond-bond0 ipv4.gateway '192.0.2.254' # nmcli connection modify bond-bond0 ipv4.dns '192.0.2.253' # nmcli connection modify bond-bond0 ipv4.dns-search 'example.com' # nmcli connection modify bond-bond0 ipv4.method manual
team-team0
で以前設定した IPv6 設定を、bond-bond0
接続に設定します。# nmcli connection modify bond-bond0 ipv6.addresses '2001:db8:1::1/64' # nmcli connection modify bond-bond0 ipv6.gateway '2001:db8:1::fffe' # nmcli connection modify bond-bond0 ipv6.dns '2001:db8:1::fffd' # nmcli connection modify bond-bond0 ipv6.dns-search 'example.com' # nmcli connection modify bond-bond0 ipv6.method manual
接続をアクティベートします。
# nmcli connection up bond-bond0
検証
bond-bond0
NetworkManager 接続の IP 設定を表示します。# nmcli connection show bond-bond0 | egrep "^ip" ... ipv4.method: manual ipv4.dns: 192.0.2.253 ipv4.dns-search: example.com ipv4.addresses: 192.0.2.1/24 ipv4.gateway: 192.0.2.254 ... ipv6.method: manual ipv6.dns: 2001:db8:1::fffd ipv6.dns-search: example.com ipv6.addresses: 2001:db8:1::1/64 ipv6.gateway: 2001:db8:1::fffe ...
ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v5.13.0-0.rc7.51.el9.x86_64 Bonding Mode: fault-tolerance (active-backup) Primary Slave: None Currently Active Slave: enp7s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:bf:b1:a9 Slave queue ID: 0 Slave Interface: enp8s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:04:36:0f Slave queue ID: 0
この例では、両方のポートが起動しています。
ボンディングフェイルオーバーが機能することを確認するには、以下を行います。
- ホストからネットワークケーブルを一時的に削除します。コマンドラインでリンク障害イベントを適切にテストする方法がないことに注意してください。
ボンドのステータスを表示します。
# cat /proc/net/bonding/bond0