Trilha 10 · Internet e redes

DNS: o catálogo da internet

Você digita "google.com" e em 50ms o browser sabe o IP. O que acontece nesse intervalo é uma consulta hierárquica fascinante.

① Intuição

A lista telefônica distribuída

Antes da internet, tinha listas telefônicas: você procurava o nome, achava o número. O DNS faz o mesmo — você fornece um nome (google.com) e ele devolve um número (IP). Mas diferente de uma lista centralizada, o DNS é distribuído por milhões de servidores ao redor do mundo.

A hierarquia funciona como um organograma: o topo (root) sabe quem cuida de .com, .br, .net. Cada TLD sabe quem cuida de cada domínio dentro dele. E cada nameserver autoritativo sabe o IP final.

O DNS é quase sempre o primeiro passo. Antes de abrir qualquer conexão na internet, o browser faz uma consulta DNS. Por isso otimizações como DNS pré-busca (<link rel="dns-prefetch">) existem para sites mais rápidos.
② Visualização interativa

Siga uma consulta DNS ao vivo

Clique em Iniciar animação para ver cada etapa da resolução de "exemplo.com", do cache do navegador até o nameserver autoritativo.

🌐
Navegador
Cache Nav.
🖥️
Cache SO
📡
Resolver ISP
🌍
Root NS (.)
📂
TLD NS (.com)
🔐
NS Autoritativo
PASSOS DA RESOLUÇÃO — 0 / 12
1
Você digita "exemplo.com" na barra de endereços
2
Verifica cache interno do navegador
3
Consulta o /etc/hosts e cache do SO
4
Pergunta ao Resolver Recursivo do ISP: "exemplo.com?"
5
Resolver pergunta ao Root NS: "quem responde por .com?"
6
Root NS responde: "pergunte aos .com nameservers"
7
Resolver pergunta ao .com TLD NS: "exemplo.com?"
8
TLD NS responde: "pergunte ao NS autoritativo de exemplo.com"
9
Resolver pergunta ao NS autoritativo: "IP de exemplo.com?"
10
NS autoritativo responde: 93.184.216.34 (TTL: 300s)
11
Resolver entrega o IP ao navegador e guarda em cache
12
✓ Conectando a 93.184.216.34 (porta 443)…
③ Explicação técnica

Tipos de registros DNS

# Tipos de registros DNS mais comuns
A      exemplo.com.  →  93.184.216.34       # IPv4
AAAA   exemplo.com.  →  2606:2800:220:1::   # IPv6
CNAME  www           →  exemplo.com.         # alias
MX     exemplo.com.  →  mail.exemplo.com.    # e-mail
TXT    exemplo.com.  →  "v=spf1 …"          # verificações (SPF, DKIM)
NS     exemplo.com.  →  ns1.registrar.com.  # nameservers
PTR    34.216.184.93 →  exemplo.com.         # DNS reverso

TTL e propagação de mudanças

# TTL (Time to Live) — tempo de cache em segundos
exemplo.com.  300   IN  A  93.184.216.34
              ^^^
              TTL = 300s = 5 minutos

# Impacto do TTL:
TTL alto (86400 = 1 dia):  cache longo → menos consultas, mas mudanças demoram a propagar
TTL baixo (60s):            cache curto → mudanças rápidas, mas mais carga nos nameservers

# Antes de mudar o IP de um servidor: reduza o TTL para 60s,
# aguarde propagação, mude o IP, depois restaure o TTL alto.
DNS sobre HTTPS (DoH) e DNS sobre TLS (DoT): consultas DNS tradicionais trafegam em texto puro — seu ISP pode ver todos os domínios que você visita. DoH e DoT criptografam as consultas. Navegadores modernos como Chrome e Firefox suportam DoH nativamente.
④ Projeto para programar

Consulte o DNS você mesmo

Mini projeto: no terminal, use nslookup google.com ou dig google.com A para ver a resolução DNS real. Depois use dig google.com MX para ver os servidores de e-mail.

Projeto principal: implemente um resolver DNS simples usando sockets UDP (porta 53). Construa uma mensagem DNS query manualmente (header + question section) e interprete a resposta para extrair o IP.

Desafio extra: implemente um cache DNS em memória com suporte a TTL. Use um dict onde a chave é o domínio e o valor é {"ip": "...", "expira": timestamp}.

⑤ Exercícios rápidos

Teste sua intuição

O que o DNS faz?
Quando seu computador não encontra um domínio em cache, qual é o primeiro servidor que ele consulta?
O que significa o TTL num registro DNS?
⑥ Aplicações no mundo real

Onde você encontra isso

CDN com GeoDNS

Cloudflare e Akamai respondem com IPs diferentes dependendo de onde o usuário está — DNS como balanceamento de carga geográfico.

🔒

DNSSEC

Assinaturas criptográficas nos registros DNS para evitar ataques de envenenamento de cache (DNS cache poisoning).

🚫

Bloqueio por DNS

Controles parentais e firewalls corporativos bloqueiam domínios respondendo com IP nulo. Pi-hole é um bloqueador de anúncios via DNS.

📧

Registros SPF/DKIM

Configurações de e-mail vivem como registros TXT no DNS. Sem eles, seus e-mails vão para spam.

← Anterior: IP e endereçamento Próxima: TCP →