it-swarm-ja.com

Windowsでアプリケーション固有のルーティングテーブルを設定する方法

ネットワークインターフェイス1(net1)と2(net2)の両方がインターネットに接続されているとします。アプリケーション1(app1)でnet1を使用し、アプリケーション2(app2)でnet2を使用します。 Windowsではどのように実行できますか?

上記の状況の具体的な例が必要な場合は、以下を検討してください。

  • Windows 7を搭載したラップトップ
  • net1 = Verizonインターネットモデムへの有線接続
  • net2 = Comcastインターネットモデムへのワイヤレス接続
  • app1 = Internet Explorer
  • app2 = Firefox
  • 「IEはComcastではなくVerizonを使用する」、「FirefoxはVerizonではなくComcastを使用する」を希望します

ルーティングテーブルを介して行う必要はありません。他にアイデアがあれば教えてください!

14
netvope

ForceBindIP のような音があなたが探しているものです:)

ForceBindIP-Windowsアプリケーションを特定のインターフェイスにバインドします

ForceBindIPは、自分自身を別のアプリケーションに挿入し、特定のWindows Sockets呼び出しが行われる方法を変更するフリーウェアのWindowsアプリケーションです。これにより、他のアプリケーションに特定のネットワークインターフェイス/ IPアドレスを強制的に使用させることができます。これは、複数のインターフェースがある環境にあり、アプリケーションに特定のインターフェースにバインドするためのそのようなオプションがない場合に役立ちます。

ForceBindIPでの動作がテストされているプログラムには、DC++、uTorrent、Quake II、Quake III、Diablo II、StarCraft、Internet Explorer、Mozilla Firefox、 Google Earth、歩兵、リアルプレイヤー、アンリアルトーナメント2004(-iが必要)、Outlook 2000(-iが必要)。機能しないプログラムには、GetRight(アンチデバッガー/フォークテクニック)、WinCVS(フォークcvs.exe)があります。

引数としてIPアドレスとプログラムを指定して、ForceBindIPを使用してアプリケーションを起動するショートカットを作成できます。

alt text

ForceBindIPはフリーウェアです。

6
John T

VMware Playerなどを実行する必要はありません。セカンダリアダプター(つまり、より高いメトリックを持つアダプター)でweakhostreceiveを有効にするだけです。

次に、squidを実行し、tcp_outgoing_addressを使用してセカンダリアダプターのIPアドレスにsquidを設定し、すべてのアプリケーションをプロキシできます。

Forcebindipも機能し始めると思います。

MS win7スタックにバグがあると思います。パケットが2次アダプターに到着すると、それが有効なパケットであっても廃棄されます。

ウィークホストの受信を有効にする方法はここに記載されています http://technet.Microsoft.com/en-us/magazine/2007.09.cableguy.aspx

netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled

netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled

netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled

netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled
1
Mavin

同様の要件があり、特定のアプリケーションが特定のインターネット接続を経由することを望んでいましたが、IPまたはポートを介して実行できませんでした。

私の解決策は:

(私のコンピュータのIPはx.x.x.100であることに注意してください

a)wan2を経由するx.x.x.101のマングルルールを設定する

b)ubuntuliteのコピー(opensshがインストールされている)を使用してVMプレーヤーをip x.x.x.101で実行します。

c) "proxifier"を使用してアプリケーションをバインドし、vm2マシンを介して強制的にトンネルします。これは、wan2を介してのみルーティングされていました。

これは、アプリケーションレベルで実行する方法を理解できる唯一の(非常に不自然な)方法です(プロキシファイアには、Windows 7 x64でテストして実行できる試用版があります)。

0
Omegatron

これは不可能だと思います。 1つのインターフェイスまたは別のインターフェイスでトラフィックを送信できる最も近いのは、サブネットとルーティングエントリです。

ただし、2つのアプリケーションがネットワーク上で通信したい場合、それらは同じネットワークを使用します。

技術的には、アプリケーションが発信トラフィックを特定のインターフェースにバインドできると思いますが、そのためにはアプリを書き直す必要があります。

0
Ian Boyd