同じネットワーク上の複数のアダプターの動作について

適用先
Windows Server 2008 Enterprise Windows Server 2008 Datacenter Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2012 Standard Windows Server 2012 Standard Windows Server 2012 Datacenter Windows Server 2012 Datacenter

概要

同じ物理ネットワークとプロトコル サブネット上に複数のネットワーク アダプターがある Windows ベースのコンピューターを構成すると、予期しない結果が発生することがあります。 この記事では、この種の非標準構成で予想される動作について説明します。 

追加情報

たとえば次のようなシナリオを考えてみます。

  • Windows がインストールされている動作中のコンピューターがある。
  • 2 つのネットワーク アダプターが同じ物理ネットワークまたはハブに接続されています。
  • TCP/IP は、ネットワーク プロトコルとしてインストールされます。
  • 同じサブネット上のアダプター アドレスは 192.168.0.1 および 192.168.0.2 です。
  • ネットワーク上のクライアントはアドレス 192.168.0.119 を使用しています。

このシナリオでは、同じ物理ネットワークとプロトコル サブネット上の 2 つのアダプターが負荷分散を実行することが期待される場合があります。 ただし、定義上、イーサネット ネットワーク トポロジでは、一度に 1 つのアダプターのみがネットワーク上で通信できます。 したがって、2 つのアダプターが同時に送信することはできず、ネットワーク上の別のデバイスが送信している場合は待機する必要があります。 さらに、ブロードキャスト メッセージは、どちらも同じネットワーク上でリッスンしているので、各アダプターで処理する必要があります。 この構成には、プロトコル関連の問題を除いて、かなりのオーバーヘッドが必要です。 この構成では、同じネットワークに冗長ネットワーク アダプターを提供するのに適した方法ではありません。 

注: Windows Server 2012 には、SMB マルチチャネルという新機能が追加されています。 SMB マルチチャネルは SMB 3.0 プロトコルの一部であり、サーバーが同時に複数のネットワーク接続を使用できます。 SMB マルチチャネルの詳細については、「Windows Server 2012 および SMB 3.0 の機能である SMB マルチチャネルの基本」を参照してください。

注: Windows Server 2012 サーバーでは、CSMA/CD を使用してネットワークが構成されている場合、複数のネットワーク接続を同時に使用することはできません。

サーバーが TCP/IP プロトコルを使用して、アドレスが 192.168.0.119 のクライアントにパケットを送信する必要があるとします。 このアドレスはローカル サブネット上にあります。 したがって、クライアントに到達するためにゲートウェイを使用する必要はありません。 プロトコル スタックは、ローカル ルーティング テーブルで見つかった最初のルートを使用します。 通常、これが最初にインストールされたアダプターです。 この場合、そのアダプターは 192.168.0.1 です。 転送が失敗した場合、後で再試行すると、ルーティング テーブルにあるエントリに従って同じアダプターが使用される可能性があります。 

192.168.0.1 アダプターのネットワーク ケーブルに障害が発生しても、必ずしもルーティング テーブルからルートが削除されるわけではありません。 そのため、2 番目のアダプターはまだ使用されない可能性があります。 

考慮すべきもう 1 つの点は、一部のネットワーク アプリケーションがシステム内の特定のアダプターにバインドされることです。 ネットワーク アプリケーションが 2 番目のアダプターに具体的にバインドされる場合、最初のアダプター上のクライアントから受信したアプリケーション関連のトラフィックは、アプリケーションによって無視される可能性があります。 この問題は、ネットワーク上の NetBIOS 名の登録が原因である可能性があります。 また、アプリケーションがバインドされているアダプターでエラーが発生した場合、他のアダプターを使用しないとアプリケーションがエラーになる可能性があります。  

通常、アプリケーションが特に要求しない限り、この種の構成は役に立ちません。 一部の製造元は、単一障害点から保護するためにフォールト トレラントなネットワーク アダプターを作成しています。 これらのアダプターを使用すると、同じサーバーに 2 つのアダプターを含めることができますが、一度に使用できるアダプターは 1 つだけです。 プライマリ アダプターに障害が発生した場合、ドライバーは最初のカードを非アクティブ化し、同じアドレス構成を使用して 2 番目のカードを有効にします。 その結果、代替アダプターへの移行がかなりシームレスになります。 これは、単一のネットワーク アダプターを単一障害点として保護するために推奨される方法です。

Windows Server フェールオーバー クラスタリング

Windows Server フェールオーバー クラスタリングは、同じネットワーク上で追加のアダプターを使用せず、TCP/IP プロトコルの既存の機能に依存します。 アダプターに障害が発生した場合、ソフトウェアは他のアダプターに IP アドレス リソース アドレスを自動的に登録しようとしません。 1 つのネットワーク アダプターが単一障害点になるのを避けたい場合は、ネットワーク アダプターを異なる論理サブネット上に配置するように構成します。 または、NIC チーミングを使用して、(この記事で前述したように) 複数の物理アダプターを 1 つの論理アダプターに結合します。

前の情報はブロードキャスト ルートに適用されます。 サブネットへのルートは、サブネット内で最上位の数値 IP アドレスを使用します。 たとえば、IP アドレスが 192.168.0.1 と 192.168.0.2 の 2 つのアダプターがあり、192.168.0.1 が最初にインストールされたとします。 この状況では、次のルートが作成されます。
   192.168.0.0 255.255.255.0 192.168.0.1 192.168.0.1
   192.168.0.0 255.255.255.0 192.168.0.2 192.168.0.2
   192.255.255.255 255.255.255.255 192.168.0.1 192.168.0.1
   255.255.255.255 255.255.255.255 192.168.0.1 192.168.0.1