352 votes

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

Comment puis-je trouver l'origine d'enregistrements DNS conflictuels ?

453voto

Antti Sykäri Points 10381

Vous souhaitez obtenir l'enregistrement SOA (Start of Authority) pour un nom de domaine donné, et voici comment y parvenir en utilisant le logiciel universellement disponible nslookup en 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.

En origine (ou serveur de noms primaire 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 secours pour le domaine donné, sont répertoriés.

181 votes

Nslookup -type=soa stackoverflow.com

0 votes

Parmi tous les outils présentés ci-dessous, nslookup est le seul qui soit également disponible sur la ligne de commande de MS-Windows. La méthode ci-dessus fonctionne parfaitement sous Windows 7.

7 votes

Cependant, sous Windows, je n'arrive pas à voir la réponse "Authoritative answers". J'ai Windows 8 et Ubuntu 12 côte à côte et la même commande pour le même domaine fonctionne correctement sur Ubuntu mais pas sur Windows.

187voto

bortzmeyer Points 12246

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

À moins que vous ne vouliez 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 listé comme primaire (la notion de "primaire" est assez floue de nos jours et n'a généralement pas de réponse satisfaisante) :

% 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'ancienne méthode check_soa décrit dans le livre "DNS & BIND" de Liu & Albitz (éditeur O'Reilly). Le code source est disponible à l'adresse suivante 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. C'est une bonne chose.

6 votes

Dig +short ne donne pas toujours la réponse attendue. Par exemple, un site défini comme www.pressero.com qui est un CNAME pour un autre site -- dig +short SOA renvoie simplement la cible CNAME.

0 votes

Comment faire en sorte qu'un NS fasse autorité ?

2 votes

@Overmind vous ne rendez pas un NS "autoritaire". Si un serveur de noms est configuré comme faisant autorité pour certains domaines, cela signifie qu'il a localement des fichiers de zone (typiquement des fichiers textuels plats, mais cela peut aussi être fait différemment) pour ces domaines et qu'il répond aux requêtes les concernant. Pour être utiles, ils doivent être répertoriés en tant qu'enregistrements NS dans la zone parentale pour chacun des domaines pour lesquels ils font autorité, sinon personne ne les interrogerait par défaut.

43voto

aryeh Points 1594

Sur *nix :

$ dig -t ns <domain name>

3 votes

Il a demandé les serveurs de noms, pas l'adresse IPv4. Le type (-t) doit donc être NS, et non A.

1 votes

Pourquoi ne pas taper SOA @bortzmeyer ?

0 votes

Euh, parce que cela renvoie le SOA au lieu du résultat NS ?

21voto

David Precious Points 4429

Vous pouvez trouver les serveurs de noms d'un domaine à l'aide de la commande "host" :

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

0 votes

@cacho C'est vrai, je vais peut-être l'ajouter, si j'en ai l'occasion.

1 votes

Il est cassé, il affiche "502 Bad Gateway nginx/1.14.2"

0 votes

Le lien fourni est cassé.

7voto

hop Points 15423

Le terme que vous devriez chercher sur Google est "authoritative", et non "definitive".

Sous Linux ou Mac, vous pouvez utiliser les commandes suivantes 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

En ce qui concerne le 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 pour le nom d'hôte. Si vous utilisez dig il faut rechercher les enregistrements NS, comme suit :

dig ns stackoverflow.com

Gardez à l'esprit que cette opération peut solliciter votre serveur DNS local et donc donner des réponses erronées ou obsolètes qu'il a dans son cache.

6 votes

Ces commandes sont no équivalent. Rien ne dit que les informations fournies par whois sont à jour. Souvent, elles ne le sont pas parce que des personnes mettent à jour les enregistrements NS dans le fichier de zone sans en avertir le registre ou le bureau d'enregistrement.

0 votes

Je n'ai jamais dit qu'ils l'étaient ;) Vous pouvez modifier les enregistrements NS de votre zone autant que vous voulez, tant que la zone parente n'est pas mise à jour, rien ne changera. Et une mise à jour de la zone parente va généralement de pair avec une mise à jour des données whois (du moins avec mes fournisseurs).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X