Microsoft NLB について
Microsoft ネットワーク ロード バランシング(NLB)機能は、クライアント トラフィックを多数のサーバに分散し、各サーバがアプリケーションの個別のコピーを実行します。ネットワーク ロード バランシングは、レイヤ 2 の不明なユニキャストまたはマルチキャストを使用して、着信ネットワーク トラフィックをすべてのクラスタ ホストに同時に分散します。
Microsoft NLB ノードのグループは、NLB クラスタと総称されます。NLB クラスタは、1 つ以上の仮想 IP(VIP)アドレスのサービスを提供します。NLB クラスタ内のノードは、ロード バランシング アルゴリズムを使用して、NLB VIP 宛ての特定のトラフィック フローを処理する個々のノードを決定します。クラスタ内のすべてのノードはトラフィックのすべてのパケットを受信しますが、1 つのノードだけが要求を処理します。
次の図に、Microsoft NLB の実装方法を図で示します。Cisco APIC
この図では、サーバ 1 とサーバ 2 が MS NLB クラスタにあります。これらのサーバは、外部クライアントには単一ホストサーバとして表示されます。MS NLB クラスタ内のすべてのサーバがすべての着信要求を受信すると、MS NLB はサーバ間で負荷を分散します。
3 種類の異なる動作モードでの Microsoft NLB の機能:
-
ユニキャスト モード:このモードでは、各 NLB クラスタ VIP にユニキャスト MAC アドレスが割り当てられます。このモードは、トラフィックをクラスタに配信するために不明なユニキャスト フラッディングに依存します。
-
マルチキャスト モード:このモードでは、各 NLB クラスタ VIP が非 Internet Assigned Numbers Authority(IANA)マルチキャスト MAC アドレス(03xx.xxxx.xxxx)に割り当てられます。
-
IGMPモード:このモードでは、NLB クラスタ VIP が一意の IPv4 マルチキャスト グループ アドレスに割り当てられます。このためのマルチキャスト MAC アドレスは、IPv4 マルチキャスト アドレスの標準 MAC 導出から導出されます。
ユニキャスト モードについて
ユニキャスト動作モードでは、ネットワーク負荷分散は、それが有効になっているネットワーク アダプタ(クラスタ アダプタと呼ばれる)の MAC アドレスを再割り当てし、すべてのクラスタ ホストに同じ MAC アドレスが割り当てられます。この MAC アドレスは、クラスタのプライマリ IP アドレスから取得されます。たとえば、プライマリ IP アドレスが 1.2.3.4 の場合、ユニキャスト MAC アドレスは 02-BF-1-2-3-4 に設定されます。
ネットワーク ロード バランシングのユニキャスト モードでは、次の図に示すように、着信ネットワーク トラフィックをすべてのクラスタ ホストに同時に配信します。
レイヤ 2 スイッチでは、すべてのスイッチ ポートで一意の送信元 MAC アドレスが認識されるため、共通の MAC アドレスを使用すると、通常は競合が発生します。この問題を回避するために、ネットワーク ロード バランシングは発信パケットの送信元 MAC アドレスを一意に変更します。クラスタの MAC アドレスが 02-BF-1-2-3-4 の場合、各ホストの送信元 MAC アドレスは 02- x -1-2-3-4 に設定されます。x はクラスタ内のホストの優先順位です。次の図に示します。
マルチキャスト モードについて
ネットワーク ロード バランシングは、着信ネットワーク トラフィックをすべてのクラスタ ホストに分散するためのマルチキャスト モードも提供します。マルチキャスト モードは、アダプタの MAC アドレスを変更する代わりに、レイヤ 2 マルチキャスト アドレスをクラスタ アダプタに割り当てます。たとえば、マルチキャスト MAC アドレスは、クラスタのプライマリ IP アドレス 10.20.30.40 に対して 03-BF-0A-14-1E-28 に設定できます。クラスタ通信には別のアダプタは必要ありません。
IGMP モードについて
Microsoft NLB サーバは、IGMP を使用してマルチキャスト グループに参加するように設定することもできます。これをスイッチのクエリアおよび IGMP スヌーピングと組み合わせることで、マルチキャスト メッセージのフラッディングの範囲を最適化できます。
Microsoft NLB サーバは、マルチキャスト グループ アドレスに IGMP Join を送信します。マルチキャスト アドレスの最後の 2 つのオクテットは、クラスタ IP の最後の 2 つのオクテットに対応します。たとえば、Microsoft NLB サーバが 239.255.xx のマルチキャスト アドレスに IGMP Join を送信する状況では、次のようになります。
-
クラスタ IP:10.20.30.40
-
IGMP が 239.255. に送信されました。30.40
-
クライアントからサーバ方向で使用される MAC:0100.5E7F.1E28
-
クラスタ通信には別のアダプタは必要ありません