Windows Server 2008 におけるNLB(Network Load Balancing :ネットワーク負荷分散)機能を利用しているときに、一部のクライアントがNLB ホストによってサービスを提供されていないことがわかったら、以下の手順で問題を分離できます。

  1. 最初にチェックすべきことは、クラスタのすべてのホストで実行されているアプリケーションが予想どおり動作しているかどうかである。ホスト上で実行されているアプリケーションが機能しなくなると、NLB はそのトラフィックをクラスタの別のホストへ自動的には移動しない。問題の範囲を限定するトリックは、1ノードのNLB クラスタで問題が見られることを確認することである(他のホストはすべて停止して、1 つのホストをテストする)。ホストを隔離できたら、NLB バインドなしで問題が再現されるか試す。

  2. クラスタの全ホストにアクセスできるクライアント/ホストからNLB マネージャを開始する。NLB マネージャが何らかのエラーを表示したら、その修正を試みる。NLB マネージャが表示するエラーは、ほとんどの場合、接続するホストに既知の最新の構成を再度適用すると修正できる。これを行うには、NLB マネージャでクラスタ名を右クリックし、クラスタのプロパティを選択して、[OK]をクリックする。

  3. 次に、ポート規則を再確認して、必要なすべてのポート規則が正しいことを確認する。これを行うには、クラスタを右クリックし、クラスタプロパティを選択して、[ポート規制]タブを調べる。何度も規則を間違って定義している場合は、さまざまなポート規則の動作に関する説明をよく読み、単一の類似性、類似性なし、無効な規則、重みの異なる規則、既定のホスト規則などの違いを理解する。

  4. トラブルシューティングの次のステップでは、NLB マネージャによって表示された情報が、nlb paramsnlb display コマンドのようなコマンドラインユーティリティの出力と一致するかどうかをチェックする。

  5. トリアージの次のステップでは、クラスタの各ホストで着信トラフィックがすべて確認できるかを確認する。これを行うには、いくつかのクライアントからクラスタにICMP のping コマンドを送信する。ping が機能する場合は、各ホストの他のサービス(RPC、WMI など)に接続できるか確認する。これを行うには、各ホストでネットワークモニタを開始する。各ホストで受信したトラフィックが確認できるはずである。ネットワークキャプチャでは、NLB のheartbeat(イーサネットフレームでソースアドレスの後にある0x886f バイトのイーサネットブロードキャストパケット)も見られる。トラフィックが1 台のホストだけで処理される場合は、スイッチがクラスタのMAC アドレスを記憶していないことを確認する。