Comportement attendu avec des entrées de fichier d'hôtes NT en double?


12

Je sais que vous ne devriez pas avoir d'entrées en double dans votre fichier d'hôtes Windows NT windows\system32\drivers\etc\hosts, mais quel est le comportement attendu si vous les avez?

Vous pouvez avoir plusieurs entrées avec le même nom d'hôte mais des adresses différentes dans le fichier d'hôtes Windows NT ( windows\system32\drivers\etc\hosts). Lorsque vous accédez à cet hôte sur le réseau, le système DNS Windows le résoudra en l'une de ces entrées. Comment savoir quelle entrée sera utilisée?

Par exemple:

127.0.0.1    mydomain.com
192.168.1.1  mydomain.com

Edit : Cet exemple particulier semble forcer un comportement spécial. Le bouclage semble remplacer toute entrée, indépendamment de l'ordre.

Ou:

192.168.1.2  mydomain.com
192.168.1.1  mydomain.com

Je vois la première entrée de la liste avoir la priorité.

Mais le comportement que je vois est-il garanti, est-il spécifique à la version ou est-il généralement peu fiable?

La raison pour laquelle je demande, c'est parce que j'écris des scripts pour gérer les hôtes, et j'essaie de savoir si je peux en sélectionner de manière fiable l'un à supprimer / commenter, et m'attendre à ce qu'il n'y ait pas d'impact sur le système de l'utilisateur.


Je viens de remarquer que cela 127.0.0.1semble forcer un comportement spécial. J'ai édité la question à poser sur les différents scénarios ...
Merlyn Morgan-Graham

Qui a dit qu'on ne pouvait pas avoir plusieurs entrées avec le même nom de domaine et différentes adresses IP? Certainement pas Microsoft. C'est une chose parfaitement légitime, selon Microsoft.
JdeBP

@JdeBP: Je sais que cela est à la limite d'une deuxième question, mais si un hôte est multi-hébergé, qu'est-ce que cela signifie et comment cela m'est-il utile? Si je le cingle, je n'aurai qu'une seule adresse. Pareil si j'essaye de lui servir au terminal. BTW, votre lien est très utile pour moi, car il sauvegarde le comportement que j'ai décrit dans ma question. Vous devriez écrire une réponse :)
Merlyn Morgan-Graham

J'ai essayé de modifier la question pour la rendre moins inexacte, sur la base du commentaire de JdeBP.
Merlyn Morgan-Graham

Réponses:


5

Seul le premier sera lu. Une fois le nom résolu, aucune autre lecture du fichier n'a lieu.


Un: Vous contredisez la question. Deux: le hostsfichier est lu dans son intégralité lorsque le service client DNS est activé, et plusieurs entrées avec le même nom de domaine sont tout à fait légitimes.
JdeBP

@Synetech: Pouvez-vous préciser quelle partie est incorrecte? Est-ce la partie JdeBP déjà mentionnée sur l'OP (que vous pouvez avoir plusieurs entrées avec le même domaine) ou y a-t-il autre chose que j'ai raté? :)
Merlyn Morgan-Graham

5

Plusieurs entrées avec le même nom de domaine sont autorisées et utiles dans certains scénarios.

Comme je l'ai décrit dans ma question, il semble que dans les cas "normaux", où ces adresses sont accessibles par le même adaptateur, la première adresse semble être celle qui est prise. Si l'une de ces entrées est loopback ( 127.0.0.1), elle peut cependant avoir la priorité.

Parfois, il est logique d'avoir plusieurs entrées avec le même nom de domaine, même si aucune des adresses ne correspond à l'adaptateur de bouclage, si l'ordinateur est multi-hébergé ou multi-adressable . (Merci JdeBP pour l'info dans les commentaires sur mon OP).

un nom d'hôte DNS unique peut correspondre à plusieurs adresses IP si chacune des adresses est mappée et utilisée sur des lignes distinctes. Par exemple, vous pouvez ajouter des lignes pour l'ordinateur hôte DNS multi-hôte ou multi-adressable suivant:

10.0.0.1  host-a.example.microsoft.com
10.0.0.2  host-a.example.microsoft.com
10.0.0.3  host-a.example.microsoft.com

Je crois que la préférence / priorité de l'adaptateur peut jouer un rôle ici (que vous pouvez configurer dans les paramètres réseau), bien que je ne puisse pas le tester. Le bouclage viendra très probablement toujours en premier dans la préférence de l'adaptateur.


Je ne peux pas tester la préférence / priorité de l'adaptateur à ce stade, veuillez donc commenter si vous savez que cela est correct ou incorrect.
Merlyn Morgan-Graham

1

J'ai essayé il y a 5 minutes et il fonctionne sans serveur DNS de la manière suivante dans le fichier des hôtes Windows:

ip1, ip2, ipx nom_à_résoudre

Désolé pour mon anglais...


pourriez-vous expliquer en bref comment cela répond à la question
BlueBerry - Vignesh4303

0

> Le bouclage semble remplacer toute entrée, indépendamment de l'ordre.

Vous êtes-vous assuré de fermer et de réexécuter le client (navigateur?) Après avoir effectué la modification? Si vous ne le faites pas, il utilisera probablement les anciennes valeurs et ne verra pas le changement dans l'ordre jusqu'à ce qu'il soit redémarré. De plus, si le service Client DNS est en cours d'exécution, les anciennes valeurs sont mises en cache, vous ne verrez donc pas la modification.

J'ai fait quelques tests et il semble que la première entrée soit toujours celle qui est utilisée.

Assurez-vous de redémarrer le client pour vous assurer qu'il relit le fichier HOSTS, et si vous avez le service client DNS en cours d'exécution, exécutez également ipconfig /flushdns


Je ne me souviens pas si je l'ai fait ou non, car j'y travaillais il y a entre 3 et 8 mois. Mais bon point et merci de vérifier cela. Avez-vous plusieurs adaptateurs et pouvez-vous vérifier si les paramètres de préférence d'adaptateur que j'ai mentionnés dans ma réponse automatique ont un impact?
Merlyn Morgan-Graham

1
En fait, plusieurs NIC ont été récemment discutés .
Synetech
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.