Quando você quer um DNS recursivo totalmente independente, sem depender de Google ou Cloudflare, o Unbound pode ser configurado como recursor raiz. Essa abordagem é ideal para ISPs que atendem clientes com IPs públicos variados.
1. Por que usar recursor raiz
- Independência total: não depende de upstream.
- Velocidade com cache: após as primeiras consultas, as respostas ficam 100% na RAM.
- Privacidade: consultas não vazam para terceiros.
- Escalável: com cache adequado, você consegue atender milhares de clientes.
2. Arquivos essenciais
root.key
- Função: trust anchor para DNSSEC.
- Garante que o Unbound valide assinaturas DNS.
- Não contém IPs de servidores raiz.
root.hints
- Função: lista de servidores raiz (A–M) com IPs.
- Essencial para que o Unbound suba a árvore do DNS.
- Deve ser atualizado periodicamente (1–2 vezes por ano).
Atualizando o root.hints:
curl -o /var/lib/unbound/root.hints https://www.internic.net/domain/named.root
systemctl reload unbound
3. Configuração completa do Unbound para ISP
server:
# Threads = núcleos de CPU
num-threads: 4
# Buffers de rede
so-rcvbuf: 8m
so-sndbuf: 8m
# Cache (~3 GB)
msg-cache-size: 1g
rrset-cache-size: 2g
key-cache-size: 512m
infra-cache-numhosts: 100000
prefetch: yes
# Capacidade de queries simultâneas
outgoing-range: 32768
num-queries-per-thread: 16384
# TTLs
cache-max-ttl: 86400
cache-min-ttl: 60
# Segurança
hide-identity: yes
hide-version: yes
harden-glue: yes
harden-dnssec-stripped: yes
# Rate-limiting (proteção contra abuso)
ratelimit: 200
ratelimit-slabs: 4
ratelimit-size: 4m
ratelimit-factor: 10
# Interfaces
interface: 0.0.0.0
interface: ::0
# Root hints
root-hints: "/var/lib/unbound/root.hints"
4. Access-Control e Segurança
Para um ISP, não use access-control limitado a faixas privadas, pois os clientes têm IPs públicos variados.
- Proteção contra open resolver: utilize firewall para aceitar consultas apenas de IPs de clientes reais.
- Rate-limit ajuda a evitar ataques de amplificação.
5. Diferença entre forwarder e recursor raiz
| Modo | Como funciona | Vantagens | Desvantagens |
|---|---|---|---|
| Forwarder | Envia consultas para outro DNS (Google/Cloudflare) | Primeira query rápida para domínios populares | Depende de terceiros; perde independência |
| Recursor raiz | Sobe a árvore do DNS sozinho (root → TLD → autoritativo) | Total independência; cache local muito eficiente | Primeira query de cada domínio leva mais tempo |
Dica: você pode mesclar recursor raiz padrão e forwarder só para domínios específicos problemáticos, mas para ISP é recomendado 100% recursor raiz.
6. Considerações finais
- Com 6 GB de RAM e Xeon 4 cores, você consegue atender milhares de clientes com cache de 3 GB sem problemas.
- Atualize o
root.hintspelo menos uma vez por ano. - Use firewall + rate-limit para proteger contra abuso.
- Evite
forward-zonese quiser independência e cache próprio máximo.
