Objetivos de aprendizado
Depois de ler este artigo, você vai conseguir:
- Entender o que o DNS faz e por que a internet depende dele
- Seguir o caminho de uma consulta, do navegador ao servidor autoritativo
- Consultar um domínio com dig e ler o resultado, incluindo o TTL
Computadores se encontram na rede por endereços IP, como 203.0.113.10 ou 2001:db8::10. Pessoas lembram de nomes. O DNS faz a ponte: você digita meusite.com.br e, em milissegundos, um servidor responde qual IP corresponde àquele nome.
Quase tudo que você faz online começa com uma consulta DNS: abrir um site, chamar uma API, conectar um bot ao Gateway do Discord, enviar um e-mail. Quando o DNS falha, o serviço parece fora do ar mesmo com o servidor funcionando perfeitamente.
O que é o DNS?#
O DNS (Domain Name System) é um banco de dados distribuído e hierárquico que associa nomes a informações, principalmente endereços IP. Foi definido nas RFCs 1034 e 1035 e continua sendo uma das bases da internet.
Dois pontos explicam o desenho:
- Distribuído: nenhuma máquina guarda todos os nomes. Cada organização mantém os dados do seu domínio, e o sistema sabe quem perguntar.
- Hierárquico: o nome
api.meusite.com.brlê-se da direita para a esquerda: raiz (um ponto final implícito),br,com,meusite,api. Cada nível delega o próximo a outros servidores.
Quem participa de uma consulta DNS?#
| Papel | O que faz |
|---|---|
| Cliente (stub resolver) | O sistema operacional ou o navegador. Pergunta ao resolvedor e guarda a resposta em cache. |
| Resolvedor recursivo | Faz o trabalho pesado: consulta os outros servidores até achar a resposta. Costuma ser o do provedor de internet, ou público, como 1.1.1.1 (Cloudflare) e 8.8.8.8 (Google). |
| Servidor raiz | Sabe quais servidores cuidam de cada TLD (.com, .br, .org). Existem 13 servidores raiz nomeados, de a.root-servers.net a m.root-servers.net, cada um com endereço IPv4 e IPv6, replicados em milhares de instâncias pelo mundo (o mapa atualizado fica no root-servers.org). |
| Servidor do TLD | Sabe quais servidores respondem por cada domínio dentro do TLD. |
| Servidor autoritativo | Guarda a zona do domínio e dá a resposta final: os registros DNS. |
Como o DNS encontra um IP, passo a passo?#
Suponha que seu navegador precise de www.meusite.com.br e nada esteja em cache:
- O navegador e o sistema operacional olham seus caches locais. Sem resposta, perguntam ao resolvedor recursivo.
- O resolvedor pergunta a um servidor raiz. A raiz não sabe o IP, mas indica os servidores do
.br. - O resolvedor pergunta aos servidores do
.br, que também respondem pela zona.com.br, e eles indicam os servidores autoritativos demeusite.com.br. - O servidor autoritativo responde com o registro, por exemplo
A 203.0.113.10. - O resolvedor devolve a resposta ao cliente e a guarda em cache pelo tempo do TTL.
Cada passo é uma indicação: o servidor aponta quem sabe mais. Na prática o cache evita quase tudo isso. As consultas à raiz são raras, porque os resolvedores já lembram quem cuida do .br.
As consultas viajam por UDP na porta 53, com TCP quando a resposta não cabe num pacote (a RFC 7766 exige suporte a TCP).
O que são cache e TTL?#
Cada resposta DNS traz um TTL (time to live): quantos segundos ela pode ser reaproveitada sem nova consulta. Um TTL de 3600 significa que o resolvedor pode servir a mesma resposta por até uma hora.
O cache torna o DNS rápido e barato, mas tem um custo: ao mudar um registro, quem já tinha a resposta guardada continua vendo o valor antigo até o TTL vencer. É esse o motivo do "mudei e não atualizou". Antes de uma migração, baixe o TTL (por exemplo para 300) algumas horas antes e suba de novo depois.
Como consultar o DNS com dig?#
O dig (Linux e macOS; no Windows, use nslookup ou o WSL) mostra o que o DNS responde, e o @ escolhe o resolvedor. Os quatro comandos abaixo mostram, na ordem: o IP segundo o resolvedor do Google, só o valor, os servidores autoritativos e o caminho completo (raiz, TLD, autoritativo).
dig @8.8.8.8 meusite.com.br A +noall +answer
dig +short meusite.com.br A
dig meusite.com.br NS +short
dig +trace www.meusite.com.brA linha de resposta tem este formato (IP de documentação, sem domínio real):
meusite.com.br. 3600 IN A 203.0.113.10Os campos são nome, TTL restante, classe, tipo e valor. Se você rodar de novo, o TTL terá diminuído: é o cache em ação. Se dig +short não devolve nada, o nome não existe ou não tem aquele tipo de registro.
O DNS é seguro e privado?#
Por padrão, não. O DNS clássico trafega sem criptografia, então a rede enxerga quais nomes você consulta, e uma resposta pode ser forjada. Há duas proteções diferentes:
- DNSSEC (RFC 4033 e seguintes) assina as respostas da zona. O resolvedor valida a assinatura e detecta adulteração. Protege a integridade, não esconde a consulta.
- DNS sobre TLS (DoT, RFC 7858, porta 853) e DNS sobre HTTPS (DoH, RFC 8484) criptografam o trecho entre o cliente e o resolvedor. Protegem a privacidade contra quem observa a rede, mas o resolvedor ainda vê suas consultas.
O que o DNS não faz?#
- Não registra domínios. O registro do nome acontece num registrador. O DNS publica os dados depois.
- Não leva o tráfego. Ele só informa o IP. Quem entrega a página é o servidor naquele endereço.
- Não muda instantaneamente. O cache e o TTL impõem uma espera, que costuma ser chamada de propagação.
- Não resolve falhas do servidor. Um DNS correto apontando para uma aplicação fora do ar continua dando erro.
Termos vizinhos: zona (conjunto de registros de um domínio), NS (registro que diz quem é autoritativo), registrador (empresa onde você compra o domínio), hosts file (arquivo local que o sistema consulta antes do DNS).
Como fazer isso na Square Cloud#
Toda aplicação web na Square Cloud ganha um subdomínio *.squareweb.app com HTTPS, em todos os planos, sem você mexer em DNS. Para usar o seu próprio domínio, a partir do plano Standard, você cria no seu registrador os registros DNS que o painel mostra e acompanha o status de validação em tempo real. O TLS é automático e há suporte a domínios com acento (Punycode).
O domínio continua registrado em seu nome, no seu registrador, e é lá que você controla os registros. O passo a passo está em como apontar um domínio para sua aplicação e em como usar um domínio personalizado.
Os detalhes do recurso estão na página de domínios personalizados.
Rede
Domínio próprio, TLS automático e CDN global para o seu app
Perguntas frequentes
DNS e domínio são a mesma coisa?
Não. O domínio é o nome que você registra (meusite.com.br). O DNS é o sistema que publica e resolve as informações desse nome, como o IP do site e os servidores de e-mail.
Que porta o DNS usa?
A porta 53. As consultas comuns usam UDP, e o TCP entra quando a resposta é grande ou o UDP não basta. O DNS sobre TLS usa a porta 853 e o DNS sobre HTTPS usa a 443.
Mudei o DNS e o site não atualizou. Por quê?
Resolvedores guardam respostas em cache pelo tempo do TTL. Até esse tempo acabar, parte dos usuários ainda recebe o valor antigo. Baixar o TTL antes de uma mudança planejada reduz a espera.
Qual a diferença entre o DNS 1.1.1.1 e o 8.8.8.8?
São resolvedores públicos de empresas diferentes (Cloudflare e Google). Os dois respondem às mesmas consultas, mas variam em velocidade na sua rede, política de privacidade e filtros opcionais.
Mais em Rede e domínios
Ver todos os 27 artigos- O que é load balancer (balanceamento de carga)Load balancer é o componente que distribui requisições entre vários servidores. Veja como funciona, os algoritmos, as camadas 4 e 7 e um exemplo com nginx.
- Como apontar um domínio para sua hospedagemPara apontar um domínio para sua hospedagem, crie um registro CNAME (ou A) no DNS do seu registrador. Veja o passo a passo, como testar e os erros comuns.
- Cabeçalho Cache-Control: quanto tempo o navegador e a CDN guardam um arquivoCache-Control é o cabeçalho HTTP que define quanto tempo navegador e CDN guardam uma resposta. Veja max-age, no-cache, immutable e receitas por tipo de arquivo.
- Domínio personalizado: como usar seu próprio domínio no appPara usar um domínio personalizado, adicione o domínio na hospedagem e crie no DNS os registros que ela informar. Veja o passo a passo, www, HTTPS e erros.