Hierarchical Navigation |
概要このドキュメントでは、Microsoft Network Load Balancing(NLB)と相互対話するために Cisco Catalyst スイッチを設定する方法について説明しています。 前提条件要件このドキュメントに関する特別な要件はありません。 使用するコンポーネントこのドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。 表記法ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。 背景説明Network Load Balancing(NLB)テクノロジーを使用することにより、クライアントからの要求を一連のサーバ全体に分散できます。クライアントに対して許容できるパフォーマンス レベルを常に提供する目的で、ユーザが IIS ベースの Web サーバなどのステートレス アプリケーションの規模の拡大に対応して、クライアント負荷が増加する場合には追加のサーバを追加できるようにするために、Windows NLB がよく使用されます。また、誤作動が発生したサーバによるダウンタイムも減少します。Windows NLB 内の特定のメンバ サーバがダウンしていることやダウンしていたことをエンド ユーザが認識することはありません。 Network Load Balancing は、すべての Windows 2000 Server および Windows Server 2003 ファミリのオペレーティング システムの一部として、Microsoft から提供されるクラスタ処理テクノロジーです。NLB では、多数のサーバ全体でネットワーク トラフィックのロード バランシングを行うために、分散アルゴリズムが使用されます。 NLB では、複数のサーバを 1 つのマルチキャスト グループに集約して、標準のマルチキャスト IP や MAC アドレスを使用を試みます。同時に、すべてのクライアントに宛先 IP として単一のバーチャル IP が提供されますが、これはサーバが同じマルチキャスト グループに属していても、クライアントではこのことがまったく認識されないことを意味します。VIP へは通常のユニキャスト アクセスが使用されます。 次のどちらかのモードで動作するように NLB を設定できます。 ユニキャスト モードNLB のデフォルトの設定はユニキャスト モードです。ユニキャスト モードでは、クラスタ内の各サーバの実際の MAC アドレスが NLB によって共通の NLB MAC アドレスへ置換されます。クラスタ内のすべてのサーバには同じ MAC アドレスが設定され、そのアドレスに転送されたすべてのパケットはクラスタのすべてのメンバへ送信されます。ただし、この設定の問題は、NLB クラスタのサーバが同じスイッチに接続されている場合、スイッチ上の 2 つのポートに同じ MAC アドレスを登録できないことです。NLB では、クラスタ MAC アドレスにマスキングをすることでこの問題を解決しています。スイッチでは、どの MAC アドレスがそのポートに関連付けられているのかを認識するために、イーサネット フレーム ヘッダー内の発信元 MAC アドレスが参照されます。NLB によって偽の MAC アドレスが作成され、この偽の MAC アドレスが NLB クラスタ内の各サーバに割り当てられます。各 NLB サーバには、メンバのホスト ID に基づいたそれぞれ異なる偽の MAC アドレスが NLB によって割り当てられます。このアドレスはイーサネット フレーム ヘッダー内に表示されます。 たとえば、NLB クラスタ MAC アドレスは 00-bf-ac-10-00-01 です。ユニキャスト モードの NLB ではクラスタ MAC アドレスが使用され、各クラスタ メンバ用には、NLB メンバのホスト ID から構成されるように NLB によって 2 番目のオクテットが変更されます。たとえば、偽の MAC アドレス 00-01-ac-10-00-01 としてサーバ番号 1、ホスト ID 番号 2 には偽の MAC アドレス 00-02-ac-10-00-01 が設定されます(その後も同様)。一意の MAC アドレスが各スイッチ ポートに登録されている場合、パケットはアレイのすべてのメンバに配信されるのではなく、そのポートへ割り当てられた MAC アドレスに基づいて個々のスイッチ ポートへ継続して送信される必要があります。NLB クラスタ メンバへ接続された各スイッチ ポートによってそれぞれの異なる MAC アドレスが登録される場合、フレームが NLB クラスタのすべてのメンバへ配信されるように、ARP ブロードキャストが使用されます。ルータによってバーチャル IP アドレスの MAC アドレスの ARP 要求が送信される場合、上記の例に従って、応答には偽の MAC アドレスではなく、実際の NLB クラスタ MAC アドレス 00-bf-ac-10-00-01 が含まれた ARP ヘッダーが含まれます。 クライアントでは、イーサネット ヘッダーではなく、ARP ヘッダー内の MAC アドレスが使用されます。スイッチでは、ARP ヘッダーではなく、イーサネット ヘッダー内の MAC アドレスが使用されます。問題は、クライアントによってクラスタ MAC アドレス 00-bf-ac-10-00-01 である宛先 MAC アドレスが含まれた NLB クラスタへパケットが送信される場合に、スイッチによって MAC アドレス 00-bf-ac-10-00-01 の CAM テーブルが参照されることです。NLB クラスタ MAC アドレス 00-bf-ac-10-00-01 で登録されているポートが存在しないため、フレームはすべてのスイッチ ポートに配布されます。これによりスイッチのフラッディングが発生します。スイッチのフラッディングは、大量のトラフィックが流れている場合で他のサーバが同じスイッチ上に設定されている場合に問題の原因となります。スイッチのフラッディングに対するソリューションとしては、簡単なハブを NLB クラスタ メンバの直前に配置し、ハブをスイッチ ポートへアップリンクすることが挙げられます。このソリューションでは、ハブに接続されている単一のスイッチ ポートによって NLB クラスタの MAC アドレスが認識されるため、NLB クラスタ MAC アドレスをマスクする必要もありません。これによって、同じ MAC アドレスを登録する 2 つのポートの問題が回避されます。クライアントによって NLB クラスタの MAC アドレスにパケットが送信される場合、パケットはハブに接続されているスイッチ ポートに直接送信されてから、NLB クラスタのメンバへ送信されます。 マルチキャスト モードもう 1 つのソリューションは、MS NLB 設定 GUI でユニキャスト モードの代わりにマルチキャスト モードを使用することです。マルチキャスト モードでは、システム管理者が MS NLB 設定 GUI 内の IGMP Multicast ボタンをクリックします。このボタンを選択すると、マルチキャスト MAC アドレスを使用している仮想アドレス(0300.5e11.1111 など)の ARP に応答して、IGMP メンバシップ レポート パケットを送信するようにクラスタ メンバが指示されます。IGMP スヌーピングがローカル スイッチ上でイネーブルになっている場合、これを通過する IGMP パケットはスヌーピングされます。この方法では、クライアントがクラスタのバーチャル IP アドレスを ARP 解決しようとした際に、クラスタからはマルチキャスト MAC(0300.5e11.1111 など)で応答されます。クライアントによってパケットが 0300.5e11.1111 に送信されると、ローカル スイッチにより、クラスタ メンバに接続されている各ポートにパケットが転送されます。この場合、すべてのポートから ARP パケットのフラッディングが発生する可能性はありません。マルチキャスト モードの問題としては、Cisco デバイスではマルチキャスト MAC アドレスが含まれるユニキャスト IP アドレスの ARP 応答が受け付けられないため、ローカル サブネットの外部からのアクセス時に仮想 IP アドレスが到達不可能になることが挙げられます。したがって、ARP エントリの MAC 部分は、incomplete と表示されます(出力を表示するには、show arp を発行します)。ARP 応答内には MAC 部分が存在しないため、ARP エントリが ARP テーブル内に表示されることはありません。最終的には、ARP 処理が中止され、ICMP Host unreachable がクライアントに返されています。これを上書きするには、スタティック ARP エントリを使用して、下に示すように ARP テーブルにデータを入力します。理論上は、これで Cisco デバイスによる mac-address-table へのデータ入力が可能になります。たとえば、仮想 IP アドレスが 172.16.63.241 で、マルチキャスト MAC アドレスが 0300.5e11.1111 の場合、ARP テーブルに静的にデータ入力するには次のコマンドを使用します。 arp 172.16.63.241 0300.5e11.1111 ただし、着信パケットにはユニキャスト宛先 IP アドレスおよびマルチキャスト宛先 MAC が与えられているため、Cisco デバイスではこのエントリが無視され、クラスタにバインドされた各パケットがプロセス交換されます。このプロセス交換を回避するには、ハードウェア内でクラスタにバインドされたパケットを交換するために、下に示すように静的な mac-address-table エントリを挿入します。 mac-address-table static 0300.5e11.1111 vlan 200 interface fa2/3 fa2/4 注:Cisco Catalyst 6000/6500 シリーズ スイッチの場合、disable-snopping パラメータを追加する必要があります。次に例を示します。 mac-address-table static 0300.5e11.1111 vlan 200 interface fa2/3 fa2/4 disable-snooping disable-snooping パラメータは必須であり、Cisco Catalyst 6000/6500 シリーズ スイッチにだけ適用可能です。この設定がない場合でも、動作に対する影響はありません。 設定このセクションでは、このドキュメントで説明する機能を設定するための情報を提供しています。 注:このセクションで使用されているコマンドの詳細を調べるには、Command Lookup Tool(登録ユーザ専用)を使用してください。 ネットワーク ダイアグラムこのドキュメントでは、次のネットワーク構成を使用しています。 設定例このドキュメントでは、このセクションで示す Catalyst 6509 設定を使用しています。
注:NLB クラスタでマルチキャスト モードを使用していることを確認してください。Cisco では、IGMP 設定との競合が確認されているため、01 で開始されるマルチキャスト MAC アドレスを使用しないことを推奨いたします。 確認ここでは、設定が正常に動作していることを確認します。 特定の show コマンドは、アウトプットインタープリタ(登録ユーザ専用)(OIT)でサポートされています。OIT を使用すると、show コマンドの出力を分析できます。
トラブルシューティング現在のところ、この設定に関する特定のトラブルシューティング情報はありません。 Cisco サポート コミュニティ - 特集対話関連情報
Document ID: 107995
|