Maîtriser la commande nslookup : tutoriel pas à pas et astuces avancées
nslookup (abréviation de « Name Server Lookup ») est un outil en ligne de commande intégré qui permet d'interroger les serveurs DNS (Domain Name System) afin de trouver l'adresse IP d'un domaine, ou le nom de domaine associé à une adresse IP. Pour l'utiliser, tapez nslookup suivi du domaine à résoudre. L'usage le plus courant est une recherche simple :
nslookup example.com
Cette commande renvoie la ou les adresses IP vers lesquelles pointe example.com, ainsi que le serveur DNS ayant répondu à la requête. nslookup est préinstallé sur Windows, macOS et Linux : il fonctionne donc immédiatement dans n'importe quel terminal ou invite de commandes, sans aucune configuration.
Vous pouvez enrichir cette même commande pour couvrir les tâches de dépannage DNS les plus courantes :
| Tâche | Commande |
|---|---|
| Recherche simple (domaine → IP) | nslookup example.com |
| Recherche inverse (IP → domaine) | nslookup 8.8.8.8 |
| Utiliser un serveur DNS précis | nslookup example.com 8.8.8.8 |
| Trouver les serveurs de messagerie (MX) | nslookup -type=MX example.com |
| Trouver les serveurs de noms (NS) | nslookup -type=NS example.com |
| Trouver les enregistrements TXT (SPF, DKIM, vérification) | nslookup -type=TXT example.com |
Le reste de ce guide détaille chacune de ces tâches : syntaxe, sorties réelles, mode interactif, scripts et alternatives comme dig et host.
Introduction
Dans le vaste univers interconnecté d'Internet, le système de noms de domaine (DNS) joue un rôle central en traduisant les noms de domaine lisibles par l'humain (comme www.example.com) en adresses IP compréhensibles par les machines (telles que 192.0.2.1). Cette traduction est indispensable pour acheminer le trafic à travers les réseaux et permettre aux utilisateurs d'accéder sans accroc aux sites web, services et ressources.
Lorsque des problèmes de résolution DNS surviennent, les administrateurs réseau et les professionnels de l'informatique ont besoin d'outils fiables pour poser un diagnostic et dépanner. La commande nslookup fait partie de ces outils indispensables. Cet utilitaire permet d'interroger les serveurs DNS afin d'obtenir des informations sur les noms de domaine, les adresses IP et divers enregistrements DNS.
Qu'est-ce que nslookup ?
Définition de nslookup
nslookup signifie Name Server Lookup (recherche de serveur de noms). C'est un outil en ligne de commande qui sert à interroger les serveurs DNS (Domain Name System) afin de récupérer des informations sur les noms de domaine, les adresses IP et d'autres enregistrements DNS. En facilitant les requêtes DNS, nslookup aide les utilisateurs et les administrateurs à diagnostiquer et à résoudre les problèmes liés au DNS.
Rôle de nslookup dans le diagnostic réseau
Le DNS est fondamental au fonctionnement d'Internet, et toute interruption des services DNS peut entraîner des problèmes d'accès aux sites web et aux services en ligne. nslookup fait office d'utilitaire de diagnostic capable de :
- vérifier la configuration des serveurs DNS ;
- confirmer l'existence et la configuration des enregistrements DNS ;
- détecter les problèmes de propagation DNS ;
- aider à résoudre les problèmes de connectivité liés au DNS.
En donnant un aperçu détaillé des requêtes et des réponses DNS, nslookup permet aux utilisateurs de repérer et de corriger efficacement les problèmes DNS.
Différences entre nslookup et les autres outils DNS
nslookup est un outil puissant, mais ce n'est pas le seul utilitaire DNS disponible. Parmi les autres outils notables :
dig(Domain Information Groper) : propose des options de requête plus détaillées et plus souples quenslookup. Beaucoup d'administrateurs réseau le privilégient pour sa sortie complète.host: un utilitaire plus simple pour effectuer des recherches DNS, idéal pour des requêtes rapides sans sortie volumineuse.
Face à ces outils, nslookup est souvent jugé plus accessible pour les requêtes DNS de base, en particulier pour ceux qui débutent dans le diagnostic réseau. En revanche, pour les requêtes avancées et l'écriture de scripts, des outils comme dig peuvent se révéler plus adaptés.
Histoire et contexte
Origine de nslookup
La commande nslookup est née aux débuts d'Internet, au sein de la suite d'outils BIND (Berkeley Internet Name Domain). Conçu pour faciliter les requêtes DNS et le dépannage, nslookup est devenu un utilitaire standard sur de nombreux systèmes d'exploitation, dont UNIX, Linux et Windows.
Évolution de l'outil au fil du temps
Au fil des années, nslookup a connu plusieurs améliorations en matière de fonctionnalités et d'ergonomie. Son objectif principal reste l'interrogation du DNS, mais les mises à jour ont apporté des fonctionnalités telles que :
- un mode interactif pour effectuer plusieurs requêtes au cours d'une même session ;
- la prise en charge de l'interrogation de différents types d'enregistrements DNS ;
- une meilleure gestion des erreurs et des messages plus explicites.
Malgré l'apparition d'outils concurrents comme dig, nslookup reste très utilisé grâce à sa simplicité et à sa disponibilité sur toutes les plateformes.
État actuel et prise en charge selon les systèmes d'exploitation
Aujourd'hui, nslookup est un outil omniprésent, disponible sur la plupart des systèmes d'exploitation, notamment :
- Windows : préinstallé, intégré au système d'exploitation.
- macOS : inclus dans les utilitaires réseau du système.
- Linux/UNIX : disponible par défaut ou via les gestionnaires de paquets, dans le cadre des utilitaires DNS.
Sa présence constante sur toutes les plateformes en fait un outil de référence pour le diagnostic DNS dans des environnements informatiques variés.
Syntaxe de base
Comprendre la syntaxe de base de la commande nslookup est essentiel pour en exploiter pleinement les capacités. La structure générale est la suivante :
nslookup [options] [nom d'hôte] [serveur DNS]
Explication des composants de la commande
nslookup: la commande elle-même.[options]: des indicateurs facultatifs qui modifient le comportement de la commande.[nom d'hôte]: le nom de domaine ou l'adresse IP à interroger.[serveur DNS]: (facultatif) indique le serveur DNS à utiliser pour la requête. En son absence, c'est le serveur DNS par défaut du système qui est utilisé.
Exemples de commandes nslookup simples
-
Recherche simple d'un nom d'hôte :
nslookup www.example.comRécupère l'adresse IP associée à
www.example.comà l'aide du serveur DNS par défaut. -
Recherche inverse d'une IP :
nslookup 93.184.216.34Trouve le nom d'hôte associé à l'adresse IP
93.184.216.34. -
Indiquer un serveur DNS :
nslookup www.example.com 8.8.8.8Interroge le serveur DNS public de Google (
8.8.8.8) pour obtenir l'adresse IP dewww.example.com.
Exemples d'utilisation courants
La commande nslookup est polyvalente et offre diverses fonctionnalités pour récupérer différents types d'informations DNS. Voici quelques cas d'usage courants, avec des exemples de commandes et des explications.
Interroger les enregistrements DNS
Les enregistrements DNS stockent des informations sur un domaine, telles que son adresse IP, ses serveurs de messagerie et ses alias. nslookup peut récupérer divers types d'enregistrements DNS, dont :
- Enregistrement A (adresse) : associe un domaine à une adresse IPv4.
- Enregistrement AAAA (adresse IPv6) : associe un domaine à une adresse IPv6.
- Enregistrement MX (mail exchange) : indique le serveur de messagerie chargé de recevoir les e-mails du domaine.
- Enregistrement CNAME (nom canonique) : alias d'un domaine vers un autre.
Exemples de commandes :
-
Récupérer l'enregistrement A :
nslookup -type=A www.example.comRécupère l'adresse IPv4 de
www.example.com. -
Récupérer l'enregistrement MX :
nslookup -type=MX example.comObtient les serveurs de messagerie de
example.com. -
Récupérer l'enregistrement CNAME :
nslookup -type=CNAME blog.example.comTrouve le nom canonique (alias) de
blog.example.com.
Sortie attendue :
Pour la requête d'enregistrement MX :
example.com MX preference = 10, mail exchanger = mail.example.com
Cela indique que mail.example.com est le serveur de messagerie de example.com, avec une valeur de préférence de 10.
Recherches DNS inverses
Une recherche DNS inverse consiste à retrouver un nom de domaine à partir d'une adresse IP. C'est utile pour vérifier le nom d'hôte associé à une IP donnée, ce qui peut faciliter le dépannage et les évaluations de sécurité.
Exemple de commande :
nslookup 93.184.216.34
Sortie attendue :
34.216.184.93.in-addr.arpa name = www.example.com
Cette sortie montre que l'adresse IP 93.184.216.34 correspond au nom d'hôte www.example.com.
Indiquer un serveur DNS
Par défaut, nslookup utilise le serveur DNS configuré sur le système pour effectuer ses requêtes. Vous pouvez toutefois indiquer un autre serveur DNS, ce qui peut être utile pour effectuer des tests ou dépanner des problèmes liés à un serveur DNS.
Exemple de commande :
nslookup www.example.com 8.8.8.8
Explication :
Cette commande interroge le serveur DNS public de Google (8.8.8.8) pour obtenir l'adresse IP de www.example.com, au lieu d'utiliser le serveur DNS par défaut du système.
Exemple de sortie :
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Name: www.example.com
Address: 93.184.216.34
Fonctionnalités avancées
Au-delà des requêtes de base, nslookup propose des fonctionnalités avancées qui renforcent son utilité pour une analyse DNS complète et l'écriture de scripts.
Mode interactif
Le mode interactif permet de saisir plusieurs commandes au cours d'une même session nslookup, ce qui rend les investigations DNS plus efficaces.
Passer en mode interactif :
Il suffit de taper nslookup sans argument :
nslookup
Exemple d'interaction :
Default Server: resolver1.example.com
Address: 192.0.2.53
> set type=MX
> example.com
Server: resolver1.example.com
Address: 192.0.2.53
example.com MX preference = 10, mail exchanger = mail.example.com
> exit
Commandes courantes en mode interactif :
set type=[type d'enregistrement]: indique le type d'enregistrement DNS à interroger (par exemple A, MX, CNAME).server [serveur DNS]: change le serveur DNS utilisé pour les requêtes au sein de la session.exit: quitte le mode interactif.
Définir les types de requête
nslookup permet de préciser le type d'enregistrements DNS à interroger, ce qui offre de la souplesse dans les informations récupérées.
Syntaxe :
nslookup -type=[type d'enregistrement] [nom d'hôte]
Exemples de commandes :
-
Interroger l'enregistrement AAAA :
nslookup -type=AAAA www.example.comRécupère l'adresse IPv6 de
www.example.com. -
Interroger l'enregistrement TXT :
nslookup -type=TXT example.comRécupère les enregistrements TXT associés à
example.com, souvent utilisés pour SPF, DKIM et la vérification de domaine. -
Interroger l'enregistrement NS :
nslookup -type=NS example.comListe les serveurs de noms faisant autorité pour
example.com, ce qui est utile pour confirmer la délégation et diagnostiquer les problèmes de propagation après une modification DNS.Exemple de sortie :
example.com nameserver = a.iana-servers.net example.com nameserver = b.iana-servers.net
Utiliser nslookup dans des scripts
nslookup peut être intégré à des scripts pour automatiser les requêtes DNS, ce qui permet de traiter des lots et de surveiller les enregistrements DNS.
Exemple : script de recherche DNS par lots (Bash)
#!/bin/bash
# List of domains to query
domains=("example.com" "google.com" "nonexistentdomain.xyz")
# DNS server to use
dns_server="8.8.8.8"
# Loop through each domain and perform an A record lookup
for domain in "${domains[@]}"; do
echo "Querying A record for $domain using DNS server $dns_server"
nslookup -type=A "$domain" "$dns_server"
echo "----------------------------------------"
done
Explication :
Ce script parcourt une liste de domaines et effectue une recherche d'enregistrement A pour chacun d'eux à l'aide du serveur DNS indiqué (8.8.8.8). La sortie fournit les adresses IP associées à chaque domaine, ce qui facilite l'analyse DNS en masse.
Alternatives à nslookup
Bien que nslookup soit un utilitaire DNS très répandu, il existe plusieurs outils alternatifs aux fonctionnalités et aux atouts différents. Connaître ces alternatives offre aux utilisateurs davantage d'options pour interroger et diagnostiquer le DNS.
dig
Présentation de la commande dig
dig (Domain Information Groper) est un outil d'interrogation DNS souple et puissant, couramment utilisé dans les environnements UNIX et Linux. Il fournit des informations détaillées sur les réponses DNS, ce qui en fait un favori des administrateurs réseau pour une analyse DNS approfondie.
Comparaison entre dig et nslookup
- Niveau de détail de la sortie :
digpropose une sortie plus détaillée et mieux structurée quenslookup, ce qui est précieux pour un dépannage avancé. - Souplesse :
digoffre un contrôle plus fin des paramètres de requête et prend en charge des options supplémentaires pour personnaliser les requêtes DNS. - Écriture de scripts :
digest souvent privilégié pour les scripts grâce à son format de sortie cohérent et facile à analyser.
Exemple de commande dig :
dig www.example.com MX
Exemple de sortie :
; <<>> DiG 9.20.4-Ubuntu <<>> www.example.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;www.example.com. IN MX
;; ANSWER SECTION:
www.example.com. 3600 IN MX 10 mail.example.com.
www.example.com. 3600 IN MX 20 mail2.example.com.
host
Présentation de la commande host
La commande host est un utilitaire simple pour effectuer des recherches DNS. Elle est conçue pour fournir des résultats de requête DNS clairs et concis, ce qui la rend idéale pour des vérifications rapides et la récupération d'informations DNS de base.
Cas où host est préférable
- Requêtes DNS rapides : lorsque vous devez effectuer une recherche rapide sans avoir besoin d'informations détaillées.
- Simplicité : pour les utilisateurs qui préfèrent une sortie minimaliste, sans les détails supplémentaires d'outils comme
dig. - Écriture de scripts : convient aux scripts où seules les informations essentielles sont nécessaires.
Exemple de commande host :
host -t TXT example.com
Exemple de sortie :
example.com descriptive text "v=spf1 include:_spf.example.com ~all"
Autres outils
Au-delà de dig et de host, plusieurs autres outils DNS peuvent compléter ou remplacer nslookup selon les besoins.
whois
whois est à la fois un protocole et un utilitaire en ligne de commande servant à interroger des bases de données qui recensent les titulaires ou les détenteurs d'une ressource Internet, comme les noms de domaine et les adresses IP. Il fournit des informations sur la propriété du domaine, les détails d'enregistrement et les coordonnées de contact.
Cas d'usage :
- Informations d'enregistrement d'un domaine : pour savoir qui possède un domaine donné et connaître ses coordonnées.
Exemple de commande :
whois example.com
tcpdump
tcpdump est un puissant analyseur de paquets réseau qui capture et affiche le trafic réseau. Sans être exclusivement un outil DNS, il permet de surveiller les requêtes et les réponses DNS en temps réel, ce qui facilite le dépannage réseau et l'analyse de sécurité.
Cas d'usage :
- Surveillance du trafic DNS : pour observer les schémas de requêtes DNS et détecter les anomalies ou les activités malveillantes.
Exemple de commande :
tcpdump -i eth0 port 53
Wireshark
Wireshark est un analyseur de protocoles réseau doté d'une interface graphique, qui offre un aperçu détaillé du trafic réseau, y compris des échanges DNS. Il propose une interface conviviale pour capturer, filtrer et analyser les paquets DNS.
Cas d'usage :
- Analyse DNS détaillée : pour un examen approfondi des échanges DNS et du comportement du protocole.
Questions fréquentes (FAQ)
À quoi sert la commande nslookup ?
nslookup est un outil d'administration réseau qui interroge le système de noms de domaine (DNS) pour obtenir la correspondance entre un nom de domaine et une adresse IP, ainsi que d'autres enregistrements DNS. Il aide les utilisateurs et les administrateurs à résoudre les problèmes liés au DNS en montrant comment les noms de domaine sont résolus.
Sur quels systèmes d'exploitation nslookup est-il disponible ?
nslookup est disponible sur la plupart des grands systèmes d'exploitation, notamment :
- Windows : préinstallé, intégré au système d'exploitation.
- macOS : inclus dans les utilitaires réseau du système.
- Linux/UNIX : disponible par défaut ou via les gestionnaires de paquets, dans le cadre des utilitaires DNS.
Sa large disponibilité en fait un outil polyvalent, adapté à des environnements variés.
Comment effectuer une recherche DNS inverse avec nslookup ?
Une recherche DNS inverse permet de retrouver le nom d'hôte associé à une adresse IP donnée. Pour l'effectuer avec nslookup, il suffit d'indiquer l'adresse IP comme requête. Par exemple :
nslookup 93.184.216.34
Exemple de sortie :
34.216.184.93.in-addr.arpa name = www.example.com
Cette sortie indique que l'adresse IP 93.184.216.34 correspond au nom d'hôte www.example.com.
Comment indiquer un serveur DNS différent avec nslookup ?
Par défaut, nslookup utilise le serveur DNS configuré sur le système. Pour indiquer un autre serveur DNS pour votre requête, ajoutez l'adresse IP ou le nom d'hôte du serveur DNS à la fin de la commande. Par exemple :
nslookup www.example.com 8.8.8.8
Cette commande interroge le serveur DNS public de Google (8.8.8.8) pour obtenir l'adresse IP de www.example.com.
Quels types d'enregistrements DNS puis-je interroger avec nslookup ?
nslookup prend en charge l'interrogation de divers types d'enregistrements DNS, dont :
- Enregistrement A (adresse) : associe un domaine à une adresse IPv4.
- Enregistrement AAAA (adresse IPv6) : associe un domaine à une adresse IPv6.
- Enregistrement MX (mail exchange) : indique le serveur de messagerie chargé de recevoir les e-mails du domaine.
- Enregistrement CNAME (nom canonique) : alias d'un domaine vers un autre.
- Enregistrement TXT (texte) : contient des données textuelles libres, souvent utilisées à des fins de vérification et de sécurité.
- Enregistrement NS (serveur de noms) : indique les serveurs DNS faisant autorité pour le domaine.
Pour interroger un type d'enregistrement précis, utilisez l'option -type suivie du type d'enregistrement. Par exemple :
nslookup -type=MX example.com
Comment changer le type de requête dans nslookup ?
Changer le type de requête permet de récupérer des enregistrements DNS précis. Utilisez l'option -type (ou -query) suivie du type d'enregistrement souhaité. Par exemple, pour interroger les enregistrements MX de example.com :
nslookup -type=MX example.com
Exemple de sortie :
example.com MX preference = 10, mail exchanger = mail.example.com
example.com MX preference = 20, mail exchanger = mail2.example.com
Cette sortie montre les serveurs de messagerie associés à example.com, ainsi que leurs valeurs de préférence.
Puis-je utiliser nslookup dans des scripts pour des requêtes DNS automatisées ?
Oui, nslookup peut être intégré à des scripts pour automatiser les requêtes DNS. C'est utile pour le traitement par lots, la surveillance des enregistrements DNS ou des vérifications régulières. Voici un exemple de script Bash simple qui utilise nslookup pour récupérer les enregistrements A d'une liste de domaines :
#!/bin/bash
# List of domains to query
domains=("example.com" "google.com" "nonexistentdomain.xyz")
# DNS server to use
dns_server="8.8.8.8"
# Loop through each domain and perform an A record lookup
for domain in "${domains[@]}"; do
echo "Querying A record for $domain using DNS server $dns_server"
nslookup -type=A "$domain" "$dns_server"
echo "----------------------------------------"
done
Explication :
Ce script parcourt une liste de domaines et effectue une recherche d'enregistrement A pour chacun d'eux à l'aide du serveur DNS indiqué (8.8.8.8). La sortie fournit les adresses IP associées à chaque domaine, ce qui facilite l'analyse DNS en masse.
Quelle est la différence entre nslookup et dig ?
nslookup et dig sont tous deux des outils d'interrogation DNS, mais ils présentent quelques différences :
- Niveau de détail de la sortie :
digfournit une sortie plus détaillée et mieux structurée, utile pour une analyse DNS approfondie.nslookuppropose une sortie plus concise, adaptée aux requêtes de base. - Souplesse :
digoffre un contrôle plus fin des paramètres de requête et prend en charge des options supplémentaires pour personnaliser les requêtes DNS. - Écriture de scripts :
digest souvent privilégié pour les scripts grâce à son format de sortie cohérent et facile à analyser. - Disponibilité :
nslookupest plus souvent disponible par défaut sur les différents systèmes d'exploitation, alors quedigpeut nécessiter une installation distincte sur certaines plateformes.
Exemple de commande dig :
dig www.example.com MX
Exemple de sortie dig :
; <<>> DiG 9.20.4-Ubuntu <<>> www.example.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;www.example.com. IN MX
;; ANSWER SECTION:
www.example.com. 3600 IN MX 10 mail.example.com.
www.example.com. 3600 IN MX 20 mail2.example.com.
Comment passer en mode interactif dans nslookup ?
Le mode interactif permet d'effectuer plusieurs requêtes DNS au cours d'une même session nslookup. Pour y passer, il suffit de taper nslookup sans argument et d'appuyer sur Entrée :
nslookup
Exemple d'interaction :
Default Server: resolver1.example.com
Address: 192.0.2.53
> set type=MX
> example.com
Server: resolver1.example.com
Address: 192.0.2.53
example.com MX preference = 10, mail exchanger = mail.example.com
> exit
Commandes courantes en mode interactif :
set type=[type d'enregistrement]: indique le type d'enregistrement DNS à interroger (par exemple A, MX, CNAME).server [serveur DNS]: change le serveur DNS utilisé pour les requêtes au sein de la session.exit: quitte le mode interactif.
Que faire si nslookup renvoie une erreur ou aucune réponse ?
Si nslookup renvoie une erreur ou ne reçoit aucune réponse, envisagez les étapes de dépannage suivantes :
- Vérifiez la connexion Internet : assurez-vous que votre appareil est connecté à Internet.
- Vérifiez la disponibilité du serveur DNS : le serveur DNS interrogé est peut-être hors service ou injoignable. Essayez d'indiquer un autre serveur DNS.
- Vérifiez l'exactitude du nom de domaine : assurez-vous que le nom de domaine saisi est correct et qu'il existe.
- Examinez les paramètres du pare-feu : un pare-feu ou un logiciel de sécurité peut bloquer les requêtes DNS.
- Analysez les messages d'erreur : prêtez attention aux messages d'erreur précis renvoyés par
nslookup(par exemple « Server failed » ou « NXDOMAIN ») pour cerner le problème. - Essayez d'autres outils : testez d'autres outils DNS comme
digouhostpour voir s'ils donnent des résultats différents.
Exemple d'erreur et résolution :
nslookup nonexistentdomain.xyz
Sortie possible :
** server can't find nonexistentdomain.xyz: NXDOMAIN
Résolution :
L'erreur NXDOMAIN indique que le domaine n'existe pas. Vérifiez qu'il n'y a pas de faute de frappe dans le nom de domaine, ou vérifiez si le domaine a été enregistré récemment.
