DNS: registros, TTL e por que a mudança não propagou
Objetivos desta aula
- Consultar registros com dig
- Escolher entre A, CNAME e ALIAS
- Planejar troca de IP com TTL baixo
DNS traduz nome em endereço, e cada tipo de registro tem um papel: A aponta para IPv4, AAAA para IPv6, CNAME para outro nome, MX para e-mail, TXT para verificações e SPF, NS delega a zona. Na AWS, o registro ALIAS resolve a limitação de CNAME no domínio raiz apontando direto para ALB ou CloudFront.
TTL é a duração do cache. Se você vai trocar de servidor, reduza o TTL para 60 segundos algumas horas antes; do contrário, parte dos usuários continuará indo para o IP antigo por horas. É por isso que 'já mudei o DNS e ainda não funciona' quase sempre é cache, não erro.
Ao diagnosticar, consulte o servidor autoritativo e não apenas o resolvedor local: dig +trace mostra a cadeia completa, e comparar a resposta do seu resolvedor com a do autoritativo revela imediatamente se o problema é propagação.
1. Como uma resolução acontece de verdade
Sua máquina pergunta ao resolvedor recursivo (do provedor, 1.1.1.1, 8.8.8.8). Se ele não tiver cache, pergunta à raiz, que indica os servidores de .dev, que indicam os servidores autoritativos de cloudshop.dev, que finalmente respondem o IP. O resolvedor guarda a resposta pelo TTL e devolve a você.
2. Os registros que você vai usar
- A / AAAA: nome → IPv4 / IPv6
- CNAME: nome → outro nome (não pode coexistir com outros registros no mesmo nome)
- ALIAS/ANAME: comportamento de CNAME no apex, específico do provedor
- MX: servidores de e-mail
- TXT: SPF, DKIM, verificação de domínio, desafios ACME
- NS: quem é autoritativo pela zona
- CAA: quais autoridades podem emitir certificados
3. TTL e cache negativo
O TTL vale também para respostas 'não existe' (NXDOMAIN), controladas pelo registro SOA. Se você consultou um nome antes de criá-lo, pode ficar recebendo NXDOMAIN por alguns minutos mesmo após a criação. Não é bug: é cache negativo.
4. Migração de IP sem indisponibilidade
- Um dia antes, baixe o TTL para 60s.
- Suba o novo destino e teste com
curl --resolve api.cloudshop.dev:443:NOVO_IP https://api.cloudshop.dev/health. - Troque o registro.
- Mantenha o servidor antigo ativo pelo TTL antigo.
- Volte o TTL para 300–3600s.
5. DNS dentro do Kubernetes e do Docker
Containers usam um DNS interno: no Docker Compose, o nome do serviço resolve para o container; no Kubernetes, api.cloudshop.svc.cluster.local resolve para o Service. Muitos erros 'host not found' em cluster vêm de namespace errado no nome curto.
6. Checagem final
Você deve saber consultar o autoritativo, ler o TTL restante, validar um novo destino antes da troca e explicar por que o apex não aceita CNAME.
Na prática
Diagnóstico de DNS
bash
dig api.cloudshop.dev +short
dig api.cloudshop.dev A +noall +answer # inclui TTL
dig NS cloudshop.dev +short # servidores autoritativos
dig @1.1.1.1 api.cloudshop.dev +short # resolvedor publico
dig +trace api.cloudshop.dev | tail -20
dig TXT cloudshop.dev +short
resolvectl status | head -20 # resolvedor localTestar novo servidor antes de trocar o DNS
bash
# forca o nome a resolver para o novo IP apenas neste comando
curl -sS --resolve api.cloudshop.dev:443:203.0.113.20 https://api.cloudshop.dev/health
# {"status":"ok"} <- novo destino pronto; agora pode trocar o registro A
dig api.cloudshop.dev @ns-1.awsdns-00.com +noall +answer # resposta do autoritativoPor que isso importa
Migração de infraestrutura sem plano de DNS gera indisponibilidade parcial e difícil de explicar.
Erro comum
Trocar o registro com TTL de 24h e prometer que a mudança será imediata.
Dica de produção
Antes de qualquer migração, baixe o TTL, valide o novo destino, migre e só depois volte o TTL para um valor alto.
Pergunta de entrevista
Por que não se usa CNAME no domínio raiz e qual a alternativa na AWS?
Glossário
- TTL
- Tempo em segundos que um registro pode ficar em cache.
- autoritativo
- Servidor que detém oficialmente os registros da zona.
- resolvedor recursivo
- Servidor que faz a busca completa e mantém cache para os clientes.
- NXDOMAIN
- Resposta DNS indicando que o nome não existe.
- apex
- O domínio raiz da zona, como cloudshop.dev.
- CAA
- Registro que restringe quais autoridades podem emitir certificados.
Conexão com o CloudShop
Criar api.cloudshop.dev com TTL 60 durante a fase de migração.
Quiz da aula
1. Você mudou o registro A mas parte dos usuários ainda vai ao IP antigo. Causa mais provável?
2. Qual registro é usado no desafio DNS-01 do Let's Encrypt?
3. Como validar um servidor novo sem mexer no DNS?
Minhas anotações
Salvo automaticamente neste navegador.