Quantcast
Viewing latest article 11
Browse Latest Browse All 123

La commande nslookup pour les débutants

I. Présentation

Dans ce tutoriel, nous allons apprendre à utiliser la commande nslookup puisqu'elle fait partie des commandes indispensables que l'on doit connaître en tant qu'administrateur système et réseau ! Au même titre que vous devez connaître les commandes ping, tracert, ipconfig, etc... Vous devez connaître nslookup. Nous verrons également que la commande PowerShell "Resolve-DnsName" est super intéressante !

II. Qu'est-ce que la commande nslookup ?

La commande nslookup est intégrée à tous les systèmes d'exploitation Windows, que ce soit du Windows desktop ou du Windows Server. Facile à utiliser, elle est très utile pour résoudre les problèmes liés à de la résolution DNS ou pour vérifier rapidement l'état d'un enregistrement DNS.

Que ce soit un problème avec un serveur DNS local (la zone Active Directory, par exemple) ou une zone DNS publique, vous allez pouvoir utiliser nslookup pour obtenir des informations sur les enregistrements DNS et tester la résolution de noms au niveau de votre machine locale.

Par exemple, vous pouvez vérifier quelle est l'adresse IP associée à un nom de domaine "it-connect.fr", vérifier quel est le serveur de messagerie d'un domaine (via la lecture de l'enregistrement MX), ou encore vérifier que le nouveau serveur que vous venez de créer est bien inscrit dans la zone DNS de votre domaine Active Directory. Les exemples sont nombreux, mais nslookup est l'outil qui pourra vous aider à partir du moment où la problématique est liée au DNS. Nous pouvons aussi utiliser nslookup pour vérifier un changement effectué dans une zone DNS.

L'outil nslookup est disponible également sous Linux, même s'il y a aussi l'outil dig.

III. Comment utiliser nslookup ?

Désormais, nous allons apprendre à utiliser la commande nslookup avec plusieurs exemples pratiques. Avant de commencer, sachez que la commande nslookup s'appuie sur la syntaxe suivante :

nslookup <options> <nom de domaine ou adresse IP>

A. Résoudre un nom de domaine

Commençons par un cas d'usage très simple, mais fréquent : résoudre un nom de domaine afin d'obtenir l'adresse IP correspondante. Prenons l'exemple du nom de domaine "google.fr" :

nslookup google.fr

Nslookup me retourne deux adresses IP associées au nom de domaine "google.fr" : une adresse IP v6 et une adresse IPv4. Sur un domaine comme celui de Google, le résultat est susceptible de varier d'une machine à une autre, car Google n'utilise pas qu'une seule adresse IP. Par contre, si vous testez sur votre domaine personnel, vous devriez obtenir votre adresse IP publique (par exemple l'adresse IP publique de votre serveur VPS, serveur dédié, votre box, ou autre).

Image may be NSFW.
Clik here to view.
Exemple nslookup nom de domaine

Nous pouvons remarquer que le résultat de la commande nslookup commence par deux informations : Serveur et Address, faisant référence à "1.1.1.1". En fait, il s'agit du serveur DNS sollicité par nslookup pour résoudre le nom "google.fr". L'outil a utilisé ce serveur DNS car il est défini en tant que serveur DNS préféré sur mon interface réseau utilisée pour accéder à Internet :

Image may be NSFW.
Clik here to view.
Nslookup DNS utilisé pour les requêtes

Nous verrons par la suite que l'on peut solliciter le serveur DNS de notre choix.

B. Résoudre une adresse IP

Nslookup peut aussi solliciter une zone de recherche inversée afin d'obtenir le nom d'hôte associé à une adresse IP. Prenons l'exemple de l'adresse IP "9.9.9.9" :

nslookup 9.9.9.9

Nous pouvons voir qu'elle est associée au nom d'hôte "dns9.quad9.net".

Image may be NSFW.
Clik here to view.
Exemple nslookup adresse IP

C. Quel serveur DNS fait autorité sur un domaine ?

Les enregistrements SOA (Start of Authority) et NS donnent des informations importantes sur un domaine, notamment le serveur DNS faisant autorité sur la zone, mais aussi le contact, le TTL par défaut, etc...

nslookup -type=soa it-connect.tech

Nous pouvons voir la valeur "primary name server" associée à "dns104.ovh.net" : il y a des chances qu'OVHcloud soit le registrar de ce domaine.

Image may be NSFW.
Clik here to view.

Nous pouvons obtenir une information similaire avec la lecture de l'enregistrement NS :

nslookup -type=ns it-connect.tech

Elle retourne :

it-connect.tech nameserver = dns104.ovh.net
it-connect.tech nameserver = ns104.ovh.net

D. Consulter l'enregistrement MX d'un domaine

Si vous souhaitez investiguer sur la partie messagerie d'un domaine, vous devez consulter l'enregistrement de type MX du domaine. Il suffit de préciser le type MX.

nslookup -type=mx it-connect.tech

Ceci permet d'avoir des informations sur le(s) serveur(s) de messagerie de ce domaine :

it-connect.tech MX preference = 0, mail exchanger = itconnect-tech0e.mail.protection.outlook.com
Image may be NSFW.
Clik here to view.

Une réponse comme celle ci-dessus est associée à un domaine lié à un tenant Microsoft 365.

E. Lister les enregistrements TXT d'un domaine

Pour lister les enregistrements de ressources d'un domaine, vous devez consulter les enregistrements avec le type "TXT". Sur le même principe que pour les types NS, SOA, ou encore CNAME, on précise simplement le type comme ceci :

nslookup -type=txt google.com

F. Énumérer les enregistrements d'une zone DNS avec nslookup

Nslookup n'est pas l'outil le plus performant pour énumérer le contenu d'une zone DNS. Il y a des outils plus adaptés comme DNSEnum ou encore Dig, mais il peut tout de même retourner de nombreuses informations. Nous avons vu que l'on pouvait spécifier le type d'enregistrement. Sachez que le type "any" permet d'avoir en résultat les enregistrements des différents types :

nslookup -type=any google.com

Certains serveurs DNS, comme "1.1.1.1" ne supporte pas ces requêtes.

*** one.one.one.one ne parvient pas à trouver google.com : Not implemented

Dans ce cas, nous pouvons solliciter un autre serveur DNS. Mais, comment faire sans modifier la configuration DNS de l'interface réseau de la machine ? Il suffit de préciser le serveur DNS à utiliser à la fin de la requête. Par exemple, pour solliciter "8.8.8.8" à la place du serveur DNS au niveau de l'interface réseau, nous allons utiliser cette syntaxe :

nslookup -type=any google.com 8.8.8.8
nslookup -type=any it-connect.tech 8.8.8.8

Nous pouvons constater que la sortie est plus complète :

Image may be NSFW.
Clik here to view.

G. Lister les contrôleurs de domaine Active Directory avec nslookup

Pour finir, nous allons voir comment lister tous les contrôleurs de domaine d'un domaine Active Directory avec nslookup ? S'il manque un contrôleur de domaine dans la liste retournée, c'est qu'il y a un souci...!

Nous pouvons commencer par une requête toute simple :

nslookup it-connect.local

Cette commande va retourner les adresses IP de tous vos contrôleurs de domaine pour ce domaine.

Pour aller plus loin et obtenir des informations plus précises, notamment avec les noms, il faut consulter un enregistrement de type SRV plus spécifique et stocké dans la zone DNS de votre domaine Active Directory :

nslookup -type=SRV _ldap._tcp.it-connect.local

Le résultat de ces deux commandes en image ci-dessous :

Image may be NSFW.
Clik here to view.

IV. Resolve-DnsName, un équivalent de nslookup avec PowerShell

La commande PowerShell "Resolve-DnsName" est également disponible sur Windows. Comme nslookup, elle permet d'effectuer de la résolution de noms comme nous venons de le faire jusqu'ici. Comme il s'agit d'une commande PowerShell, cela ouvre d'autres possibilités et l'intégration possible au sein de scripts. On pourrait presque dire qu'il s'agisse d'un nslookup moderne.

Voici quelques exemples d'utilisations...

  • Résoudre le nom d'hôte it-connect.fr en sollicitant le serveur DNS 8.8.8.8
Resolve-DnsName it-connect.fr -Server 8.8.8.8
Image may be NSFW.
Clik here to view.
  • Obtenir des informations sur le MX (messagerie) du domaine it-connect.tech
Resolve-DnsName it-connect.tech -Type MX
  • Résoudre le nom d'hôte it-connect.tech en s'appuyant uniquement sur les données présentes dans le cache DNS local
Resolve-DnsName it-connect.tech -CacheOnly
  • Résoudre plusieurs noms d'hôtes avec une seule commande, en se concentrant sur les enregistrements IPv4 (type A)
"google.com", "google.fr" | Resolve-DnsName -Type A
Image may be NSFW.
Clik here to view.

D'ailleurs, vous pouvez utiliser PowerShell pour solliciter nslookup ! Si l'on veut faire l'équivalent de la commande ci-dessus, nous devons exécuter :

"google.com", "google.fr" | Foreach{ nslookup -type=A $_ }

La commande Resolve-DnsName est également très pratique et représente une alternative sérieuse à nslookup, notamment si vous appréciez le scripting PowerShell. Elle a de nombreuses options.

V. Conclusion

Grâce à ce tutoriel, vous êtes en mesure de diagnostiquer facilement vos problèmes de résolution de noms ou vos changements opérés sur vos zones DNS ! Que ce soit avec nslookup ou Resolve-DnsName en PowerShell, vous avez deux suffisamment d'exemples pour devenir autonome dans l'utilisation de ces deux commandes.

The post La commande nslookup pour les débutants first appeared on IT-Connect.


Viewing latest article 11
Browse Latest Browse All 123


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>