DNS répond uniquement à nslookup dans Windows 7

J'ai un problème DNS intéressant dans AD (2008R2) que je ne peux pas trouver un moyen de déboguer. Principalement si de la ligne de commande j'essaye

ping <machinename> 

Puis je reçois la réponse que le hostr n'est pas trouvé. Mais quand je fais

 nslookup <machinename> 

Je reçois la réponse correcte de mon DNS avec les enregistrements AAAA et A appropriés. Quelqu'un a une idée de ce qui pourrait causer cela?

Les machines clientes exécutent Windows 7 Enterprise.

Assurez-vous que HOSTS et LMHOSTS n'aient rien de drôle. Nslookup fonctionne en parlant directement au serveur DNS, tandis que le ping de résolution de noms utilise le système d'exploitation. Cela signifie que votre fichier HOSTS pourrait être vissé, ou s'il y a corruption sur Winsock, etc.

Puisque nous jouons avec IPv4 et IPv6, qu'est-ce qui se passe lorsque vous faites ping l'hôte -4 et ping host -6?

Vous pouvez également désactiver WINS / NetBIOS

Texte alt

Les commentaires précédents sont exacts. Je voudrais simplement ajouter que cela PEUT être une séquence pour la résolution des noms. Au moins, cela existe sous Linux comme un fichier nommé / etc / nsswitch. Par défaut, un fichier HOST local résoudra les noms AVANT d'invoquer un serveur de noms. En ce qui concerne les adresses IP réelles des serveurs de noms, celles-ci sont configurées dans le Panneau de configuration -> Réseau

Habituellement, le fichier HOSTS se trouve sous C: \ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC

Ce fichier peut être édité à l'aide du bloc-notes. J'utilise ce fichier tout le temps sur les différents serveurs Windows virtuels que j'ai.

Je viens d'avoir exactement le même problème. Pour moi, le problème a été causé par la définition de plusieurs serveurs DNS. Mes paramètres IPv4 ont été définis sur DHCP avec le DNS principal défini sur mon routeur et le DNS secondaire défini sur un serveur DNS Google. Bien que la commande n'a pas d'importance.
Lorsque je commute pour utiliser le serveur DNS fourni via DHCP, le problème est résolu. L'ajout de serveurs DNS retourne le problème.

Je ne comprend vraiment pas la cause principale de ceci. Mais peut-être que c'est le même problème pour vous.

J'ai rencontré Windows Vista en cache des entrées null dns si un serveur dns n'était pas disponible. L'exécution "ipconfig / flushdns" les a effacés. En fonction de la cause principale, cela ne peut être qu'un correctif de bande interdite, mais envisagez de désactiver la mise en cache des résultats dns négatifs. Il y a des instructions correctes ici

J'ai eu un problème similaire, que j'ai résolu en modifiant les paramètres DHCP de mon routeur pour donner à mon réseau local un domaine et les entrées DNS statiques pour mettre chaque hôte dans ce domaine.

Cependant, j'ai trouvé quelques publications sur le forum qui décrivent un problème similaire qui avait des symptômes subtilement différents et une solution différente (un changement de registre), donc je vais décrire mon problème en détail pour le distinguer de cela.

Mon problème

Je recevais récemment un nouveau routeur (un Mikrotik) et je l'ai configuré pour assigner à chaque hôte sur mon réseau une adresse IP statique et donner à chaque hôte un nom d'hôte DNS local (et seulement un nom d'hôte). Cela a bien fonctionné dans UNIX / Linux / Mac OS X, mais Windows a eu des problèmes.

Sur Windows, je ne pouvais pas faire de ping sur certains hôtes par leur nom, même si je pouvais les rechercher via nslookup et les faire ping par IP:

 C:\>nslookup router Server: router Address: 192.168.22.1 Non-authoritative answer: Name: router Address: 192.168.22.1 C:\>ping router Ping request could not find host router. Please check the name and try again. C:\>ping 192.168.22.1 Pinging 192.168.22.1 with 32 bytes of data: Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.22.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\>nslookup overkill Server: router Address: 192.168.22.1 Non-authoritative answer: Name: nas_server Address: 192.168.22.5 

Mais, étrangement, d'autres travaillaient:

 C:\>ping nas_server Pinging nas_server [192.168.22.5] with 32 bytes of data: Reply from 192.168.22.5: bytes=32 time<1ms TTL=64 Reply from 192.168.22.5: bytes=32 time<1ms TTL=64 Reply from 192.168.22.5: bytes=32 time<1ms TTL=64 Reply from 192.168.22.5: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.22.5: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\> 

J'ai utilisé Wireshark pour enquêter plus loin et j'ai constaté que la commande ping ne provoquait aucun envoi de paquets DNS, seuls les paquets NetBIOS Name Service . Cela échouerait pour mon routeur, mais il réussirait pour mon serveur NAS (parce que le NAS exécutait Samba). Le nslookup a utilisé le DNS, c'est pourquoi il fonctionnait pour tout.

Wireshark capture à partir de ping: Wireshark Capture de ping

Le problème de la racine était que Windows utilise le NetBIOS Name Service au lieu de DNS dans certains cas (comme lorsque l'hôte n'a pas de domaine).

Ma solution

Remarque: les captures d'écran proviennent de l'écran de configuration de mon routeur, mais elles illustrent des concepts généraux.

J'ai configuré mon serveur DHCP pour indiquer à tous les hôtes qu'ils faisaient partie d'un domaine: Configuration DHCP

Ensuite, j'ai configuré toutes mes entrées DNS statiques pour placer tous les hôtes dans ce domaine: Entrée DNS statique

Ensuite, j'ai effacé toutes les informations DHCP / DNS de Windows:

 C:\>ipconfig /release C:\>ipconfig /renew C:\>ipconfig /flushdns 

Et tout a fonctionné!

 C:\>ping router Pinging router.localnet [192.168.22.1] with 32 bytes of data: Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Reply from 192.168.22.1: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.22.1: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\> 

Out of the box Windows 7 désactive la réponse au ping dans le pare-feu Windows. Vous devrez l'allumer dans toutes les machines clientes. Je ne sais pas si cela peut se faire via une stratégie de groupe. Voici comment le faire sur Vista, je suppose que 7 est le même.