La valeur DNS TTL détermine la durée de con­ser­va­tion des requêtes DNS et des in­for­ma­tions associées dans le cache. Lors de la migration d’un site Web ou de la création de nouveaux sous-domaines, cela peut valoir le coup de modifier la valeur DNS TTL.

TTL, c’est quoi ?

TTL est l’acronyme de « Time to Live ». Cette valeur d’en­re­gis­tre­ment DNS fait référence à la durée de mise en cache de vos pa­ra­mètres DNS avant leur mise à jour au­to­ma­tique.

Les chan­ge­ment DNS prennent un certain temps à se propager sur l’ensemble d’Internet. À titre d’exemple de ce cas de figure, on peut citer la mise à jour de l’adresse IP d’un serveur, la mise à jour de votre en­re­gis­tre­ment MX pour héberger votre courrier élec­tro­nique à un nouvel endroit, ou encore l’ajout d’un nouveau site Internet. Le paramètre TTL indique à Internet le temps né­ces­saire pour vérifier votre en­re­gis­tre­ment DNS et re­cher­cher de nouvelles in­for­ma­tions po­ten­tielles.

Si votre paramètre DNS TTL est de 12 heures, vos en­re­gis­tre­ments DNS seront mis en cache pendant 12 heures avant d’expirer pour que les nouvelles in­for­ma­tions soient prises en compte.

Note

Les domaines IONOS sont pa­ra­mé­trés avec une valeur TTL jusqu’à une heure pour tous les en­re­gis­tre­ments A, AAA, MX, TXT et CNAME.

Domain-Checker

Combien de temps pour le TTL ?

La valeur TTL est exprimée en secondes. En général, elle est fixée par défaut à 12 heures (43 200 secondes) ou 24 heures (86 400 secondes). Si un site Internet migre sur un nouveau serveur ou si vous ajoutez une nouvelle URL à votre serveur, il faudra compter de 12 à 24 heures pour que les nouveaux chan­ge­ments DNS prennent effet.

DNS TTL : les bonnes pratiques

Dans la plupart des cas, il n’est pas né­ces­saire de modifier votre TTL DNS. En revanche, si vous savez que vous allez bientôt procéder à un chan­ge­ment DNS important et que vous souhaitez que les mo­di­fi­ca­tions entrent en vigueur ra­pi­de­ment, il est possible de modifier votre TTL à l’avance.

Mettez à jour votre TTL au moins 24 heures à l’avance avec une valeur beaucoup plus courte. Vous pouvez par exemple le modifier à 3 600 (soit 1 heure).

Une fois la mo­di­fi­ca­tion terminée, n’oubliez pas de rétablir vos pa­ra­mètres TTL à leur valeur initiale. La mise en cache DNS est un moyen important de réduire la charge des serveurs, en ce sens il est pré­fé­rable de maintenir ce trafic à un niveau bas.

Notez que même si vous modifiez le TTL de votre nom de domaine, cela ne signifie pas au­to­ma­ti­que­ment que tous les réseaux sur Internet ac­cep­te­ront cette valeur. De nombreux four­nis­seurs d’accès à Internet (FAI) ignorent les pa­ra­mètres TTL et vérifient les en­re­gis­tre­ments DNS externes à leur propre fréquence.

Valeur minimale DNS TTL

Si vous prévoyez d’effectuer pro­chai­ne­ment des mo­di­fi­ca­tions DNS, mieux vaut définir en premier lieu un TTL faible. Les mo­di­fi­ca­tions apportées se pro­pa­ge­ront plus vite sur Internet et seront mieux reconnues.

Dé­fi­nis­sez un nombre supérieur à 0 comme valeur minimale de votre DNS TTL. N’utilisez jamais 0 comme valeur de TTL DNS. Cette valeur ne fait en effet pas partie de la norme et cela peut entraîner le rejet de vos in­for­ma­tions DNS ou leur ignorance.

Conseil

3 600 (soit 1 heure) est une bonne valeur minimale. Elle est suf­fi­sam­ment basse pour que les mo­di­fi­ca­tions prennent effet ra­pi­de­ment sans sur­char­ger les serveurs DNS.

Valeur maximale DNS TTL

La valeur TTL maximale possible est de 604 800 (soit 7 jours). S’il n’existe pas de paramètre DNS TTL maximal d’un point de vue technique, les valeurs su­pé­rieures sont arrondies à 7 jours.

Conseil

Pour la plupart des uti­li­sa­teurs, un réglage DNS TTL maximal de 86 400 (soit 24 heures) est pertinent.

DNS TTL dy­na­miques

DNS dynamique (DynDNS) est une ex­cel­lente méthode pour associer une adresse IP non statique à un nom de domaine.

Supposons que vous possédiez le nom de domaine exemple.com. Vous souhaitez utiliser accueil.exemple.com pour faire référence à un serveur de votre réseau local, mais votre FAI ne vous a pas octroyé d’adresse IP fixe. Cela veut dire que l’adresse IP externe de votre serveur local change ré­gu­liè­re­ment.

Conseil

Vous ne savez pas lequel choisir ? Retrouvez les meilleurs four­nis­seurs DynDNS gratuits dans notre tableau ré­ca­pi­tu­la­tif.

Les services DNS dy­na­miques sont capables d’associer une adresse IP variable avec un nom de domaine (comme accueil.exemple.com). Chaque fois que l’adresse IP change, votre DNS se met au­to­ma­ti­que­ment à jour pour que cette mo­di­fi­ca­tion soit prise en compte ra­pi­de­ment.

À la con­fi­gu­ra­tion du DNS dynamique pour votre nom de domaine, vous devrez peut-être spécifier un TTL pour les en­re­gis­tre­ments. Il n’existe pas de réponse uni­ver­selle con­cer­nant la valeur TTL à utiliser pour un en­re­gis­tre­ment DNS dynamique. Cela dépend en partie de la durée pendant laquelle l’adresse IP reste la même. Plus celle-ci change souvent, plus la valeur TTL à utiliser sera faible.

Conseil

Une règle com­mu­né­ment mise en œuvre consiste à réduire votre DDNS TTL de la moitié du montant de votre bail DHCP. Si la durée du bail DHCP est réglée sur 60 (soit 1 minute), réglez votre TTL sur 30 (soit 30 secondes). Si elle est de 3 600 (1 heure), réglez votre TTL sur 1 800 (30 minutes).

In­ter­ro­ger DNS TTL

Voici comment vérifier les pa­ra­mètres TTL de votre site.

Linux, Unix ou Mac OS X

Le moyen le plus simple d’obtenir vos pa­ra­mètres DNS TTL est d’utiliser l’uti­li­taire Dig, dis­po­nible sous Linux, Unix et Mac OS X.

Dans le shell, tapez la ligne de commande suivante :

dig exemple.com

Cette commande renvoie les in­for­ma­tions DNS (avec les valeurs TTL) pour le nom de domaine en paramètre.

Windows

Sous Windows, l’uti­li­taire nslookup permet de vérifier les valeurs DNS TTL d’un site Internet.

Ouvrez une fenêtre d’invite de commande :

  • Sous Windows 7 : Démarrer > Tous les pro­grammes > Ac­ces­soires > Invite de commandes ;
  • Sous Windows 10 : Clic droit Démarrer > Exécuter > saisir « cmd » et cliquer sur OK.

Pour exécuter nslookup et obtenir les valeurs TTL, tapez la commande suivante :

nslookup -type=soa exemple.com

Cette commande permet d’obtenir les in­for­ma­tions du serveur de noms de domaines faisant autorité pour ce domaine précis, y compris le TTL standard en secondes et en heures.

Online

Plusieurs outils en ligne per­met­tent d’utiliser l’uti­li­taire dig pour effectuer gra­tui­te­ment une recherche DNS TTL.

Dans cet exemple, nous uti­li­se­rons Google Apps :

On peut voir que les valeurs de DNS TTL pour les en­re­gis­tre­ments de ce domaine sont réglées sur 21 599 secondes (soit 6 heures).

Comment modifier le DNS TTL si vous hébergez votre propre serveur DNS

Si vous gérez votre propre serveur DNS, la mo­di­fi­ca­tion de votre TTL consiste sim­ple­ment à éditer votre fichier de zone DNS et à vous assurer que votre service DNS accepte les mo­di­fi­ca­tions. Cela peut varier en fonction du service DNS utilisé ; dans certains cas le choix de la version Linux ou Unix peut aussi jouer un rôle.

Une fois les mo­di­fi­ca­tions ef­fec­tuées, vérifiez qu’elles ont été prises en compte en demandant les nouvelles in­for­ma­tions DNS à votre serveur avec la commande suivante :

dig @localhost exemple.com

BIND

BIND est le logiciel DNS le plus fré­quem­ment utilisé. Sous BIND, le TTL est stocké en début du fichier de zone, en général sur la deuxième ligne. La dé­cla­ra­tion TTL commence par $TTL, elle est réglée par défaut sur quatre heures (14 400 secondes) :

$TTL 14400

Voici comment trouver le fichier de zone sous Red Hat et CentOS :

Dans une ins­tal­la­tion BIND typique sous Red Hat ou CentOS, le fichier de zone d’un site ressemble à peu de choses près à ça : /var/named/[nom de domaine].db ou /var/named/[nom de domaine].zone. Par exemple, pour modifier le fichier exemple.com dans une con­fi­gu­ra­tion standard typique, la commande serait la suivante :

sudo nano /var/named/exemple.com.db

Trouver le fichier de zone sous Debian et Ubuntu :

Dans une ins­tal­la­tion BIND typique sous Debian ou Ubuntu, le fichier de zone d’un site ressemble à peu de choses près à ça : /etc/bind/[nom de domaine].db. Ainsi, pour modifier le fichier exemple.com dans une con­fi­gu­ra­tion standard typique, on tapera la commande suivante :

sudo nano /etc/bind/exemple.com.db

Modifier le fichier de zone

Il y a deux lignes à modifier dans le fichier de zone, à savoir le TTL et le numéro de série :

  • Mettez à jour le TTL avec la valeur que vous souhaitez utiliser ;
  • Mettez à jour le numéro de série pour que BIND en­re­gistre la mo­di­fi­ca­tion.

Mise à jour du TTL

Le TTL sera la première ligne du fichier et res­sem­blera à peu près à ça :

$TTL            86400

Il suffit de modifier la valeur TTL (en secondes) par celle sur laquelle vous souhaitez le régler.

Mise à jour du numéro de série

Dans une con­fi­gu­ra­tion classique, il suffit d’augmenter le numéro de série. Par exemple, on mettra à jour le numéro de série 1234 par 1235.

Certains ad­mi­nis­tra­teurs système utilisent un système d’ho­ro­da­tage, un numéro de version ou un programme pour in­cré­men­ter au­to­ma­ti­que­ment le numéro de série. Contactez l’ad­mi­nis­tra­teur de votre serveur si avec des doutes sur le système utilisé pour les numéros de série BIND.

En­re­gis­trez et fermez le fichier.

Vé­ri­fi­ca­tion du fichier

Avant de recharger les mo­di­fi­ca­tions, vérifiez la syntaxe de la con­fi­gu­ra­tion BIND la plus im­por­tante à l’aide de la commande suivante :

sudo named-checkconf

Si tout est en ordre, vérifiez la syntaxe du fichier de zone que vous venez d’éditer avec la commande suivante :

sudo named-checkzone [domain name] [path to file]

Si vous avez par exemple modifié le TTL pour exemple.com dans le fichier /var/named/exemple.com.db, utilisez la commande suivante :

sudo named-checkzone exemple.com /var/named/exemple.com.db

Recharger les mo­di­fi­ca­tions

Si les fichiers passent le contrôle syn­taxique, rechargez le fichier de zone dans BIND à l’aide de la commande suivante :

sudo rndc reload exemple.com

Fa­cul­ta­tif : si systemctl a été configuré, vous pouvez re­dé­mar­rer BIND sous Red Hat et CentOS avec la commande suivante :

sudo systemctl restart named
Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

Unbound

Unbound a remplacé BIND comme serveur DNS par défaut sur de nombreux systèmes BSD, y compris à partir de FreeBSD 10 et après, et OpenBSD 5.6 et après.

Par défaut, sur la plupart des systèmes, le fichier de con­fi­gu­ra­tion se trouve sous :

  • OpenBSD : /var/unbound/etc/unbound.conf ;
  • FreeBSD 10.0 et avant : /usr/local/etc/unbound/unbound.conf ;
  • FreeBSD 10.1 et après : /etc/unbound/unbound.conf ;
  • Red Hat et CentOS 7 : /etc/unbound/unbound.conf.

Le fichier de con­fi­gu­ra­tion Unbound standard ne contient pas de valeur TTL. Il est possible d’en ajouter une à votre fichier Unbound Zone avec les attributs suivants :

  • cache-max-ttl : durée maximale pour mettre en cache TTL. La valeur par défaut est ici de 86 400 secondes (soit 1 jour) ;
  • cache-min-ttl : durée minimale de mise en cache de TTL. Le réglage par défaut est de 0 seconde. Attention : il est re­com­mandé de laisser cette valeur à 0.

Pour modifier ou régler le TTL, modifiez votre fichier unbound.conf ainsi :

sudo nano /etc/unbound/unbound.conf

Vérifiez que les attributs cache-max-ttl et cache-min-ttl sont bien présents dans le fichier. S’ils existent déjà, vous pouvez modifier ces valeurs. Si elles n’existent pas, vous devez les ajouter :

## Minimum lifetime of cache entries in seconds. Default is 0.
cache-min-ttl: 0
## Maximum lifetime of cached entries. Default is 86400 seconds (1 day).
cache-max-ttl: 14400

Placez ces con­fi­gu­ra­tions dans le bloc de commandes du serveur principal, en­re­gis­trez le fichier et fermez-le.

Après avoir édité le fichier de con­fi­gu­ra­tion, testez-le avec la commande suivante :

unbound-checkconf

Pour finir, re­dé­mar­rez Unbound pour que les mo­di­fi­ca­tions soient prises en compte avec la commande suivante :

unbound-control reload
Aller au menu principal