Comprensione delle tabelle di routing di Windows e dei gateway predefiniti


11

Nota: questo è il mio laboratorio di informatica domestica e non un ambiente aziendale / di produzione. Sono più che felice di romperlo e risolverlo di nuovo, quindi qualsiasi suggerimento è il benvenuto!

SOMMARIO

Ho aggiunto questo breve riepilogo perché questa domanda sta diventando piuttosto lunga. Se desideri ulteriori dettagli su tabelle di routing, configurazioni IP, ecc., Guarda sotto.

Ho alcune schede di rete su un computer. Una scheda di rete è 172.16.200.1 / 24. Quando provo a eseguire il ping 172.16.200.2 (un host esistente sulla rete), ricevo una risposta. Fin qui tutto bene.

Quando provo a connettermi al 172.16.200.5 (o qualsiasi altro host che non esiste), il computer tornerà al mio percorso predefinito (0.0.0.0 tramite il mio gateway predefinito 192.168.0.1) - questo verrà quindi inviato da il mio router di casa dove poi si perde in un ciclo di routing nella mia rete di ISP. Di seguito vengono forniti molti più dettagli, se necessario, ma immagino che ci sia un guru là fuori che può già rispondere a questo ...

La mia domanda è:

Come posso impedire al mio computer di tornare al gateway predefinito per una rete privata quando non c'è risposta da un host su quella rete. Queste reti private hanno già percorsi espliciti con metriche inferiori.

Ho provato questo su alcune macchine (Server 2008 R2, Windows 7, Hyper-V Server 2012 R2, Windows Server 2012) e si comportano tutti allo stesso modo. Sto iniziando ad accettare che si tratta di un "comportamento normale" per i computer Windows, ma sono curioso di sapere se può essere interrotto.

Ho creato una macchina virtuale Ubuntu con la stessa configurazione delle mie macchine virtuali Windows: la macchina virtuale Ubuntu non ritorna alla route predefinita come fanno le macchine virtuali Windows. Ho aggiunto le tabelle di routing e i risultati per la macchina virtuale Ubuntu e Windows 8.1 nella parte inferiore di questo post.

MAGGIORI DETTAGLI

Ho fatto ricerche approfondite su questo argomento e la domanda più vicina che ho visto è qui: Ciclo di routing: TTL scaduto in transito , ma sfortunatamente non risponde a come fermare il problema o alterare il comportamento sul computer. La risposta suggerisce di correggere il routing. Posso cambiare il mio router per eliminare tutto ciò che è destinato agli indirizzi IP privati ​​(o inoltrarlo agli IP dei miei coinquilini, hehehe), ma ciò non cambierà il comportamento del mio computer. (Ho anche letto la grande guida alla sottorete che era di riferimento nella risposta originale, che può essere trovata su /server/49765/how-does-ipv4-subnetting-work )

Ho problemi a capire perché i miei computer tenteranno di connettersi a indirizzi IP privati ​​su Internet una volta che hanno provato a utilizzare gli adattatori interni (per un breve periodo), quindi non sono riusciti, ad esempio nel tentativo di eseguire il ping di un host che conosco non esiste sulla mia rete ...

Pinging 172.16.200.32 with 32 bytes of data:
Reply from 172.16.200.1: Destination host unreachable.
Reply from 203.29.XXX.YY: TTL expired in transit.
Reply from 203.29.XXX.YY: TTL expired in transit.
Reply from 203.29.XXX.YY: TTL expired in transit.

Ping statistics for 172.16.200.32:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Ma il ping di un host che esiste funziona ...

Pinging 172.16.200.2 with 32 bytes of data:
Reply from 172.16.200.2: bytes=32 time<1ms TTL=128
Reply from 172.16.200.2: bytes=32 time<1ms TTL=128
Reply from 172.16.200.2: bytes=32 time<1ms TTL=128
Reply from 172.16.200.2: bytes=32 time<1ms TTL=128

Ping statistics for 172.16.200.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

OK, quindi la risposta del 172.16.200.1 sta dicendo che il mio computer non ha ricevuto risposta ... ma poi, perché tenta persino di connettersi tramite la mia connessione Internet? Ho 4 schede di rete e sono sulla rete 172.16.200.0 / 24 su uno di questi ...

Ethernet adapter HyperV External (built in):

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::582c:97
   IPv4 Address. . . . . . . . . . . : 172.16.1.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Expansion-2 (middle) HomeNetwork:

   Connection-specific DNS Suffix  . : Home
   IPv4 Address. . . . . . . . . . . : 192.168.0.117
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.1

Ethernet adapter Expansion-3 (bottom) iSCSI-1 :

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 172.16.100.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Expansion-1 (top) iSCSI-2:

   Connection-specific DNS Suffix  . :
   IPv4 Address. . . . . . . . . . . : 172.16.200.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Quindi, a questo punto, avrebbe senso guardare la tabella di routing ...

===========================================================================
Interface List
 16...64 70 02 00 1f 03 ......Gigabit PCI Express Network Adapter #2
 15...64 70 02 00 40 48 ......Gigabit PCI Express Network Adapter
 23...00 24 1d 1d f8 35 ......TST Onboard
 17...64 70 02 00 32 c1 ......Gigabit PCI Express Network Adapter #3
  1...........................Software Loopback Interface 1
 28...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 26...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
 13...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
 27...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #3
 29...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #4
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0      192.168.0.1    192.168.0.117    410
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
       172.16.1.0    255.255.255.0         On-link        172.16.1.1    266
       172.16.1.1  255.255.255.255         On-link        172.16.1.1    261
     172.16.1.255  255.255.255.255         On-link        172.16.1.1    261
     172.16.100.0    255.255.255.0         On-link      172.16.100.1    266
     172.16.100.1  255.255.255.255         On-link      172.16.100.1    266
   172.16.100.255  255.255.255.255         On-link      172.16.100.1    266
     172.16.200.0    255.255.255.0         On-link      172.16.200.1    266
     172.16.200.1  255.255.255.255         On-link      172.16.200.1    266
   172.16.200.255  255.255.255.255         On-link      172.16.200.1    266
      192.168.0.0    255.255.255.0         On-link     192.168.0.117    266
    192.168.0.117  255.255.255.255         On-link     192.168.0.117    266
    192.168.0.255  255.255.255.255         On-link     192.168.0.117    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link     192.168.0.117    266
        224.0.0.0        240.0.0.0         On-link      172.16.100.1    266
        224.0.0.0        240.0.0.0         On-link      172.16.200.1    266
        224.0.0.0        240.0.0.0         On-link        172.16.1.1    261
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link     192.168.0.117    266
  255.255.255.255  255.255.255.255         On-link      172.16.100.1    266
  255.255.255.255  255.255.255.255         On-link      172.16.200.1    266
  255.255.255.255  255.255.255.255         On-link        172.16.1.1    261
===========================================================================
Persistent Routes:
  None

Per prima cosa ho pensato che la metrica della rotta 0.0.0.0 fosse il colpevole - in origine era 6, quindi ho provato a cambiarla in 410 che non ha cambiato il comportamento. (A proposito, non ho mai fatto casini con la tabella di routing su questa macchina prima). L'ho quindi confrontato con una macchina Hyper-V 2012 R2 che ho su 3 delle stesse reti (172.16.1.0, 172.16.100.0 e 172.16.200.0) e ho notato che anche la macchina Hyper-V ha una metrica di 6 per 0,0 Percorso .0.0, quindi suppongo sia normale e corretto ...

Ho quindi provato a cambiare il 172.16.200.0 in modo che fosse un percorso persistente, come di seguito, ma ancora non ha funzionato.

===========================================================================
Persistent Routes:
  Network Address          Netmask  Gateway Address  Metric
       172.16.200.0  255.255.255.0       172.16.1.1       1
===========================================================================

Ho anche cercato di aumentare la metrica (so che è più preferibile abbassare, ma solo in caso, eh?) ... certo, senza fortuna.

Nelle "Impostazioni avanzate" nella finestra Connessioni di rete, ho confermato che l'adattatore 192.168.0.117 è il più basso nell'ordine Schede e collegamenti ...

Quindi, dopo aver sbattuto la testa un po ', sono perplesso. Ovviamente l'eliminazione del percorso 0.0.0.0 lo interrompe, ma ovviamente bloccherà anche la mia Internet ...

Come mai posso impedire alla mia macchina di provare a passare attraverso il mio gateway predefinito 192.168.0.1 quando tenta di raggiungere un host il 172.16.200.0 ...

http://technet.microsoft.com/en-us/library/cc779122%28v=ws.10%29.aspx ("La tabella di routing IP: TCP / IP") sembra suggerire che "La route predefinita in genere inoltra un Datagramma IP (per il quale non esiste corrispondenza o percorso locale esplicito) a un indirizzo gateway predefinito per un router sulla sottorete locale. " Quanto più esplicito posso ottenere con quel percorso!

La risposta qui Gateway di route persistente di Windows non disponibile, pertanto la route predefinita utilizzata suggerisce che si tratta di un comportamento normale: quando viene aggiunta una route persistente, tenterà di utilizzare tale route, se possibile, ma ricadrà sulla route predefinita in caso di errore. Sicuramente ciò potrebbe presentare alcuni problemi di traffico piuttosto gravi, per non parlare dei problemi di sicurezza (informazioni private che fuoriescono da Internet, o almeno dalle reti private dei tuoi ISP ...)

Alcune informazioni aggiuntive: questo server esegue NPS / RRAS di solito - disabilitandolo e anche rimuoverlo non ha fatto nulla. Inoltre, ho creato una VM 2008 R2 nuova di zecca, le ho dato due schede di rete, una direttamente sulla rete 192.168.0.0 e l'altra sulla rete 172.16.200.0 e ha fatto la stessa cosa ... Spero che tu possa dire di aver speso un po 'di tempo su questo.

Ho impostato il mio router di casa per inoltrare tutte le cose 172.16.XX al mio computer, ma questa è una soluzione alternativa ...

C'è qualcosa che mi manca? Qualcosa di ovvio, forse? Sto chiedendo l'impossibile?

[AGGIORNAMENTO N. 1 E # 2]

Ho analizzato ogni bit di configurazione sul mio router e non sembra gestire alcuna richiesta ARP proxy - non ha nemmeno alcuna impostazione per quello che posso vedere.

Ho usato MS Network Monitor 3.4 per verificare se il router risponde alle richieste ARP e non lo sono. Riesco a vedere la richiesta ARP inviata quando provo a eseguire il ping di un host inesistente e non ricevo alcuna risposta ARP. Il ping di un host che esiste, mi dà naturalmente una risposta ARP. È sicuro supporre a questo punto che il mio router non stia gestendo le richieste proxy ARP?

La tabella di routing sul router era la seguente:

 > route show
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.20.21.36     *               255.255.255.255 UH    0      0        0 ppp0
192.168.0.0     *               255.255.255.0   U     0      0        0 br0
default         *               0.0.0.0         U     0      0        0 ppp0

Ho aggiunto queste voci di seguito come misura temporanea di stop-gap - impedisce ai miei poveri pacchetti "persi" di andare al mio ISP:

172.16.1.0      192.168.0.117   255.255.255.0   UG    1      0        0 br0
172.16.100.0    192.168.0.117   255.255.255.0   UG    1      0        0 br0
172.16.200.0    192.168.0.117   255.255.255.0   UG    1      0        0 br0

[AGGIORNAMENTO # 3 - Aggiunte tabelle di routing per VM Ubuntu e Win8.1]

OK, quindi ho creato una nuovissima VM Ubuntu e una nuovissima VM Windows 8.1. La VM Ubuntu non tenta di tornare alla sua route 0.0.0.0, ma Windows 8.1 lo fa. Ho provato il vecchio ping-a-inesistente-host e ho guardato il traffico sul router 172.16.1.1. Riceve le richieste ICMP dalla VM di Windows 8.1 e le trasmette, ma non vede mai alcun traffico ICMP dalla VM di Ubuntu.

La tabella di Ubuntu VM è di seguito:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface    MSS   Window irtt
0.0.0.0         172.16.1.1      0.0.0.0         UG    0      0        0 eth0     0     0      0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1     0     0      0
172.16.1.0      0.0.0.0         255.255.255.0   U     1      0        0 eth0     0     0      0
172.16.200.0    0.0.0.0         255.255.255.0   U     1      0        0 eth1     0     0      0

La tabella di Windows 8.1 è di seguito:

===========================================================================
Interface List
  9...00 15 5d 01 4c 1c ......Microsoft Hyper-V Network Adapter #2
  3...00 15 5d 01 4c 08 ......Microsoft Hyper-V Network Adapter
  1...........................Software Loopback Interface 1
  4...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 13...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================

IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0       172.16.1.1     172.16.1.101      5
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
       172.16.1.0    255.255.255.0         On-link      172.16.1.101    261
     172.16.1.101  255.255.255.255         On-link      172.16.1.101    261
     172.16.1.255  255.255.255.255         On-link      172.16.1.101    261
     172.16.200.0    255.255.255.0         On-link      172.16.200.1    261
     172.16.200.1  255.255.255.255         On-link      172.16.200.1    261
   172.16.200.255  255.255.255.255         On-link      172.16.200.1    261
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link      172.16.1.101    261
        224.0.0.0        240.0.0.0         On-link      172.16.200.1    261
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link      172.16.1.101    261
  255.255.255.255  255.255.255.255         On-link      172.16.200.1    261
===========================================================================
Persistent Routes:
  None

1. Il router / firewall esegue l'ARP proxy per gli spazi degli indirizzi interni? 2. Che aspetto ha la tabella di routing sul router / firewall?
joeqwerty,

1
Se si desidera arrestare l'uscita dei pacchetti spaziali RFC 1918, basta annullare il percorso 10/8, 172.16 / 12 e 192.168 / 16 (o reindirizzarli alla propria LAN). In assenza di disposizioni speciali, tali pacchetti non dovrebbero comunque entrare / uscire dalla rete. Anche se non sono affatto sicuro che sia l'approccio migliore (potrebbe spezzare le cose da un'altra parte).
un CVn il

Considerando quali versioni di Windows stai parlando e il tono generale di questo post, immagino che tu sia in un ambiente aziendale, nel qual caso potresti voler considerare di contrassegnare questo post per l'attenzione del moderatore e richiedere la migrazione a Server Fault .
un CVn

Ciao Michael, grazie per la risposta. Ho aggiunto percorsi per 10/8, 172.16 / 12 e 192.168 / 16 sul mio router per tornare al mio computer (192.168.0.117) in modo che non vengano inviati su Internet. Sono curioso di sapere se questo è qualcosa che ogni router deve aver configurato? Inoltre, dovrei chiarire che questo è il mio laboratorio di casa e non un ambiente aziendale o aziendale. Lo sto usando solo per studiare.
Gund

Risposte:


2

Il failback sulla route predefinita è un comportamento normale da Vista, puoi leggere questo articolo nel seguente articolo: Selezione dell'indirizzo IP di origine su un computer Windows multihomed .

Problema di loop causato da un router configurato in modo errato, che restituisce i pacchetti utilizzando una sottorete diversa, anziché eliminarli.


Il collegamento solo le risposte diventano inutili se il collegamento scende. Spiegare come risolvere il problema pur citando la fonte.
Raystafarian,

Siamo spiacenti, ho aggiunto alcuni dettagli.
mtm

1
Ciao, scusa per la risposta tardiva, ma molte grazie per quel link MTM! Descrive il motivo per cui sto vedendo questo particolare comportamento e mi ha dato un buon punto di partenza per fare delle ricerche per cambiarlo.
Gund,
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.