Module 6 · 6.1
TTL et cache
Module 6: Temps, cache et transfert de domaine · Temps de lecture : 7 minutes
Objectif d'apprentissage : Après cette leçon, vous pourrez expliquer ce qu'est la TTL d'un enregistrement, comment les caches l'utilisent et quelle TTL choisir selon la situation.
Notions clés : TTL (Time To Live), cache, cache du résolveur, cache de votre ordinateur et de votre navigateur, TTL décroissante, valeurs de TTL typiques (300, 3600, 86400)
Pourquoi le DNS mémorise les réponses
Dans la leçon 1.4, vous avez vu comment un résolveur recherche une réponse : d'abord auprès d'un serveur racine, puis auprès du serveur du TLD et enfin auprès du serveur de noms faisant autorité du domaine. Si cela devait se reproduire à chaque clic sur un site web, internet serait bien plus lent et les serveurs de noms seraient submergés par toutes ces requêtes.
C'est pourquoi les résolveurs mémorisent chaque réponse pendant un certain temps. Cette mémoire s'appelle le cache. Si quelqu'un d'autre interroge le même nom, le résolveur donne immédiatement la réponse depuis son cache, sans refaire tout le trajet.
La question qui se pose alors est : combien de temps le résolveur peut-il mémoriser une réponse ? C'est le propriétaire du domaine qui le détermine, grâce à la TTL de chaque enregistrement.
Ce qu'est la TTL
TTL signifie Time To Live : le temps pendant lequel un enregistrement peut rester dans un cache, exprimé en secondes. Chaque enregistrement a sa propre TTL. Dans une zone, cela ressemble à ceci :
example.com. 3600 IN A 192.0.2.10
www.example.com. 3600 IN A 192.0.2.10
example.com. 3600 IN MX 10 mail.example.com.
_dmarc.example.com. 14400 IN TXT "v=DMARC1; p=quarantine"Le nombre après le nom est la TTL. Ici, les enregistrements A et MX peuvent être mémorisés pendant une heure (3600 secondes) et l'enregistrement DMARC pendant quatre heures (14400 secondes).
Valeurs courantes :
| TTL | Équivaut à | Quand l'utiliser ? |
|---|---|---|
| 300 | 5 minutes | Juste avant et pendant un transfert, ou si vous changez souvent |
| 3600 | 1 heure | Une bonne valeur par défaut pour la plupart des enregistrements |
| 14400 | 4 heures | Enregistrements qui changent rarement |
| 86400 | 1 jour | Enregistrements qui ne changent presque jamais, comme les enregistrements NS |
La TTL est un nombre compris entre 0 et 2 147 483 647 secondes (2^31 - 1, comme indiqué dans la RFC 2181). En pratique, vous rencontrerez rarement une valeur supérieure à un jour ou deux. De nombreux résolveurs appliquent aussi leur propre maximum, souvent un jour ou une semaine.
Le compte à rebours
La TTL n'est pas une horloge fixe valable pour le monde entier. Chaque résolveur ne commence à compter qu'au moment où il récupère l'enregistrement.
Prenons un exemple. L'enregistrement A de example.com a une TTL de 3600.
- À 10h00, le résolveur du fournisseur A interroge l'enregistrement. Il reçoit
192.0.2.10et peut le mémoriser jusqu'à 11h00. - À 10h40, le résolveur du fournisseur B l'interroge. Il le mémorise jusqu'à 11h40.
- À 10h45, vous modifiez l'enregistrement vers
198.51.100.10. - Les utilisateurs du fournisseur A voient la nouvelle adresse à partir de 11h00, ceux du fournisseur B seulement à partir de 11h40.
Si vous interrogez l'enregistrement auprès d'un résolveur qui l'a déjà dans son cache, vous verrez dans le résultat une TTL qui diminue progressivement. Auprès du serveur de noms faisant autorité, vous verrez toujours la valeur complète :
; chez le serveur de noms faisant autorité
example.com. 3600 IN A 192.0.2.10
; chez un résolveur, 25 minutes plus tard
example.com. 2100 IN A 192.0.2.10C'est utile à savoir : si vous voyez encore 2100 secondes chez votre résolveur, cela signifie qu'il continuera à donner l'ancienne réponse pendant encore 35 minutes.
Qui mémorise les réponses ?
Le résolveur de votre fournisseur d'accès n'est pas le seul à avoir un cache. Il existe plusieurs couches :
- Le résolveur de votre fournisseur, de votre réseau d'entreprise ou un résolveur public (par exemple 1.1.1.1, 8.8.8.8 ou 9.9.9.9).
- Votre routeur, à la maison ou au bureau, qui fait souvent lui-même office de petit résolveur.
- Le système d'exploitation de votre ordinateur ou de votre téléphone.
- Votre navigateur, qui conserve parfois lui aussi les réponses DNS un petit moment.
Chaque couche respecte en principe la TTL, mais pas toutes le font avec la même précision. C'est pourquoi cela peut prendre un peu plus de temps sur votre ordinateur portable que chez votre collègue. Vous découvrirez comment vider ces caches dans la leçon 6.2.
Choisir la bonne TTL
Une TTL courte peut sembler pratique : les modifications sont alors rapidement visibles partout. Mais cela comporte un inconvénient. Les résolveurs doivent alors redemander l'enregistrement beaucoup plus souvent. Cela ralentit légèrement le premier chargement de votre site, et si vos serveurs de noms sont momentanément inaccessibles, votre domaine devient plus vite injoignable. Avec une TTL d'une heure, les résolveurs peuvent compenser une courte panne du serveur de noms grâce à leur cache.
Quelques règles de base :
- Par défaut : 3600 secondes. C'est un bon équilibre.
- Pour une modification planifiée : 300 temporairement. Abaissez la TTL au moins une ancienne durée de TTL avant la modification. Si elle était à 3600, faites-le au moins une heure à l'avance, de préférence un jour à l'avance pour plus de sécurité. Si elle était à 86400, faites-le au moins un jour à l'avance. Après la modification, remettez-la à sa valeur initiale. Vous découvrirez comment procéder lors d'un transfert de domaine dans la leçon 6.3.
- En dessous de 60 secondes, cela a peu d'intérêt. Certains résolveurs ignorent les TTL très courtes et appliquent leur propre minimum.
- Abaisser une TTL ne prend effet qu'une fois l'ancienne TTL écoulée. Si vous faites passer la TTL de 86400 à 300 et que vous modifiez immédiatement après l'adresse, les résolveurs qui venaient de récupérer l'enregistrement conserveront l'ancienne valeur pendant encore toute une journée.
Ce dernier point est l'erreur la plus fréquente concernant les TTL. La nouvelle TTL, plus courte, doit d'abord se propager elle-même dans tous les caches.
En pratique : à quoi cela ressemble dans un panneau
Dans le panneau d'exemple DirectAdmin, la TTL apparaît comme une colonne séparée dans Administration DNS. Vous modifiez la TTL d'un seul enregistrement avec le crayon situé à côté de cet enregistrement. Le bouton REMPLACER LA VALEUR TTL permet de définir une seule TTL pour tous les enregistrements du domaine en même temps. Dans Mon WebOké, vous voyez la TTL dans la liste des enregistrements de l'onglet DNS et vous la choisissez dans la fenêtre d'ajout ou de modification d'un enregistrement.
D'autres panneaux fonctionnent de façon similaire : chez cPanel, Plesk, Cloudflare et la plupart des registrars, le champ s'appelle également TTL. Parfois, vous choisissez dans une liste (par exemple « 5 minutes », « 1 heure », « Auto ») plutôt que de saisir un nombre de secondes. Chez Cloudflare, « Auto » signifie 300 secondes pour les enregistrements sans proxy.
Résumé
- La TTL détermine combien de secondes une réponse DNS peut rester dans un cache.
- Chaque résolveur compte à partir du moment où il a récupéré l'enregistrement ; c'est pourquoi tout le monde ne voit pas une modification en même temps.
- Auprès du serveur de noms faisant autorité, vous voyez la TTL complète ; auprès d'un résolveur, une valeur décroissante.
- 3600 est une bonne valeur par défaut ; abaissez-la temporairement à 300 avant une modification planifiée, et ce au moins une ancienne durée de TTL à l'avance.
Quiz
Exercice
Exercice Z6.1 : TTL à la source et chez le résolveur. Recherchez, à l'aide d'un outil DNS en ligne ou de dig, la TTL de l'enregistrement A de sidn.nl, directement auprès de l'un des serveurs de noms de sidn.nl lui-même (par exemple ns1.sidn.nl). Indiquez la TTL en secondes. Interrogez ensuite le même enregistrement auprès d'un résolveur public et indiquez également cette TTL. Expliquez en une phrase pourquoi les deux chiffres peuvent différer.
dig A sidn.nl @ns1.sidn.nl
dig A sidn.nl @9.9.9.9Exercice O6.1 : Le configurer vous-même dans votre zone d'entraînement. Dans votre zone d'entraînement se trouve déjà un enregistrement A <code>.dnspractice.euttl-test. pointant vers <code>.dnspractice.eu192.0.2.61, avec une TTL de 300 secondes. Abaissez la TTL à 60 secondes, comme vous le feriez avant un transfert de domaine, et laissez l'adresse inchangée. Vérifiez ensuite avec dig auprès du serveur de noms de la zone d'entraînement que la nouvelle TTL est bien en place. Validez lorsque la TTL est à 60.
La zone d'entraînement utilise des TTL courtes (entre 30 et 300 secondes) pour que vous n'ayez pas à attendre ; sur votre domaine réel, vous utiliserez par exemple 3600 comme valeur par défaut et 300 juste avant une modification.
Exercice O6.1
Vous réalisez cet exercice dans votre propre zone d'entraînement : une véritable zone DNS sur les serveurs de noms de WebOké, rien que pour vous. Inscrivez-vous avec votre adresse e-mail. Vous recevrez un lien de connexion par e-mail et reviendrez ensuite sur cette leçon. Nous utilisons votre adresse uniquement pour le cours.
Pour aller plus loin
Les étapes décrites dans ces articles concernent les panneaux de WebOké ; dans d'autres panneaux, le fonctionnement est similaire.
- Guide DirectAdmin 5.11: Quand une modification prend-elle effet ? Délai d'attente et TTL
- Guide DirectAdmin 5.2: Ouvrir l'Administration DNS et lire les enregistrements
- Combien de temps dure une modification de nameserver ou de DNS, et que faire si vous ne la voyez pas ?
- Guide WebOké 5.4: Gérer le DNS : ajouter, modifier et supprimer des enregistrements
