Commande nslookup : utilisation et options, interrogation des enregistrements et choix du serveur DNS

Environnement de testFamille RHELAlmaLinux 9.8nslookup 9.16Compte rootDebian 12 compte standard
Commandes réseaunslookupEmplacement/usr/bin/nslookup

La commande nslookup est un outil d'interrogation qui demande à un serveur DNS un nom de domaine et renvoie ses adresses IP et ses enregistrements DNS comme MX, NS et TXT. En interrogeant par type les enregistrements de example.com sur un serveur AlmaLinux 9 et en changeant le serveur DNS interrogé, le même domaine a donné des résultats différents selon le serveur choisi : la ligne Non-authoritative answer en tête de la réponse disparaissait, ou le résultat de la requête ANY changeait.

La sortie ci-dessous a été obtenue avec le compte root sur un serveur AlmaLinux 9.8. L'adresse du serveur DNS configuré sur le serveur a été remplacée par la valeur d'exemple 192.0.2.53, et les numéros de version des paquets ont aussi été remplacés par des valeurs d'exemple.

1️⃣ Utilisation de la commande nslookup

La forme de base est [nslookup -option nom serveur-DNS], et les options et le serveur DNS peuvent être omis. Si vous n'indiquez qu'un nom, nslookup demande l'adresse de ce nom au serveur DNS configuré sur le serveur.

nslookup example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Les deux lignes Server et Address du haut indiquent le serveur DNS qui a reçu la requête, et le #53 final est le numéro de port DNS. Sans type d'enregistrement précisé, nslookup interroge l'enregistrement A (IPv4) puis l'enregistrement AAAA (IPv6), c'est pourquoi deux adresses IPv6 ont suivi deux adresses IPv4.

Non-authoritative answer signifie que la réponse vient d'un serveur DNS qui avait la valeur en cache, et non du serveur qui gère directement les enregistrements de example.com. Juste après la modification d'un enregistrement, la valeur peut donc différer de la valeur réelle.

2️⃣ Options de nslookup

Les options s'écrivent avec un tiret devant leur nom.

-type est la même option que -query ou la forme courte -q. En interrogeant 8.8.8.8 avec -q=mx, on a obtenu la même ligne de serveur de messagerie qu'avec -type=mx.

nslookup -q=mx google.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
google.com	mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:

-timeout et -retry fixent combien de temps attendre un serveur DNS qui ne répond pas. 192.0.2.1 est une adresse réservée à la documentation, aucun serveur n'y répond donc.

nslookup -timeout=2 -retry=1 example.com 192.0.2.1
;; connection timed out; no servers could be reached

Avec -timeout=2 -retry=1, nslookup a affiché la ligne [connection timed out] au bout de 2 secondes puis s'est arrêté. Avec -retry=2, il a fallu 4 secondes, et sans option, 15 secondes. Pour qu'un script ne reste pas bloqué longtemps sur un serveur qui ne répond pas, réduisez ces deux valeurs.

Avec -debug, les sections question et réponse du paquet de réponse s'affichent telles quelles.

nslookup -debug example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

------------
    QUESTIONS:
	example.com, type = A, class = IN
    ANSWERS:
    ->  example.com
	internet address = 104.20.23.154
	ttl = 300
    ->  example.com
	internet address = 172.66.147.243
	ttl = 300
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Non-authoritative answer:
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 172.66.147.243
------------
    QUESTIONS:
	example.com, type = AAAA, class = IN
    ANSWERS:
    ->  example.com
	has AAAA address 2606:4700:10::6814:179a
	ttl = 300
    ->  example.com
	has AAAA address 2606:4700:10::ac42:93f3
	ttl = 300
    AUTHORITY RECORDS:
    ADDITIONAL RECORDS:
------------
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Chaque enregistrement a reçu un ttl = 300 absent de la sortie normale. Cela veut dire que le serveur DNS qui a reçu cette réponse peut garder l'enregistrement en cache jusqu'à 300 secondes.

-norecurse demande au serveur DNS de ne répondre qu'avec ce qu'il possède déjà, sans chercher via d'autres serveurs. Sans l'option, la même requête vers 8.8.8.8 a renvoyé quatre adresses, mais avec -norecurse elle s'est terminée par [SERVFAIL].

nslookup -norecurse example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

** server can't find example.com: SERVFAIL
OptionCopierDescription
-type=Indique le type d'enregistrement à interroger ; sans lui, A puis AAAA
-q=Même option que -type, indique le type d'enregistrement à interroger
-timeout=Délai d'attente de la réponse à la première requête (secondes)
-retry=Nombre d'envois de la requête en l'absence de réponse
-debugAffiche la question et la réponse du paquet, jusqu'au TTL
-norecurseDemande seulement les valeurs de ce serveur, sans passer par d'autres serveurs
OptionCopierDescription
-query=Même option que -type, indique le type d'enregistrement à interroger
-port=Indique le port à interroger, 53 par défaut
-versionAffiche la version et quitte

3️⃣ Interroger les enregistrements avec nslookup (MX, NS, TXT, SOA)

Si vous écrivez un type d'enregistrement après -type=, seul cet enregistrement est interrogé. La valeur peut s'écrire en majuscules ou en minuscules.

Valeur de -type=Informations contenues
A · AAAAAdresse IPv4, adresse IPv6
MXServeur qui reçoit le courrier et sa priorité
NSServeurs de noms qui gèrent les enregistrements du domaine
TXTValeurs texte comme SPF
SOAServeur de noms principal de la zone, courriel de l'administrateur, numéro de série, intervalles de mise à jour
CNAMEAlias qui renvoie vers un autre nom
PTRNom d'hôte associé à une adresse IP (inverse)
ANYDemande tous les enregistrements de ce nom en une fois

Les serveurs de messagerie se vérifient avec l'enregistrement MX.

nslookup -type=mx google.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
google.com	mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:

Le 10 qui suit mail exchanger est la priorité. S'il y a plusieurs serveurs de messagerie, l'expéditeur tente la livraison en commençant par le serveur au plus petit numéro. La même requête sur example.com a renvoyé [mail exchanger = 0 .], et un MX réduit à un seul point signifie que ce domaine ne reçoit pas de courrier.

Le [Authoritative answers can be found from:] à la fin de la requête MX est une ligne d'en-tête sous laquelle s'affichent les informations sur les serveurs de noms faisant autorité incluses dans la réponse. Dans les requêtes MX, NS et TXT de cet article, la réponse ne contenait pas ces informations, si bien que rien n'apparaissait sous l'en-tête.

L'enregistrement NS contient les serveurs de noms qui gèrent directement les enregistrements du domaine.

nslookup -type=ns example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
example.com	nameserver = hera.ns.cloudflare.com.
example.com	nameserver = elliott.ns.cloudflare.com.

Authoritative answers can be found from:

example.com avait deux serveurs de noms. Ces deux serveurs sont les serveurs de noms faisant autorité pour example.com.

Un enregistrement TXT peut contenir des valeurs texte sans format imposé.

nslookup -type=txt example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
example.com	text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com	text = "v=spf1 -all"

Authoritative answers can be found from:

v=spf1 -all est une valeur SPF qui indique qu'aucun serveur n'a le droit d'envoyer du courrier sous ce nom de domaine. Quand un domaine a plusieurs enregistrements TXT, ils s'affichent ainsi, un par ligne.

L'enregistrement SOA contient les informations de base de la zone.

nslookup -type=soa example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
example.com
	origin = elliott.ns.cloudflare.com
	mail addr = dns.cloudflare.com
	serial = 2418004112
	refresh = 10000
	retry = 2400
	expire = 604800
	minimum = 1800

Authoritative answers can be found from:

origin est le serveur de noms principal, et mail addr est l'adresse électronique de l'administrateur où le @ est écrit sous forme de point. serial est un numéro de série qui augmente à chaque modification des enregistrements, et refresh, retry et expire sont des durées (en secondes) que les serveurs de noms secondaires utilisent pour synchroniser leurs enregistrements avec le serveur principal. minimum est la durée pendant laquelle une réponse sur un enregistrement inexistant reste en cache.

Les alias se vérifient avec l'enregistrement CNAME. La requête sur www.github.com a renvoyé une ligne indiquant qu'il s'agit d'un alias de github.com.

nslookup -type=cname www.github.com
Server:		192.0.2.53
Address:	192.0.2.53#53

www.github.com	canonical name = github.com.

-type=any demande tous les enregistrements de ce nom en une fois. En interrogeant le serveur DNS configuré sur le serveur, on a obtenu ensemble les enregistrements A, AAAA, MX et NS.

nslookup -type=any example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3
example.com	mail exchanger = 0 .
example.com	nameserver = hera.ns.cloudflare.com.
example.com	nameserver = elliott.ns.cloudflare.com.

Authoritative answers can be found from:

La même requête envoyée à 8.8.8.8 n'a renvoyé qu'une ligne [hinfo = “RFC8482”] et une ligne de signature.

nslookup -type=any example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
example.com	hinfo = "RFC8482" ""
example.com	rdata_46 = HINFO 13 2 3600 20261029212708 20261027192708 34505 example.com. 2YBHcD7GmqHiW6E7e8Lx3z/gPoCsLbYw/Uegjy801hQ+4fYp5U7wKqc2 NXOONd8WS0xjgzfW5Dn0akDqdjltOw==

Authoritative answers can be found from:

La RFC 8482 est le document qui permet de répondre à une requête ANY par une réponse courte au lieu de tous les enregistrements. Interrogez donc les enregistrements utiles en précisant un type à la fois.

4️⃣ Indiquer le serveur DNS dans nslookup

Si vous indiquez un serveur DNS après le nom, nslookup interroge ce serveur au lieu du serveur DNS configuré sur le serveur.

nslookup example.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

La ligne Server est passée à 8.8.8.8, et les quatre adresses étaient les mêmes que dans la réponse du serveur DNS configuré sur le serveur. Après un changement de serveurs de noms, cette forme sert à vérifier si les nouvelles valeurs se sont propagées à chaque serveur DNS public.

Si vous indiquez comme serveur DNS l'un des serveurs de noms obtenus par la requête NS, vous interrogez directement le serveur faisant autorité.

nslookup example.com elliott.ns.cloudflare.com
Server:		elliott.ns.cloudflare.com
Address:	2606:4700:58::a29f:2ce4#53

Name:	example.com
Address: 104.20.23.154
Name:	example.com
Address: 172.66.147.243
Name:	example.com
Address: 2606:4700:10::6814:179a
Name:	example.com
Address: 2606:4700:10::ac42:93f3

Cette fois, la ligne Non-authoritative answer a disparu. La valeur vient directement du serveur qui gère les enregistrements : c'est donc la valeur actuelle, sans passage par un cache. Dans Address, juste sous la ligne Server, s'est affichée l'adresse IPv6 de ce serveur de noms.

Si vous interrogez un nom qui n'existe pas, [NXDOMAIN] s'affiche. .invalid est un domaine de premier niveau réservé pour ne jamais être utilisé, la réponse indique donc que le nom n'existe pas.

nslookup example.invalid
Server:		192.0.2.53
Address:	192.0.2.53#53

** server can't find example.invalid: NXDOMAIN

En revanche, no-such-host.example.com s'est terminé par [No answer] au lieu de NXDOMAIN. Cela veut dire que l'enregistrement demandé ne figurait pas dans la réponse, un résultat différent de NXDOMAIN, où le nom lui-même n'existe pas.

nslookup no-such-host.example.com
Server:		192.0.2.53
Address:	192.0.2.53#53

Non-authoritative answer:
*** Can't find no-such-host.example.com: No answer

5️⃣ Recherche inverse avec nslookup

Si vous indiquez une adresse IP au lieu d'un nom, nslookup interroge l'enregistrement PTR et trouve le nom d'hôte associé à cette adresse.

nslookup 8.8.8.8
8.8.8.8.in-addr.arpa	name = dns.google.

Authoritative answers can be found from:

8.8.8.8.in-addr.arpa est le nom obtenu en écrivant l'adresse IPv4 à l'envers et en ajoutant in-addr.arpa. La valeur de l'enregistrement PTR de ce nom, dns.google., est le nom d'hôte de 8.8.8.8.

Dans la recherche inverse, les deux lignes Server du haut ne sont pas apparues. La même adresse interrogée avec nslookup 9.18 sur un serveur Debian 12 a donné la même forme.

6️⃣ Mode interactif de nslookup

Si vous lancez nslookup sans argument, vous entrez dans le mode interactif avec l'invite >. Pour interroger plusieurs noms et types d'enregistrements à la suite, vous n'avez pas à retaper la commande entière.

nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53
> set type=mx
> google.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
google.com	mail exchanger = 10 smtp.google.com.

Authoritative answers can be found from:
> set type=txt
> example.com
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
example.com	text = "_k2n1y4vw3qtb4skdx9e7dxt97qrmmq9"
example.com	text = "v=spf1 -all"

Authoritative answers can be found from:
> exit

Changez le serveur DNS interrogé avec server et fixez le type d'enregistrement avec set type= : ensuite, il suffit de taper un nom pour l'interroger avec ces réglages. Tapez exit pour revenir au shell.

set all affiche tous les réglages actuels.

nslookup
> set type=txt
> set all
Default server: 192.0.2.53
Address: 192.0.2.53#53

Set options:
  novc			nodebug		nod2
  search		recurse
  timeout = 0		retry = 3	port = 53	ndots = 1
  querytype = txt     	class = IN
  srchlist = example.internal
> exit

querytype était passé à txt, la valeur fixée plus haut. retry = 3 et port = 53 sont des valeurs par défaut qui n'ont pas été modifiées.

7️⃣ Installer nslookup sous Linux et le comparer à dig et host

Si nslookup renvoie [command not found] sous Linux, installez le paquet des outils BIND. Sur le serveur AlmaLinux, nslookup provenait du paquet bind-utils.

rpm -qf /usr/bin/nslookup
bind-utils-9.16.20-30.el9_8.2.x86_64

Sur le serveur Debian 12, il s'agissait du paquet bind9-dnsutils. L'ancien nom dnsutils existait encore comme paquet de transition qui installe bind9-dnsutils.

dpkg -S /usr/bin/nslookup
bind9-dnsutils: /usr/bin/nslookup

Sur les systèmes de la famille RHEL, installez le paquet bind-utils avec la commande ci-dessous.

dnf install bind-utils

Sur les systèmes de la famille Debian, installez le paquet bind9-dnsutils.

apt install bind9-dnsutils

Le même paquet contient aussi dig et host. Les trois commandes interrogent le DNS, mais leur sortie a une forme différente.

CommandeSortieUsage
nslookupLigne Server + réponse, mode interactifInterroger plusieurs noms et enregistrements à la suite
digToutes les sections du paquet de réponse ; avec +short, seulement les valeursExtraire seulement les valeurs dans un script
hostUne phrase par enregistrementVérifier A, AAAA et MX en une fois
host example.com
example.com has address 172.66.147.243
example.com has address 104.20.23.154
example.com has IPv6 address 2606:4700:10::6814:179a
example.com has IPv6 address 2606:4700:10::ac42:93f3
example.com mail is handled by 0 .

Même sans option, host a interrogé en une fois les enregistrements A, AAAA et MX et a affiché chacun sous forme de phrase d'une ligne. Avec +short, dig ne garde que les adresses IP.

dig +short example.com
104.20.23.154
172.66.147.243

Pour extraire seulement les valeurs dans un script, dig +short est plus simple à manier, et pour vérifier plusieurs noms à la suite, le mode interactif de nslookup est plus pratique.

🌏 Si vous avez lu jusqu'ici
Voir les mêmes informations sans commande
Les serveurs de noms et enregistrements vérifiés avec nslookup peuvent aussi être consultés tels quels sur le web. La recherche de domaine Whois y ajoute les données d'enregistrement et la date d'expiration de la commande whois et affiche le tout sur un seul écran.
Débutants Il suffit de saisir le domaine, sans ouvrir de terminal ni CMD. Le bureau d'enregistrement, la date d'enregistrement, la date d'expiration et l'état s'affichent clairement, avec le nombre de jours restants avant l'expiration.
Experts Comparez côte à côte les serveurs de noms inscrits dans le Whois et les réponses DNS réelles, et vérifiez les enregistrements A, AAAA, NS, MX et TXT, le TTL et même le texte brut du Whois.
Ouvrir la recherche de domaine

🔲 Simulateur de la commande nslookup

Dans le simulateur ci-dessous, vous pouvez saisir nslookup vous-même en changeant le type d'enregistrement et le serveur DNS.

Simulateur de la commande nslookupnslookup 9.16
[root@server work]#
Fonctionne uniquement dans votre navigateur ; les réponses viennent d'un DNS virtuel contenant des valeurs issues de vraies requêtes, et ↑↓ rappelle les commandes saisies auparavant.

🔢 FAQ & contenus recommandés

Dans nslookup sous Windows aussi, le premier argument est le nom à interroger et le second le serveur DNS. Lancé sans argument, il entre dans le mode interactif avec l'invite >. Les libellés de la sortie sous Windows peuvent différer de ceux de Linux.

nslookup se termine avec le code de sortie 1 si une seule requête échoue. Après la requête sur example.invalid qui a renvoyé NXDOMAIN, le code de sortie affiché était 1, et après la requête sur example.com il était 0.

Avec -type=aaaa, seul l'enregistrement AAAA est interrogé. Sur example.com, on a obtenu uniquement les deux adresses IPv6, sans adresse IPv4.

ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain : 4   +   1   =