DNS: o que acontece antes do primeiro byte
Escreve-se um endereço e a página aparece. Pelo meio há uma cadeia de perguntas que vale a pena conhecer — nem que seja para saber onde olhar quando um site "não abre só para si".
1. A cadeia
O browser precisa de um número — 185.199.108.153 — e só tem um nome. Para o descobrir, pergunta a um resolver, normalmente o do fornecedor de internet ou um público como o 1.1.1.1. Se ele não souber, pergunta em cascata:
Aos servidores raiz: quem trata do
.pt?Aos do .pt: quem trata do
exemplo.pt?Ao servidor autoritativo do domínio: qual é o endereço?
Tudo isto normalmente em menos de 50 ms — e quase sempre nem acontece, porque alguém pelo caminho tem a resposta guardada.
2. Os registos que interessam
A exemplo.pt 185.199.108.153 # um endereço IPv4
AAAA exemplo.pt 2606:50c0:8000::153 # um endereço IPv6
CNAME www exemplo.pt # um nome que aponta para outro nome
MX exemplo.pt 10 mail.exemplo.pt # para onde vai o email
TXT exemplo.pt "v=spf1 ..." # texto: verificações, SPF, DKIM3. "A propagação demora 48 horas" é meia verdade
Não há propagação nenhuma: não é uma mudança que se espalha. O que existe é cache com prazo — o TTL de cada registo.
# Ver o que está publicado, e quanto tempo ainda dura
dig +noall +answer exemplo.pt
# exemplo.pt. 300 IN A 185.199.108.153
# └── TTL: 300 segundosQuem já tinha a resposta antiga continua com ela até o TTL expirar. Daí o truque: baixar o TTL para 300 na véspera de uma mudança de servidor, e voltar a subi-lo depois. Sem isso, um TTL de 86 400 obriga a um dia inteiro de espera.
4. Quando algo não bate certo
# Perguntar diretamente a um resolver conhecido, saltando a cache local
dig @1.1.1.1 exemplo.pt
# Perguntar ao servidor autoritativo: é a verdade, sem intermediários
dig @ns1.fornecedor.pt exemplo.ptSe o autoritativo já responde o novo e o seu computador ainda vê o antigo, não há nada partido — há um TTL por expirar, e a única coisa a fazer é esperar.