DNS Trust Manager 04-18-2023

Commandes DNS pour Windows

DigiCert
DNS Commands for Windows

Peu importe la simplicité ou la complexité de votre configuration, vous devez parfois vérifier le comportement de votre DNS. Cela tombe bien, les ordinateurs intègrent un utilitaire à cet effet. Cet article aborde deux d’entre eux – Windows PowerShell et l’invite de commandes Windows – et présente leurs fonctionnalités respectives mais aussi leurs différences. Prêt à commencer ? Je suppose que oui : après tout, vous êtes là pour ça. Quelque chose me dit même que certains n’hésiteront pas à sauter cette intro pour entrer directement dans le vif du sujet.

Remarque : Tous les exemples sont basés sur un système Windows 10.

Invite de commandes Windows et Windows PowerShell

Microsoft a introduit l’invite de commandes (CMD) sur les systèmes d’exploitation Windows en 1981. Il s’agit d’un programme sous-jacent, qui agit en arrière-plan pour vous donner davantage de contrôle sur votre système. Il s’ouvre dans une simple fenêtre noire qui affiche une invite. Selon votre machine, elle ressemble à ceci : C:\> ou C:\Users\exemple. Avec cet outil, vous pouvez exécuter des lignes de commandes une par une.

PowerShell a quant à lui fait son apparition sur Windows en 2006. Ce shell s’ouvre dans une fenêtre bleue et utilise des applets de commande (cmdlets), plutôt que des commandes CMD ou MS-DOS. Il propose un système de scripts et des fonctionnalités d’administration intégrées, et peut exécuter des commandes par lot (ou batch). Vous pouvez donc lancer une série de cmdlets. Contrairement à l’invite de commandes, PowerShell ne se limite pas aux programmes de console. La version actuelle est basée sur .Net 5.0, qui prend en charge Linux et macOS. PowerShell peut aussi accéder à de multiples bibliothèques sur différents systèmes.

Accéder à l’invite de commandes Windows

Il existe plusieurs façons d’accéder à l’invite de commandes Windows. Vous pouvez cliquer sur l’icône de recherche dans votre barre des tâches et taper « invite de commandes » ou « cmd ». L’application devrait s’afficher en haut de la fenêtre de recherche sous « Meilleur résultat ».

Si, comme moi, vous appréciez les raccourcis clavier, vous pouvez aussi appuyer sur les touches Windows+R pour ouvrir la fenêtre Exécuter. Tapez « cmd », puis cliquez sur OK. Vous y êtes !

Accéder à Windows PowerShell

L’accès à PowerShell se fait de manière similaire, à la différence près qu’il vous faut saisir « PowerShell » (et non « cmd ») dans la barre de recherche ou dans la fenêtre Exécuter. Si vous utilisez la barre de recherche, vous verrez apparaître deux résultats : Windows PowerShell et Windows PowerShell ISE. Dans cet article, nous utiliserons l’application Windows PowerShell de base.

Vous pouvez aussi appuyer sur les touches Windows+X pour ouvrir un menu déroulant, à partir duquel vous pourrez accéder à PowerShell en tant qu’administrateur. Ce menu inclut également Exécuter et d’autres utilitaires Windows.

Le saviez-vous ? PowerShell ISE est une application hôte pour PowerShell. ISE signifie Integrated Scripting Environment (environnement d’écriture de scripts intégré). Cette application propose une interface, là où PowerShell standard s’apparente plus à l’invite de commandes.

Commandes DNS dans l’invite de commandes Windows

Entrons à présent dans le vif du sujet. Voici quelques commandes CMD qui peuvent vous aider à dépanner ou à inspecter votre DNS sous Windows. Comme je suis d’un naturel optimiste, je vais partir du principe que vous avez lu les paragraphes précédents, au lieu de venir directement sur cette partie.

nslookup

La commande nslookup permet de diagnostiquer les problèmes de résolution de noms DNS. On peut la comparer à la fonction dig sur Mac ou Linux. Elle peut vous indiquer l’adresse IP d’un hôte ou effectuer une recherche DNS inversée (pour trouver le nom de domaine d’une adresse IP). nslookup peut aussi fournir des informations sur les enregistrements DNS de votre domaine.

Voici un exemple : C:\Users\nom utilisateur>nslookup dnsmadeeasy.com

Ici, j’effectue une simple requête d’adresse IP pour DNS Made Easy. En retour, je reçois les adresses IPv6 et IPv4 de ce domaine. Il est indiqué « non-authoritative answer » (récupération ne faisant pas autorité), car j’utilise un serveur récursif pour ma requête.

Recherche DNS inversée

Pour connaître le nom de domaine associé à une adresse IP, vous pouvez effectuer une recherche DNS inversée. On procède comme dans l’exemple précédent, mais en sens inverse :

C:\Users\nom utilisateur>nslookup 162.243.68.201

Commande set

Vous souhaitez trouver le serveur de noms d’un domaine ou définir un paramètre spécifique dans votre ligne de commande ? Vous devez alors utiliser la commande set de Windows. Voici un exemple :

C:\Users\nom utilisateur>nslookup

>set q=ns

>dnsmadeeasy.com

(appuyez sur Entrée après chaque commande)

La sortie devrait ressembler à ceci :

Recherche d’enregistrement DNS

Les commandes nslookup et set vous permettent aussi de vérifier ou de dépanner les enregistrements DNS de votre domaine. Dans ce cas, il vous faut suivre l’exemple précédent, mais en spécifiant l’enregistrement que vous souhaitez interroger. Grâce à ces informations, vous pouvez rapidement corriger les erreurs et résoudre les problèmes détectés. Dans l’exemple ci-dessous, j’effectue une recherche d’enregistrements MX, PTR et SOA. Bien sûr, vous pouvez aussi rechercher d’autres types d’enregistrements.

C:\Users\nom utilisateur>nslookup

>set q=mx

>dnsmadeeasy.com

(appuyez sur Entrée après chaque commande)

Conseil : Si votre recherche porte sur plusieurs types d’enregistrements, vous n’avez pas besoin de taper « nslookup » à chaque fois. Après avoir saisi la première commande nslookup, il vous suffit d’exécuter une commande set pour chaque enregistrement, même si vous devez vérifier les enregistrements d’un autre domaine.

Résultats de la recherche d’enregistrement DNS – Définitions

  • Responsible mail addr – Adresse e-mail de l’administrateur de domaine
  • Serial – Numéro de série du fichier de zone
  • Refresh – Délai nécessaire pour qu’un serveur DNS secondaire demande de nouvelles informations lorsque le numéro de série d’un serveur principal a été modifié
  • Retry – Si un serveur principal ne répond pas à une requête, une nouvelle tentative sera effectuée dans le délai indiqué
  • Expire – Délai d’expiration du cache DNS secondaire
  • Default TTL – Durée de mise en cache d’un enregistrement avant son actualisation

Conseil : Il peut être utile de vider votre cache DNS avant d’exécuter ces commandes. Pour cela, tapez : ipconfig/flushdns, puis appuyez sur Entrée. Votre cache devrait à présent être vide.

Débogage DNS

Pour obtenir plus de détails sur le DNS de votre domaine, vous pouvez utiliser la commande debug. Elle vous permet de récupérer les informations d’en-tête des requêtes du serveur DNS (voir la capture d’écran ci-dessous).

C:\Users\nom utilisateur>nslookup

>set debug

>example.com

Commande ping

Vous pouvez diagnostiquer le réseau en exécutant une commande ping dans l’invite de commandes Windows. Cette commande mesure la latence de connexion à une destination spécifique. À titre d’exemple, j’utilise ici « 8.8.8.8 », l’adresse DNS publique de Google.

C:\Users\nom utilisateur>Ping 8.8.8.8

Le résultat vous indique le temps d’aller-retour nécessaire pour obtenir une réponse du serveur interrogé.

Commande traceroute

Autre outil pratique pour diagnostiquer le réseau, la commande traceroute vous permet de suivre le chemin d’un paquet, de son point de départ jusqu’à sa destination. Cela est particulièrement utile pour résoudre les problèmes de connectivité. Dans l’exemple ci-dessous, j’exécute une commande traceroute pour le nom de domaine www.example.com et son adresse IP.

C:\Users\nom utilisateur>tracert 127.0.0.1

C:\Users\nom utilisateur>tracert www.example.com

Cette commande vérifie l’itinéraire qu’empruntent les paquets pour arriver à leur destination. Les sauts indiqués (« hops ») correspondent aux différents arrêts en chemin. Outre le nombre de sauts, la sortie précise également le délai de résolution de la requête. Ces informations vous aident notamment à améliorer la vitesse de votre DNS et à identifier les routeurs problématiques.

Conseil : L’invite de commandes conserve un historique des dernières commandes que vous avez saisies. Pour afficher les commandes utilisées plus tôt dans une même session, il vous suffit d’appuyer sur la flèche haut du clavier pour les faire défiler (voir le GIF ci-dessus).

Commandes DNS dans Windows PowerShell

Si vous préférez l’utilitaire Windows PowerShell, cette section est pour vous. Voici les correspondances entre les commandes CMD et celles de PowerShell.

Équivalent de la commande nslookup dans PowerShell

nslookup = Resolve-DnsName dans PowerShell

PS C:\Users\nom utilisateur>Resolve-DnsName dnsmadeeasy.com (ou C:\Users\nom utilisateur>Resolve-DnsName 162.243.68.201)

Conseil : Pour gagner du temps dans PowerShell, saisissez les premières lettres d’une cmdlet, puis appuyez sur la touche TAB pour utiliser la saisie semi-automatique. Par exemple, si vous tapez « reso » et que vous appuyez sur TAB, PowerShell vous proposera Resolve-DnsName. Cela fonctionne aussi avec d’autres cmdlets comme Test-Connection. Commencez par saisir « test-con », puis appuyez sur la touche TAB pour afficher Test-Connection, et ainsi de suite.

Recherche d’enregistrement DNS dans PowerShell

La cmdlet Resolve-DnsName permet d’effectuer une recherche DNS dans PowerShell. Pour spécifier un enregistrement, vous devez ajouter « -type ».

PS C:\Users\nom utilisateur>Resolve-DnsName dnsmadeeasy.com -Type MX (ou tout autre type d’enregistrement).

Comme vous pouvez le remarquer, la cmdlet fonctionne en tapant « -Type » ou « -type » : elle n’est pas sensible à la casse.

Équivalent de la commande ping dans PowerShell

Ping = Test-Connection dans PowerShell

PS C:\Users\nom utilisateur>Test-Connection dnsmadeeasy.com

Les résultats s’affichent différemment, mais vous pouvez toujours voir la source (nom de l’ordinateur) et les sauts, ainsi que le délai de réponse.

Commande traceroute dans PowerShell

Identique : tracert = tracert dans PowerShell

PS C:\Users\nom utilisateur>tracert example.com

DNS Lookup Tool

Il existe aussi des ressources en ligne utiles pour dépanner le DNS. Ces outils sont d’autant plus pratiques qu’ils sont disponibles partout et sur n’importe quel appareil. Par exemple, le DNS Lookup Tool de Constellix (notre société sœur) peut récupérer les enregistrements DNS et effectuer des vérifications basées sur l’emplacement géographique. Il peut aussi interroger n’importe quel serveur de noms que vous indiquez. Les enregistrements pris en charge sont : A, AAAA, CNAME, MX, TXT, NS, SOA et SRV.

L’outil de Constellix offre bien d’autres avantages. Vous pouvez inspecter différents domaines et/ou serveurs de noms dans une même session. Les résultats peuvent être filtrés par domaine, type d’enregistrement ou emplacement, et vous pouvez développer ou réduire chaque vérification. Vous pouvez aussi copier l’URL des résultats et les envoyer par e-mail à votre équipe pour gagner du temps.

À vous de jouer

Grâce aux options présentées dans cet article, vous pouvez vérifier et dépanner votre DNS. Ce qu’il faut retenir : l’invite de commandes, PowerShell et les outils DNS en ligne vous indiquent tous le serveur de noms, les instructions d’enregistrement et d’autres informations DNS, mais ils fonctionnent différemment. CMD vous permet de saisir une ligne de commande à la fois, tandis que PowerShell utilise des cmdlets et peut exécuter des commandes par lot. Les outils tels que le DNS Lookup Tool de Constellix effectuent des vérifications à partir des informations que vous saisissez.

Bien sûr, l’invite de commandes et PowerShell offrent bien d’autres fonctionnalités. Vous trouverez ci-dessous une sélection de liens qui peuvent vous aider à vous familiariser avec chacun de ces utilitaires.

Ressources complémentaires :

Liste des commandes Windows CMD

Commande nslookup

Liste des cmdlets PowerShell

Présentation de Windows PowerShell

UP NEXT
Infrastructure PKI

3 Surprising Uses of PKI in Big Companies and How to Ensure They Are all Secure

5 Min