Remarque: Il s'agit de mon laboratoire informatique personnel et non d'un environnement commercial / de production. Je suis plus qu'heureux de le casser et de le réparer à nouveau, donc toutes les suggestions sont les bienvenues!
SOMMAIRE
J'ai ajouté ce bref résumé car cette question devient assez longue. Si vous souhaitez plus de détails sur les tables de routage, les configurations IP, etc., regardez ci-dessous.
J'ai quelques cartes réseau sur un ordinateur. Une carte réseau est 172.16.200.1 / 24. Lorsque j'essaie d'envoyer une requête ping à 172.16.200.2 (un hôte qui existe sur le réseau), j'obtiens une réponse. Jusqu'ici tout va bien.
Lorsque j'essaie de me connecter à 172.16.200.5 (ou à tout autre hôte qui n'existe pas), l'ordinateur revient à ma route par défaut (0.0.0.0 via ma passerelle par défaut 192.168.0.1) - cela sera ensuite envoyé par mon routeur domestique où il se perd ensuite dans une boucle de routage dans mon réseau FAI. Beaucoup plus de détails sont donnés ci-dessous si nécessaire, mais je suppose qu'il y a un gourou qui peut déjà répondre à cela ...
Ma question est:
Comment puis-je empêcher mon ordinateur de retomber sur la passerelle par défaut d'un réseau privé en l'absence de réponse d'un hôte sur ce réseau. Ces réseaux privés ont déjà des itinéraires explicites avec des métriques plus faibles.
J'ai testé cela sur quelques machines (Server 2008 R2, Windows 7, Hyper-V Server 2012 R2, Windows Server 2012) et elles se comportent toutes de la même manière. Je commence à accepter qu'il s'agit d'un «comportement normal» pour les machines Windows, mais je suis curieux de savoir s'il peut être arrêté.
J'ai créé une machine virtuelle Ubuntu avec la même configuration que mes machines virtuelles Windows - la machine virtuelle Ubuntu ne retombe pas sur la route par défaut comme le font les machines virtuelles Windows. J'ai ajouté les tables de routage et les résultats pour la machine virtuelle Ubuntu et la machine virtuelle Windows 8.1 au bas de cet article.
PLUS DE DÉTAILS
J'ai fait des recherches approfondies sur ce sujet et la question la plus proche que j'ai vue est ici: Boucle de routage: TTL a expiré en transit , mais malheureusement, il ne répond pas comment arrêter le problème ou modifier le comportement sur l'ordinateur. La réponse suggère de corriger le routage. Je peux changer mon routeur pour supprimer tout ce qui est destiné aux adresses IP privées (ou le transmettre aux adresses IP de mes colocataires, hehehe), mais cela ne changera pas le comportement de mon ordinateur. (J'ai également lu le grand guide de sous-réseau qui faisait référence dans la réponse d'origine, qui peut être trouvé à /server/49765/how-does-ipv4-subnetting-work )
Je n'arrive pas à comprendre pourquoi mes ordinateurs tentent de se connecter à des adresses IP privées sur Internet une fois qu'ils ont essayé d'utiliser leurs adaptateurs internes (pendant une courte période), puis ont échoué - par exemple, en essayant d'envoyer une requête ping à un hôte que je connais n'existe pas sur mon réseau…
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),
Mais cingler un hôte qui existe fonctionne…
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, donc la réponse du 172.16.200.1 est mon ordinateur disant qu'aucune réponse n'a été reçue… mais alors, pourquoi essaie- t-il même de se connecter via ma connexion Internet? J'ai 4 NIC et je suis sur le réseau 172.16.200.0 / 24 sur l'un d'eux…
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 . . . . . . . . . :
Donc, à ce stade, il serait logique de regarder la table de routage ...
===========================================================================
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
J'ai d'abord pensé que la métrique de la route 0.0.0.0 était le coupable - c'était à l'origine 6, alors j'ai essayé de la changer en 410, ce qui n'a pas changé le comportement. (Soit dit en passant, je n'ai jamais joué avec la table de routage sur cette machine auparavant). Je l'ai ensuite comparé à une machine Hyper-V 2012 R2 que j'ai sur 3 des mêmes réseaux (172.16.1.0, 172.16.100.0 et 172.16.200.0) et j'ai remarqué que la machine Hyper-V a également une métrique de 6 pour 0,0 .0.0, donc je suppose que c'est normal et correct…
J'ai ensuite essayé de changer le 172.16.200.0 pour qu'il soit un itinéraire persistant, comme ci-dessous, mais cela n'a toujours pas fonctionné.
===========================================================================
Persistent Routes:
Network Address Netmask Gateway Address Metric
172.16.200.0 255.255.255.0 172.16.1.1 1
===========================================================================
J'ai aussi essayé d'augmenter la métrique (je sais que plus bas est plus préféré, mais juste au cas où, hein?)… Bien sûr, pas de chance.
Dans les "Paramètres avancés" de la fenêtre Connexions réseau, j'ai confirmé que l'adaptateur 192.168.0.117 est le plus bas dans l'ordre des adaptateurs et des liaisons ...
Donc, après m'être cogné un peu la tête, je suis perplexe. Évidemment, la suppression de la route 0.0.0.0 l'arrête, mais bien sûr, cela arrêtera mon Internet aussi…
Comment diable puis-je empêcher ma machine d'essayer de passer par ma passerelle par défaut 192.168.0.1 lorsqu'elle tente d'atteindre un hôte le 172.16.200.0…
http://technet.microsoft.com/en-us/library/cc779122%28v=ws.10%29.aspx ("La table de routage IP: TCP / IP") semble suggérer que "La route par défaut transmet généralement un Datagramme IP (pour lequel il n'y a pas de route locale correspondante ou explicite) vers une adresse de passerelle par défaut pour un routeur sur le sous-réseau local. " Combien plus explicite puis-je obtenir avec cet itinéraire!
La réponse ici La passerelle de routage persistant Windows non disponible, donc la route par défaut utilisée suggère que c'est un comportement normal - quand une route persistante est ajoutée, elle essaiera d'utiliser cette route si possible, mais retombera sur la route par défaut en cas d'échec. Cela pourrait sûrement présenter des problèmes de trafic assez sérieux, sans parler des problèmes de sécurité (des informations privées qui fuient sur Internet, ou du moins vos réseaux privés FAI…)
Quelques informations supplémentaires: Ce serveur exécute généralement NPS / RRAS - le désactiver, et même le supprimer n'a rien fait. De plus, j'ai créé une toute nouvelle machine virtuelle 2008 R2, je lui ai donné deux cartes réseau, une directement sur le réseau 192.168.0.0, et l'autre sur le réseau 172.16.200.0 et cela a fait la même chose… J'espère que vous pouvez dire que j'ai passé un peu de temps là-dessus.
J'ai configuré mon routeur domestique pour retransmettre tous les éléments 172.16.XX à mon propre ordinateur, mais c'est une solution de contournement…
Y a-t-il quelque chose qui me manque? Quelque chose d'évident, peut-être? Suis-je demander l'impossible?
[MISE À JOUR # 1 ET # 2]
J'ai creusé tous les bits de configuration de mon routeur et il ne semble pas gérer les requêtes ARP proxy - il n'a même pas de paramètres que je puisse voir.
J'ai utilisé MS Network Monitor 3.4 pour tester si le routeur répond aux demandes ARP, et ce n'est pas le cas. Je peux voir la demande ARP envoyée lorsque j'essaie d'envoyer une requête ping à un hôte inexistant et je ne reçois aucune réponse ARP. Pinging un hôte qui existe, me donne naturellement une réponse ARP. Est-il sûr de supposer à ce stade que mon routeur ne gère pas les requêtes ARP proxy?
La table de routage sur le routeur était comme suit:
> 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
J'ai ajouté ces entrées ci-dessous en tant que mesure temporaire - cela empêche mes pauvres paquets "perdus" d'aller à mon FAI:
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
[MISE À JOUR # 3 - Ajout de tables de routage de machines virtuelles Ubuntu et Win8.1]
OK, j'ai donc créé une toute nouvelle machine virtuelle Ubuntu et une toute nouvelle machine virtuelle Windows 8.1. La machine virtuelle Ubuntu n'essaie pas de revenir à sa route 0.0.0.0, mais Windows 8.1 le fait. J'ai essayé l'ancien ping-a-inexistant-host et regardé le trafic sur le routeur 172.16.1.1. Il reçoit les demandes ICMP de la machine virtuelle Windows 8.1 et les transmet, mais il ne voit jamais aucun trafic ICMP de la machine virtuelle Ubuntu.
Le tableau Ubuntu VM est ci-dessous:
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
Le tableau Windows 8.1 est ci-dessous:
===========================================================================
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