O que significa o TTL em um registro CNAME?

22

Devido ao número de servidores envolvidos na minha rede, tenho dificuldade em mantê-los todos organizados. Alguns deles não têm IP estático, então achei que seria bom criar um domínio config.mydomain.com. Nesse domínio, eu poderia armazenar registros A e o IP para cada um dos servidores. É assim que eu o configuro:

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

Cada um desses registros tem um TTL de 60, caso eu precise alterar um IP rapidamente, mas não quero necessariamente que os clientes se conectem a cada 60 segundos para atualizar. Agora, digamos que eu configurei meus domínios para usá-los, assim:

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

Os TTLs para os CNAMES são mais altos, então digamos que eu vá para meudominio.com. Ele pede o IP do mydomain.commeu servidor DNS e meu servidor retorna. CNAME s2.config.mydomain.com.Depois, ele pede o IP do s2.config.mydomain.commeu servidor e meu servidor retorna 10.0.0.1.

Armazenaria em cache o CNAME s2.config.mydomain.comregistro por 3600 segundos e o A 10.0.0.1registro por 60 segundos? Significando que a cada 60 segundos ele ainda solicitará ao meu servidor o endereço IP?

Ou armazenará em cache a visualização CNAME s2.config.mydomain.com, a obtenção A 10.0.0.1e a cache por 3600 segundos.

Se for o primeiro, provavelmente terei que encontrar outra maneira de gerenciá-los, então espero que seja o segundo, mas não tenho certeza. Você conhece uma maneira melhor de acompanhá-los?

Ryan Pendleton
fonte
Você pode definir com mais clareza quem você quer dizer com ' ele armazenará em cache'? Infelizmente, existem muitas implementações de resolvedores diferentes, eu não ficaria surpreso se você descobrisse que ambos os comportamentos são verdadeiros.
Zoredache
@zoredache Acho que o que @Ryan quer saber é: os resolvedores de DNS normalmente armazenam em cache o CNAME ou o resultado de uma pesquisa CNAME resolvida?
Coredump15/
@ Coredump, sim, foi o que eu quis dizer.
Ryan Pendleton

Respostas:

10

De acordo com esta mensagem na lista de correspondência do ISC , CNAME e o registro para o qual ele aponta são armazenados em cache pela resolução de servidores de nomes ( servidores de nomes com resolução sã ), isso é feito para permitir que os resolvedores otimizem o processo de resolução / armazenamento em cache no lado do cliente.

Portanto, se o CNAME TTL for válido, mas o A que ele aponta for inválido, ele repetirá apenas a pesquisa no registro apontado, não no CNAME original (até que o CNAME TTL também esteja ativo).

coredump
fonte
Então, se eu entendi direito, o registro CNAME será solicitado depois que o TTL expirar, e o registro A para o qual ele aponta também será solicitado, mas depois que o próprio TTL expirar?
Ryan Pendleton
1
Sim. Isso significa que o TTL funciona para registros CNAME da mesma forma que para outros registros.
Coredump #
3

Todos os seus registros CNAME serão armazenados em cache por no máximo 3600, 10800 e 21600 segundos.

Os registros A são tratados de forma independente e serão consultados novamente a cada 60 segundos.

No entanto, caso o CNAME expire, o registro A deve ser atualizado ao mesmo tempo.

Os registros CNAME têm várias dicas explicadas na RFC 1912. meudominio.com. não pode ser um CNAME, porque você usa os registros SOA e NS: é uma delegação de com. domínio.

Sua pergunta é antiga. Atualmente, alguns provedores de DNS não seguem RFCs, permitindo que os usuários coloquem CNAMEs no SOA (eles chamam de domínios APEX). Novamente, use por sua conta e risco.

Por último, mas não menos importante, colocar valores TTL mais altos em você CNAMEs pode ajudar quando seus clientes estão solicitando um registro IPv6: AAAA. Pelo menos o mapeamento CNAME permanecerá no cache e somente o endereço IP será solicitado duas vezes.

Resumindo: colocar TTL mais alto no CNAME reduzirá o tamanho das respostas vistas pelos seus clientes. Também deve ajudar o servidor do resolvedor. No entanto, o número de solicitações por segundo deve ser aproximadamente o mesmo.

Xavier Nicollet
fonte