Unbound como Recursor Raiz: Configuração Completa para ISP (sem forward)

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

ModoComo funcionaVantagensDesvantagens
ForwarderEnvia consultas para outro DNS (Google/Cloudflare)Primeira query rápida para domínios popularesDepende de terceiros; perde independência
Recursor raizSobe a árvore do DNS sozinho (root → TLD → autoritativo)Total independência; cache local muito eficientePrimeira 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.hints pelo menos uma vez por ano.
  • Use firewall + rate-limit para proteger contra abuso.
  • Evite forward-zone se quiser independência e cache próprio máximo.
Rolar para cima