ブラック ホール ルーターの診断と問題解決

文書翻訳 文書翻訳
文書番号: 159211 - 対象製品
この記事は、以前は次の ID で公開されていました: JP159211
Microsoft Windows XP については、次の資料を参照してください。314825
すべて展開する | すべて折りたたむ

概要

WAN (Wide Area Network) の TCP/IP では、中間のネットワーク セグメントのパケット サイズが通信ホストより小さく、ルーターがこの状況に対して適切な ICMP 応答を送信しない場合、複数のルートを介した通信が失敗することがあります。また、パス上のファイアウォールによって ICMP 応答が破棄されることもあります。この状況を引き起こすルーターは "ブラック ホール" ルーターとして知られています。Microsoft Windows の TCP/IP プロトコルと共にインストールされる標準ユーティリティである Ping をブラック ホール ルーターを検出するために使用することができます。この資料では、ブラック ホール ルーターの問題を回避または解決するためのいくつかの方法について説明します。

詳細

ネットワーク ルーターが次のネットワーク セグメントの最大転送ユニット (MTU) を超えるパケットを受信し、そのパケットの IP 層に断片化を禁じる "Don't Fragment" ビットのフラグが設定されている場合、そのルーターは "ICMP Destination Unreachable" のメッセージを送信ホストに返す必要があります。このメッセージが返されない場合、パケットが廃棄される可能性があり、その結果さまざまなエラーが発生します。発生するエラーは、そのリンクで通信しているアプリケーションによって異なります。これらのエラーは、アプリケーションがローカル サブネット上のコンピュータに接続している場合には発生しません。エラーは断続的に発生しているように見えますが、詳しく調べると、クライアントにリモート ホストから大容量のファイルを読み込ませることなどにより再現可能です。

Ping ユーティリティで -f (断片化の禁止) および -l (バッファ サイズ) パラメータを使用して、ブラック ホール ルーターを検出することができます。-f パラメータを設定すると、Ping ユーティリティは IP の "Do not Fragment" ビットを設定した ICMP エコー パケットを送信します。-l パラメータは ICMP エコー パケットのバッファ、つまりペイロードのサイズを設定します。断片化せずに送信できるバッファの最大値は、ルートにおける最小 MTU から IP および ICMP ヘッダを引いた値 (MTU-28) です。たとえば、イーサネットの MTU は 1,500 バイトのため、最良の環境の場合、Ping は 1,472 バイトの ICMP バッファが設定された非断片化パケットをエコーできます。この場合 Ping の構文は以下のとおりです。

Ping <コンピュータ名または IP アドレス> -f -l 1472

この構文は、どのローカル IP アドレスでも機能します。接続されているすべてのセグメントの MTU が 1,500 バイトを超えている場合にも同様のパケットが返されます。中間のセグメントの MTU が 1,500 バイト未満で、ルーターが適切な ICMP Dstination Unreachable パケットを返す場合、Ping ユーティリティに "Packet needs to be fragmented but DF set." と表示されます。MTU の値が小さなセグメントがルートに存在する場合、適切な ICMP パケットが返されず、Ping に "Request timed out." と表示されます。一般的なネットワーク媒体におけるデフォルトの MTU については、「サポート技術情報」 (Microsoft Knowledge Base) の資料 140375 を参照してください。

-l パラメータの値を変更しながら、連続して Ping を実行することにより、特定のルートで断片化せずに伝送可能な最大のパケットを検出することができます。通常使用される最小の MTU は 576 バイトです。したがって、安全のため ICMP バッファを 548 バイトから開始し、その値を上げていくことをお勧めします。たとえば、Ping <ホスト名またはアドレス> -f -l 972 でパケットが返り、Ping <ホスト名またはアドレス> -f -l 973 が失敗した場合、そのルートで使用可能な最大の MTU は 1,000 (972+28) バイトです。

ブラック ホール ルーターの問題を解決または回避するには、次の 4 つの方法があります。
  1. 136970 Windows NT 3.51 の PMTU ブラック ホール検出アルゴリズムの変更
  2. 中間のルーターが ICMP タイプ 3 コード 4 (送信先に到達不可能、断片化が必要だが DF ビットが設定されている) のメッセージを送信するように設定します。この操作には、ルーターのソフトウェアまたはファームウェアのアップグレード、ルーターの設定、またはルーターの交換が必要になる場合があります。
  3. 障害のあるルートを介して通信する Windows ホストの PMTU 検出を無効にします。これで、デフォルトの MTU が 576 バイトに設定されます。これが原因で、ネットワークのパフォーマンスが大幅に劣化する可能性があります。
  4. ホスト インターフェイスの MTU を、ブラック ホール ルーターが処理できる最大の値に設定します。これにより、できる限り大きなサイズのパケットがその接続を介して送信されることが保証されますが、ローカルのトラフィックおよび問題のない接続ルートを介するトラフィックでは、可能なサイズより小さなパケットが使用されます。この回避策では、問題のホストで使用される可能性のあるすべてのリンクについて、それらの MTU および状態が調査済みであることが前提となります。
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
120642 Windows NT および Windows 2000 での TCP/IP および NBT の設定
128797 DEC 250 または DEC 500 ルーターを介してファイルを転送できない
136970 Windows NT 3.51 の PMTU ブラック ホール検出アルゴリズムの変更
138575 イーサネット セグメントを介した FDDI リング間の通信が失敗する
140375 各種ネットワーク トポロジのデフォルトの MTU サイズ
詳細については、Internet RFC 1191 および RFC 1435 を参照してください。これを行うには、次の Web サイトにアクセスします。
http://www.rfc.net
Windows NT Server リソース キットの第 6 章『TCP/IP Implementation Details』を参照してください。これを行うには、次のマイクロソフト Web サイトにアクセスします。
http://www.microsoft.com/resources/documentation/windowsnt/4/server/reskit/en-us/net/sur_tcp2.mspx

プロパティ

文書番号: 159211 - 最終更新日: 2007年12月3日 - リビジョン: 5.2
この資料は以下の製品について記述したものです。
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Server 3.5
キーワード:?
kbnetwork KB159211
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com