Eu tenho o seguinte cenário:
Computador A 198.51.100.8
:, máscara de rede 255.255.255.0
Computador B 203.0.113.9
:, máscara de rede 255.255.255.0
Ambos os computadores estão no mesmo segmento de LAN; nenhum gateway padrão é especificado nos dois casos.
Para que esses dois computadores se comuniquem, adicionei duas rotas estáticas, assim:
route add 203.0.113.9 mask 255.255.255.255 198.51.100.8
No entanto, eu preferiria adicionar as rotas estáticas especificando uma interface de rede , em vez de especificar um endereço IP de gateway .
Isso é possível com o Linux usando um comando como:
ip route add 203.0.113.9 dev eth0
e da mesma forma no FreeBSD:
route add 203.0.113.9/32 -iface fxp0 -cloning
No entanto, estou sem saber como fazer isso com o Windows. Idealmente, quero fazer algo como:
route add 203.0.113.9 mask 255.255.255.255 if 2
mas isso apenas imprime o uso do route
comando, o que me diz que estou fazendo errado. Eu também tentei usar netsh
, o que me diz:
> netsh routing ip add persistentroute 203.0.113.9 255.255.255.255 "Local Area Connection"
Specify the next-hop for non point-to-point interfaces.
Quaisquer pensamentos ou sugestões?
Atualização : Quando postei originalmente esta pergunta, estava usando o Windows XP. Mas eu esqueci de mencionar isso.
Deixarei a resposta original de Grizly, pois está correta para minha pergunta original. Mas se você estiver usando uma versão mais recente do Windows que o XP / 2003, tente uma das outras respostas.
fonte
No Windows, você pode adicionar uma rota com base na interface sem conhecer a interface passando
0.0.0.0
como gatewayisso dá algo como isto:
fonte
route ADD 176.31.111.111 0.0.0.0 IF 25
Ele voltouOK!
e uma nova entrada apareceu na tabela de roteamento como esperadoEu obtive o mesmo no Windows 7 Enterprise com o cliente Juniper Junos Pulse VPN.
Eu tive um problema com isso, pois ele capturava todos os endereços IPv4 possíveis e os encaminhava para a conexão dial-up:
Como não queria que todo o meu tráfego passasse pela VPN, caso alguém precisasse, escrevi um pequeno arquivo cmd para remover essas rotas e instalar o único de que preciso (10.0.0.0) sem poder especificar um gateway , especificando a interface correta.
Você pode usar isso para recuperar dinamicamente o número de uma interface.
fonte
O número da interface em decimal é exibido com
route print
. Olhe para o topo da saída abaixoInterface List
.Outra maneira é usar
arp -a
e anotar o número hexadecimal, por exemplo:Ambos são aceitos após o
if
argumento emroute.exe
, por exemplo:Eu prefiro
arp -a
, pois é mais fácil identificar a NIC.Inúmeras outras maneiras, mas essa é a mais simples.
fonte
Você não pode omitir o gateway na tabela permanente. Algumas pessoas oferecem colocar um IP da placa de interface (lado do usuário) aceitável no Windows XP. Mas não é mais válido. O SO continuará batendo em todas as interfaces de rede nesse caso, pelo menos até que o cache seja preenchido; não é um bom comportamento e não faz diferença com a tabela de roteamento vazia.
Descobri que colocar lá um IP de destino como gateway resolve o problema pelo menos no Windows 10. Mas, no momento, tenho poucas estatísticas para confirmá-lo como 100,1% verdade.
fonte