ネットワークインターフェイスボンディングは、slaves
と呼ばれる2つ以上の物理ネットワークインターフェイスの集約で構成されます。 、master
と呼ばれる1つの論理インターフェースの下 またはbond
インターフェース。ボンディングモードによっては、このような設定はフォールトトレランスや負荷分散を実現するのに役立ちます。このチュートリアルでは、使用可能なボンディングモードとは何か、およびRHEL 8 /CentOS8でネットワークボンディングを作成する方法を学習します。
このチュートリアルでは、次のことを学びます。
- ネットワークインターフェースボンディングとは
- RHEL 8 /CentOS8でネットワークインターフェイスボンディングを構成する方法
- さまざまな結合モードは何ですか

Linuxカーネルから見たボンドステータス
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
NetworkManagerデーモンを制御するためのnmtuiユーティリティ。アプリケーションは最小限のシステムインストールに含まれています。 | |
システム設定を変更するためのroot権限 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
どのボンディングモードですか?
使用できるボンディングモードは基本的に7つあります:
ラウンドロビン
パケットは、すべてのスレーブインターフェイスに(最初から最後まで)順番に均等に配布されます。このモードは、ロードバランシングとフォールトトレランスの両方を提供しますが、スイッチのサポートが必要です。
アクティブバックアップ
プライマリスレーブインターフェイスのみが使用されます。失敗した場合は、代わりに別のスレーブが使用されます。フォールトトレランスのみを提供します。特別な要件はありません。
XOR(排他的論理和)
パケットは、送信元および宛先MACアドレスのハッシュに応じて、スレーブインターフェイスの1つに送信および割り当てられます。これは、次の式で計算されます。
[(source MAC address XOR’d with destination MAC address) modulo slave count]
このモードは、フォールトトレランスと負荷分散の両方を提供します。
放送
このモードを使用すると、すべてのパケットがすべてのスレーブインターフェイスで送信され、フォールトトレランスが提供されますが、ロードバランシングは提供されません。
802.3ad
このモードでは、スイッチでサポートする必要があるIEEE802.3adリンクアグリゲーションを利用します。同じ速度とデュプレックス設定を共有するアグリゲーショングループを作成します。アクティブグループ内のすべてのスレーブで送受信します。負荷分散とフォールトトレランスの両方を提供します。
適応型送信負荷分散
発信パケットは負荷に応じてスレーブインターフェイスを介して送信され、着信トラフィックは現在のスレーブによって受信されます。後者が失敗した場合、別のスレーブがそのMACアドレスを引き継ぎます。このモードは、フォールトトレランスと負荷分散を提供します。
適応型負荷分散
Adaptive Transmit Load Balancing
のように機能します 、ただしinbound
も提供します ARP
によるバランシング (アドレス解決プロトコル)ネゴシエーション。
環境
このチュートリアルのために、仮想化されたRed Hat EnterpriseLinux8システムで作業します。ネットワークボンディングを作成するには、nmtui
を使用します 、NetworkManager
を制御するために使用されるテキストユーザーインターフェイスユーティリティ デーモン。ただし、nmcli
でも同じ操作を実行できます。 コマンドラインユーティリティまたはNetwork Manager Connection Editor
を使用したGUI経由 。
現在、システムには2つのethernet
があります リンク、enp1s0
およびenp7s0
:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff 3: enp7s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:32:37:9b brd ff:ff:ff:ff:ff:ff
ネットワークボンディングの作成
まず、スレーブインターフェイスの現在の既存の構成を削除します。このような構成をその場で編集できるため、これは厳密には必要ありませんが、最初からこのように進めます。 nmtui
を呼び出しましょう :
$ sudo nmtui
メインメニューから[接続の編集]を選択して確認します。

Nmtuiのメインメニュー。
最初にリストで削除する接続を選択してから、<Delete>
に移動します 。最後に確認します:

Nmtui接続リスト。
最後に、接続を削除することを確認します:

既存の接続を削除するためのNmtui確認プロンプト。
他のインターフェースに対しても操作を繰り返します。既存の構成をすべて削除したら、bond
を作成できます インターフェース。 <Add>
を選択します メニューで、接続タイプのリストから、Bond
を選択します。 :

Nmtui接続タイプ選択メニュー。
新しいウィンドウが開き、インターフェイスを構成できます。この場合、完全にオプションであっても、bond0
を使用します プロファイルとデバイス名の両方として。ただし、最も重要な部分は、ボンドに追加するスレーブインターフェイスの選択です。 BOND Slaves
で メニューで、<Add>
をクリックします 、追加するスレーブ接続のタイプを選択します。この場合はethernet
。

スレーブ接続タイプを選択するためのNmtuiメニュー。
デバイス名を入力し、<OK>
を選択します 確認します。この操作は、スレーブインターフェイスごとに繰り返す必要があります。

スレーブ接続を編集するためのNmtuiインターフェース。
次のステップは、bonding mode
を選択することです :このチュートリアルでは、Active Backup
を使用します 1。メニューで関連するオプションを選択し、[プライマリ]フィールドでプライマリスレーブインターフェイスの名前を指定します。最後に、<OK>
を選択します 結合インターフェースの作成を確認します。

ネットワークボンディングの設定。
これで、nmtui
を終了できます。 応用。ボンディングの作成が成功したことを確認するために、次のコマンドを起動できます。
$ ip addr show bond0
結果は次のとおりです。
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 52:54:00:cb:25:82 brd ff:ff:ff:ff:ff:ff inet 192.168.122.164/24 brd 192.168.122.255 scope global dynamic noprefixroute bond0 valid_lft 3304sec preferred_lft 3304sec inet6 fe80::48:d311:96c1:89dc/64 scope link noprefixroute valid_lft forever preferred_lft forever
ifcfg
構成に関連する構成ファイルは、/etc/sysconfig/network-scripts
内に生成されています。 ディレクトリ:
$ ls /etc/sysconfig/network-scripts ifcfg-bond0 ifcfg-enp1s0 ifcfg-enp7s0
bond0
の現在の状態を表示するには カーネルから見たインターフェースでは、次のように実行できます:
$ cat /proc/net/bonding/bond0
コマンドの出力は以下に報告されています:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: enp1s0 (primary_reselect always) Currently Active Slave: enp1s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: enp1s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:cb:25:82 Slave queue ID: 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:32:37:9b Slave queue ID: 0
両方のスレーブインターフェースがどのように稼働しているかを確認できますが、enp1s0
のみです。 プライマリスレーブとして使用されるため、アクティブです。
アクティブバックアップのテスト
構成が機能することをどのように確認できますか?プライマリスレーブインターフェイスを停止して、マシンがまだpingに応答するかどうかを確認できます。実行するインターフェースを置くには:
$ sudo ip link set enp1s0 down
マシンはまだ応答しますか?確認しましょう:
$ ping -c3 192.168.122.164 PING 192.168.122.164 (192.168.122.164) 56(84) bytes of data. 64 bytes from 192.168.122.164: icmp_seq=1 ttl=64 time=0.385 ms 64 bytes from 192.168.122.164: icmp_seq=2 ttl=64 time=0.353 ms 64 bytes from 192.168.122.164: icmp_seq=3 ttl=64 time=0.406 ms --- 192.168.122.164 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 88ms rtt min/avg/max/mdev = 0.353/0.381/0.406/0.027 ms
します!債券のステータスがどのように変化したか見てみましょう:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: fault-tolerance (active-backup) Primary Slave: enp1s0 (primary_reselect always) Currently Active Slave: enp7s0 MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Slave Interface: enp1s0 MII Status: down Speed: Unknown Duplex: Unknown Link Failure Count: 1 Permanent HW addr: 52:54:00:cb:25:82 Slave queue ID: 0 Slave Interface: enp7s0 MII Status: up Speed: Unknown Duplex: Unknown Link Failure Count: 0 Permanent HW addr: 52:54:00:32:37:9b Slave queue ID: 0
ご覧のとおり、プライマリスレーブインターフェイスを下に置いているため(enp1s0
)、もう1つのスレーブ、enp7s0
バックアップとして使用され、現在アクティブなものです。さらに、Link Failure Count
プライマリスレーブの場合は増加し、現在は1
。
結論
このチュートリアルでは、ネットワークボンディングとは何か、およびネットワークボンディングを構成するための可能な方法について学習しました。また、Active Backup
を使用して、2つのイーサネットインターフェイス間にネットワークボンディングを作成しました。 モード。 Red Hat Enterprise Linux 7では、network teaming
という新しい概念が導入されました。 。いくつかの側面では、チーミングはボンディングに似ていますが、実装方法が異なり、より多くの機能があります。これについては、今後の記事で取り上げます。