J'ai un problème de résolution DNS qui affecte les performances de mon site Web hébergé localement lors de sa navigation sur ma machine locale. Si j'attache le suffixe DNS de mon réseau au nom de ma machine locale lorsque je vais à l'URL dans mon navigateur, le site a des temps de chargement terribles (100 fois plus lents) que sans le suffixe DNS.
J'ai pensé que je pouvais résoudre ce problème en utilisant mon fichier d'hôtes pour éviter d'avoir à effectuer une recherche. J'ai ajouté une entrée à mon fichier d'hôtes comme celle-ci
127.0.0.1 myMachine.MyDnsSuffix
Mais cela n'a pas changé les temps de chargement, même après un redémarrage. Bien qu'il ne soit pas important de résoudre ce problème spécifique, j'aimerais vraiment savoir pourquoi cela se produit.
De plus, lorsque j'exécute nslookup sur le domaine myMachine.MyDnsSuffix
, je remarque qu'il utilise le serveur DNS de mon réseau pour trouver l'IP. Cela pourrait-il être lié à mon problème ou suis-je simplement en train de mal comprendre comment fonctionne nslookup?
la source
nslookup
. J'ai juste essayé de cingler lemyMachine.MyDnsSuffix
et il a résolu mon IP sur le réseau, pas127.0.0.1
comme spécifié dans mon fichier HOSTS.ipconfig /flushdns
. Et les NETBIOS cache aussi:nbtstat -R
. (Respect de la casse dans les fenêtres - WTF, pourquoi?!?)Les recherches DNS n'utilisent pas de fichier d'hôtes. Déjà.
la source
gethostbyname()
peut passer par le fichier hosts ou via DNS, mais une recherche spécifique au DNS (telle qu'exécutée parnslookup
) n'utilisera pas le fichier hosts.OK, nouvelle approche. Laissez-nous vider votre cache IP et NETBIOS.
ipconfig /flushdns
etnbtstat -R
. Ensuite, lancez un renifleur de paquets comme Wireshark et faites un ping pendant qu'il est en cours d'exécution.À partir de la capture de paquets, nous voulons voir si A) Il y a une requête DNS qui sort, et si oui, quel nom demande-t-elle. B) S'il y a une requête NETBIOS en cours. Il est possible que ce nom soit résolu via NETBIOS au lieu d'un DNS approprié.
Si nous ne voyons aucun des éléments ci-dessus malgré le vidage de votre cache, il est probable que le nom soit extrait soit des hôtes soit des lmhosts.
la source
Certaines personnes sur les forums Web affirment que la création d'un nouveau fichier d'hôtes et le redémarrage du service client DNS corrigent le problème, mais je ne sais pas pourquoi cela fonctionnerait si vous avez déjà essayé de redémarrer.
Je me rends compte que c'est un long shot, mais il n'y a pas de mots liés à Microsoft comme MSDN, Microsoft ou MSN dans l'entrée du fichier hosts, n'est-ce pas? Microsoft a écrit dnsapi.dll pour ignorer les entrées du fichier hôtes correspondant à certains noms. Par exemple, si j'ajoute l'entrée suivante, Windows l'ignore et résout les deux noms d'hôtes dans l'entrée à l'aide de DNS:
la source
HOSTS
fichier, mais même le domaine non MS est ignoré s'il partage une entrée avec un domaine MS? C'est juste une mauvaise programmation de leur part. C'est certainement quelque chose à rechercher si vous «réduisez» unHOSTS
fichier.Lorsque vous utilisez le nom DNS complet, votre navigateur tente de passer par votre serveur proxy - clicky pour IE .
Le fichier hosts ou l'ordre de résolution de nom n'a rien à voir avec ce problème, et la plaie purulente à l'arrière de l'humanité qui est le fichier hosts doit être retirée et abattue bruyamment.
la source
http://geekswithblogs.net/JanS/archive/2009/06/17/beware-of-spacing-in-windows7-hosts-file.aspx
Cela semble être la cause réelle. Laissez à Microsoft le soin d'ignorer soudainement et sans avertissement une convention vieille de 25 ans.
la source
http://www.tweaksforgeeks.com/windows7/2011/02/windows-7-hosts-file-ignored <- Travaillez pour moi!
la source