Imagina. Acabaste de mudar de fornecedor de alojamento e atualizaste o registo A para apontar para o novo servidor. Atualizas o teu site e nada mudou. O site antigo continua a carregar. Verificas o teu painel de DNS e o novo registo está guardado. Então o que se passa?
A resposta é o TTL. Quando defines um registo DNS, defines também um valor de TTL que diz a todos os servidores DNS da internet durante quanto tempo podem guardar uma cópia em cache desse registo. Até esse temporizador acabar, esses servidores continuam a servir a informação antiga, mesmo depois de teres feito uma alteração. Perceber como funciona o DNS começa por perceber o TTL, porque controla a velocidade de todas as alterações de DNS que fazes.
O que significa TTL?
TTL significa time to live (tempo de vida). No contexto do DNS, é um número associado a cada registo DNS que diz aos servidores durante quantos segundos podem guardar esse registo em cache antes de terem de voltar a verificar se há uma cópia nova.
Todos os registos DNS que crias têm um valor de TTL. Todos os teus tipos de registos DNS o usam. Registos A, registos CNAME, registos MX, registos TXT. Cada um tem a sua própria definição de TTL e cada um pode ser definido com um valor diferente, consoante a frequência com que esperas que esse registo mude.
Como funciona o TTL em termos simples?
Quando alguém escreve o teu domínio num navegador, o dispositivo pergunta a um servidor DNS o endereço IP do teu website. Esse servidor DNS procura o teu registo A e obtém a resposta. Mas também lê o valor de TTL associado a esse registo.
Se o teu TTL estiver definido como 3600, o servidor DNS guarda essa resposta durante 3600 segundos (uma hora). Durante a hora seguinte, quem perguntar a esse mesmo servidor DNS pelo teu domínio recebe a resposta em cache. O servidor não volta a verificar até o temporizador expirar.
Quando o TTL acaba, o pedido seguinte desencadeia uma nova consulta. O servidor DNS volta à fonte, vai buscar o registo atual, lê o novo valor de TTL e recomeça a contagem decrescente.
Pensa nisto como um post-it no frigorífico. Alguém escreve o número de telefone da pizzaria e cola-o no frigorífico. Toda a gente em casa usa esse número até o post-it expirar (ser deitado fora). Depois alguém tem de procurar o número outra vez. Se entretanto a pizzaria mudou de número, o número novo só é apanhado depois de o post-it antigo desaparecer.
Como se mede o TTL?
O TTL mede-se sempre em segundos. Eis os valores mais comuns e o que representam em tempo real.
- 300 equivale a 5 minutos
- 600 equivale a 10 minutos
- 1800 equivale a 30 minutos
- 3600 equivale a 1 hora
- 14400 equivale a 4 horas
- 43200 equivale a 12 horas
- 86400 equivale a 24 horas
A maioria dos painéis de DNS mostra o campo do TTL quando crias ou editas um registo. Alguns usam uma lista com opções predefinidas como "1 hora" ou "automático". Outros deixam-te escrever o número exato de segundos.
O que acontece quando o TTL é alto?
Um TTL alto significa que os servidores DNS guardam o teu registo em cache durante muito tempo. Se o teu TTL for 86400 (24 horas), todos os servidores DNS que consultarem o teu registo guardam essa resposta durante um dia inteiro antes de voltarem a verificar.
A vantagem são menos consultas DNS. Quando milhares de visitantes carregam o teu site, os resolvedores DNS deles já têm a resposta em cache. Isso significa carregamentos de página ligeiramente mais rápidos e menos esforço para a infraestrutura de DNS.
A desvantagem é que as alterações demoram mais a espalhar-se. Se atualizares o teu registo A com um TTL de 24 horas, alguns visitantes podem ainda ver o site antigo durante até 24 horas. Estás a trocar a rapidez das alterações pela eficiência das consultas.
O que acontece quando o TTL é baixo?
Um TTL baixo significa que os servidores DNS atualizam o teu registo com mais frequência. Se o teu TTL for 300 (cinco minutos), os servidores deitam fora a resposta em cache de cinco em cinco minutos e voltam a procurá-la.
A vantagem é que as alterações se espalham depressa. Se atualizares um registo com um TTL de cinco minutos, a maior parte da internet vê o novo valor em minutos.
A desvantagem são mais consultas DNS. Sempre que a cache expira, o servidor tem de fazer uma nova consulta. Num site com muito tráfego, isso significa mais carga nos teus servidores DNS autoritativos. Para a maioria das marcas pequenas e médias, a diferença não se nota. Mas manter um TTL permanentemente baixo quando não estás a fazer alterações é desnecessário.
Qual é um bom TTL predefinido?
Para a maioria dos registos DNS, 3600 (uma hora) é uma predefinição sólida. Equilibra duas coisas.
- As alterações propagam-se numa hora, o que é rápido o suficiente para atualizações de rotina
- Os servidores DNS não têm de procurar o teu registo de poucos em poucos minutos quando nada mudou
Se os teus registos DNS raramente mudam (e na maioria das marcas não mudam), podes usar com segurança 3600 ou até 14400 (quatro horas). A única altura em que precisas de um TTL mais baixo é quando sabes que vem aí uma alteração.
Quando deves baixar o teu TTL?
Baixa o teu TTL antes de fazeres qualquer alteração de DNS importante. Eis as situações em que um TTL baixo te poupa tempo e dores de cabeça.
- Mudar de fornecedor de alojamento e atualizar o registo A
- Migrar o teu website para uma nova plataforma
- Mudar de fornecedor de email e atualizar os registos MX
- Apontar um domínio para um website pela primeira vez
- Configurar um sistema de substituição automática ou de equilíbrio de carga
Em cada um destes casos, queres que a alteração faça efeito o mais depressa possível. Um TTL baixo consegue isso.
Como baixar o TTL antes de uma migração
Há uma estratégia simples que os administradores de DNS experientes usam antes de qualquer migração de servidor. Funciona em três passos.
- 24 a 48 horas antes da alteração, baixa o teu TTL para 300 (cinco minutos). Isto dá ao TTL alto antigo tempo para expirar em todos os servidores DNS do mundo. Quando estiveres pronto para fazer a alteração real, a maioria dos servidores estará a verificar de cinco em cinco minutos
- Faz a alteração de DNS. Atualiza o registo A (ou o registo que estiveres a mudar) para o novo valor. Como o TTL já está baixo, os servidores DNS de todo o mundo apanham o novo valor em minutos
- Depois de a alteração estar confirmada e a funcionar, volta a subir o TTL para 3600 ou para a tua predefinição preferida. Isto pára as consultas constantes, agora que a alteração está feita e o novo registo é estável
Saltar o primeiro passo é o erro mais comum. Se o teu TTL ainda estiver em 86400 quando fazes a alteração, alguns servidores DNS servem o registo antigo durante até 24 horas porque a cache deles ainda não expirou. Baixar o TTL com antecedência evita isso.
Como se ligam o TTL e a propagação do DNS?
A propagação do DNS é o processo de os teus registos DNS atualizados se espalharem por todos os servidores DNS do mundo. O TTL é o principal fator que controla quanto tempo esse processo demora.
Quando as pessoas dizem "a propagação do DNS pode demorar até 48 horas", o que isso quer dizer é que alguns servidores DNS podem ter guardado o teu registo antigo com um TTL alto e não vão verificar atualizações até o temporizador acabar.
Um TTL baixo antes de uma alteração significa propagação mais rápida. Um TTL alto significa propagação mais lenta. É assim tão direto. O número de 48 horas é um cenário de pior caso para registos com TTL de 24 horas, porque alguns servidores podem ter guardado o registo mesmo antes de fazeres a alteração e ainda ter quase um dia inteiro no temporizador.
Erros comuns com o TTL
Dois erros surgem mais do que quaisquer outros em relação ao TTL.
Esquecer-te de baixar o TTL antes de uma alteração. Este é o grande. Atualizas o registo A para apontar para um novo servidor, mas o teu TTL estava em 86400. Agora alguns visitantes veem o site novo e outros veem o antigo, e não tens outra opção senão esperar. Baixa sempre o TTL 24 a 48 horas antes de fazeres alterações de DNS.
Deixar o TTL baixo de forma permanente. Um TTL de 60 segundos significa que todos os servidores DNS verificam atualizações de minuto a minuto. Se os teus registos não estão a mudar, isto só cria tráfego DNS desnecessário. Também pode deixar o teu site ligeiramente mais lento para visitantes de primeira vez, cujo resolvedor DNS tem de fazer uma nova consulta com mais frequência. Usa um TTL baixo temporariamente quando há alterações planeadas e depois volta a subi-lo.
Como a WEMASY trata do TTL
Quando ligas um domínio personalizado ao teu website WEMASY, a plataforma trata da configuração de DNS como parte do processo de configuração. A WEMASY define predefinições de TTL sensatas para os registos de que precisas, por isso não tens de adivinhar que valores usar.
Se estás a migrar para a WEMASY a partir de outro fornecedor, o guia de configuração do domínio acompanha-te na descida do TTL antes de fazeres a mudança, para a transição correr sem problemas. A WEMASY inclui alojamento, SSL e gestão de domínios numa só subscrição. Vê o que está incluído em cada plano na página de preços da WEMASY.
O que vem a seguir
Agora que percebes o que é o TTL e como controla a velocidade das alterações de DNS, o próximo capítulo explica como funciona a propagação do DNS. Vais aprender o que acontece nos bastidores quando um registo DNS é atualizado, porque a propagação não é instantânea e como verificar se as tuas alterações já se espalharam. Para o quadro completo de como funciona o sistema de nomes de domínio, revê o capítulo sobre como funciona o DNS.
Perguntas frequentes
Posso definir um TTL diferente para cada registo DNS?
Sim. Cada registo DNS tem o seu próprio campo de TTL. Podes definir o registo A como 3600 (uma hora) e o registo MX como 14400 (quatro horas), se isso se ajustar às tuas necessidades. Os registos que mudam com mais frequência podem ter um TTL mais baixo, enquanto os registos estáveis podem usar um mais alto. Com o criador de websites da WEMASY, podes configurar isto diretamente no teu website.
O TTL afeta a velocidade de carregamento do website?
Não diretamente. O TTL controla com que frequência os servidores DNS atualizam a cópia em cache dos teus registos DNS. Quando o dispositivo de um visitante já resolveu o teu domínio num endereço IP, o TTL não tem qualquer efeito na rapidez com que as tuas páginas carregam. A diferença está apenas na rapidez com que a própria consulta DNS termina, o que acrescenta milissegundos, não segundos.
Que TTL devo usar nos registos de email?
Para registos MX e registos TXT relacionados com email (como SPF e DKIM), um TTL de 3600 (uma hora) é uma predefinição segura. Se estás prestes a mudar de fornecedor de email, baixa o TTL para 300 um ou dois dias antes da mudança e volta a subi-lo quando a nova configuração estiver confirmada.
Posso forçar os servidores DNS a limpar a cache antes de o TTL expirar?
Não. Não podes forçar servidores DNS externos a largar os registos em cache. Cada servidor respeita o seu próprio temporizador. A única forma de acelerar o processo é ter definido um TTL baixo antes de fazeres a alteração. Alguns fornecedores de DNS oferecem uma ferramenta de limpeza de cache para os seus próprios servidores, mas isso não afeta todos os servidores da internet.
Existe um valor mínimo de TTL que devo usar?
Tecnicamente podes definir o TTL tão baixo como 1 segundo, mas a maioria dos fornecedores de DNS impõe um mínimo de 60 ou 300 segundos. Descer abaixo de 300 raramente é útil. Mesmo durante migrações, um TTL de cinco minutos dá-te uma propagação rápida sem sobrecarregar a infraestrutura de DNS.