Comment vérifier si un serveur DNS est configuré sur Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous apprendrez à vérifier si un serveur DNS est configuré sur votre système Linux. Nous allons explorer le fichier de configuration principal /etc/resolv.conf pour identifier les serveurs DNS configurés.

Ensuite, vous utiliserez la commande nslookup pour tester la résolution DNS et vérifier que votre système peut traduire avec succès les noms de domaine en adresses IP. Enfin, nous examinerons le fichier de configuration systemd-resolved /etc/systemd/resolved.conf pour comprendre comment le service de résolveur DNS local est configuré.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ping("Network Testing") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/cat -.-> lab-558709{{"Comment vérifier si un serveur DNS est configuré sur Linux"}} linux/netstat -.-> lab-558709{{"Comment vérifier si un serveur DNS est configuré sur Linux"}} linux/ping -.-> lab-558709{{"Comment vérifier si un serveur DNS est configuré sur Linux"}} linux/ip -.-> lab-558709{{"Comment vérifier si un serveur DNS est configuré sur Linux"}} end

Vérifier le DNS avec cat /etc/resolv.conf

Dans cette étape, nous allons commencer par examiner comment votre système Linux trouve les sites web et les services sur Internet. Ce processus s'appelle la résolution DNS, et il est géré par un service qui traduit les noms de domaine lisibles par l'homme (comme google.com) en adresses IP lisibles par les ordinateurs (comme 172.217.160.142).

Le fichier de configuration principal pour la résolution DNS sur de nombreux systèmes Linux est /etc/resolv.conf. Ce fichier indique à votre système quels serveurs DNS utiliser.

Voyons le contenu de ce fichier en utilisant la commande cat. La commande cat est un outil simple mais puissant utilisé pour afficher le contenu des fichiers.

Ouvrez votre terminal s'il n'est pas déjà ouvert. Vous pouvez trouver l'icône Xfce Terminal sur le côté gauche de votre bureau.

Maintenant, tapez la commande suivante et appuyez sur Entrée :

cat /etc/resolv.conf

Vous devriez voir une sortie similaire à celle-ci :

## This is /run/systemd/resolve/stub-resolv.conf.
## Handled by systemd-resolved(8).
## DNS servers configured in /etc/systemd/resolved.conf.
nameserver 127.0.0.53
options edns0 trust-ad

Décortiquons la sortie :

  • Les lignes commençant par # sont des commentaires et sont ignorées par le système.
  • nameserver 127.0.0.53 : Cette ligne est la plus importante ici. Elle spécifie l'adresse IP du serveur DNS que votre système utilisera. Dans ce cas, 127.0.0.53 est une adresse IP spéciale qui pointe vers un service de résolveur DNS local, souvent systemd-resolved, que nous examinerons plus tard. Ce résolveur local transmet ensuite vos requêtes DNS aux serveurs DNS externes.
  • options edns0 trust-ad : Ce sont des options liées aux requêtes DNS. edns0 est un mécanisme d'extension pour le DNS, et trust-ad est lié à DNSSEC (Extensions de sécurité DNS). Vous n'avez pas besoin de vous soucier de ces options pour l'instant.

Comprendre /etc/resolv.conf est la première étape pour résoudre les problèmes de connectivité réseau liés au DNS. Si ce fichier est manquant ou contient des informations incorrectes, votre système peut ne pas être en mesure de résoudre les noms de domaine.

Cliquez sur Continuer pour passer à l'étape suivante.

Tester la résolution DNS avec nslookup

Dans l'étape précédente, nous avons examiné le fichier /etc/resolv.conf, qui indique à votre système où trouver les serveurs DNS. Maintenant, testons activement si votre système peut résoudre un nom de domaine en utilisant la commande nslookup.

nslookup est un utilitaire en ligne de commande pour interroger le Système de Nommage de Domaines (Domain Name System - DNS) afin d'obtenir une correspondance entre un nom de domaine et une adresse IP ou tout autre enregistrement DNS spécifique. C'est un outil fondamental pour la résolution de problèmes réseau.

Utilisons nslookup pour trouver l'adresse IP de example.com. Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

nslookup example.com

Vous devriez voir une sortie similaire à celle-ci :

Server:		127.0.0.53
Address:	127.0.0.53#53

Non-authoritative answer:
Name:	example.com
Address: 93.184.216.34

Décortiquons cette sortie :

  • Server: 127.0.0.53 : Cela montre l'adresse IP du serveur DNS que nslookup a utilisé pour l'interrogation. Comme nous l'avons vu dans l'étape précédente, il s'agit du résolveur local spécifié dans /etc/resolv.conf.
  • Address: 127.0.0.53#53 : Il s'agit de l'adresse IP et du numéro de port du serveur DNS. Le DNS utilise généralement le port 53.
  • Non-authoritative answer: : Cela indique que la réponse provient d'un serveur DNS de mise en cache, pas du serveur autoritaire pour example.com.
  • Name: example.com : C'est le nom de domaine que vous avez interrogé.
  • Address: 93.184.216.34 : Il s'agit de l'adresse IP que le serveur DNS a renvoyée pour example.com. C'est l'adresse à laquelle votre ordinateur se connecterait lorsque vous essayez de visiter example.com.

Si nslookup renvoie une adresse IP, cela signifie que votre système a réussi à résoudre le nom de domaine. En cas d'échec, vous pourriez voir un message d'erreur indiquant un problème de résolution DNS.

Vous pouvez également essayer de résoudre d'autres noms de domaine, comme google.com ou labex.io.

nslookup google.com

La sortie affichera les adresses IP associées à google.com. Notez qu'un seul nom de domaine peut avoir plusieurs adresses IP.

Cette commande est inestimable pour vérifier que votre configuration DNS fonctionne correctement et pour trouver les adresses IP de noms de domaine spécifiques.

Cliquez sur Continuer pour passer à l'étape suivante.

Inspecter la configuration de resolved avec cat /etc/systemd/resolved.conf

Dans les étapes précédentes, nous avons vu que /etc/resolv.conf pointe souvent vers une adresse locale (127.0.0.53) gérée par systemd-resolved. Ce service fait partie du gestionnaire de systèmes et de services systemd et fournit la résolution de noms de réseau aux applications locales.

La configuration de systemd-resolved se trouve généralement dans le fichier /etc/systemd/resolved.conf. Inspectons ce fichier pour voir comment le résolveur local est configuré.

Utilisez à nouveau la commande cat pour afficher le contenu de /etc/systemd/resolved.conf. Tapez la commande suivante dans votre terminal et appuyez sur Entrée :

cat /etc/systemd/resolved.conf

Vous devriez voir une sortie similaire à celle-ci :

##  This file is part of systemd.
#
##  systemd is free software; you can redistribute it and/or modify it
##  under the terms of the GNU Lesser General Public License as published by
##  the Free Software Foundation; either version 2.1 of the License, or
##  (at your option) any later version.
#
## Entries in this file show the compile time defaults. Local configuration
## should be placed in a file located in /etc/systemd/resolved.conf.d/.
## See resolved.conf(5) for details.

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#DNSSEC=no
#DNSOverTLS=no
#MulticastDNS=yes
#LLMNR=yes
#Cache=yes
#DNSStubListener=yes
#ReadEtcHosts=yes

Examinons les parties clés de ce fichier :

  • Le fichier commence par des commentaires expliquant son but et sa licence.
  • [Resolve] : Cela marque le début de la section de configuration principale pour la résolution de noms.
  • DNS= : Cette ligne commentée est généralement l'endroit où vous répertoriez les adresses IP des serveurs DNS amont que systemd-resolved devrait utiliser. Étant donné qu'elle est commentée, systemd-resolved obtient probablement ses informations sur les serveurs DNS d'une autre source, comme votre configuration réseau (par exemple, DHCP).
  • FallbackDNS= : Cette ligne commentée vous permet de spécifier des serveurs DNS de secours qui seront utilisés si les serveurs principaux répertoriés dans DNS= ne sont pas accessibles.
  • D'autres options commentées contrôlent divers aspects du comportement de systemd-resolved, comme la validation DNSSEC, le DNS sur TLS, la mise en cache et la prise en charge du Multicast DNS (mDNS) et de la Résolution de noms multicast en local (Link-Local Multicast Name Resolution - LLMNR).

Dans cet environnement, les serveurs DNS réels utilisés sont probablement fournis par l'infrastructure réseau sous-jacente (l'environnement de conteneur Docker). systemd-resolved agit comme un cache local et un relais.

Comprendre /etc/systemd/resolved.conf est important pour la configuration avancée du DNS et la résolution de problèmes sur les systèmes utilisant systemd-resolved.

Vous avez maintenant inspecté avec succès les principaux fichiers de configuration liés à la résolution DNS sur ce système Linux.

Cliquez sur Continuer pour terminer ce laboratoire.

Résumé

Dans ce laboratoire, nous avons appris à vérifier la configuration des serveurs DNS sur un système Linux. Nous avons commencé par examiner le fichier /etc/resolv.conf en utilisant la commande cat, qui est le fichier de configuration principal spécifiant les serveurs DNS utilisés par le système. Nous avons compris que les lignes commençant par # sont des commentaires et que la ligne nameserver indique l'adresse IP du serveur DNS, souvent un résolveur local comme 127.0.0.53 géré par systemd-resolved.

Nous avons ensuite testé la résolution DNS en utilisant la commande nslookup pour vérifier si le serveur DNS configuré peut traduire avec succès les noms de domaine en adresses IP. Enfin, nous avons inspecté la configuration du service systemd-resolved en visualisant le fichier /etc/systemd/resolved.conf avec cat, qui fournit des détails supplémentaires sur la configuration du résolveur DNS local et la façon dont il transmet les requêtes aux serveurs DNS externes. Ces étapes offrent une compréhension fondamentale de la configuration et des tests du DNS sur Linux.