Que signifie le TTL sur un enregistrement CNAME?

22

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. Supposons maintenant que je configure mes 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'IP de mydomain.com, et mon serveur revient. CNAME s2.config.mydomain.com.Ensuite, il demande à mon serveur l'IP de s2.config.mydomain.com, et mon serveur revient 10.0.0.1.

Serait-il en cache l' CNAME s2.config.mydomain.comenregistrement pendant 3600 secondes et l' A 10.0.0.1enregistrement 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 la vue CNAME s2.config.mydomain.com, l'obtenir A 10.0.0.1et les mettre en cache pendant 3600 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?

Ryan Pendleton
la source
Pouvez-vous définir plus clairement qui vous entendez par «va-t- il mettre en cache»? Malheureusement, il existe de nombreuses implémentations de résolveurs différents, je ne serais pas surpris du tout si vous trouviez que les deux comportements étaient vrais.
Zoredache
@zoredache Je pense que @Ryan veut savoir: les résolveurs DNS mettent normalement en cache le CNAME ou le résultat d'une recherche CNAME résolue?
coredump
@coredump, oui c'est ce que je voulais dire.
Ryan Pendleton

Réponses:

10

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

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

coredump
la source
Donc, si je comprends bien, l'enregistrement CNAME sera demandé après l'expiration de son TTL, et l'enregistrement A vers lequel il pointe sera également demandé, mais après l'expiration de son propre TTL?
Ryan Pendleton
1
Oui. Cela signifie que TTL fonctionne pour les enregistrements CNAME de la même manière que pour les autres enregistrements.
coredump
3

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 des enregistrements SOA et NS utilisés: c'est une délégation de com. domaine.

Votre question est ancienne. De nos jours, certains fournisseurs DNS ne suivent pas les RFC en permettant aux utilisateurs de mettre des CNAME dans la SOA (ils l'appellent des domaines APEX). Encore une fois, utilisez à vos risques et périls.

Dernier point mais non des moindres, 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 dans le cache et seule l'adresse IP sera demandée deux fois.

En bref: mettre un TTL plus élevé 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 demandes par seconde devrait être à peu près le même.

Xavier Nicollet
la source