

■ルーティングに関する質問です。

とある事情があり、ネットワークに負荷のかかる動画閲覧のみ、  
USBで外付けたLANアダプタ経由で行いたいです。

USBで外付けたLANアダプタの次(ネクストホップ)は自宅のルータです。  
ルータ上でプロバイダ上にPPP接続しています。

ここで以下のようなルーティングが考えられます。  
route -p add XXX.XXX.XXX.XXX mask 255.255.255.255 192.168.11.1 metric 1 if 37

しかしyoutubeなど大手動画サイトは負荷分散を行っておりIPが動画閲覧の都度(閲覧中にも)変更となるので、  
全てのIPを指定するのは不可能です。

どのようにすれば固定の動画サイトのルーティングを行えるのでしょうか？

イメージとしては以下のようにしたいのです。  
route -p add www.youtube.com mask 255.255.255.255 192.168.11.1 metric 1 if 37


CC BY-SA 3.0
2017-07-23T08:14:20.057
36611
2023-11-23T01:05:55.670
2017-07-23T14:24:23.720
2238
23864
question
network
IPアドレスが多数存在する接続先に固定ルートを設定したい


アイディアレベルですが、次のような環境を構築すれば、できるかも知れません。

# 前提

  1. 2つのネットワークインターフェースが異なるセグメントに属し、異なるIPアドレスを持つ。  
(以降、1つ目のIPを「IP1」、2つ目のIPを「IP2」とする)

  2. Windowsホストで振り分けを行うようにする。
  3. IP1を通常のWebアクセス、IP2を特定サイトへのWebアクセス用とする。

# アイディア

  1. IP1、IP2にそれぞれデフォルトゲートウェイを設定する。(ネットワーク`0.0.0.0`のネクストホップを指定する)  
その際、IP2側のメトリック値を低くする。(IP2のルーティングを優先させるようにする)

  2. Windowsホスト上にHTTPプロキシサーバを動作させる。  
その際、HTTPプロキシの設定として、外部との通信IPを「IP1」に設定する。

  3. Webブラウザのプロキシ設定(あるいはWindowsのプロキシ設定)で、自ホスト上のHTTPプロキシサーバを設定する。  
**その際、例外サイト(プロキシを経由しないサイト)として、「特定サイト」(ホスト名)を指定する**

# 期待する動作

  * 通常サイトへのアクセスは、HTTPプロキシサーバを経由してIP1を持つネットワークインターフェースを経由して通信が行われる。
  * 特定サイトへのアクセスは、プロキシ設定の例外条件に一致するのでHTTPプロキシサーバを経由せずIP2を持つネットワークインターフェースを経由して通信が行われる。
  * 「特定サイト」のIPアドレスが複数あっても、Webブラウザは「ホスト名」で条件判定するので、IPアドレスが動的に変化するとしても条件判定は期待通り動作する。

* * *

HTTPプロキシサーバがIP1のネットワーク内にあれば、自ホストに立てる必要はないです。  
いずれにしても通常アクセスの方がプロキシ経由になるので、気味の悪い構成とは思います。(「特定のサイトだけプロキシを使う」設定ができればよいのですが)

Windows上で動作するHTTPプロキシサーバはいくつかあると思いますが、私は利用したことがないので、「これ」といっておすすめできるものはありません。(`squid`あたりが定番でしょうか。`squid`の場合、外部との通信IPを設定するパラメータは「`tcp_outgoing_address`」らしいです)


CC BY-SA 3.0
2017-07-23T15:40:56.277
36620
2017-07-23T15:40:56.277
20098
36611
answer


試してはいませんが、もし動画閲覧のために使用するブラウザの実行ファイル（exe）とそれ以外を別ファイルにできるならWindowsファイアウォールの送信の規則を追加して実行ファイルパス毎に使用できるローカルアドレスに制限を設けてはいかがでしょうか。


CC BY-SA 4.0
2019-07-14T01:49:08.600
56631
2019-07-14T01:49:08.600
4388
36611
answer


Linux などであればこういったハックがあるのですけどね。YouTube を動作させる専用のブラウザをこのライブラリー下で動作させれば
OK。一つのブラウザで YouTube もほかのサイトも閲覧したいということなら求めている動作とは異なりますが…。

  * Binding applications to a specific IP 
    * <https://daniel-lange.com/archives/53-Binding-applications-to-a-specific-IP.html>

Windows を使っているらしいのでこれは無理ですね。仮想マシン上で YouTube プレイヤーが動く OS
を動作させ、仮想マシンを接続している仮想ネットワークをホストマシンの特定 NIC を使うような NAT 設定すればよいかと思います。(未確認)


CC BY-SA 4.0
2019-08-27T06:08:40.853
57628
2019-08-27T06:08:40.853
3061
36611
answer