Três camadas dividem o nome “servidor DNS”
Resolvedor stub
seu próprio dispositivo
Resolvedor recursivo
provedor, roteador ou 1.1.1.1
Autoritativo
o DNS do próprio domínio
Resolvedores DNS recursivos vs. autoritativos, explicados
A expressão “servidor DNS” é usada de forma solta para descrever dois papéis realmente diferentes. Mantê-los separados deixa o sistema inteiro muito mais fácil de entender.
O resolvedor recursivo: faz o trabalho pesado
O resolvedor recursivo é aquele com quem o seu dispositivo realmente conversa, geralmente definido pelo seu provedor de internet, pelo seu roteador ou configurado manualmente para uma opção pública como 1.1.1.1 ou 8.8.8.8. A função dele é receber a sua consulta e fazer todo o trabalho necessário para respondê-la: verificar primeiro o próprio cache e, se não encontrar, percorrer a cadeia dos servidores raiz aos servidores de TLD e deles aos servidores autoritativos do próprio domínio, devolvendo então a resposta final a você.
O servidor autoritativo: tem a resposta de verdade
Um servidor de nomes autoritativo é a fonte da verdade sobre os registros de um domínio específico: o único lugar onde ficam os registros A, AAAA, MX e outros daquele domínio. Ele não sai pesquisando nada em seu nome; apenas responde diretamente pelos domínios pelos quais é responsável e recusa (ou encaminha para outro lugar) qualquer outro.
- O seu resolvedor recursivo é uma infraestrutura compartilhada, que normalmente responde por milhões de domínios diferentes com os quais não tem nenhuma relação especial.
- Os servidores autoritativos de um domínio costumam ser poucos e específicos daquele domínio (ou de um pequeno grupo de domínios relacionados).
- Uma ferramenta que faz uma consulta direta, como resolver um domínio diretamente pelo resolvedor de DNS do próprio Node.js contra um resolvedor recursivo público, usa a mesma cadeia de recursivo para autoritativo que o seu navegador usa, só que sem um navegador em volta.
Na verdade, existe um terceiro papel: o resolvedor stub
O seu próprio dispositivo raramente percorre a cadeia completa. Em vez disso, ele executa um resolvedor stub leve, um pequeno software no nível do sistema operacional, sem lógica própria de verdade, cuja única função é encaminhar as perguntas de DNS da sua aplicação para o resolvedor recursivo configurado (o do seu provedor, o do seu roteador ou uma opção definida manualmente, como 1.1.1.1) e devolver a resposta. É por isso que mudar as “configurações de DNS” de um notebook ou celular não muda em nada o funcionamento do DNS: muda apenas para qual resolvedor recursivo o seu resolvedor stub encaminha as perguntas. Cada vez mais, essa etapa de encaminhamento acontece por um canal criptografado, com DNS sobre HTTPS (DoH) ou DNS sobre TLS (DoT), de modo que quem observa a rede local não consegue mais ler em texto puro quais domínios estão sendo consultados.
Essa distinção também explica por que “meu provedor de DNS” e “os servidores de nomes autoritativos do meu domínio” costumam ser a mesma coisa, enquanto “o servidor DNS que estou usando” (como o 1.1.1.1) é um resolvedor recursivo genérico completamente diferente, sem nenhum conhecimento especial sobre o seu domínio: ele é só o mensageiro.
| Papel | Onde roda | O que conhece |
|---|---|---|
| Resolvedor stub | No sistema operacional do seu dispositivo | Nada: apenas encaminha a pergunta |
| Resolvedor recursivo | No seu provedor de internet, no roteador ou em um serviço público como o 1.1.1.1 | Todos os domínios, nenhum em especial: faz o trabalho pesado por todos eles |
| Servidor de nomes autoritativo | No provedor de DNS do dono do domínio | Um domínio (ou um pequeno grupo), com todos os detalhes definitivos |
Por que essa distinção esclarece tanta confusão
Uma quantidade surpreendente de diagnósticos de DNS se resume a descobrir qual dessas três camadas é realmente responsável por um comportamento confuso, e as pessoas costumam errar o palpite porque as três são chamadas, no uso coloquial, de “o servidor DNS”. Um domínio que resolve corretamente quando consultado diretamente nos próprios servidores de nomes autoritativos, mas resolve de forma incorreta pelo resolvedor recursivo de um provedor de internet específico, aponta diretamente para o cache ou a configuração desse resolvedor, e não para algo que o dono do domínio controle. Por outro lado, um domínio que resolve incorretamente, não importa qual resolvedor recursivo seja consultado, aponta para o lado autoritativo. Conseguir fazer essa separação de forma limpa, em segundos, é grande parte do que distingue uma depuração de DNS eficiente de um chute.
Precisa conferir os endereços DNS públicos de um domínio? Use a ferramenta Domain IP Lookup.
Leitura relacionada
Escolhendo um TTL na prática
Entendendo o TTL de DNS: por que mudanças demoram
O TTL controla por quanto tempo uma resposta de DNS fica em cache antes de ser consultada de novo: o verdadeiro motivo de as mudanças não aparecerem na hora.
Dois esquemas de endereçamento, lado a lado
IPv4
192.0.2.10
32 bits, ~4,3 bilhões de endereços, esgotado
IPv6
2606:4700::6810:84e5
128 bits, 340 undecilhões de endereços
Registro A vs. AAAA: IPv4 e IPv6 explicados
Registros A retornam endereços IPv4 e registros AAAA retornam IPv6: duas famílias de endereços independentes para o mesmo domínio e por que verificar ambas.
Uma consulta DNS recursiva, um salto de cada vez
Navegador
quer example.com
Resolvedor
seu provedor / 1.1.1.1
Raiz + TLD
quem opera o .com?
Autoritativo
a resposta real
Cada salto desta cadeia é em si uma consulta DNS, depois armazenada em cache
O que é DNS e como ele realmente funciona?
Um passo a passo em linguagem simples do Sistema de Nomes de Domínio: o que acontece entre digitar um domínio e o navegador se conectar a um servidor.