web-dev-qa-db-fra.com

Que signifie le TTL sur un enregistrement CNAME?

En raison du nombre de serveurs impliqués dans mon réseau, j'ai du mal à les garder tous organisés. Certains d'entre eux n'ont pas d'adresse IP statique, j'ai donc pensé que ce serait bien si je créais un domaine config.mydomain.com. Sur ce domaine, je pouvais stocker les enregistrements A et l'IP pour chacun des serveurs. Voici comment je l'ai configuré:

s1.config.mydomain.com.     A   10.0.0.1    #ttl 60
s2.config.mydomain.com.     A   10.0.0.2    #ttl 60
s3.config.mydomain.com.     A   10.0.0.3    #ttl 60
# etc

Chacun de ces enregistrements a un TTL de 60, au cas où je devrais changer une IP rapidement, mais je ne veux pas nécessairement que les clients se connectent toutes les 60 secondes pour se mettre à jour. Maintenant, disons que je configure mon domaines pour les utiliser, comme ceci:

mydomain.com.           CNAME   s2.config.mydomain.com.   #ttl 3600
mail.mydomain.com.      CNAME   s2.config.mydomain.com.   #ttl 10800
svn.mydomain.com.       CNAME   ns1.config.mydomain.com.  #ttl 21600

Les TTL pour le CNAMES sont plus élevés, alors disons que je vais sur mydomain.com. Il demande à mon serveur DNS l'adresse IP de mydomain.com, et mon serveur renvoie CNAME s2.config.mydomain.com. Ensuite, il demande à mon serveur l'adresse IP de s2.config.mydomain.com, et mon serveur renvoie 10.0.0.1.

Serait-il en cache le CNAME s2.config.mydomain.com enregistrer pendant 3600 secondes, et le A 10.0.0.1 enregistrer pendant 60 secondes? Cela signifie que toutes les 60 secondes, il demandera toujours l'adresse IP à mon serveur?

Ou va-t-il mettre en cache le voir CNAME s2.config.mydomain.com, obtenir le A 10.0.0.1, et mettez-les en cache pendant 3 600 secondes.

Si c'est le premier, je devrai probablement trouver une autre façon de les gérer, alors j'espère que c'est le deuxième, mais je ne suis pas sûr. Connaissez-vous une meilleure façon de les suivre?

22
Ryan Pendleton

Selon ce message sur ISC liste de diffusion, CNAME et l'enregistrement vers lequel il pointe sont mis en cache en résolvant les serveurs de noms ( les serveurs de noms résolus ) ceci est fait pour permettre aux résolveurs d'être en mesure d'optimiser le processus de résolution/mise en cache côté client.

Donc, si le CNAME TTL est valide mais le A vers lequel il pointe n'est pas valide, il ne fera que répéter la recherche jusqu'à l'enregistrement pointé, pas le CNAME d'origine (jusqu'à ce que le CNAME TTL est également en hausse).

10
coredump

Tous vos enregistrements CNAME seront mis en cache pendant un maximum de 3600, 10800 et 21600 secondes.

Les enregistrements A sont traités indépendamment et seront interrogés à nouveau toutes les 60 secondes.

Cependant, dans le cas où le CNAME expire, l'enregistrement A doit être mis à jour en même temps.

Les enregistrements CNAME ont divers pièges expliqués dans la RFC 1912. mydomain.com. ne peut pas être un CNAME, car vous avez SOA et NS enregistrements utilisés: c'est une délégation de domaine com.).

Votre question est ancienne. De nos jours, certains fournisseurs DNS ne suivent pas les RFC en laissant les utilisateurs mettre des CNAME dans les SOA (ils l'appellent des domaines APEX). Encore une fois, utilisez-les à vos propres risques.

Enfin et surtout, mettre des valeurs TTL plus élevées sur vos CNAME pourrait aider lorsque vos clients demandent un enregistrement IPv6: AAAA. Au moins le mappage CNAME restera en cache, et seule l'adresse IP sera demandé deux fois.

En bref: mettre plus haut TTL sur le CNAME réduira la taille des réponses vues par vos clients. Cela devrait également aider le serveur de résolution. Cependant, le nombre de requêtes par seconde devrait être à peu près le même .

3
Xavier Nicollet