Cache de DNS

Protocolos e Padrões
Armazenamento temporário dos resultados de consultas DNS por resolvedores ou clientes para acelerar pesquisas repetidas.
← Voltar ao Glossário

O que é Cache de DNS?

O cache de DNS é o armazenamento temporário dos resultados de consultas de DNS por resolvedores, sistemas operacionais, navegadores e aplicações. Quando uma busca de DNS é realizada, o resultado é armazenado em cache por um período definido pelo TTL (Time To Live) do registro, permitindo que solicitações posteriores para o mesmo domínio sejam respondidas instantaneamente sem consultar os servidores autoritativos.

Por que o Cache de DNS é Importante

Sem cache, cada solicitação web única exigiria uma busca de DNS completa, adicionando latência e gerando tráfego de DNS massivo. O cache de DNS oferece:

Como Funciona o Cache de DNS

A Hierarquia de Cache

O cache de DNS ocorre em vários níveis:

Browser Cache (seconds to minutes)

↓

OS Cache (seconds to minutes)

↓

Local Resolver Cache (minutes to hours)

↓

ISP Resolver Cache (minutes to hours)

↓

Authoritative Name Server (source of truth)

Processo de Consulta em Cache

1. Usuário solicita example.com

2. Navegador verifica seu cache

3. Se miss, SO verifica seu cache

4. Se miss, resolvedor verifica seu cache

5. Se miss, consulta recursiva aos servidores autoritativos

6. Resultado em cache em cada nível com base no TTL

7. Resposta retornada ao usuário

Expiração Baseada em TTL

Cada registro de DNS inclui um valor de TTL:

example.com.    300    IN    A    203.0.113.50

^^^

TTL in seconds (5 minutes)

Os caches armazenam este registro por 300 segundos e depois o descartam. A próxima consulta dispara uma busca atualizada.

Camadas de Cache de DNS

Cache do Navegador

Os navegadores modernos armazenam resultados de DNS independentemente:

Chrome: Usa seu próprio cache de DNS (chrome://net-internals/#dns) Firefox: Mantém cache interno (about:networking#dns) Safari: Usa resolvedor do sistema

TTL do cache típico do navegador: 60 segundos (independentemente do TTL de DNS)

Cache do Sistema Operacional

Windows: Serviço de Cliente DNS armazena em cache resultados
# View cache

ipconfig /displaydns

# Flush cache

ipconfig /flushdns

macOS: mDNSResponder lida com cache
# Flush cache (macOS 10.15+)

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Linux: Varia por sistema, frequentemente systemd-resolved
# Flush systemd-resolved cache

sudo systemd-resolve --flush-caches

# Check statistics

sudo systemd-resolve --statistics

Cache do Resolvedor

Resolvedores DNS recursivos (DNS ISP, 8.8.8.8, 1.1.1.1) mantêm caches grandes servindo milhões de usuários:

ResolvedorEstratégia de Cache
Google (8.8.8.8)Respeita TTL, cache global
Cloudflare (1.1.1.1)Respeita TTL, distribuído
Resolvedores ISPPodem ignorar TTLs baixos

Exemplos de Comportamento de Cache

Operação Normal

Query 1: example.com

→ Full lookup: 50ms

→ Cached for 300s (TTL)

Query 2: example.com (1 minute later)

→ Cache hit: 1ms

Query 3: example.com (10 minutes later)

→ Cache expired, full lookup: 50ms

→ Re-cached for 300s

Atualização de Registro de DNS

Original: example.com → 203.0.113.50 (TTL: 300s)

Time: 10:00 - DNS updated to 203.0.113.51

Client queries at 10:02

→ Still cached: 203.0.113.50 (expires 10:05)

Client queries at 10:06

→ Cache expired, new lookup: 203.0.113.51

→ Cached until 10:11

Estratégia de TTL e Cache

Escolhendo Valores de TTL

Caso de UsoTTL RecomendadoMotivo
Infraestrutura estática3.600-86.400s (1-24 horas)Raramente muda, reduz carga de DNS
Website em produção300-1.800s (5-30 minutos)Equilibra desempenho e flexibilidade
Migração ativa60-300s (1-5 minutos)Propagação mais rápida durante mudanças
Balanceamento de carga60-120sFailover rápido quando servidores mudam

Redução de TTL Pré-Migração

Melhor prática ao planejar mudanças de DNS:

Day -7: example.com TTL 3600s (1 hour)

Day -2: Reduce to 300s (5 minutes)

Day 0: Make DNS change

→ Max 5 minute cache retention

Day +1: Restore TTL to 3600s

Envenenamento de Cache e Segurança

Ataque de Envenenamento de Cache de DNS

Os atacantes tentam injetar registros de DNS falsos em caches:

1. Atacante inunda resolvedor com respostas falsas

2. Se uma corresponder a uma consulta pendente, é armazenada em cache

3. Usuários recebem IP malicioso para domínio legítimo

4. Cache envenenado fornecido a muitos usuários

Mitigações de Segurança

DNSSEC: Registros assinados criptograficamente previnem envenenamento
example.com.    IN    A      203.0.113.50

IN RRSIG A 8 2 300 ...

Randomização de Porta de Origem: Torna respostas mais difíceis de falsificar Codificação 0x20: Caso aleatório em consultas ajuda validação Segurança do Resolvedor: Use resolvedores reputados (Cloudflare, Google, Quad9)

Verificando Cache de DNS

Ver Conteúdo do Cache

Windows:
ipconfig /displaydns | more
macOS (informações limitadas):
sudo killall -INFO mDNSResponder

# Check Console.app for logs

Linux (systemd-resolved):
sudo systemd-resolve --statistics

Testar Comportamento de Cache

# First query (cache miss)

time dig example.com

# Immediate repeat (cache hit)

time dig example.com

# Compare times

Problemas Relacionados a Cache

Cache Antigo Após Mudança de DNS

Problema: Registros DNS atualizados não refletem para usuários Solução:

1. Aguardar TTL expirar

2. Reduzir TTL antes de mudanças futuras

3. Pedir aos usuários para limpar cache local

Cache Excessivamente Agressivo

Alguns ISPs ignoram TTL e cache mais tempo:

Problema: Mudanças levam horas/dias para se propagarem Solução:

Cache Negativo

Buscas com falha (NXDOMAIN) também são armazenadas em cache:

Query: newsubdomain.example.com

Response: NXDOMAIN (does not exist)

Cached: 3600s (SOA minimum TTL)

Result: New subdomain won't resolve for 1 hour

Solução: Reduzir TTL mínimo de SOA antes de adicionar novos registros

Limpando Cache de DNS

Quando Limpar

Como Limpar

Windows:
ipconfig /flushdns
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Linux (systemd-resolved):
sudo systemd-resolve --flush-caches
Chrome:
Navigate to: chrome://net-internals/#dns

Click: "Clear host cache"

Firefox:
Toggle network.dnsCacheExpiration in about:config

Or restart browser

Melhores Práticas

1. Definir TTLs apropriados: Equilibrar desempenho e velocidade de mudança

2. Reduzir TTL antes de mudanças: Reduzir 24-48 horas antes de atualizações de DNS

3. Monitorar propagação: Usar ferramentas para verificar resolução de DNS global

4. Documentar comportamento de cache: Compreender as camadas de cache da infraestrutura

5. Usar DNSSEC: Proteger contra envenenamento de cache

6. Testar completamente: Verificar que mudanças de DNS funcionam como esperado

7. Educar usuários: Fornecer instruções claras para limpeza de cache quando necessário

Conceitos Avançados de Cache

Pré-carregamento

Navegadores e resolvedores podem prefetch DNS para links em uma página:

<!-- Hint to browser -->

<link rel="dns-prefetch" href="//cdn.example.com">

Aquecimento de Cache

Balanceadores de carga e CDNs podem pré-popular caches para registros críticos.

Anycast e Cache

DNS Anycast roteia consultas para servidor mais próximo, criando caches geograficamente distribuídos para desempenho ideal.

O cache de DNS é fundamental para o desempenho da internet — entender e configurar corretamente TTLs garante que mudanças de DNS se propaguem eficientemente enquanto mantém tempos de resolução rápidos.

Coloque este Conhecimento em Prática

Use a API DomScan para verificar disponibilidade de domínio, saúde e muito mais.