Table des matières
Introduction
Lorsque nous naviguons sur Internet, nous utilisons principalement des noms de domaine comme google.com, wikipedia.org ou encore sysnettuto.fr.
Pourtant, les équipements présents sur un réseau communiquent entre eux à l’aide d’adresses IP. Il serait donc peu pratique de devoir mémoriser l’adresse IP de chaque site que nous souhaitons consulter.
C’est à ce moment qu’intervient le DNS, un service essentiel au fonctionnement d’Internet et des réseaux informatiques.
Dans ce tutoriel, nous allons comprendre le fonctionnement du DNS, découvrir comment un nom de domaine est associé à une adresse IP et effectuer plusieurs tests pratiques sous Windows 11 et Ubuntu.
Qu’est-ce que le DNS ?
DNS signifie Domain Name System, que l’on peut traduire par système de noms de domaine.
Son rôle principal est de permettre la correspondance entre un nom de domaine facilement compréhensible par un utilisateur et une adresse IP utilisée par les équipements réseau.
Par exemple, lorsque nous saisissons www.google.com, notre ordinateur doit déterminer l’adresse IP correspondant à ce nom avant de pouvoir communiquer avec le serveur.
Le DNS peut donc être comparé à un annuaire.
Nous connaissons le nom du service que nous souhaitons contacter et le DNS permet à notre ordinateur d’obtenir l’adresse IP correspondante.
Sans ce système, nous devrions beaucoup plus souvent utiliser directement les adresses IP des serveurs que nous souhaitons contacter.
Comment fonctionne une résolution DNS ?
Lorsqu’un utilisateur saisit un nom de domaine dans son navigateur, l’ordinateur doit obtenir l’adresse IP correspondante.
Avant d’effectuer une nouvelle requête, le système peut vérifier si cette information est déjà disponible dans son cache DNS.
Si aucune réponse utilisable n’est disponible, une requête est envoyée au résolveur DNS configuré sur l’ordinateur.
Si nécessaire, plusieurs serveurs peuvent alors intervenir :
- le serveur DNS racine, qui permet d’orienter la recherche vers le domaine de premier niveau correspondant ;
- le serveur TLD, qui gère un domaine de premier niveau comme .com, .fr ou .org ;
- le serveur DNS autoritatif, qui possède les informations DNS du domaine recherché.
Le résolveur obtient finalement l’adresse IP correspondante et la retourne à l’ordinateur.
Le fonctionnement peut être représenté simplement ainsi :
La réponse peut ensuite être conservée temporairement dans un cache afin d’accélérer les prochaines résolutions du même nom.
Les principaux enregistrements DNS
Le DNS peut contenir différents types d’enregistrements selon les informations recherchées.
L’enregistrement A associe un nom de domaine à une adresse IPv4.
Par exemple : www.exemple.fr ? 192.0.2.10
L’enregistrement AAAA remplit le même rôle pour une adresse IPv6.
L’enregistrement CNAME permet de créer un alias vers un autre nom DNS.
L’enregistrement MX indique les serveurs utilisés pour recevoir les courriers électroniques d’un domaine.
L’enregistrement NS indique les serveurs DNS faisant autorité pour une zone DNS.
Enfin, l’enregistrement TXT permet d’associer des informations textuelles à un domaine. Il est notamment utilisé pour différents mécanismes de vérification et de sécurité.
Vérifier les serveurs DNS utilisés
Nous allons maintenant vérifier quels serveurs DNS sont utilisés par nos deux machines.
Sous Windows 11
Ouvrez PowerShell ou une invite de commandes.
Exécutez :
ipconfig /all
Repérez votre carte réseau active puis recherchez la ligne : Serveurs DNS
Windows affiche alors l’adresse du ou des serveurs DNS actuellement configurés.
Ces serveurs peuvent avoir été configurés manuellement ou reçus automatiquement depuis le réseau, notamment grâce au DHCP.
Sous Ubuntu
Ouvrez un terminal puis exécutez :
resolvectl status
Recherchez votre interface réseau active.
Les informations DNS associées à cette interface sont affichées, notamment le serveur DNS actuellement utilisé.
Si Ubuntu utilise NetworkManager, nous pouvons également exécuter :
nmcli device show
Les lignes suivantes permettent notamment d’identifier les serveurs DNS IPv4 :
IP4.DNS
Nous pouvons ainsi vérifier la configuration DNS utilisée par Ubuntu.
Tester une résolution DNS
Nous allons maintenant demander directement au DNS de résoudre un nom de domaine.
Sous Windows 11, ouvrez un terminal puis exécutez :
nslookup google.com
La commande affiche notamment le serveur DNS interrogé ainsi que l’adresse ou les adresses associées au domaine.
Effectuez ensuite le même test sous Ubuntu :
nslookup google.com
Si nslookup n’est pas installé sur Ubuntu, il peut être ajouté avec :
sudo apt update
sudo apt install dnsutils
Nous pouvons également utiliser dig, disponible avec le paquet dnsutils :
dig google.com
dig fournit davantage d’informations sur la requête et la réponse DNS.
Nous pouvons également interroger directement un autre serveur DNS sans modifier la configuration de notre ordinateur.
Par exemple, avec le DNS public de Cloudflare :
nslookup google.com 1.1.1.1
Puis avec celui de Google :
nslookup google.com 8.8.8.8
Cela permet de vérifier qu’un même nom de domaine peut être interrogé auprès de différents résolveurs DNS.
Diagnostiquer un problème DNS
Un problème DNS peut donner l’impression qu’Internet ne fonctionne plus alors que la connexion réseau est toujours opérationnelle.
Nous pouvons commencer par tester directement une adresse IP :
ping 8.8.8.8
Puis tester un nom de domaine :
ping -c 4 google.com
Si la communication avec l’adresse IP fonctionne mais que le nom google.com ne peut pas être résolu, le problème peut provenir du DNS.
Nous pouvons alors vérifier la résolution avec :
nslookup google.com
Il est également possible que l’ordinateur possède une ancienne réponse dans son cache DNS.
Sous Windows 11
Pour afficher le cache DNS :
ipconfig /displaydns
Pour le vider :
ipconfig /flushdns
Windows doit confirmer que le cache de résolution DNS a été vidé.
Sous Ubuntu
Si le système utilise systemd-resolved, nous pouvons vider son cache avec :
sudo resolvectl flush-caches
Nous pouvons ensuite relancer une résolution :
nslookup google.com
Ces manipulations sont particulièrement utiles lorsqu’un enregistrement DNS vient d’être modifié ou lorsque nous rencontrons un problème de résolution de noms.
Conclusion
Le DNS est un service essentiel au fonctionnement des réseaux informatiques et d’Internet. Il permet principalement de traduire des noms de domaine en adresses IP utilisables par les équipements réseau.
Nous avons vu qu’une résolution peut faire intervenir un résolveur DNS ainsi que différents serveurs, notamment les serveurs racine, TLD et autoritatifs.
Nous avons également découvert plusieurs types d’enregistrements comme A, AAAA, CNAME, MX, NS et TXT.
Enfin, grâce à nos machines Windows 11 et Ubuntu, nous avons appris à identifier les serveurs DNS utilisés, effectuer une résolution avec nslookup et dig, interroger un serveur DNS précis et réaliser quelques vérifications lorsqu’un problème de résolution se présente.
Ces connaissances constituent une base importante pour comprendre et diagnostiquer le fonctionnement d’un réseau.
Commentaires
Laisser un commentaire
Soyez le premier à commenter cet article !