特定のトラフィックを特定のネットワーク接続経由​​で送信するにはどうすればよいですか?

特定のトラフィックを特定のネットワーク接続経由​​で送信するにはどうすればよいですか?

うまくいけば、私は適切に正しく表現できたでしょう!

Windows 7 Pro SP1 を使用

私のラップトップでは、有線接続と無線接続の両方を使用する必要があります。一部のトラフィック (特定のシステムへのアクセスなど) には有線接続でのみアクセスでき、その他のトラフィックには無線接続でのみアクセスできます。

どちらも社内のつながりですが、あまり連携が取れていません。

現時点では、一日を通してそれらを切り替えなければなりません。両方をオンにしたままにしておくと、Windows がどの接続 (通常は有線) を使用するかは当てにならないので、不要な方を取り外して無効にし、必要なときに元に戻します。

特定のアプリケーション/プロトコルを特定の接続に誘導するより良い方法はありますか?

または、これが不可能な場合は、代わりに特定の URL をリダイレクトできますか (これにより、少なくとも切り替えの頻度が少なくなります)。

編集IPCONFIG情報を追加する - 両方の接続が同じサブネットを使用していることを示す

Wireless LAN adapter Wireless Network Connection:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::f1ff:5ffe:6093:ebf%13
   IPv4 Address. . . . . . . . . . . : 10.240.54.12
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.240.54.254

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : domain.local
   Link-local IPv6 Address . . . . . : fe80::9088:177:1936:10ac%11
   IPv4 Address. . . . . . . . . . . : 172.31.161.83
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 172.31.161.1

答え1

Windows 7 NIC 優先順位の設定

すべての最新の Windows リリースでは、やや紛らわしい名前の を使用して、ネットワーク インターフェイスに優先順位を付ける機能が提供されていますNetwork Interface Metric。ほとんどのホーム ネットワークやシンプルなネットワークでは、他の基準によって明示的に決定が強制されない場合に、この設定によって、どの NIC を使用するかが最終的に決定されます。基本的に、両方の NIC で宛先が使用可能である場合、両方の NIC に有効なデフォルト ゲートウェイが構成されている場合、両方の NIC が同じサブネットにある場合など、ネットワーク スタックの観点から両方の NIC が同等に実行可能である場合です。

インターフェースメトリック

インターフェイス メトリック設定が「1」の場合、優先度は最も高くなります (NIC が最初に使用されます)。Windows によってデフォルトで提供される自動設定は、低速リンクよりも高速リンクを優先する目的で、大まかに接続速度に基づいています。これは、WiFi と有線イーサネットのパフォーマンスの違いを処理するには不完全な方法です。WiFi ネットワークではスループットが非常に優れている場合もありますが、ほとんどの場合、信頼性と一貫性が低くなります。

つまり、ご指摘のとおり、ほぼすべてのシナリオで有線 LAN 接続を Wi-Fi よりも優先する必要がありますが、デフォルトでは (少なくとも Windows 7 では) そうではありません。

少なくとも最初は複雑な設定を避ける

これらの設定を微調整して、どの NIC がどのトラフィックに使用されるかを非常に細かく制御できますが、それはあなたが探している範囲外だと思います。たとえば、通常は優先されない NIC を使用して特定のサーバー / Web サイト / IP アドレス範囲にアクセスする必要があり、そのホスト / IP 範囲が両方の NIC からアクセス可能である場合は、そのように構成します。最小限の変更を加えて結果を評価し、必要に応じてさらに小さな変更を加えます。前述のように、ルートがインターフェイスによってハードセットされている場合、2 つの NIC のうち 1 つだけが使用可能なときにほぼ確実に問題が発生します。

関連する構成設定

さらに、2 つ以上の NIC に同じゲートウェイがある場合に、どの NIC が使用されるかを優先する関連パラメータ「ゲートウェイ メトリック」を調整することもできます。インターフェイス メトリックの変更だけでは不十分で、ゲートウェイ メトリックも構成する必要があるケースがあるという証拠がいくつかあります。インターフェイス メトリックを変更しても変化が見られない場合は、以下の手順 3 と下部のリンクで、ゲートウェイ メトリックの変更の詳細 (同じコマンド、異なるパラメータ) を確認してください。

インターフェース メトリックは最初に評価されるため、その設定を詳しく調べる必要はありませんが、必要な場合は使用できます。上記のコメントを明確にするために、私が説明しているアプローチでは、どのインターフェースからもゲートウェイを変更/削除する必要はありません。変更/削除すると、最良の場合でも静的 IP の使用が強制され、最悪の場合、有線 LAN が利用できないときに接続の問題が発生します。

ネットワークインターフェースメトリック設定を変更する方法

  1. 管理者コマンドプロンプトを開き、次のコマンドを入力します。 netstat -rnまたは、もう少し詳しく知りたい場合はnetsh int ip show config
  2. これにより、システム内のすべての NIC のリストが出力されます。左端の列 (netstat) の数字は、NIC インターフェイス メトリック (優先度とも呼ばれます) です。

  3. 有線 NIC をワイヤレス NIC よりも低いメトリックに設定します。値が設定されていることを確認したら、有線 NIC を非常に低い数値 (例: 2) に設定し、WiFi を高い数値 (例: 64) に設定します。これらの設定を適用する構文は次のとおりです。2 つの NIC に「Wired」と「Wifi」という名前を使用しています。システムから正しい値を使用してください (手順 1 の出力に正しい名前が含まれます)。

    set interface "Wired" metric=2
    set interface "Wifi" metric=64

ゲートウェイ メトリックを変更する必要があることが判明した場合、構文は次のようになります。

 set interface "Wired" gwmetric=2 
 set interface "Wifi" gwmetric=64 

注 - 私が選択したメトリック値は任意です。NIC が 2 つしかない場合、カードをメトリック 2 と 3 に設定した場合と、メトリック 2 と 64 に設定した場合とで (理論的には) 違いはありません。通常、ループバック インターフェイスはメトリック 1 に設定されています。その場合は、どちらの「実際の」NIC も 1 に設定しないでください。場合によっては、ローカル トラフィックがルーターに送信されることがあります (簡単な例として、LAN IP アドレスで自分自身を ping するとします。通常はループバック インターフェイスにルーティングされますが、誤って変更してしまう可能性があります)。ping の場合はほとんど気にする必要はありませんが、多くのアプリケーションは、トラフィックが実際には PC から出ないように、LAN IP アドレスに関連付けられたローカル ネットワーク ソケットを使用します。その場合、パフォーマンスの低下は重大なものになります。

詳しくは:

この件に関するリンクをいくつか紹介します。これはGUIを使用してこれらの設定を調整する方法、およびこれですインターフェースとゲートウェイ メトリックの両方を変更する必要があることがあるという逸話的な証拠を提供します。これまでゲートウェイ メトリック設定を調整する必要はなかったのですが、数分間の Google 検索でこの件に何度も遭遇したため、この回答で取り上げられていることを確認したかったのです。

設定変更の有効性を評価する:

  1. どの NIC が使用されているかを確認する簡単な方法は、traceroute コマンドを使用して、どの NIC から送信されているかを確認することです (ローカル LAN ホストとさまざまなインターネット ホストをターゲットにして、NIC の使用分布が LAN と WAN 間で一貫していることを確認します)。
  2. どの程度深く調査したいかにもよりますが、NIC の使用状況に関する実際の統計情報を取得する理想的な方法は、wireshark などのパケット キャプチャ プログラムを使用することです。
  3. 最も簡単な方法は、各ネットワーク インターフェイスのステータスからパケット送信数を表示し、2 つの NIC 間の相対的な速度を確認することです。

状況が本当に悪い場合は、メトリック設定を動的に調整します

最悪の場合、接続品質が本当に 1 日を通して有線から無線に、そして無線から有線に切り替わる場合、現在のネットワーク パフォーマンスに基づいて NIC メトリック値を調整する小さなスクリプトをまとめることは難しくありません。簡単に言うと、ネットワーク接続の簡単なテストを実行する PowerShell スクリプトまたはバッチ ファイルを作成し、各 NIC の結果を評価し、スクリプトでメトリック値を変更して、現在「最高の」パフォーマンスを持つ NIC を優先します。接続がどの程度悪くなるかはわかりませんが、パケットがドロップされるほど悪い場合は、簡単な ping テストで NIC をテストできます。そうでない場合は、ダウンロード速度と遅延のテスト (例: speedtest.net) を実行する必要があるかもしれません。

アップデート

あなたの質問を少し誤解しました。

何をする必要があるか具体的に教えていただければ、その方法の詳細をお伝えできます。

これに関してサポートが必要な場合は、できるだけ詳細な情報を提供してください。ここには多数の可能性があり、質問はこれを最も単純なアプローチに絞り込むことを目的としているためです。

これを IP アドレス レベルで処理できる場合 (つまり、特定の IP アドレスへのすべてのトラフィックが特定のインターフェイスから送信される場合)、簡単に実行できます。プロトコル、アプリケーション、ポート、および/またはホストに依存する場合は、より複雑になります。

追加の質問:

  1. これを IP アドレス レベルでフィルタリングできますか、それともアプリケーション固有ですか?
  2. 特定のインターフェースを使用する必要がある IP アドレスまたは IP アドレスの範囲は何ですか。基準 (質問 1) が IP アドレスではない場合は、特定のインターフェースを使用する必要があるアプリケーションの詳細を提供します。

  3. 問題は、間違ったインターフェースが「選択」されると通信が完全に失敗するということでしょうか? つまり、そのインターフェース経由ではリモート ホストに実際にアクセスできないということですか? それとも、間違ったインターフェースを使用するとパフォーマンスが低下するだけでしょうか?

  4. 次の 2 つの簡単なテストを実行して、LAN 上の舞台裏のルーティング構成を把握してください。これらのネットワーク間にルートが存在するかどうかは不明なので、これを確認します。

    a. まず、有線イーサネット インターフェイスのデフォルト ゲートウェイを特定します (この例ではデフォルト ゲートウェイは存在しません)。一貫性を保つために、IPv4 と IPv6 の両方がある場合は IPv4 ゲートウェイを使用します。

    b. 有線イーサネット インターフェイスを切断し (Wi-Fi のみを残して)、有線イーサネット インターフェイスのデフォルト ゲートウェイに ping を実行します。何が起きますか?

    c. 有線イーサネットを再接続し、Wi-Fi アダプターを取り外します。

    d. Wi-Fi インターフェイスのデフォルト ゲートウェイ (質問では 10.240.54.254) に ping を実行し、結果を教えてください。

これを解決するには、静的ルートを追加する (単一のコマンド) だけで済むかもしれませんが、お客様の回答に基づいて詳細を提供します。

関連情報