Comment configurer une table de routage spécifique à l'application sous Windows?

14

Supposons que l'interface réseau 1 (net1) et 2 (net2) soient toutes deux connectées à Internet. Je veux que l'application 1 (app1) utilise net1 et l'application 2 (app2) utilise net2. Comment peut-on le faire sous Windows?

Si vous avez besoin d'un exemple concret de la situation ci-dessus, envisagez:

  • Un ordinateur portable avec Windows 7
  • net1 = Une connexion filaire à un modem Internet Verizon
  • net2 = Une connexion sans fil à un modem Internet Comcast
  • app1 = Internet Explorer
  • app2 = Firefox
  • J'aimerais avoir "IE utilise Verizon mais pas Comcast" et "Firefox utilise Comcast mais pas Verizon"

Cela ne doit pas être fait via la table de routage. Si vous avez d'autres idées, faites-le moi savoir!

netvope
la source

Réponses:

6

On dirait que ForceBindIP est ce que vous cherchez :)

ForceBindIP - Liez n'importe quelle application Windows à une interface spécifique

ForceBindIP est une application Windows gratuite qui s'injectera dans une autre application et modifiera la façon dont certains appels Windows Sockets sont effectués, vous permettant de forcer l'autre application à utiliser une interface réseau / adresse IP spécifique. Ceci est utile si vous êtes dans un environnement avec plusieurs interfaces et que votre application n'a pas une telle option pour se lier à une interface spécifique.

Certains programmes qui ont été testés pour fonctionner avec ForceBindIP incluent DC ++, uTorrent, Quake II, Quake III, Diablo II, StarCraft, Internet Explorer, Mozilla Firefox , Google Earth, Infanterie, Real Player, Unreal Tournament 2004 (nécessite -i), Outlook 2000 (nécessite -i). Les programmes qui ne fonctionnent pas incluent GetRight (techniques anti-débogueur / forking), WinCVS (forks cvs.exe)

Vous pouvez simplement créer des raccourcis pour lancer l'application à l'aide de ForceBindIP, avec l'adresse IP et le programme comme arguments:

texte alternatif

ForceBindIP est un logiciel gratuit.

John T
la source
2
Super logiciel! Malheureusement, cela ne semble pas fonctionner avec ma configuration VPN (qui a "utiliser la passerelle par défaut sur le réseau distant" désactivé pour que la connexion à Internet ne passe pas par elle). J'ai essayé de lier IE à l'interface VPN (adaptateur PPP), mais le trafic ne passe toujours pas par le VPN (vérifié avec whatismyip.com)
netvope
1

Pas besoin d'exécuter vmware player et tout ça. Activez simplement la réception faible sur l'adaptateur secondaire (c'est-à-dire l'adaptateur qui a une métrique plus élevée).

Ensuite, vous pouvez exécuter squid et définir squid pour utiliser tcp_outgoing_address à l'adresse IP de l'adaptateur secondaire et proxy toutes vos applications.

Je soupçonne que forcebindip devrait également commencer à fonctionner.

Ce que je pense, c'est qu'il y a un bug dans la pile MS win7. Lorsqu'un paquet arrive sur l'adaptateur secondaire, il est rejeté même s'il s'agit d'un paquet valide.

L'activation de la réception de l'hôte faible est documentée ici 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
Mavin
la source
0

je suis presque sûr que c'est impossible. La chose la plus proche que vous pouvez obtenir en envoyant du trafic sur une interface ou une autre est les sous-réseaux et les entrées de routage.

Mais si deux applications veulent parler sur le réseau, elles utilisent le même réseau.

Techniquement, je suppose qu'une application pourrait lier son trafic sortant à une interface particulière, mais l'application devrait être réécrite pour ce faire.

Ian Boyd
la source
0

Avait une exigence similaire, voulait que des applications spécifiques passent par des connexions Internet spécifiques mais ne pouvaient pas être effectuées via IP ou Port.

Ma solution était de:

(Notez que l'adresse IP de mon ordinateur est xxx100

a) configurer une règle de mangle pour xxx101 pour passer par wan2

b) exécuter vmware player avec une copie d'ubuntulite (avec openssh installé) sur ip xxx101

c) utiliser "proxifier" pour lier l'application et forcer son tunnel via la machine vmware, qui à son tour n'a été routée que via wan2

C'est la seule façon (très haxy) de comprendre comment le faire au niveau d'une application (le proxy a une version d'essai que vous pouvez tester et s'exécute sur Windows 7 x64).

Omegatron
la source