Quelle est la différence entre la modification du fichier hosts et l'ajout d'un itinéraire statique dans l'invite de commande?

6

Si je voulais router une certaine adresse IP vers ma passerelle par défaut, puis-je le faire à la fois en utilisant le routage dans l'invite de commande Windows, ainsi que le fichier hosts?

Y a-t-il une différence?

Merci!

ppadru1
la source

Réponses:

8

Les HOSTSfonctions de commande de fichier et de route sont différentes les unes des autres et l’une ne peut être utilisée pour accomplir ce que l’autre fait.

Le HOSTSfichier vous permet de mapper un nom d’hôte spécifique, tel que www.google.com, sur une adresse IP spécifique. La commande route vous permet de spécifier la passerelle à utiliser lorsque vous essayez d'atteindre une certaine adresse IP (ou plus précisément un certain réseau).

Dans votre cas, vous voudrez utiliser la commande route, pas le HOSTSfichier.

Il convient de noter que toutes les adresses IP qui ne figurent pas sur votre sous-réseau local sont automatiquement routées via votre passerelle par défaut. Vous n'avez pas besoin d'ajouter manuellement un itinéraire pour accomplir cela.

Imitateur Twisty
la source
Il existe une exception: si, pour une raison quelconque, une adresse IP du sous-réseau est attribuée à une machine située de l’autre côté de la passerelle, vous devez spécifier directement que tel est le cas (j’ai du mal à comprendre pourquoi, mais cela pourrait probablement être en théorie).
cpast
1
Je ne peux pas penser à une configuration légitime dans laquelle deux segments de réseau souhaitant communiquer seraient configurés avec des adresses de sous-réseau en conflit. Si je rencontrais quelque chose comme cela, je considérerais cela comme quelque chose qui doit être réparé et non contourné.
Twisty Impersonator
@ Twisty mon réseau local (derrière NAT) utilise 192.168.2.x; Je communique via un tunnel ssh avec un autre réseau local (également derrière NAT) à l'aide de 192.168.2.x. Aucun des deux bouts ne veut vraiment prendre la peine de changer de sous-réseau, et jusqu'ici le routage d'adresses spécifiques sur le tunnel fonctionne pour moi :)
MM
@ Matt Très bon point. Je jugerais quand même que cette configuration est contraire à la conception du réseau, mais je ne devrais pas rejeter trop rapidement le cas où une bonne conception et le monde réel ne sont pas compatibles.
Twisty Impersonator
2

acheminer une certaine adresse IP vers ma passerelle par défaut

Voici ce que cela signifie: Vous indiquez à votre pile TCP / IP que "l'adresse IP spécifique" est accessible via votre passerelle par défaut.

Ainsi, votre pile TCP / IP, utilisée par toutes les applications de votre système, enverra TOUT trafic avec l'adresse IP de destination à votre passerelle par défaut.

Les règles de routage n'ont aucun concept de nom de domaine ou DNS. Ils fonctionnent uniquement avec des adresses IP et des masques de sous-réseau.


Votre fichier hosts est utilisé par un résolveur DNS - qui peut se trouver dans différentes bibliothèques / dll de votre système.

Ce qui est censé se produire est que le résolveur DNS, qui est normalement appelé à chaque fois qu'une application souhaite trouver l'adresse IP d'un nom de domaine, va d'abord rechercher dans ce fichier le fichier converti en une adresse IP. Si ce n'est pas là, il interroge un serveur DNS.

(Ce comportement est configurable sous Linux et vraisemblablement sous Windows. Sous Linux, vous pouvez lui indiquer de ne pas consulter le fichier ou de consulter le fichier en second si l'interrogation d'un serveur DNS échoue en premier).

Si cette recherche DNS ne se produit pas, le hostsfichier n'aura aucun effet.

L'adresse IP renvoyée est uniquement utilisée par l'application qui l'a demandée. Les règles de routage peuvent toujours avoir un effet une fois que l'application envoie quelque chose à cette adresse IP.


Donc, vous ne pouvez pas utiliser votre hostsfichier dans le même but que la configuration de votre passerelle par défaut.

LawrenceC
la source
0

Le fichier hosts est utilisé pour mapper un nom d'hôte (tel que localhost ou superutilisateur.com ) sur une adresse IP. Cela implique le DNS, pas le routage - vous ne pouvez donc pas utiliser le fichier hosts.

Je ne peux cependant pas vous expliquer comment utiliser une route statique pour accomplir ce que vous voulez faire.

mjt
la source