Comment trouver le serveur de noms faisant autorité pour un nom de domaine ?

StackOverflow https://stackoverflow.com/questions/38021

  •  09-06-2019
  •  | 
  •  

Question

Comment puis-je trouver l’origine des enregistrements DNS contradictoires ?

Était-ce utile?

La solution

Vous aurez besoin de l'enregistrement SOA (Start of Authority) pour un nom de domaine donné, et voici comment y parvenir en utilisant le système universellement disponible. nslookup outil de ligne de commande :

command line> nslookup
> set querytype=soa
> stackoverflow.com
Server:         217.30.180.230
Address:        217.30.180.230#53

Non-authoritative answer:
stackoverflow.com
        origin = ns51.domaincontrol.com # ("primary name server" on Windows)
        mail addr = dns.jomax.net       # ("responsible mail addr" on Windows)
        serial = 2008041300
        refresh = 28800
        retry = 7200
        expire = 604800
        minimum = 86400
Authoritative answers can be found from:
stackoverflow.com       nameserver = ns52.domaincontrol.com.
stackoverflow.com       nameserver = ns51.domaincontrol.com.

Le origine (ou serveur de noms principal sous Windows) vous indique que ns51.domaincontrol est le serveur de noms principal pour stackoverflow.com.

À la fin de la sortie, tous les serveurs faisant autorité, y compris les serveurs de sauvegarde pour le domaine donné, sont répertoriés.

Autres conseils

Vous avez utilisé le singulier dans votre question mais il existe généralement plusieurs serveurs de noms faisant autorité, la RFC 1034 en recommande au moins deux.

Sauf si vous voulez dire « serveur de noms principal » et non « serveur de noms faisant autorité ».Les serveurs de noms secondaires sont faisant autorité.

Pour connaître les serveurs de noms d'un domaine sous Unix :

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.

Pour connaître le serveur répertorié comme principal (la notion de "primaire" est assez floue de nos jours et n'a généralement pas de bonne réponse) :

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.

Pour vérifier les divergences entre les serveurs de noms, ma préférence va à l'ancien check_soa outil, décrit dans le livre "DNS & BIND" de Liu & Albitz (éditeur O'Reilly).Le code source est disponible dans http://examples.oreilly.com/dns5/

% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300

Ici, les deux serveurs de noms faisant autorité ont le même numéro de série.Bien.

Le *nix :

$ dig -t ns <domain name>

j'ai un Outil de propagation DNS conçu pour répondre à ce genre de questions.

La source est publiée sous AGPLv3.

(Oui, l'interface est plutôt basique pour le moment :) )

Vous pouvez également connaître les serveurs de noms d'un domaine avec la commande "host" :

[davidp@supernova:~]$ host -t ns stackoverflow.com
stackoverflow.com name server ns51.domaincontrol.com.
stackoverflow.com name server ns52.domaincontrol.com.

J'ai trouvé que la meilleure façon d'ajouter toujours l'option +trace :

dig SOA +trace stackoverflow.com

Il fonctionne également avec CNAME récursif hébergé chez différents fournisseurs.+trace trace implique +norecurse donc le résultat concerne uniquement le domaine que vous spécifiez.

Le terme que vous devriez rechercher sur Google est « faisant autorité » et non « définitif ».

Sous Linux ou Mac, vous pouvez utiliser les commandes whois, dig, host, nslookup ou plusieurs autres. nslookup peut également fonctionner sous Windows.

Un exemple:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

Quant au crédit supplémentaire :Oui c'est possible.


aryeh a définitivement tort, car sa suggestion ne vous donnera généralement que l'adresse IP du nom d'hôte.Si tu utilises dig, vous devez rechercher les enregistrements NS, comme ceci :

dig ns stackoverflow.com

Gardez à l'esprit que cela peut demander à votre serveur DNS local et ainsi donner des réponses erronées ou obsolètes qu'il a dans son cache.

Nous avons construit un outil de recherche DNS cela vous donne le domaine serveurs de noms faisant autorité et ses enregistrements DNS communs en une seule requête.

Exemple: https://www.misk.com/tools/#dns/stackoverflow.com

Notre outil trouve les serveurs de noms faisant autorité en effectuant une recherche DNS en temps réel (non mise en cache) sur les serveurs de noms racine, puis en suivant les références des serveurs de noms jusqu'à ce que nous atteignions les serveurs de noms faisant autorité.C'est la même logique que celle utilisée par les résolveurs DNS pour obtenir des réponses faisant autorité.Un serveur de noms faisant autorité aléatoire est sélectionné (et identifié) sur chaque requête, vous permettant de trouver des enregistrements DNS conflictuels en effectuant plusieurs requêtes.

Vous pouvez également afficher le chemin de délégation du serveur de noms en cliquant sur « Serveurs de noms faisant autorité » au bas des résultats de la recherche DNS de l'exemple ci-dessus.

Exemple: https://www.misk.com/tools/#dns/stackoverflow.com@f.root-servers.net

Vous pouvez utiliser le service whois.Sur un système d'exploitation de type UNIX, vous exécuterez la commande suivante.Alternativement, vous pouvez le faire sur le Web à l'adresse http://www.internic.net/whois.html.

qui est stackoverflow.com

Vous obtiendrez la réponse suivante.

...texte supprimé ici...

Serveurs de domaine dans l'ordre répertorié :Ns51.domaincontrol.com NS52.DomainControl.com

Vous pouvez utiliser nslookup ou creuser pour obtenir plus d'informations sur les enregistrements d'un domaine donné.Cela pourrait vous aider à résoudre les conflits que vous avez décrits.

Malheureusement, la plupart de ces outils renvoient uniquement l'enregistrement NS tel que fourni par le serveur de noms lui-même.Pour être plus précis dans la détermination des serveurs de noms qui sont réellement responsables d'un domaine, vous devez soit utiliser "whois" et vérifier les domaines qui y sont répertoriés OU utiliser "dig [domain] NS @[root name server]" et l'exécuter. récursivement jusqu'à ce que vous obteniez la liste des serveurs de noms...

J'aurais aimé qu'il y ait une ligne de commande simple que vous puissiez exécuter pour obtenir CE résultat de manière fiable et dans un format cohérent, pas seulement le résultat fourni par le serveur de noms lui-même.Le but pour moi est de pouvoir interroger environ 330 noms de domaine que je gère afin de pouvoir déterminer exactement vers quel serveur de noms chaque domaine pointe (selon les paramètres de son registraire).

Quelqu'un connaît-il une commande utilisant « dig » ou « host » ou autre chose sur *nix ?

Les enregistrements SOA sont présents sur tous les serveurs situés plus haut dans la hiérarchie, sur lesquels le propriétaire du domaine n'a AUCUN contrôle, et ils pointent tous en fait vers le seul serveur de noms faisant autorité sous le contrôle du propriétaire du domaine.

L'enregistrement SOA sur le serveur faisant autorité lui-même n'est, en revanche, pas strictement nécessaire à la résolution de ce domaine et peut contenir de fausses informations (ou des serveurs principaux cachés ou autrement restreints) et ne doit pas être utilisé pour déterminer le serveur de noms faisant autorité. pour un domaine donné.

Vous devez interroger le serveur qui fait autorité pour le domaine de premier niveau pour obtenir des informations SOA fiables pour un domaine enfant donné.

(Les informations sur quel serveur fait autorité pour quel TLD peuvent être interrogées auprès des serveurs de noms racine).

Lorsque vous disposez d'informations fiables sur la SOA provenant du serveur faisant autorité TLD, vous pouvez alors interroger le serveur de noms principal lui-même faisant autorité (celui qui se trouve dans l'enregistrement SOA sur le serveur de noms gTLD !) pour tout autre enregistrement NS, puis procéder à la vérification de tous. ces serveurs de noms que vous avez obtenus en interrogeant les enregistrements NS, pour voir s'il y a une incohérence pour un autre enregistrement particulier, sur l'un de ces serveurs.

Tout cela fonctionne beaucoup mieux/fiable avec Linux et dig qu'avec nslookup/windows.

Un moyen simple consiste à utiliser un outil de domaine en ligne.Mon favori est Outils de domaine (anciennement whois.sc).Je ne sais pas s'ils peuvent résoudre les enregistrements DNS contradictoires.À titre d'exemple, les serveurs DNS de stackoverflow.com sont

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top