Debian Linux でネットワーク (NIC) ボンディング/チーミングを構成する方法
NIC チーミングは、サーバー/ワークステーション コンピューティング領域における冗長性と高可用性に対する興味深いソリューションを提供します。複数のネットワーク インターフェイス カードを使用できるため、管理者は特定のサーバーへのアクセス方法を工夫したり、トラフィックが特定のサーバーに流れるためのより大きなパイプを作成したりできます。
こちらもお読みください: Ubuntu でネットワーク ボンディングまたはチーミングを構成する方法
このガイドでは、Debian システム上の 2 つのネットワーク インターフェイス カードのチーミングについて説明します。 ifenslave として知られるソフトウェアは、 ボンディングされたデバイスへのNIC の接続と切断に使用されます。その後、ボンド デバイスはカーネルとインターフェイスするネットワーク デバイスになりますが、物理的には実際のネットワーク インターフェイス デバイス (eth0、eth1 など) を使用します。
Debian Linux でのボンディング
構成の前に最初に行うことは、システムが実際に実装する必要があるボンディングのタイプを決定することです。この記事の執筆時点では、Linux カーネルでサポートされているボンディング モードは 6 つあります。これらのボンド「モード」の中には、セットアップが簡単なものもあれば、リンクが接続するスイッチに特別な構成が必要なものもあります。
結合モードを理解する
結合モード 0 – Balance-rr
この NIC チーミング方法は「ラウンドロビン」と呼ばれ、名前に「RR」が含まれています。このボンディング方法では、ネットワーク パケットは、ボンディングされたインターフェイスを構成する各ネットワーク インターフェイス カードを介してローテーションされます。
たとえば、eth0、eth1、および eth2 がすべて bond0 インターフェイスにスレーブされているシステムです。このインターフェイスを結合モード 0 で有効にすると、最初のパケットは eth0 に送信され、2 番目のパケットは eth1 に送信され、3 番目のパケットは eth2 にアクセスし、4 番目のパケットで eth0 に戻ります。ここでこのモードの「ラウンドロビン」という名前が付けられます。
結合モード 1 – アクティブバックアップ
この結合方法では、1 つのネットワーク インターフェイスだけがアクティブになり、結合内の他のインターフェイスはプライマリ ネットワーク インターフェイス カードへのリンクで障害が発生するのを待機するだけになります。
結合モード 2 – バランス XOR
バランス XOR ボンド モードでは、ボンドは送信元と宛先の MAC アドレスを評価して、どのインターフェイスにネットワーク パケットを送信するかを決定します。この方法では、特定の MAC アドレスに対して同じインターフェイスが選択されるため、負荷分散とフォールト トレランスが可能になります。
ボンドモード 3 – ブロードキャスト
この方法では、ボンディング デバイスがすべてのスレーブ インターフェイスにデータを送信するため、この特定のボンディング方法の名前が「ブロードキャスト」となります。この方法の用途はほとんどありませんが、一定レベルのフォールト トレランスを提供します。
ボンドモード 4 – 802.3ad
これはリンク アグリゲーションの特別な結合方法であり、この特定の結合インターフェイスが接続するスイッチに特別な構成が必要です。この方法はリンク アグリゲーションのIEEE 標準に従っており、耐障害性と帯域幅の増加の両方を提供します。
ボンドモード 5 – 送信ロードバランシング
TLB では、ボンドは通常どおりスレーブ インターフェイスでトラフィックを受信しますが、システムがトラフィックを送信する必要がある場合、各インターフェイスの負荷/キューに基づいて、どのインターフェイスでデータを送信するのが最適かを決定します。インターフェース。
ボンド モード 6 – 適応型ロード バランシング
ALB では、ボンドはボンド モード 5 と同様にロード バランスをとりますが、ロード受信バランスの機能も追加されています。
システムが果たす役割に応じて、適切な結合方法を選択することが不可欠です。このチュートリアルは、2 つのネットワーク インターフェイス (eth0 と eth1) を備えた Debian Jessie で実行され、ボンド モード 1< 用にセットアップされます。 またはアクティブバックアップ。
ただし、ネットワーク インターフェイス ファイルを変更するだけなので、異なるモード間の切り替えは非常に簡単です (スイッチ構成が必要なためボンド モード 4 が選択されていないと仮定します)。
NIC チーミング構成
このプロセスの最初のステップは、リポジトリから適切なソフトウェアを入手することです。 Debian 用のソフトウェアはifenslave として知られており、「apt」 でインストールできます。
# apt-get install ifenslave-2.6
ソフトウェアがインストールされたら、現在のインストール時と今後の再起動時の両方でボンディング モジュールをロードするようにカーネルに指示する必要があります。モジュールを一度ロードするには、「modprobe」ユーティリティを使用してカーネル モジュールをロードできます。
# modprobe bonding
繰り返しになりますが、システムの再起動時にこのボンディングがアクティブになるようにするには、起動時にボンディング モジュールをロードするようにカーネルに通知するように、「/etc/modules
」ファイルを変更する必要があります。
# echo 'bonding' >> /etc/modules
カーネルが NIC ボンディングに必要なモジュールを認識したので、実際のボンディングされたインターフェイスを作成します。これは、「/etc/network/interfaces
」にあるインターフェイス ファイルを通じて行われ、任意のテキスト エディタで編集できます。
# nano /etc/network/interfaces
このファイルには、システムが接続しているすべてのネットワーク デバイスのネットワーク インターフェイス設定が含まれています。この例には 2 つのネットワーク カード (eth0 と eth1) があります。 2 つの物理ネットワーク カードを 1 つの論理インターフェイスにスレーブするための適切なボンド インターフェイスをこのファイル内に作成する必要があります。これは非常に単純なインターフェイス ファイルですが、機能するボンド インターフェイスを作成するために必要なすべてを実行します。
最初のスタンザ (上の赤いボックス) は、標準のループバック インターフェイス構成です。 「auto lo
」は、起動時にアダプタを自動的に起動するようにカーネルに通知します。 「iface lo inet ループバック
」は、このインターフェイスがシステムのループバック インターフェイスであること、または一般的には 127.0.0.1 として参照されることをシステムに伝えます。
2 番目のスタンザ (上の黄色のボックス) は、使用される実際のボンド インターフェイスです。 「auto Bond0
」は、システム起動時にボンドを自動的に初期化するようにシステムに指示します。 「iface Bond0 inet dhcp
」は明白かもしれませんが、念のため、このスタンザでは、bond0 という名前のインターフェースがDHCP 経由でネットワーク情報を取得する必要があると述べています。 (動的ホスト制御プロトコル)。
「bond-mode 1
」は、この特定の結合インターフェースで使用される結合モードを決定するために使用されます。この例では、bond-mode 1 は、このボンドが、使用するボンドのプライマリ インターフェイスを示すオプション「bond-primary
」を備えたアクティブ バックアップ セットアップであることを示します。 「slaves eth0 eth1
」は、どの物理インターフェースがこの特定の結合インターフェースの一部であるかを示します。
次の数行は、リンク障害が発生した場合にボンディングをいつプライマリ インターフェイスからいずれかのスレーブ インターフェイスに切り替えるかを決定するために重要です。 Miimon はボンド リンクのステータスを監視するために使用できるオプションの 1 つで、もう 1 つのオプションはarp リクエストの使用です。
このガイドではみいもんを使用します。 「bond-miimon 100
」は、カーネルに 100 ミリ秒ごとにリンクを検査するように指示します。 「bond-downlay 400
」は、システムが現在アクティブなインターフェイスが実際にダウンしていると判断するまで 400 ミリ秒待機することを意味します。
「bond-uplay 800
」は、リンクが確立されてから 800 ミリ秒が経過するまで、新しいアクティブ インターフェイスの使用を待機するようにシステムに指示するために使用されます。 アップディレイとダウンディレイに関する注意事項。これらの値は両方とも miimon 値の倍数である必要があり、それ以外の場合はシステムによって切り捨てられます。