Man
Nom
nslookup - interroge les serveurs de noms Internet de manière interactive
Synopsis
nslookup [-option] [name | -] [server]
Description
nslookup est un programme pour interroger les serveurs de noms de domaines Internet. nslookup a deux modes : interactif et non-interactif. Le mode interactif fournit une invite et permet à l'utilisateur d'obtenir des informations sur divers hôtes et domaines, ou d'imprimer une liste d'hôtes dans un domaine. Le mode non interactif imprime uniquement le nom et les informations demandées pour un hôte ou un domaine.
Arguments
Le mode interactif est activé dans les cas suivants :
- lorsqu'aucun argument n'est donné (le serveur de noms par défaut est utilisé) ;
- lorsque le premier argument est un trait d'union (-) et que le second argument est le nom d'hôte ou l'adresse Internet d'un serveur de noms.
Le mode non interactif est utilisé lorsque le nom ou l'adresse Internet de l'hôte à rechercher est donné comme premier argument. Le deuxième argument facultatif spécifie le nom ou l'adresse d'un serveur de noms.
Les options peuvent également être spécifiées sur la ligne de commande si elles précèdent les arguments et sont préfixées par un trait d'union. Par exemple, pour changer le type de requête par défaut en informations sur l'hôte, avec un délai d'attente initial de 10 secondes, tapez : nslookup -query=hinfo -timeout=10
L'option -version amène nslookup à imprimer le numéro de version et à s'arrêter immédiatement.
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'obtenir des informations sur un domaine, un hôte ou toute autre donnée sur les périphériques connectés à un réseau. Il permet de diagnostiquer les problèmes de configuration du serveur DNS.
Telle quelle, sans argument (mode interactif), la commande nslookup affiche le nom et l'adresse IP du serveur de noms primaire (sauf si le paramètre DNS l'interdit), ainsi qu'une invite de commande permettant l'interrogation. Il suffit alors de fournir le nom d'un domaine sur la ligne d'invite pour afficher ses caractéristiques :
$ nslookup
> # Invite (attend la saisie)
> free.fr
Server: 127.0.0.53 # Nom et adresse IP du serveur de noms primaire
Address: 127.0.0.53 #53
Non-authoritative answer: # Réponse de nslookup
Name: free.fr Address: 212.27.48.10
Name: free.fr
Address: 2a01:e0c:1::1
> # Pour quitter l'invite, taper "exit" ou "Ctrl-D", mais pas "Ctrl-C" qui bloque le terminal
> exit
De la même manière, nous pouvons demander (en mode non-interactif) des informations sur une machine particulière :
$ nslookup free.fr
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: free.fr
Address: 212.27.48.10
Name: free.fr
Address: 2a01:e0c:1::1
IMPORTANT : par défaut, la commande nslookup interroge toujours le serveur de noms primaire, configuré sur la machine. Mais, vous pouvez également interroger un autre serveur de noms, en le spécifiant après la commande, précédé du signe "-" :
# En mode interactif # 8.8.8.8 est le serveur de noms de Google
$ nslookup - 8.8.8.8
> free.fr
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: free.fr
Address: 212.27.48.10
Name: free.fr
Address: 2a01:e0c:1::1
> exit
# En mode non-interactif
$ nslookup free.fr - 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: free.fr
Address: 212.27.48.10
Name: free.fr
Address: 2a01:e0c:1::1
Pour la requête, nous pouvons modifier le mode utilisé par la commande nslookup en spécifiant la clause set et l'une des options suivantes (en mode interactif) :
# set type=mx => recherche des informations sur le(s) serveur(s) de messagerie d'un domaine.
# set type=ns => récupère des informations sur le(s) serveur(s) de noms du domaine.
# set type=a => récupère des informations sur un hôte du réseau (mode par défaut).
# set type=soa => affiche des informations sur le champ SOA (Start Of Authority) du domaine.
# set type=cname => affiche des informations sur les alias.
# set type=hinfo => affiche des informations sur un matériel (s'il est renseigné).
# On tape tout d'abord "set type=mx", puis <Enter>,
# puis on tape le nom du domaine sur lequel faire la recherche
$ nslookup
> set type=mx
> free.fr
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
free.fr mail exchanger = 20 mx2.free.fr.
free.fr mail exchanger = 10 mx1.free.fr.
Authoritative answers can be found from:
> exit
Et voici la même requête on mode non-interactif (il suffit de remplacer "set type=" par "-query=" et de fournir le nom de l'élément à interroger) :
$ nslookup -query=mx free.fr
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
free.fr mail exchanger = 10 mx1.free.fr.
free.fr mail exchanger = 20 mx2.free.fr.
Authoritative answers can be found from:
free.fr nameserver = freens2-g20.free.fr.
free.fr nameserver = freens3-scw.free.fr.
free.fr nameserver = freens1-g20.free.fr.
mx1.free.fr internet address = 212.27.48.7
mx1.free.fr internet address = 212.27.48.6
mx2.free.fr internet address = 212.27.42.58
mx2.free.fr internet address = 212.27.42.59
Il est également possible d'interroger une adresse IP pour connaître le nom de la machine qui lui est associée :
$ nslookup 212.27.48.10
10.48.27.212.in-addr.arpa name = www.free.fr.
Authoritative answers can be found from:
48.27.212.in-addr.arpa nameserver = ns0.proxad.net.
48.27.212.in-addr.arpa nameserver = ns1.proxad.net.
ns0.proxad.net internet address = 212.27.32.2
ns0.proxad.net has AAAA address 2a01:e0c:1:1599::53
ns1.proxad.net internet address = 212.27.32.130
Parfois, lorsque vous interrogez un serveur de noms, vous pouvez recevoir une réponse étiquetée comme non autorisée (non-authoritarive answer). C'est généralement le cas lorsque le périphérique interrogé ne se trouve pas dans la zone locale du serveur de noms, mais dans une autre zone :
$ nslookup instagram.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: instagram.com
Address: 157.240.21.174
Name: instagram.com
Address: 2a03:2880:f21f:e5:face:b00c:0:4420