Interroger un serveur DNS

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Le protocole DNS (Domain Name System) est un protocole central du web. C’est ce dernier qui est chargé de communiquer l’adresse IP associée à un nom de domaine. Pour gérer au mieux la croissance de cet “annuaire”, le protocole s’appuie sur un système distribué. Comme Wikipédia le décrit assez simplement, la résolution d’un nom de domaine peut nécessiter d’interroger plusieurs serveurs pour obtenir la réponse finale. De manière simplifiée, ce système implique donc une synchronisation de données entre les différents serveurs. C’est notamment pour cela que lorsque l’on déclare un domaine, ce dernier n’est pas instantanément disponible. C’est ce que l’on appelle la propagation des DNS.

Je travaille actuellement sur un projet qui met à jour un grand nombre de DNS de manière relativement régulière. La propagation des DNS pouvant mettre un certain temps à être pris en compte, je souhaite pouvoir interroger directement un serveur DNS afin de pouvoir savoir si la modification que j’ai effectuée à été propagée sur ce dernier.

Pour cela, j’utilise la commande nslookup qui me permet d’envoyer une requête sur le serveur DNS utilisé par ma machine:

$ nslookup jdecool.fr

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	jdecool.fr
Address: 51.15.134.254

Mais je peux également spécifier à la commande, le serveur DNS que je souhaite requêter. Par exemple, les DNS de Google:

$ nslookup jdecool.fr 8.8.8.8

Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	jdecool.fr
Address: 51.15.134.254

De cette manière, je peux cibler les principaux serveur DNS afin d’avoir un aperçu de la propagation des domaines qui m’intéressent.