Como configurar a tabela de roteamento específica do aplicativo no Windows?

14

Suponha que a interface de rede 1 (rede1) e 2 (rede2) esteja conectada à Internet. Quero que o aplicativo 1 (app1) use net1 e o aplicativo 2 (app2) use net2. Como isso pode ser feito no Windows?

Se você precisar de um exemplo concreto da situação acima, considere:

  • Um laptop com Windows 7
  • net1 = Uma conexão com fio a um modem da Verizon Internet
  • net2 = Uma conexão sem fio com um modem da Internet Comcast
  • app1 = Internet Explorer
  • app2 = Firefox
  • Eu gostaria de ter "o IE use a Verizon, mas não a Comcast" e "o Firefox use a Comcast, mas não a Verizon"

Isso não precisa ser feito através da tabela de roteamento. Se você tiver outras idéias, entre em contato!

netvope
fonte

Respostas:

6

Parece que o ForceBindIP é o que você procura :)

ForceBindIP - Vincule qualquer aplicativo do Windows a uma interface específica

O ForceBindIP é um aplicativo gratuito do Windows que se injeta em outro aplicativo e altera a forma como determinadas chamadas do Windows Sockets são feitas, permitindo que você force o outro aplicativo a usar um endereço IP / interface de rede específico. Isso é útil se você estiver em um ambiente com várias interfaces e seu aplicativo não tiver essa opção para vincular a uma interface específica.

Alguns programas que foram testados para trabalhar com o ForceBindIP incluem DC ++, uTorrent, Quake II, Quake III, Diablo II, StarCraft, Internet Explorer, Mozilla Firefox , Google Earth, Infantaria, Real Player, Unreal Tournament 2004 (needs -i), Outlook 2000 (requer -i). Os programas que não funcionam incluem GetRight (técnicas anti-depurador / bifurcação), WinCVS (forks cvs.exe)

Você pode simplesmente criar atalhos para iniciar o aplicativo usando o ForceBindIP, com o endereço IP e o programa como argumentos:

texto alternativo

ForceBindIP é um freeware.

John T
fonte
2
Ótimo software! Infelizmente, parece não funcionar com minha configuração de VPN (que tem "usar gateway padrão na rede remota" desativada para que a conexão com a Internet não passe por ela). Eu tentei ligar o IE à interface da VPN (adaptador PPP), mas o tráfego ainda não passa pela VPN (verificado com whatismyip.com)
netvope
1

Não há necessidade de executar o vmware player e tudo isso. Apenas ative o recebimento fraco no adaptador secundário (ou seja, o adaptador que possui uma métrica mais alta).

Em seguida, você pode executar o squid e configurar o squid para usar tcp_outgoing_address no endereço IP do adaptador secundário e proxy todos os seus aplicativos.

Eu suspeito que o forcebindip também deve começar a funcionar.

O que eu acho é que existe um bug na pilha do MS win7. Quando um pacote chega ao adaptador secundário, ele é descartado, mesmo sendo um pacote válido.

A ativação do recebimento de hosts fracos está documentada aqui 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
fonte
0

Eu tenho certeza que isso é impossível. O mais próximo que você pode obter para enviar tráfego em uma interface ou em outra é através de sub-redes e entradas de roteamento.

Mas se dois aplicativos desejam conversar na rede, eles usam a mesma rede.

Tecnicamente, suponho, um aplicativo poderia vincular seu tráfego de saída a uma interface específica, mas o aplicativo precisaria ser reescrito para fazer isso.

Ian Boyd
fonte
0

Tinha um requisito semelhante, queria que aplicativos específicos passassem por conexões específicas da Internet, mas não podia ser feito via IP ou porta.

Minha solução foi:

(Observe que o ip do meu computador é xxx100

a) configure uma regra de mangle para xxx101 passar por wan2

b) execute o vmware player com uma cópia do ubuntulite (com o openssh instalado) no ip xxx101

c) use "proxifier" para vincular o aplicativo e forçá-lo ao túnel através da máquina vmware, que por sua vez foi roteada apenas via wan2

Esta é a única maneira (muito haxy) que eu pude descobrir como fazê-lo no nível do aplicativo (o proxifier tem uma versão de teste que você pode testar e roda no Windows 7 x64).

Omegatron
fonte