DevGuideTK
← Trilha Backend

DNS

Como um nome de domínio vira um endereço IP, quem responde em cada etapa e por que uma mudança de DNS demora a valer para todos.

O que é

Computadores se encontram na rede por endereços IP, como 203.0.113.10. Pessoas e sistemas usam nomes, como api.loja.com.br. O DNS é o serviço que traduz o nome em endereço.

Ele funciona como uma base de dados distribuída pelo mundo inteiro, sem um servidor central que conheça todos os nomes. Cada pedaço da hierarquia sabe apenas quem é o responsável pelo pedaço seguinte. Quase toda conexão que o seu sistema abre começa por uma consulta DNS, e por isso uma falha de DNS costuma parecer uma falha de tudo ao mesmo tempo.

A hierarquia dos nomes

Um nome de domínio é lido da direita para a esquerda, do mais geral para o mais específico:

api.loja.com.br.
 │    │   │  │ └─ raiz (o ponto final, quase sempre omitido)
 │    │   │  └─── domínio de topo: br
 │    │   └────── com.br
 │    └────────── loja.com.br, o domínio que você registrou
 └─────────────── api, um nome que você criou dentro dele

Cada nível é administrado por uma organização diferente, que delega o nível abaixo:

NívelQuem administraO que sabe responder
Raiz13 endereços de servidores raiz, replicados em centenas de locaisQuem cuida de cada domínio de topo
Domínio de topo (br, com)A entidade de registro, como o Registro.brQuais servidores respondem por cada domínio registrado
Seu domínio (loja.com.br)Você, pelo provedor de DNS que escolheuOs endereços de api, www e de todos os nomes que você criou

Os servidores do último nível são os servidores autoritativos do seu domínio. Só eles têm a resposta original. Todo o resto do sistema guarda cópias temporárias.

O caminho de uma consulta

Quando o seu código pede o endereço de api.loja.com.br, a consulta passa por dois tipos de servidor.

O resolvedor recursivo é quem faz o trabalho de busca. Ele pertence ao provedor de internet, à nuvem onde o seu servidor roda ou a um serviço público como 1.1.1.1 e 8.8.8.8. O seu sistema operacional só conhece o endereço dele.

  1. O programa pede o endereço ao sistema operacional.
  2. O sistema operacional consulta o próprio cache e, sem resposta, pergunta ao resolvedor recursivo.
  3. O resolvedor pergunta a um servidor raiz: "quem cuida de br?"
  4. Pergunta ao servidor de br: "quem cuida de loja.com.br?"
  5. Pergunta ao servidor autoritativo de loja.com.br: "qual o endereço de api?"
  6. O resolvedor devolve a resposta e a guarda em cache.

As etapas 3 a 5 só acontecem quando o resolvedor não tem a resposta guardada. Na prática, a grande maioria das consultas é respondida do cache em poucos milissegundos.

Tipos de registro

Um servidor autoritativo guarda registros. Cada registro associa um nome a um valor de um tipo específico.

TipoGuardaExemplo de uso
AUm endereço IPv4api.loja.com.br → 203.0.113.10
AAAAUm endereço IPv6O mesmo nome, em IPv6
CNAMEOutro nome, para onde a consulta deve seguirwww.loja.com.br → loja.cdn-exemplo.net
MXO servidor que recebe os e-mails do domínioEntrega de e-mail
TXTTexto livreComprovar a posse do domínio, regras antifraude de e-mail (SPF, DKIM)
NSOs servidores autoritativos de um domínioA delegação entre os níveis

O CNAME tem uma restrição que causa confusão: um nome com CNAME não pode ter nenhum outro registro. Como a raiz do seu domínio (loja.com.br, sem prefixo) já tem obrigatoriamente registros NS, ela não aceita CNAME. O nível Soluções mostra como os provedores contornam isso.

TTL: por quanto tempo a resposta vale

Todo registro tem um TTL (tempo de vida), em segundos. Ele diz a quem recebeu a resposta por quanto tempo pode reutilizá-la sem perguntar de novo.

A resposta fica guardada em várias camadas ao mesmo tempo:

  • no resolvedor recursivo, compartilhada por todos os clientes dele;
  • no sistema operacional da máquina;
  • às vezes dentro do próprio programa, como na máquina virtual do Java;
  • no navegador.

As respostas negativas também são guardadas. Se alguém consultar um nome antes de você criá-lo, a resposta "não existe" fica em cache por um tempo definido na configuração do domínio. É por isso que um registro recém-criado às vezes não aparece para quem testou cedo demais.

Onde o DNS aparece no backend

O DNS não é assunto só de quem configura domínios. Ele está em quatro lugares do dia a dia:

  • Deploy e migração: trocar o servidor de uma aplicação é, muitas vezes, trocar um registro DNS e esperar os caches vencerem.
  • Comunicação entre serviços: em Docker e Kubernetes, um serviço encontra o outro por nome (http://pagamentos:8080), e esse nome é resolvido por um DNS interno.
  • Distribuição de carga e failover: um nome pode devolver vários endereços, ou endereços diferentes conforme a região e a saúde dos servidores.
  • Verificação de posse: certificados TLS e serviços de e-mail pedem que você crie um registro TXT para provar que controla o domínio.

Por que isso importa quando a IA escreve o código

Um assistente escreve fetch("https://api.parceiro.com/...") sem pensar no que acontece antes da conexão. Os problemas de DNS aparecem em produção e raramente no teste local:

  • O programa resolve o nome uma vez, mantém a conexão aberta por dias e continua falando com um endereço que já foi desligado.
  • O resolvedor fica lento e todas as chamadas externas ficam lentas juntas, sem nenhum erro claro no log.
  • O tempo limite do pedido não cobre a etapa de resolução, e a chamada trava antes mesmo de conectar.
  • A migração é planejada para as 22h com um TTL de 24 horas, e metade dos usuários continua no servidor antigo no dia seguinte.

Quem entende o ciclo de consulta e cache reconhece esses sintomas. O próximo nível compara as formas de hospedar o DNS, de escolher o TTL e de direcionar o tráfego.

Prompts para aprofundar

Ao abrir no ChatGPT ou no Claude, o prompt é enviado ao serviço escolhido pela URL e também fica copiado na sua área de transferência.

  • DNS em cinco minutos

    Explique o que é o DNS em no máximo cinco minutos de leitura, para alguém que programa mas nunca configurou um domínio.
    
    Cubra só o essencial: como um nome vira um endereço IP, quem guarda a resposta original, o que é o TTL e por que uma mudança de DNS demora a valer para todos.
    
    Use uma analogia simples e depois um exemplo real com um nome de domínio. No final, me faça três perguntas curtas para eu verificar se entendi, e corrija as minhas respostas.
  • Seguir uma consulta DNS passo a passo

    Quero entender como funciona a resolução de um nome de domínio, do começo ao fim.
    
    Aja como um mentor de redes e backend. Use o nome api.loja.com.br como exemplo e acompanhe uma consulta desde o momento em que o meu programa pede o endereço até a resposta voltar. Explique o papel de cada participante: o sistema operacional, o resolvedor recursivo, os servidores raiz, o servidor do domínio de topo e o servidor autoritativo.
    
    Regras para a conversa:
    1. Pergunte antes qual é a minha experiência com redes, para ajustar o nível.
    2. Explique uma etapa por vez e, ao fim de cada uma, faça uma pergunta curta para verificar se entendi. Só avance depois da minha resposta.
    3. Mostre o que cada servidor responde em cada etapa, em formato parecido com a saída do comando dig.
    4. Depois do caminho completo, explique o que muda quando a resposta já está em cache e em quais camadas esse cache pode existir.
    
    Para encerrar, peça que eu explique com minhas palavras a diferença entre resolvedor recursivo e servidor autoritativo, e corrija o que estiver impreciso.
  • TTL, cache e a tal propagação

    Quero entender por que uma mudança de DNS demora a valer para todo mundo.
    
    Explique o que é o TTL de um registro e em quais camadas a resposta fica guardada (resolvedor recursivo, sistema operacional, aplicação e navegador). Depois explique por que a expressão "propagação de DNS" descreve mal o que acontece.
    
    Em seguida, proponha três cenários, um de cada vez, e pergunte o que eu acho que acontece antes de dar a resposta:
    1. Um registro A com TTL de 24 horas é alterado às 22h. O que diferentes usuários veem na manhã seguinte?
    2. Alguém consulta um nome que ainda não existe, e cinco minutos depois o registro é criado. O que essa pessoa vê e por quê?
    3. O TTL é reduzido de 24 horas para 5 minutos, e a troca de endereço é feita uma hora depois. A troca vale para todos em 5 minutos?
    
    Comente cada resposta minha, apontando o erro de raciocínio quando houver. No final, resuma o procedimento correto para trocar o endereço de um serviço sem indisponibilidade.
  • Tipos de registro na prática

    Quero aprender os tipos de registro DNS montando a configuração de um domínio real.
    
    Imagine que acabei de registrar o domínio minhaloja.com.br e preciso configurar: o site na raiz do domínio e em www, hospedado em um serviço que me deu apenas um nome de destino; uma API em api.minhaloja.com.br, em um servidor com IP fixo; o recebimento de e-mails por um provedor externo; e a verificação de posse do domínio pedida por dois serviços.
    
    Conduza assim:
    1. Para cada necessidade, pergunte qual tipo de registro eu usaria e por quê, antes de mostrar a resposta.
    2. Explique os tipos A, AAAA, CNAME, MX, TXT e NS conforme forem aparecendo.
    3. Dê atenção especial ao motivo de o CNAME ser proibido na raiz do domínio e às saídas que os provedores oferecem.
    4. Mostre a zona final em formato de tabela, com nome, tipo, valor e um TTL sugerido para cada registro, justificando cada TTL.