複数の既定のゲートウェイが接続の問題を引き起こす可能性がある

この記事では、TCP/IP 構成オプションで複数の既定のゲートウェイが使用されている場合に発生する接続の問題について説明します。

適用対象: Windows 2000
元の KB 番号: 159168

概要

Windows NT コンピューターの TCP/IP 構成オプションで複数の既定のゲートウェイが使用されている場合、リモート ネットワーク上のコンピューターへの接続が失われる可能性があります。 不整合なネットワークに接続されているマルチホーム コンピューターでは、リモート ネットワークへの接続を取得するために、ルーティング テーブルに静的ルートを追加できます。

詳細

Windows NTコンピューターは、複数の既定のゲートウェイで構成できます。 TCP によってデッド ゲートウェイが検出されると、既定のゲートウェイをバックアップ リスト内の次のゲートウェイに切り替える IP を指示できます。 このスイッチは、同じネットワーク アダプター用に複数のゲートウェイが構成されている場合、またはマルチホーム コンピューター上のさまざまなネットワーク カードに異なる既定のゲートウェイ アドレスが指定されている場合に発生する可能性があります。 TCP が TcpMaxDataRetransmissions 時間の 2 分の 1 を試行して、現在の既定のゲートウェイ経由でパケットを送信すると、スイッチがトリガーされます。

スイッチの後、リモート ネットワーク宛てのこのコンピューター上の任意のネットワーク アダプターから発信されるすべての IP トラフィックが、現在選択されているゲートウェイに送信されます。 不整合なネットワークでは、接続が失われ、その後、最初のゲートウェイを介して接続されたリモート ネットワーク上のコンピューターとのアクティブ セッションが終了する可能性があります。 これは、現在選択されているゲートウェイが、ルーティング情報を相互に交換しない場合、最初のゲートウェイによって管理される他のルートを認識できない可能性があるためです。

スイッチド ゲートウェイがネットワーク上で到達不能または非アクティブである場合、すべてのリモート サイトへの接続が失われます。 この時点で、リモート ネットワークからこのコンピューターに対する ping を実行すると、肯定的な応答を取得できません。 同様に、このコンピューターからリモート ホストへの送信 ping を実行すると、要求のタイムアウト エラーが発生します。 この動作は設計上のものであり、TCP/IP 仕様に準拠しています。

次の図では、複数のゲートウェイが使用される状況について説明します。

Netcard1 と Netcard2 の 2 つのネットワーク カードと、次の IP アドレスと既定のゲートウェイを持つコンピューターについて考えてみましょう。

Netcard1:
IP アドレス: 11.100.1.1
マスク: 255.255.0.0
既定のゲートウェイ: 11.100.0.1 11.100.0.2

Netcard2:
IP アドレス: 11.200.1.1
マスク: 255.255.0.0
既定のゲートウェイ: 11.200.0.1

IP アドレスが 130.20.20.100 のワークステーションに Telnet 接続する場合、IP データグラムは 11.100.0.1 ゲートウェイを介してルーティングされます。 11.100.0.1 が使用不可として検出された場合、IP は 2 番目のゲートウェイ 11.100.0.2 に切り替わる。 このゲートウェイが失敗した場合は、11.200.0.1 などを使用します。 これは TCP トラフィックにのみ適用され、ゲートウェイの切り替えは前に説明したメカニズムに基づいて行われます。 Telnet、FTP、および NetBIOS セッション サービスのネットワーク トラフィックは、ネットワーク通信に TCP を使用します。

また、Netcard1 と Netcard2 に接続されている 2 つのネットワークが不整合な場所 (つまり、他のルーターを介して相互に接続されていない) も考慮してください。 Netcard2 経由でのみアクセスできるネットワーク (例: 22.101.x.x) がある場合、プライマリ 既定ゲートウェイであるため、このネットワークの IP データグラムは引き続き 11.100.0.1 経由でルーティングされます。 ネットワーク 22.101.x.x から 11.200.0.1 宛ての IP データグラムをルーティングするには、ROUTE ユーティリティを使用してルーティング テーブルに静的ルートを追加する必要があります。 ルートを追加するには、次のコマンドを入力します。

route add 22.101.0.0 MASK 255.255.0.0 11.200.0.1  

上記のシナリオで考えられるもう 1 つの解決策は、マルチホーム Windows NT コンピューターでマルチプロトコル ルーティングを実行して、ルーティング情報プロトコルを実行しているネットワーク上の他のルーターとルーティング情報を交換できるようにすることです。 マルチプロトコル ルーティングは、Windows NT 3.51 Service Pack 2 以降で使用できます。