La résolution DNS échoue dans le navigateur Web mais nslookup réussit

9

Nous sommes une petite organisation de 300 places avec un environnement mixte BYOD et Active Directory (Windows Server 2012 Standard, Windows 7 Enterprise) et nous rencontrons un problème très étrange impliquant des échecs de portée très spécifique pour résoudre le nom de domaine de notre organisation sur notre domaine -machines jointes contrôlées par l'entreprise. Aux fins de cette discussion, j'utiliserai company.com au lieu de notre nom de domaine.

Contexte:

  • Le contrôleur de domaine Active Directory est situé au 172.16.1.3
  • La machine AD / DC exécute également DHCP, DNS et HTTP (IIS)
  • Les sites Web de nos organisations sur company.com et subdomain.company.com sont hébergés par IIS sur la machine AD / DC
  • Nous avons un scénario DNS fractionné dans lequel le serveur AD / DC est utilisé pour la résolution DNS interne, mais un serveur différent hors site fournit une résolution DNS pour les requêtes publiques
  • L'adresse IP correspondant à company.com et subdomain.company.com est l'adresse IP publique utilisée par un pare-feu en bordure de notre réseau (à la fois sur le serveur DNS AD / DC et le serveur DNS hors site)
  • Le pare-feu est correctement configuré pour que NAT transmette les requêtes HTTP et HTTPS qu'il reçoit sur son adresse IP publique à l'IP interne du serveur AD / DC et reflète

Scénario 1:

  • Un utilisateur sur une machine Windows 7 Enterprise appartenant à un domaine est connecté directement à notre réseau local avec l'adresse locale 172.16.6.100 / 16, émise par le serveur DHCP.
  • L'entrée du serveur DNS est fournie par DHCP (172.16.1.3)
  • Cet utilisateur peut accéder aux sites Web hébergés sur company.com et subdomain.company.com
  • Edit: nslookup a été exécuté dans ce scénario et renvoie correctement l'enregistrement DNS approprié à partir du serveur DNS interne (172.16.1.3)

Scénario 2:

  • Le même utilisateur sur la même machine Windows 7 Enterprise appartenant au domaine rentre chez lui et se connecte à Internet à l'aide de son FAI résidentiel
  • Les entrées de serveur IP et DNS pour la machine client sont fournies par DHCP
  • Cet utilisateur peut accéder à toutes les ressources Internet, telles que google.com
  • Cet utilisateur ne peut pas accéder au site Web à company.com ou subdomain.company.com (une erreur "hôte non résolu" est renvoyée)
  • Lorsque l' utilisateur exécute ce NsLookup sur company.com ils NE reçoivent l'adresse IP publique correcte fournie par DNS
  • Les requêtes HTTP / HTTPS à l'adresse IP réussissent et une page Web est renvoyée correctement par le serveur
  • Ce problème prévaut dans tous les navigateurs Web
  • L'utilisation de tracert company.com renvoie «impossible de résoudre le nom du système cible»
  • L'utilisation de ping company.com renvoie "impossible de trouver l'hôte company.com"
  • Lors de l'exécution de Wireshark sur le client avant / pendant une demande ayant échoué, aucun paquet n'est envoyé par la machine cliente (que ce soit pour la résolution DNS ou pour une demande HTTP / ping / tracert initiale)
  • Le redémarrage du service client DNS ne résout pas le problème
  • L'arrêt du service client DNS ne résout pas le problème
  • L'utilisation d' ipconfig / flushdns ne résout pas ce problème
  • L'utilisation de route / f ne résout pas ce problème
  • La réinitialisation des connexions réseau à l'aide de netsh int ip reset ne résout pas ce problème
  • Modifier: nslookup a été exécuté dans ce scénario et renvoie correctement l'enregistrement DNS approprié à partir du serveur DNS spécifié par les paramètres DHCP du réseau utilisé par l'utilisateur

Scénario 3:

  • Ce même utilisateur sur un ordinateur Windows 7 Professionnel personnel (non joint à un domaine) peut accéder aux sites Web à company.com et subdomain.company.com lorsqu'il est connecté à notre réseau local
  • Edit: nslookup a été exécuté dans ce scénario et renvoie correctement l'enregistrement DNS approprié à partir du serveur DNS interne (172.16.1.3)

Scénario 4:

  • Ce même utilisateur sur un ordinateur Windows 7 Professionnel personnel (non joint à un domaine) peut accéder aux sites Web à company.com et subdomain.company.com lorsqu'il est connecté à son réseau domestique
  • Modifier: nslookup a été exécuté dans ce scénario et renvoie correctement l'enregistrement DNS approprié à partir du serveur DNS spécifié par les paramètres DHCP du réseau utilisé par l'utilisateur

Notes finales:

Ce problème semble être généralisé pour affecter tous les ordinateurs appartenant à l'entreprise. Nous utilisons une image système commune pour tous les ordinateurs appartenant à l'entreprise, qui vient d'être chargée en août. J'ai parcouru Internet à la recherche de solutions possibles et j'ai trouvé les mains vides jusqu'à présent - j'apprécie vraiment toutes les suggestions ou conseils que vous pourriez avoir.

Dan
la source
2
Exécuter des sites Web sur vos contrôleurs de domaine, hein? Ce n'est pas bueno.
Ryan Ries
1
Oui, je suis d'accord. Les budgets sont serrés, que puis-je dire. Peut-être à l'avenir ...
Dan
1. Configurez-vous des paramètres DNS sur les machines jointes au domaine avec la stratégie de groupe? 2. L'exécution de nslookup en mode débogage pour chaque scénario vous donnera probablement des indices.
joeqwerty
Merci pour la suggestion. Le DNS est fourni par le serveur DHCP, pas la stratégie de groupe, donc quand un utilisateur quitte notre bâtiment physique, il reçoit le serveur DNS du réseau auquel il se connecte. J'ai exécuté nslookup dans tous les cas, et il renvoie les paramètres DNS corrects dans tous les cas (y compris le cas d'échec dans le scénario 2). Le problème semble être que, pour une raison quelconque, les navigateurs Web ne prennent même pas la peine d'aller jusqu'à nslookup - comme décrit ci-dessus, ils échouent simplement sans initier de transaction réseau dans le scénario 2.
Dan
Puis-je faire l'hypothèse qu'ils peuvent y accéder www.company.commais pas seulement company.comou les deux échouent-ils?
TheCleaner

Réponses:

1

Les ordinateurs joints au domaine vont chercher leur contrôleur de domaine, et pas seulement faire une recherche basée sur DNS. Étant donné que le domaine est le même que le site Web public, ils vont rechercher un enregistrement SRV pour leur dire comment se rendre au contrôleur de domaine et obtenir des informations sur le domaine. Puisqu'il n'y a pas de contrôleur de domaine dans le réseau distant, ils ne peuvent pas résoudre ce nom en utilisant des parties Windows normales prenant en charge AD.

Lorsque vous utilisez ping ou (presque) n'importe quelle application Windows, il utilise la pile IP Windows complète, y compris les parties qui parlent à AD. Alors que NSLookup ne fait en fait qu'une requête DNS. Vous avez vérifié cela avec vos traces Wireshark, aucune recherche n'est effectuée par Windows lorsque vous essayez d'accéder à company.com, mais nslookup affiche une recherche DNS appropriée. C'est pourquoi vous ne pouvez pas résoudre le domaine via ping ou navigateur Web, mais nslookup est très bien.

La première solution consiste à utiliser www.company.com pour accéder au site Web à la fois en interne et en externe afin que les clients ignorent complètement la recherche d'un contrôleur de domaine.

La solution pour la deuxième partie est plus délicate en fonction de ce à quoi subdomain.company.com fait référence en interne comme en externe. Le contrôleur de domaine a-t-il un enregistrement DNS pour le sous-domaine, ou ces demandes sont-elles simplement envoyées au serveur DNS externe? S'il a un enregistrement DNS, où va cet enregistrement?

RobbieCrash
la source
0

Je vérifierais que le fichier HOSTS ( http://en.wikipedia.org/wiki/Hosts_%28file%29#Location_in_the_file_system ) sur la machine ne contient aucune entrée pour les hôtes auxquels vous essayez d'accéder. Je pense que l'outil NSLOOKUP contourne le fichier hosts mais pas le navigateur Web.

Je vérifierais également que vous n'avez pas de proxy configuré dans le navigateur Web car certains types de proxy résolvent également le DNS.

J'essaierais également d'exécuter le navigateur dans son "mode sans échec" (c'est-à-dire avec tous les addons et plugins désactivés) avec IE ("iexplore -extoff") ou Firefox (maintenez la touche Maj enfoncée lors du démarrage ou "firefox -safe-mode").

Idéalement, si possible, essayez avec un autre navigateur Web de préciser s'il s'agit du navigateur Web ou du système d'exploitation.

Ensuite, si je n'obtenais toujours rien, je vérifierais quels services sont liés à la carte réseau (pare-feu fou avec des règles spécifiques qui entravent?)

Enfin, et cela est de plus en plus improbable, mais NSLOOKUP ajoutera automatiquement le nom de domaine spécifique de l'ordinateur ou de la connexion aux requêtes. Par exemple, mon routeur définit le nom de domaine comme "routeur", donc toute recherche de quelque chose comme "matthew" recherche en fait DNS pour "matthew.router", il est possible que le navigateur Web ne le fasse pas .. comme vous l'avez dit, vous avez fait un paquet capturer cela ne sonne pas comme si c'était votre problème .. mais juste au cas où vous l'auriez manqué dans la capture de paquets ou votre environnement de capture n'était pas tout à fait correct :-).

Ce sont les choses que j'essaierais et j'espère que cela vous aidera aussi :-).

Matthew1471
la source