Percorsi statici di Windows senza specificare il gateway (hop successivo)


15

Ho il seguente scenario:

Computer A 198.51.100.8:, maschera di rete 255.255.255.0
Computer B 203.0.113.9:, maschera di rete 255.255.255.0
Entrambi i computer si trovano sullo stesso segmento LAN; nessun gateway predefinito è specificato in entrambi i casi.

Per far comunicare questi due computer, ho aggiunto due percorsi statici, in questo modo:

route add 203.0.113.9 mask 255.255.255.255 198.51.100.8

Tuttavia, preferirei aggiungere i percorsi statici specificando un'interfaccia di rete , anziché specificando un indirizzo IP del gateway .

Questo è possibile con Linux usando un comando come:

ip route add 203.0.113.9 dev eth0

e similmente in FreeBSD:

route add 203.0.113.9/32 -iface fxp0 -cloning

Tuttavia, non riesco a farlo con Windows. Idealmente, voglio fare qualcosa del tipo:

route add 203.0.113.9 mask 255.255.255.255 if 2

ma ciò stampa semplicemente l'uso del routecomando, il che mi dice che sto sbagliando. Ho anche provato a usare netsh, il che mi dice:

> 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.

Qualche idea o suggerimento?


Aggiornamento : quando inizialmente ho pubblicato questa domanda, stavo usando Windows XP. Ma ho trascurato di menzionarlo.

Lascerò la risposta originale di Grizly, poiché è corretta per la mia domanda originale. Ma se stai usando una versione più recente di Windows di XP / 2003, prova una delle altre risposte.

Risposte:


7

Questo potrebbe non essere possibile con Windows

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx

Preventivo: per le route di sottorete collegate localmente, l'indirizzo gateway è l'indirizzo IP assegnato all'interfaccia collegata alla sottorete.


Ehi Grizly - grazie per la risposta! Ho provato entrambi i comandi che mi hai suggerito, ma ho ottenuto: "L'aggiunta del percorso non è riuscita: l'indice di interfaccia non è corretto o il gateway non si trova sulla stessa rete dell'interfaccia. Controllare la tabella degli indirizzi IP per la macchina." Ho solo due interfacce sulla macchina, 0x1 (interfaccia MS TCP Loopback) e 0x2 (Intel (R) PRO / 1000 MT Network Connection), quindi sono abbastanza sicuro "se 2" è quello che voglio usare. Qualche altro pensiero?
fissione,

Basta ignorare la parte "metrica 1 se 2" .. dovrebbe capirlo. Meglio testare anche senza -p. (che lo rende persistente)
Grizly

Ottengo lo stesso risultato senza la parte "metrica 1 se 2".
fissione

Oh mio Dio, sembra che il gateway sia l'ip dell'interfaccia. Risposta aggiornata.
Grizly,

Bene, che è quello che sto già facendo e che speravo di evitare. Grazie comunque.
fissione

21

In Windows puoi aggiungere un percorso basato sull'interfaccia senza conoscere l'interfaccia passando 0.0.0.0 come gateway

questo dà qualcosa del genere:

route add <IPtoRoute> mask <MaskOfTheIp> 0.0.0.0 IF <InterfaceNumber>

route add 203.0.113.9 mask 255.255.255.255 0.0.0.0 IF 2

2
Ho provato questo su Windows 7 x64. Funziona! Il mio comando: è route ADD 176.31.111.111 0.0.0.0 IF 25tornato OK!e una nuova voce è apparso nella tabella di routing come previsto
Dmitry

6

Ho ottenuto lo stesso in Windows 7 Enterprise con il client Juniper Junos Pulse VPN.
Ho avuto un problema con questo, in quanto ha catturato tutti i possibili indirizzi IPv4 e li ha instradati alla connessione remota:

Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          1.0.0.0        255.0.0.0         On-link       XX.XX.XX.XX     11
          2.0.0.0        254.0.0.0         On-link       XX.XX.XX.XX     11
          4.0.0.0        252.0.0.0         On-link       XX.XX.XX.XX     11
          8.0.0.0        248.0.0.0         On-link       XX.XX.XX.XX     11
         16.0.0.0        240.0.0.0         On-link       XX.XX.XX.XX     11
         32.0.0.0        224.0.0.0         On-link       XX.XX.XX.XX     11
         64.0.0.0        192.0.0.0         On-link       XX.XX.XX.XX     11
        128.0.0.0        128.0.0.0         On-link       XX.XX.XX.XX     11

Non volevo che tutto il mio traffico passasse attraverso la VPN, quindi nel caso qualcuno ne avesse bisogno, ho scritto un piccolo file cmd per rimuovere questi percorsi e quindi installare l'unico di cui ho bisogno (10.0.0.0) senza poter specificare un gateway , specificando la giusta interfaccia.
Puoi usarlo per recuperare dinamicamente il numero di un'interfaccia.

@rem Get the interface number
set IF=
for /f "tokens=1,8 delims=. " %%A in ('route print') do @if /i "%%B" equ "Juniper" set IF=%%A
@rem If interface is not found, terminate quietly
if not defined IF exit /b
for %%A in (1 2 4 8 16 32 64 128) do @route delete %%A.0.0.0
route add 10.0.0.0 mask 255.0.0.0 0.0.0.0 IF %IF%

1
puoi semplicemente disabilitare "force tunneling" nella sezione delle proprietà ip della tua connessione vpn.
strano camminatore

5

Il numero di interfaccia in decimale viene visualizzato con route print. Guarda la parte superiore dell'output sotto Interface List .

Un altro modo è quello di utilizzare arp -ae prendere nota del numero esadecimale, ad esempio:

C:\>arp -a

Interface: 192.168.1.28 --- 0xc  
  Internet Address      Physical Address      Type
<snip>

Entrambi sono accettati dopo l' ifargomento route.exe, ad esempio:

route ADD <NET-ID> MASK <mask> <GW-address or 0.0.0.0 for on-link> IF 0xc -P

Preferisco arp -a, in quanto è più facile identificare la scheda di rete.

Numerosi altri modi, ma questo è il più semplice.


0

Non è possibile omettere il gateway nella tabella permanente. Alcune persone offrono di mettere lì una scheda di interfaccia IP (lato utente), che era accettabile in Windows XP. Ma non è più valido. In questo caso il sistema operativo continuerà a bussare a tutte le interfacce di rete, almeno fino a quando non verrà popolata la cache; non è un buon comportamento e non fa alcuna differenza con la tabella di routing vuota.

Ho scoperto che inserendo un IP di destinazione come gateway risolve il problema almeno su Windows 10. Al momento ho poche statistiche per confermarlo come verità al 100,1%.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.