Votre connexion Internet fonctionne mais impossible d'accéder à un site web ? Le problème vient probablement du DNS (Domain Name System). Le DNS est l'annuaire d'Internet : il traduit les noms de domaine lisibles (github.com) en adresses IP (140.82.121.4). Ce module vous apprend comment fonctionne le DNS et comment diagnostiquer ses problèmes, une compétence quotidienne en administration système.
TL;DR, L'essentiel en 30 secondes
Section intitulée « TL;DR, L'essentiel en 30 secondes »- Le DNS traduit les noms en IP :
github.com→140.82.121.4 dig +short domaine: obtenir l'IP d'un domaine- NXDOMAIN = domaine inexistant, SERVFAIL = problème serveur DNS
resolvectl status: voir quel DNS votre système utilise réellement
Je sais que c'est bon si...
Section intitulée « Je sais que c'est bon si... »Cochez cette liste avant de conclure que « le DNS est cassé ». Les deux premiers points séparent une panne de résolveur d'une panne de domaine : si le test avec un DNS externe passe alors que le test local échoue, le problème est chez vous, pas chez l'hébergeur du domaine. Le troisième point est celui qui fait gagner le plus de temps sur un incident, car NXDOMAIN et SERVFAIL appellent des actions opposées.
-
dig +short google.comretourne une IP -
dig @8.8.8.8 mon-domaine.comfonctionne (test avec DNS externe) - Je sais interpréter NOERROR, NXDOMAIN et SERVFAIL
Commandes minimales à retenir
Section intitulée « Commandes minimales à retenir »Ces trois commandes se lancent dans cet ordre et forment un diagnostic complet. La première dit si la résolution aboutit, la deuxième révèle quel serveur a réellement répondu (rarement celui que vous croyez), la troisième contourne votre configuration locale pour interroger un résolveur public. Comparer les sorties de la première et de la troisième suffit à localiser la panne.
# 1. Résoudre un nomdig +short github.com
# 2. Voir le DNS utiliséresolvectl status | head -20
# 3. Tester avec un DNS externedig @8.8.8.8 github.com +shortPrérequis
Section intitulée « Prérequis »- Module 3 complété : vous savez ce qu'est une adresse IP et un masque
- Module 5 complété : vous comprenez TCP/UDP et savez tester un port avec netcat
- Une machine Linux connectée à Internet
- Un terminal ouvert
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Pourquoi le DNS existe : l'annuaire qui traduit les noms en IP
- Comment fonctionne la résolution : resolver → root → TLD → autoritaire
- Les types d'enregistrements : A, AAAA, CNAME, MX, TXT
- Les commandes de diagnostic :
nslookupetdig - Les erreurs courantes : NXDOMAIN, SERVFAIL, timeout
- Cas pratiques : vérifier un domaine avant déploiement
Pourquoi le DNS existe-t-il ?
Section intitulée « Pourquoi le DNS existe-t-il ? »Imaginez devoir retenir 140.82.121.4 au lieu de github.com, ou 142.250.179.110 pour google.com. Impossible à l'échelle d'Internet avec ses milliards de sites.
Le DNS résout ce problème avec une base de données distribuée et hiérarchique. Aucun serveur ne détient la totalité des noms : chaque niveau ne connaît que le niveau juste en dessous et sait vers qui déléguer. La racine sait qui gère .com, le serveur de .com sait qui gère github.com, et seul ce dernier détient l'adresse finale. Cette délégation est ce qui permet à des millions d'organisations de modifier leurs propres enregistrements sans autorité centrale.
Ce que le DNS fait concrètement
Section intitulée « Ce que le DNS fait concrètement »Quand vous tapez github.com dans votre navigateur :
- Votre système demande l'IP correspondante
- Le DNS répond
140.82.121.4 - Votre navigateur se connecte à cette IP
Cette traduction prend de quelques ms (réponse en cache) à parfois plus de 100 ms selon la distance au resolver, les retries, la validation DNSSEC ou le fallback TCP.
Comment fonctionne la résolution DNS ?
Section intitulée « Comment fonctionne la résolution DNS ? »Le DNS n'est pas un serveur unique mais une hiérarchie de serveurs spécialisés. Quand votre machine cherche une adresse, elle interroge plusieurs niveaux.
Les acteurs de la résolution
Section intitulée « Les acteurs de la résolution »Suivez les cinq étapes en gardant un point en tête : votre machine ne parle qu'au resolver. Tout le trajet vers la racine, le TLD puis le serveur autoritaire est effectué par le resolver, pas par votre PC. C'est pour cette raison qu'un poste peut résoudre correctement un domaine dont il n'atteindrait jamais les serveurs autoritaires lui-même. Chaque niveau ne renvoie pas la réponse mais une délégation, c'est-à-dire l'adresse du serveur à interroger ensuite.
-
Votre PC envoie une requête au resolver configuré
-
Le Resolver (ex: 8.8.8.8 de Google) fait le travail :
- Il consulte d'abord son cache
- Sinon, il interroge la hiérarchie DNS
-
Le serveur Root répond : "Pour
.com, demande à ce serveur TLD" -
Le serveur TLD (Top-Level Domain) répond : "Pour
github.com, demande à ce serveur autoritaire" -
Le serveur Autoritaire (les NS du domaine) donne la réponse finale
Pour connaître les serveurs autoritaires actuels d'un domaine :
Fenêtre de terminal dig NS github.com +short
Qui résout quoi ? Stub, récursif, autoritaire
Section intitulée « Qui résout quoi ? Stub, récursif, autoritaire »En production, comprendre qui fait quoi évite 80% des confusions :
| Acteur | Rôle | Exemple |
|---|---|---|
| Stub resolver | Envoie les requêtes à un récursif, ne fait aucune résolution lui-même | 127.0.0.53 (systemd-resolved), libc |
| Résolveur récursif | Interroge la hiérarchie DNS et met en cache | 8.8.8.8, 1.1.1.1, Unbound interne |
| Serveur autoritaire | Détient les enregistrements officiels d'une zone | ns1.example.com |
Le fichier /etc/resolv.conf
Section intitulée « Le fichier /etc/resolv.conf »Sur Linux, ce fichier configure les serveurs DNS utilisés par votre système :
cat /etc/resolv.confSortie typique :
nameserver 8.8.8.8nameserver 8.8.4.4search home.lanSignification :
| Directive | Rôle |
|---|---|
nameserver | Serveur DNS à interroger (jusqu'à 3) |
search | Domaine ajouté automatiquement aux noms courts |
Les types d'enregistrements DNS
Section intitulée « Les types d'enregistrements DNS »Le DNS ne stocke pas que des adresses IP. Il existe plusieurs types d'enregistrements selon l'information recherchée.
Les enregistrements essentiels
Section intitulée « Les enregistrements essentiels »| Type | Nom complet | Usage | Exemple |
|---|---|---|---|
| A | Address | Nom → IPv4 | github.com → 140.82.121.4 |
| AAAA | Quad-A | Nom → IPv6 | google.com → 2607:f8b0:4004::8a |
| CNAME | Canonical Name | Alias vers un autre nom | www.github.com → github.com |
| MX | Mail Exchange | Serveur mail du domaine | gmail.com → alt1.gmail-smtp-in.l.google.com |
| NS | Name Server | Serveurs DNS du domaine | github.com → dns1.p08.nsone.net |
| TXT | Text | Métadonnées diverses | SPF, DKIM, validation Let's Encrypt |
Diagnostiquer le DNS avec les commandes
Section intitulée « Diagnostiquer le DNS avec les commandes »Deux outils sont indispensables pour le diagnostic DNS : nslookup (simple) et dig (complet).
nslookup, Requêtes simples
Section intitulée « nslookup, Requêtes simples »nslookup permet des requêtes rapides et fonctionne sur Linux, macOS et Windows.
Syntaxe de base :
nslookup github.comSortie :
Server: 127.0.0.53Address: 127.0.0.53#53
Non-authoritative answer:Name: github.comAddress: 140.82.121.4Interroger un serveur DNS spécifique :
nslookup github.com 8.8.8.8Chercher un type d'enregistrement particulier :
nslookup -type=MX google.comgetent hosts, Ce que l'application voit vraiment
Section intitulée « getent hosts, Ce que l'application voit vraiment »dig interroge uniquement le DNS. Mais votre application peut résoudre via /etc/hosts, mDNS, ou NSS. Pour voir ce que le système retournera vraiment :
# Résolution système complète (hosts + DNS)getent hosts github.com
# IPv4 uniquementgetent ahostsv4 github.com
# IPv6 uniquementgetent ahostsv6 github.comdig, Requêtes avancées
Section intitulée « dig, Requêtes avancées »dig (Domain Information Groper) est l'outil de référence sous Linux. Il offre beaucoup plus de détails que nslookup.
dig github.comSortie :
; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> github.com;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; ANSWER SECTION:github.com. 60 IN A 140.82.121.4
;; Query time: 23 msec;; SERVER: 127.0.0.53#53(127.0.0.53);; WHEN: Thu Jan 23 10:30:00 CET 2025;; MSG SIZE rcvd: 55dig @8.8.8.8 github.comLa notation @8.8.8.8 force l'interrogation du DNS Google, utile pour comparer avec votre DNS local.
dig google.com MXSortie (extrait ANSWER SECTION) :
;; ANSWER SECTION:google.com. 264 IN MX 10 smtp.google.com.Le nombre avant le serveur (ici 10) est la préférence : plus la valeur est basse, plus le serveur est prioritaire. Google n'expose qu'un seul MX ; un domaine avec redondance en affiche plusieurs, comme gmail.com qui va de 5 gmail-smtp-in.l.google.com à 40 alt4.gmail-smtp-in.l.google.com.
dig +short github.comSortie :
140.82.121.4Idéal pour les scripts où vous voulez juste l'adresse IP.
Lire une réponse dig en détail
Section intitulée « Lire une réponse dig en détail »Voici comment interpréter les sections d'une réponse dig :
| Section | Contenu |
|---|---|
| HEADER | Status (NOERROR, NXDOMAIN, etc.) et compteurs |
| QUESTION | Ce qui a été demandé |
| ANSWER | La réponse (ex: l'IP) |
| AUTHORITY | Serveurs DNS faisant autorité |
| ADDITIONAL | Infos supplémentaires |
| Query time | Temps de réponse en ms |
| SERVER | Le serveur DNS interrogé |
Tracer la résolution complète
Section intitulée « Tracer la résolution complète »dig +trace est l'outil à sortir quand une modification DNS « ne se propage pas ». Il court-circuite le cache de votre résolveur et refait le chemin complet, ce qui vous montre la valeur réellement publiée par le serveur autoritaire, indépendamment de ce que votre cache local raconte. Lisez la sortie de haut en bas : chaque bloc correspond à un niveau de délégation, et le dernier bloc contient la réponse faisant autorité.
Pour lancer cette résolution itérative depuis les root servers :
dig +trace github.comFlags dig essentiels en incident
Section intitulée « Flags dig essentiels en incident »Le réflexe utile en astreinte est de raccourcir l'attente. Par défaut dig retente 3 fois avec 5 secondes de patience, soit 15 secondes perdues par serveur injoignable. +time=1 +tries=1 transforme le test en une seconde, ce qui permet d'enchaîner plusieurs résolveurs. Les deux autres options répondent à des symptômes précis : +tcp quand une réponse revient tronquée, +dnssec quand vous soupçonnez un SERVFAIL de validation.
# Timeout court pour tests rapidesdig example.com +time=1 +tries=1
# Forcer TCP (si UDP bloqué ou réponse tronquée)dig example.com +tcp
# Voir les infos DNSSECdig example.com +dnssec
# Combiner : test rapide via DNS Googledig @8.8.8.8 example.com +short +time=2Problèmes DNS courants et solutions
Section intitulée « Problèmes DNS courants et solutions »Les erreurs que vous rencontrerez
Section intitulée « Les erreurs que vous rencontrerez »Le code renvoyé par le résolveur, visible sur la ligne status: du header dig, désigne où se situe le problème. NXDOMAIN et NODATA viennent du serveur autoritaire et signifient que la zone a répondu, donc que la chaîne DNS fonctionne. SERVFAIL et REFUSED viennent du résolveur lui-même, et le domaine n'est probablement pas en cause. Un Timeout n'est pas un code DNS du tout : rien n'est revenu, ce qui pointe vers le réseau ou un firewall.
| Erreur | Signification | Cause probable |
|---|---|---|
| NXDOMAIN | Domaine inexistant | Faute de frappe, domaine expiré, jamais enregistré |
| NODATA | Nom existe mais pas ce type | Demander AAAA alors que seul A existe |
| SERVFAIL | Échec du serveur | Voir encart ci-dessous |
| REFUSED | Requête refusée | Le serveur n'accepte pas vos requêtes (ACL) |
| Timeout | Pas de réponse | Problème réseau, firewall, serveur down |
Diagnostic pas à pas
Section intitulée « Diagnostic pas à pas »Cette séquence part du bas de la pile et remonte, pour éviter de chercher une panne DNS là où c'est le réseau qui est coupé. Arrêtez-vous à la première étape qui échoue : elle désigne la couche responsable. Si l'étape 1 passe et l'étape 2 échoue, le problème est le domaine lui-même ; si l'étape 2 passe alors que la résolution normale échoue, c'est votre résolveur local qu'il faut corriger.
-
Vérifier la connectivité de base
Fenêtre de terminal ping 8.8.8.8Si ça échoue, le problème est réseau, pas DNS.
-
Tester avec un DNS public
Fenêtre de terminal dig @8.8.8.8 github.comSi ça fonctionne, votre DNS local est le problème.
-
Vérifier votre configuration DNS
Fenêtre de terminal cat /etc/resolv.confresolvectl status # sur systemd -
Vider le cache DNS local
Fenêtre de terminal # Sur systemd-resolvedsudo resolvectl flush-caches# Vérifier que le cache est vidé (Current Cache Size doit valoir 0)sudo resolvectl statistics
La chaîne de caches
Section intitulée « La chaîne de caches »Quand « je vide le cache » ne suffit pas, c'est souvent parce que plusieurs niveaux cachent les réponses. Lisez le tableau du haut vers le bas : vous ne maîtrisez que les deux premières lignes. La troisième, le résolveur récursif de l'opérateur ou de l'entreprise, garde l'ancienne valeur jusqu'à expiration du TTL et aucune commande côté client ne l'accélère. C'est pourquoi un collègue voit le nouveau site pendant que vous voyez encore l'ancien.
| Niveau | Cache | Comment vider |
|---|---|---|
| Navigateur | Cache interne (Chrome, Firefox) | Fermer/rouvrir, ou chrome://net-internals/#dns |
| OS / systemd-resolved | Cache local | sudo resolvectl flush-caches |
| Résolveur récursif | Cache partagé (ISP, entreprise) | Impossible côté client |
| CDN / Load balancer | Cache applicatif | Dépend de la plateforme |
Problèmes liés au cache
Section intitulée « Problèmes liés au cache »Avant de vider quoi que ce soit, regardez sudo resolvectl statistics : le bloc Cache affiche Current Cache Size, Cache Hits et Cache Misses. Sans privilèges, la commande échoue sur Permission denied en tentant de joindre le service de supervision de systemd-resolved. Vider un cache déjà vide ne réglera rien et vous fera chercher au mauvais endroit ; après un flush-caches, Current Cache Size doit être retombé à zéro, ce qui confirme que l'opération a porté sur le bon service.
Le cache DNS peut causer des comportements inattendus :
# Voir les statistiques de cache (systemd)sudo resolvectl statistics
# Vider le cachesudo resolvectl flush-caches
# Sur macOSsudo dscacheutil -flushcache && sudo killall -HUP mDNSResponderDNS et transport : UDP, TCP, EDNS0
Section intitulée « DNS et transport : UDP, TCP, EDNS0 »Par défaut, le DNS utilise UDP port 53 pour sa rapidité. Mais certaines situations nécessitent TCP :
Quand DNS bascule en TCP
Section intitulée « Quand DNS bascule en TCP »Le passage à TCP n'est jamais un choix du client : c'est le serveur qui l'impose en positionnant le bit TC (truncated) dans l'en-tête de sa réponse UDP. Le client constate ce bit et rejoue la même question en TCP. Le tableau ci-dessous liste les quatre situations où ce basculement se produit ; retenez surtout la première, car c'est elle qui explique les pannes intermittentes quand un firewall laisse passer UDP/53 mais bloque TCP/53.
| Situation | Mécanisme |
|---|---|
| Réponse > 512 octets (sans EDNS0) | Le serveur met TC=1 (truncated), le client retry en TCP |
| Réponse > taille EDNS0 | Même mécanisme avec le buffer EDNS0 annoncé |
| Transfert de zone (AXFR) | Toujours TCP |
| Politique serveur | Certains serveurs forcent TCP |
Pannes « bizarres » liées au transport
Section intitulée « Pannes « bizarres » liées au transport »Le symptôme typique est un domaine qui répond pour certains types d'enregistrement et pas pour d'autres : le A passe, le TXT ou le DNSSEC échoue. La différence n'est pas le domaine, c'est la taille de la réponse, qui franchit le seuil au-delà duquel le serveur exige TCP. Le test ci-dessous isole ce cas en une commande : si +tcp réussit là où la requête normale échoue, le coupable est sur le chemin réseau, pas dans la zone DNS.
# Tester en forçant TCPdig example.com +tcp
# Si TCP fonctionne mais UDP non → problème firewall/MTUSécurité DNS : DNSSEC, DoT, DoH
Section intitulée « Sécurité DNS : DNSSEC, DoT, DoH »Sans alourdir ce module, voici les concepts de sécurité DNS à connaître :
DNSSEC, Intégrité des réponses
Section intitulée « DNSSEC, Intégrité des réponses »DNSSEC (RFC 4033) permet de vérifier l'authenticité des réponses DNS via des signatures cryptographiques. Il protège contre le cache poisoning mais ne chiffre pas les requêtes.
# Voir si la réponse a été validée (flag "ad" dans le header)dig @9.9.9.9 example.com +dnssec
# Vérifier la chaîne de confiance de bout en boutdelv @9.9.9.9 example.comL'option dig +sigchase que l'on croise encore dans de vieux tutoriels est dépréciée : les versions récentes de BIND affichent ;; +sigchase option is deprecated puis exécutent une requête ordinaire. L'outil de remplacement est delv, livré dans le même paquet que dig (dnsutils sur Debian, bind-utils sur Fedora). Une chaîne valide se termine par la ligne ; fully validated.
Précisez toujours un résolveur validant avec @. Via le stub 127.0.0.53 de systemd-resolved, delv renvoie ;; broken trust chain et dig +dnssec n'affiche pas le flag ad : ce n'est pas le domaine qui est cassé, c'est le stub qui ne transmet pas les enregistrements nécessaires à la validation.
DoT et DoH, Confidentialité des requêtes
Section intitulée « DoT et DoH, Confidentialité des requêtes »| Protocole | Port | Description |
|---|---|---|
| DoT (DNS over TLS) | 853 | Chiffrement TLS, RFC 7858 |
| DoH (DNS over HTTPS) | 443 | DNS dans HTTPS, RFC 8484 |
Ces protocoles chiffrent les échanges entre vous et le résolveur (pas au-delà). Ils empêchent l'espionnage de vos requêtes DNS par votre ISP ou un attaquant réseau.
Cas pratique dans un contexte d'administration
Section intitulée « Cas pratique dans un contexte d'administration »Vérifier qu'un site est accessible via DNS
Section intitulée « Vérifier qu'un site est accessible via DNS »Avant de signaler une panne, vérifiez que le DNS fonctionne :
# Le domaine est-il résolu ?dig +short production.company.com
# La réponse vient-elle du bon serveur ?dig @ns1.company.com production.company.com
# Comparer avec un DNS publicdig @8.8.8.8 production.company.comValider une configuration de domaine
Section intitulée « Valider une configuration de domaine »Lors d'un déploiement, vérifiez les enregistrements critiques :
# Record A (site principal)dig +short example.com A
# Record CNAME (sous-domaines)dig +short www.example.com CNAME
# Records MX (mail)dig example.com MX +short
# Records TXT (SPF, validation)dig example.com TXT +shortSurveiller le TTL avant une migration
Section intitulée « Surveiller le TTL avant une migration »Le TTL détermine combien de temps l'ancienne adresse restera servie par les caches du monde entier après votre bascule. Relevez-le avant de planifier la migration : un TTL de 86400 secondes signifie qu'un utilisateur peut atterrir sur l'ancien serveur pendant 24 heures. La manœuvre consiste à abaisser le TTL à 60 secondes au moins un TTL complet à l'avance, à basculer, puis à le remonter. Attention à la lecture de la sortie : la valeur affichée par un résolveur en cache décroît à chaque requête, seul un dig @ sur le serveur autoritaire donne la valeur publiée.
# Voir le TTL actueldig example.com | grep -A1 "ANSWER SECTION"
# Résultat : example.com. 300 IN A 1.2.3.4# ↑ 300 secondes = 5 minutes de cacheTravaux pratiques
Section intitulée « Travaux pratiques »TP 1 : Exploration DNS de services réels
Section intitulée « TP 1 : Exploration DNS de services réels »Ce premier TP porte sur des domaines publics réels, donc vos résultats ne seront pas identiques aux valeurs citées plus haut : les grands services répondent en anycast et font tourner leurs adresses. C'est précisément ce qu'il faut observer. À l'étape 4, comparez les réponses des trois résolveurs publics et notez les écarts d'adresse ou de TTL ; ces écarts sont normaux et viennent de l'état de cache propre à chaque opérateur.
-
Résolvez l'adresse de GitHub
Fenêtre de terminal dig github.com Adig github.com AAAANotez l'IPv4 et vérifiez si GitHub a une IPv6.
-
Examinez les serveurs mail de Google
Fenêtre de terminal dig google.com MXCombien de serveurs mail sont configurés ? Lequel a la priorité ?
-
Trouvez les serveurs DNS de github.com
Fenêtre de terminal dig github.com NSCes serveurs sont autoritaires pour le domaine.
-
Comparez les réponses de différents resolvers
Fenêtre de terminal dig @8.8.8.8 github.com +short # Googledig @1.1.1.1 github.com +short # Cloudflaredig @9.9.9.9 github.com +short # Quad9Les réponses sont-elles identiques ?
-
Tracez une résolution complète
Fenêtre de terminal dig +trace google.comIdentifiez les serveurs root, TLD et autoritaires dans la sortie.
TP 2 : Diagnostic d'un problème DNS simulé
Section intitulée « TP 2 : Diagnostic d'un problème DNS simulé »L'objectif ici est d'apprendre à distinguer trois échecs qui se ressemblent en apparence. L'adresse 192.0.2.1 de la première étape appartient au bloc de documentation réservé par la RFC 5737 : elle n'est routée nulle part, ce qui reproduit fidèlement un serveur injoignable sans déranger personne. Notez à chaque étape ce que dig affiche exactement : absence de réponse, status: NXDOMAIN, ou Query time élevé. Ces trois signatures mènent à trois corrections différentes.
-
Simulez un mauvais serveur DNS
Fenêtre de terminal # Interroger un serveur qui n'existe pasdig @192.0.2.1 github.comObservez que
digrend la main au bout d'environ 15 secondes, avec;; no servers could be reached. Ce n'est pas un seul timeout mais 3 tentatives de 5 secondes : ce sont les valeurs par défaut de+trieset+time. En incident,+time=1 +tries=1ramène l'attente à une seconde. -
Testez un domaine inexistant
Fenêtre de terminal dig domaine-qui-nexiste-pas-12345.comRepérez le status
NXDOMAINdans la réponse. -
Mesurez les temps de réponse
Fenêtre de terminal dig github.com | grep "Query time"dig @8.8.8.8 github.com | grep "Query time"Comparez votre DNS local au DNS Google.
Testez vos connaissances
Section intitulée « Testez vos connaissances »Le quiz ci-dessous tire ses questions du module et porte principalement sur les codes de réponse, la hiérarchie de résolution et la lecture d'une sortie dig. Le seuil de réussite est fixé à 80 % : en dessous, reprenez la section « Problèmes DNS courants », qui concentre les points les plus souvent manqués.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »Le DNS est l'annuaire distribué d'Internet. Retenez ces points clés :
- Hiérarchie : Root (13 logiques, anycast mondial) → TLD → Autoritaire → Réponse
- Trois acteurs : Stub (local) → Résolveur récursif (fait le travail) → Autoritaire (détient la zone)
- Cache multi-niveaux : Navigateur, OS, résolveur, CDN, et negative caching pour NXDOMAIN
- Types courants : A (IPv4), AAAA (IPv6), CNAME (alias), MX (mail), TXT (métadonnées)
- Outils :
digpour le diagnostic DNS,getent hostspour voir ce que l'application résout - Transport : UDP par défaut, TCP si réponse tronquée (TC=1), EDNS0 pour buffers > 512
- SERVFAIL : Souvent DNSSEC ou timeouts, pas forcément "serveur down"
- Sécurité : DNSSEC = intégrité, DoT/DoH = confidentialité client-résolveur
FAQ : questions fréquentes sur le DNS
Section intitulée « FAQ : questions fréquentes sur le DNS »Ces huit questions couvrent ce qui bloque le plus souvent en pratique : la résolution en ligne de commande, le choix entre dig et nslookup, la distinction entre un enregistrement A et un CNAME, le délai avant qu'un changement prenne effet, la différence entre un résolveur récursif et un serveur autoritaire, l'écart entre NXDOMAIN et SERVFAIL, et ce que recouvrent DoH et DoT.
L'annuaire d'Internet
Le DNS (Domain Name System) traduit les noms de domaine lisibles (exemple.com) en adresses IP utilisables par les machines (93.184.216.34). C'est l'annuaire d'Internet : sans lui, il faudrait retenir des adresses IP pour chaque site.La résolution suit une hiérarchie :- Les serveurs racine (
.) orientent vers les TLD. - Les serveurs de TLD (
.com,.fr) orientent vers le domaine. - Les serveurs autoritaires du domaine donnent la réponse finale.
1.1.1.1, 8.8.8.8) fait toutes ces étapes pour vous et met le résultat en cache.dig, l'outil de référence
dig +short exemple.com # juste l'IP (enregistrement A)
dig MX exemple.com +short # serveurs mail (avec priorite)
dig @1.1.1.1 exemple.com # via un resolveur precis
dig -x 8.8.8.8 +short # resolution inverse (IP -> nom)
dig +trace exemple.com # suivre la delegation depuis la racine
dig et host viennent du paquet bind-utils (RHEL) ou dnsutils (Debian). nslookup reste disponible, mais l'ISC recommande de lui préférer dig ou host, plus modernes et lisibles.Adresse directe ou alias
| Type | Pointe vers | Usage |
|---|---|---|
| A | une adresse IPv4 | exemple.com -> 93.184.216.34 |
| AAAA | une adresse IPv6 | exemple.com -> 2606:... |
| CNAME | un autre nom | www -> exemple.com |
exemple.com sans préfixe), car l'apex porte déjà d'autres enregistrements obligatoires (NS, SOA).Le cache et le TTL
Chaque enregistrement DNS porte un TTL (Time To Live), en secondes : la durée pendant laquelle les résolveurs gardent la réponse en cache.Tant que le TTL n'a pas expiré, les résolveurs servent l'ancienne valeur, même si vous avez modifié l'enregistrement. D'où le délai de propagation.Bonnes pratiques pour une migration :- Baisser le TTL à l'avance (par exemple à 300 s) plusieurs heures avant le changement.
- Vider le cache local après coup :
resolvectl flush-caches # systemd-resolved
Vérifiez la propagation avec dig +short depuis plusieurs résolveurs.Deux rôles opposés
| Résolveur récursif | Serveur autoritaire | |
|---|---|---|
| Détient les données ? | non | oui, pour son domaine |
| Rôle | chercher la réponse | donner la réponse officielle |
| Exemples | box, 1.1.1.1, 8.8.8.8 |
serveurs DNS du domaine |
Chiffrer les requêtes DNS
Le DNS classique circule en clair sur le port 53 (UDP) : tout intermédiaire (FAI, Wi-Fi public) peut voir et modifier vos requêtes. Deux protocoles chiffrent ce trafic :| Protocole | Port | Particularité |
|---|---|---|
| DoT (DNS over TLS) | 853 | port dédié, facile à filtrer |
| DoH (DNS over HTTPS) | 443 | se fond dans le trafic HTTPS |
DNSOverTLS=), mais pas DoH (réservé aux navigateurs comme Firefox/Chrome, ou à un proxy dédié). Ces protocoles améliorent la confidentialité (le FAI ne voit plus les noms consultés) et l'intégrité (pas d'altération en transit). DoH est plus difficile à bloquer car indiscernable du HTTPS normal.dig (Domain Information Groper) : il affiche le code de réponse (NOERROR, NXDOMAIN, SERVFAIL), le TTL, le serveur interrogé et toutes les sections de la réponse, ce qui est indispensable au diagnostic.dig +short github.com
nslookup reste utile pour la compatibilité Windows et une résolution rapide, mais il masque des détails utiles et a des comportements parfois surprenants. Pour voir ce que l'application résout vraiment (avec /etc/hosts et NSS), utilisez getent hosts.dig désigne où se situe le problème.- NXDOMAIN : le domaine n'existe pas. Le serveur autoritaire a répondu, donc la chaîne DNS fonctionne. Causes : faute de frappe, domaine expiré ou jamais enregistré.
- SERVFAIL : un échec côté résolveur, pas côté domaine. Causes fréquentes : validation DNSSEC en échec, timeouts vers les autoritaires, ou délégation cassée.
dig @8.8.8.8 ou dig +dnssec).