Cache DNS

Protocoles et Normes
Stockage temporaire des résultats des requêtes DNS par les résolveurs ou les clients pour accélérer les recherches répétées.
← Retour au Glossaire

Qu'est-ce qu'un cache DNS ?

La mise en cache DNS est le stockage temporaire des résultats des requêtes DNS par les résolveurs, les systèmes d'exploitation, les navigateurs et les applications. Lorsqu'une recherche DNS est effectuée, le résultat est mis en cache pour une période définie par la valeur TTL (Time To Live) du registre, permettant aux requêtes suivantes du même domaine d'être répondues instantanément sans interroger les serveurs faisant autorité.

Pourquoi la mise en cache DNS est importante

Sans mise en cache, chaque requête web nécessiterait une recherche DNS complète, ajoutant de la latence et générant un trafic DNS massif. La mise en cache DNS offre :

Comment fonctionne la mise en cache DNS

La hiérarchie de mise en cache

La mise en cache DNS se produit à plusieurs niveaux :

Cache navigateur (secondes à minutes)

Cache du système d'exploitation (secondes à minutes)

Cache du résolveur local (minutes à heures)

Cache du résolveur ISP (minutes à heures)

Serveur de noms faisant autorité (source de vérité)

Processus de recherche en cache

1. L'utilisateur demande example.com

2. Le navigateur vérifie son cache

3. Si échec, le système d'exploitation vérifie son cache

4. Si échec, le résolveur vérifie son cache

5. Si échec, requête récursive aux serveurs faisant autorité

6. Résultat mis en cache à chaque niveau basé sur TTL

7. Réponse renvoyée à l'utilisateur

Expiration basée sur TTL

Chaque registre DNS inclut une valeur TTL :

example.com.    300    IN    A    203.0.113.50

^^^

TTL en secondes (5 minutes)

Les caches stockent ce registre pendant 300 secondes, puis le rejettent. La requête suivante déclenche une nouvelle recherche.

Couches de cache DNS

Cache navigateur

Les navigateurs modernes cachent les résultats DNS indépendamment :

Chrome : Utilise son propre cache DNS (chrome://net-internals/#dns) Firefox : Maintient un cache interne (about:networking#dns) Safari : Utilise le résolveur système

TTL typique du cache navigateur : 60 secondes (indépendamment du TTL DNS)

Cache du système d'exploitation

Windows : Le service client DNS met en cache les résultats
# Afficher le cache

ipconfig /displaydns

# Vider le cache

ipconfig /flushdns

macOS : mDNSResponder gère la mise en cache
# Vider le cache (macOS 10.15+)

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux : Varie selon le système, souvent systemd-resolved
# Vider le cache systemd-resolved

sudo systemd-resolve --flush-caches

# Vérifier les statistiques

sudo systemd-resolve --statistics

Cache du résolveur

Les résolveurs DNS récursifs (DNS ISP, 8.8.8.8, 1.1.1.1) maintiennent de grands caches servant des millions d'utilisateurs :

RésolveurStratégie de cache
Google (8.8.8.8)Respecte TTL, cache global
Cloudflare (1.1.1.1)Respecte TTL, distribué
Résolveurs ISPPeuvent ignorer les TTL bas

Exemples de comportement en cache

Opération normale

Requête 1 : example.com

→ Recherche complète : 50ms

→ Mis en cache pour 300s (TTL)

Requête 2 : example.com (1 minute après)

→ Succès du cache : 1ms

Requête 3 : example.com (10 minutes après)

→ Cache expiré, recherche complète : 50ms

→ Re-mis en cache pour 300s

Mise à jour du registre DNS

Original : example.com → 203.0.113.50 (TTL: 300s)

Heure : 10:00 - DNS mise à jour à 203.0.113.51

Client interroge à 10:02

→ Toujours en cache : 203.0.113.50 (expire 10:05)

Client interroge à 10:06

→ Cache expiré, nouvelle recherche : 203.0.113.51

→ Mis en cache jusqu'à 10:11

Stratégie TTL et mise en cache

Choix des valeurs TTL

Cas d'utilisationTTL recommandéJustification
Infrastructure statique3600-86400s (1-24 heures)Rarement changé, réduire la charge DNS
Site web de production300-1800s (5-30 minutes)Équilibrer la performance et la flexibilité
Migration active60-300s (1-5 minutes)Propagation plus rapide lors des changements
Équilibrage de charge60-120sBasculement rapide lors du changement de serveurs

Réduction TTL avant migration

Meilleure pratique lors de la planification de changements DNS :

Jour -7 : example.com TTL 3600s (1 heure)

Jour -2 : Réduire à 300s (5 minutes)

Jour 0 : Faire le changement DNS

→ Conservation maximale en cache 5 minutes

Jour +1 : Restaurer TTL à 3600s

Empoisonnement du cache et sécurité

Attaque par empoisonnement du cache DNS

Les attaquants tentent d'injecter de faux registres DNS dans les caches :

1. L'attaquant inonde le résolveur avec de fausses réponses

2. Si l'une correspond à une requête en attente, elle est mise en cache

3. Les utilisateurs reçoivent une IP malveillante pour un domaine légitime

4. L'empoisonnement en cache est servi à de nombreux utilisateurs

Atténuations de sécurité

DNSSEC : Les registres signés cryptographiquement empêchent l'empoisonnement
example.com.    IN    A      203.0.113.50

IN RRSIG A 8 2 300 ...

Randomisation du port source : Rend les réponses plus difficiles à contrefaire Encodage 0x20 : Casse aléatoire dans les requêtes aide à la validation Sécurité du résolveur : Utiliser des résolveurs réputés (Cloudflare, Google, Quad9)

Vérification du cache DNS

Afficher le contenu du cache

Windows :
ipconfig /displaydns | more
macOS (informations limitées) :
sudo killall -INFO mDNSResponder

# Vérifier Console.app pour les journaux

Linux (systemd-resolved) :
sudo systemd-resolve --statistics

Tester le comportement du cache

# Première requête (échec du cache)

time dig example.com

# Répétition immédiate (succès du cache)

time dig example.com

# Comparer les temps

Problèmes liés au cache

Cache périmé après changement DNS

Problème : Les registres DNS mis à jour ne sont pas reflétés pour les utilisateurs Solution :

1. Attendre l'expiration du TTL

2. Réduire TTL avant les changements futurs

3. Demander aux utilisateurs de vider le cache local

Mise en cache trop agressive

Certains FAI ignorent TTL et cachent plus longtemps :

Problème : Les changements prennent des heures/jours à se propager Solution :

Mise en cache négatif

Les recherches échouées (NXDOMAIN) sont également mises en cache :

Requête : newsubdomain.example.com

Réponse : NXDOMAIN (n'existe pas)

Mis en cache : 3600s (TTL minimum SOA)

Résultat : Le nouveau sous-domaine ne se résoudra pas pendant 1 heure

Solution : Réduire SOA minimum TTL avant d'ajouter de nouveaux registres

Vidage du cache DNS

Quand vider

Comment vider

Windows :
ipconfig /flushdns
macOS :
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd-resolved) :
sudo systemd-resolve --flush-caches
Chrome :
Naviguer vers : chrome://net-internals/#dns

Clic : "Clear host cache"

Firefox :
Bascule network.dnsCacheExpiration dans about:config

Ou redémarrer le navigateur

Meilleures pratiques

1. Définir les TTL appropriés : Équilibrer la performance et la vitesse de changement

2. Réduire le TTL avant les changements : Réduire le TTL 24-48 heures avant les mises à jour DNS

3. Surveiller la propagation : Utiliser les outils pour vérifier la résolution DNS globale

4. Documenter le comportement du cache : Comprendre les couches de mise en cache de votre infrastructure

5. Utiliser DNSSEC : Protéger contre l'empoisonnement du cache

6. Tester complètement : Vérifier que les changements DNS fonctionnent comme prévu avant de déclarer le succès

7. Éduquer les utilisateurs : Fournir des instructions claires pour le vidage du cache si nécessaire

Concepts avancés de mise en cache

Prélecture

Les navigateurs et les résolveurs peuvent prélire les DNS pour les liens sur une page :

<!-- Conseil au navigateur -->

<link rel="dns-prefetch" href="//cdn.example.com">

Préchauffage du cache

Les équilibreurs de charge et les réseaux de distribution de contenu peuvent pré-remplir les caches pour les registres critiques.

Anycast et mise en cache

Anycast DNS achemine les requêtes vers le serveur le plus proche, créant des caches géographiquement distribués pour des performances optimales.

La mise en cache DNS est fondamentale pour les performances d'Internet. Comprendre et configurer correctement les TTL garantit que vos changements DNS se propagent efficacement tout en maintenant des temps de résolution rapides.

Mettez Vos Connaissances en Pratique

Utilisez l'API de DomScan pour vérifier la disponibilité des domaines, la santé et bien d'autres choses.