17/05/2024

Découverte de l’outil nslookup sous Linux

L’utilitaire nslookup (Name System Look Up) est un outil qui permet d’interroger directement un serveur de noms et d’en obtenir les informations concernant un domaine, un hôte ou toutes autres données concernant les équipements connectés à un réseau. Cela permet de diagnostiquer les problèmes de configuration des serveurs DNS.

Telle que, sans argument, la commande nslookup affiche le nom et l’adresse IP du serveur de noms primaire (sauf si le paramétrage du DNS l’interdit), ainsi qu’un prompt de commande permettant l’interrogation. Il suffit alors de fournir le nom d’un domaine au niveau de la ligne du prompt pour en afficher les caractéristiques :

# nslookup

> mydmn.org
Server:         192.168.1.172
Address:        192.168.1.172#53

De la même façon, on peut demander à disposer d’informations concernant une machine en particulier :

# nslookup client1.mydmn.org

Server:         192.168.1.172
Address:        192.168.1.172#53
Name:   client1.mydmn.org
Address: 192.168.1.143

IMPORTANT : par défaut, la commande nslookup interroge systématiquement le serveur primaire de noms, configuré sur la machine. Mais, on peut tout à fait interroger un serveur de noms autre, en le précisant à la suite de la commande, précédée du signe "-" :

# nslookup client1.mydmn.org - 192.172.1.173

Server:         192.168.1.173
Address:        192.168.1.173#53
Name:   client1.mydmn.org
Address: 192.168.1.143

En ce qui concerne l’interrogation, on peut modifier le mode utilisé par la commande nslookup en spécifiant la clause set et l’une des options suivantes :

  • set type=mx recherche les informations sur le ou les serveurs de messagerie d’un domaine.
  • set type=ns recherche les informations sur le ou les serveurs de noms du domaine.
  • set type=a recueille les informations concernant un hôte du réseau (mode par défaut).
  • set type=soa affiche les informations du champ SOA (Start Of Authority) du domaine.
  • set type=cname affiche les informations concernant les alias.
  • set type=hinfo affiche les données concernant un matériel (si celles-ci sont renseignées).

Dans le mode interactif, il suffit de remplacer "set type=" par "–query=" et de fournir le nom de l’élément à interroger.

Exemple : pour afficher les caractéristiques du champ SOA du serveur primaire :

# nslookup –query=soa mydmn.org

Server:         192.168.1.172
Address:        192.168.1.172#53
cluster
        origin = dnsmaster.mydmn.org
        mail addr = root.mydmn.org
        serial = 2014102848
        refresh = 10800
        retry = 3600
        expire = 604800
        minimum = 86400

À l’inverse, il est possible d’interroger une adresse IP afin de connaître le nom de machine qui lui est associé :

# nslookup 192.168.1.153

Server:         192.168.1.172
Address:        192.168.1.172#53
153.1.168.192.in-addr.arpa      name = client4.mydmn.org.

Il arrive parfois qu’en interrogeant un serveur de noms, on reçoive une réponse étiquetée comme ne faisant pas autorité. C’est généralement le cas lorsque l’équipement dont on recherche les caractéristiques ne fait pas partie de la zone du serveur de noms local, mais d’une autre zone:

# nslookup srvlinx01.drm.net

;; Truncated, retrying in TCP mode.
Server:         192.168.1.172
Address:        192.168.1.172#53
Non-authoritative answer:
Name:   srvlinx01.drm.net
Address: 12.27.2.104

La recherche peut également porter sur les enregistrements de type MX, concernant le ou les serveurs de messagerie de la zone concernée:

# nslookup -query=mx google.fr

Dans ce genre de cas, si l’on interroge un serveur de noms local à l’entreprise, on risque de ne pas avoir de réponse. Par contre, en interrogeant un serveur en DMZ ou connecté sur Internet, on aura la réponse suivante :

Serveur :  srvdnsext.drm.net

Address : 12.27.2.102
Réponse ne faisant pas autorité :
google.fr     MX preference = 10, mail exchanger = aspmx.1.google.com
google.fr     MX preference = 20, mail exchanger = alt1.aspmx.1google.com
google.fr     MX preference = 50, mail exchanger = alt4.aspmx.1.google.com
google.fr     MX preference = 30, mail exchanger = alt2.aspmx.1.google.com
google.fr     MX preference = 40, mail exchanger = alt3.aspmx.1.google.com
aspmx.1.google.com internet address = 172.194.76.27

De la même façon, on peut lister les informations associées à un cluster en exécutant l’instruction suivante:

# nslookup -query=any mydmn.org

ASTUCE : il arrive parfois (pour des raisons de sécurité) que le port TCP/53, d’ordinaire réservé au protocole d’échange DNS ne soit pas celui sur lequel le serveur de noms écoute. Dans ce cas, afin d’effectuer, malgré tout, une requête DNS, il suffit simplement d’exécuter l’instruction ci-dessous :

# nslookup -port=xx host.secure.net

Comme tout Utilitaire d’interrogation d’un écosystème, nslookup possède un mode debug que l’on peut facilement active pour avoir encore plus d’informations lors des réponses retournées en retour des requêtes clientes :

# nslookup -debug mydmn.org

Cette dernière commande permet de suivre le transit de la requête émise, et de voir par où (quels serveurs, quelles zones de transfert…), elle passe.

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail