TTL e os serviços de DNS Dinâmico (DDNS)

Este texto foi escrito para dar suporte a outros textos que postarei mais tarde. Eu não estou ainda satisfeito com a minha explicação por isso o texto pode mudar bastante, mas a teoria que tento explicar até onde sei está correta.

Primeiro, vamos fazer uma breve resumo do que constitui um “domínio”…

  • Embora a maioria das pessoas veja um domínio como um servidor, na realidade cada domínio pode ser constituído por um número ilimitado de máquinas ou dispositivos. Cada uma dessas máquinas/dispositivos é chamada de “host” e cada host tem seu endereço IP. Normalmente esses hosts fazem parte da mesma rede particular, mas você também pode fazer com que eles apontem para um dispositivo do outro lado do mundo.

…E do que é DNS e como funciona:

  • A internet é uma rede baseada em IP e só entende números IP mesmo. O fato de você poder escrever “ryan.com.br” em seu browser e chegar ao meu site é resultado de uma série de “artifícios” para poder representar números IP por nomes e o serviço que se encarrega de fazer essa tradução é o DNS;
  • Como não faz sentido perder tempo perguntando repetidas vezes algo que você já sabe, mantemos uma memória (no jargão, “cache”) de que IP corresponde a que nome;
  • Mas como essa relação entre nome e IP pode mudar de uma hora para outra, essa memória precisa ter uma duração finita. Aí entra o TTL.

TTL, do inglês Time To Live (tempo de vida) é o parâmetro que determina a “validade” da resposta do servidor DNS e é parte integrante de todo registro DNS. Se o dispositivo recebe uma resposta do servidor DNS dizendo que o TTL é de x segundos, ele só vai consultar o servidor DNS novamente para aquele host se alguém acessá-lo novamente depois de passados x segundos. Esse parâmetro é praticamente irrelevante no dia a dia, mas você precisa estar atento a ele quando usa qualquer serviço de DDNS.

Serviços de DNS dinâmico como o no-ip costumam ter um TTL de 60 segundos. O valor padrão em um serviço de hospedagem como o Hostgator costuma ser 14400 (4 horas). Não é recomendado baixar para menos que 300 (5 minutos) porque o seu provedor pode não gostar do stress desnecessário no servidor DNS dele. E francamente ele tem razão.

Tenha em mente que entre você e o host que você quer acessar existem diversos servidores DNS ou “caches” secundários, inclusive em cada um dos seus roteadores. Quando você configura manualmente no seu PC ou dispositivo um servidor DNS você passa por cima de vários, mas no mínimo você deve contar com o cache no seu dispositivo, o do servidor DNS que você configurou e qualquer um depois dele.

Para um número “n” de caches TTL DNS no caminho, o tempo de propagação “x” é

TTL >= x <= n * TTL

Então, por exemplo, se existirem 3 caches e o TTL for de 4h, o tempo de propagação (o tempo que leva para o dispositivo que fez a consulta receber uma resposta atualizada) será qualquer coisa entre 4h e 12h.

Se por acaso você fizer seu primeiro teste de DDNS com TTL de 14400 e mudar o IP, mesmo que você baixe o TTL para 300 pode ter que esperar 4 horas ou mais até poder “ver” essa mudança ter efeito.

Confuso? Vamos tentar com um exemplo simples:

Servidor DNS configurado na sua máquina: Google (8.8.8.8)
host que você quer acessar: teste.ryan.com.br, que acaba de ser criado e foi configurado com TTL 14400 (default)

Na primeiríssima vez que você acessar teste.ryan.com.br, o Windows não sabe qual é o IP, mesmo que ele saiba o IP default de “ryan.com.br”, porque se trata de outro “host” e vai perguntar ao servidos DNS configurado (o da Google). O servidor da Google também não faz idéia de quem seja (o hostname acaba de ser criado), por isso vai consultar o servidor DNS que tem autoridade sobre o domínio ryan.com.br. A resposta dirá que o TTL é de 14400, assim o servidor da Google só vai perguntar quem é teste.ryan.com.br novamente em 4 horas. Ele repassa a informação para o Windows, que também vai ver esse TTL de 14400 e só vai perguntar novamente ao servidor da Google em 4 horas. Você pode esvaziar o cache DNS do Windows, forçando-o a perguntar mais cedo, mas o servidor da Google ainda acha que o TTL é de 4 horas e não adianta reduzir o TTL de teste.ryan.com.br para 300 nesse meio tempo, porque o servidor da Google só vai tomar conhecimento da redução do TTL quando o prazo expirar e ele fizer uma nova consulta a pedido de alguém.

Escolher qualquer outro servidor DNS nesse meio tempo, como o do OpenDNS (208.67.222.222 ou 208.67.220.220) ou um serviço de ping remoto (vai depender de que servidor DNS esse serviço usa) pode acelerar o processo de teste.

 

1 comentário

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »