Unbound DNS para Provedores – Alta Performance e Segurança

O Unbound é um dos resolvers DNS mais rápidos e confiáveis disponíveis hoje. Ele é leve, escalável e amplamente utilizado em ISPs e ambientes corporativos que precisam atender milhares de clientes simultâneos com baixa latência.

Neste artigo vamos mostrar como preparar o Unbound para provedores, suportando milhares de clientes (2000, 4000 ou mais), sem perder performance e mantendo a rede protegida contra abusos, principalmente com Rate Limiting.


Por que usar Unbound em provedor?

  • Alto desempenho: facilmente suporta dezenas de milhares de consultas por segundo em hardware modesto.
  • Cache eficiente: reduz tráfego externo e melhora a experiência do cliente.
  • Segurança integrada: validação DNSSEC, Rate Limiting, bloqueio de domínios maliciosos.
  • Configuração flexível: ajustes finos de cache, threads e limites de queries.

Requisitos de Hardware para 2000 a 4000 clientes

  • CPU: mínimo 4 vCPUs (ideal 8 vCPUs para folga).
  • RAM: 4 GB é o mínimo, 8 GB recomendado para caches grandes.
  • Rede: 1 Gbps suficiente para milhares de clientes.

Um ponto importante: clientes não significam consultas simultâneas. A maioria dos usuários faz poucas consultas por minuto, o que permite atender milhares de clientes com facilidade.


Configuração Base do Unbound para ISP

Arquivo: /etc/unbound/unbound.conf

server:
    # Threads igual ou próximo ao número de vCPUs
    num-threads: 4
    
    # Buffers de rede
    so-rcvbuf: 8m
    so-sndbuf: 8m
    
    # Cache generoso
    msg-cache-size: 256m
    rrset-cache-size: 512m
    key-cache-size: 128m
    
    # Range de queries simultâneas
    outgoing-range: 16384
    num-queries-per-thread: 8192
    infra-cache-numhosts: 40000
    
    # 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 – Protegendo contra abuso

Um resolver exposto na internet pode ser usado para amplificação de ataques DDoS.
O Rate Limiting no Unbound ajuda a mitigar isso, limitando consultas repetitivas de clientes ou ataques massivos.

Adicione ao unbound.conf:

server:
    # Limita respostas para o mesmo cliente
    ratelimit: 200

    # Número máximo de consultas iguais por segundo
    ratelimit-slabs: 4
    ratelimit-size: 4m

    # Evita amplificação em respostas NXDOMAIN
    ratelimit-factor: 10

Como funciona?

  • ratelimit: 200 → permite até 200 queries/segundo por cliente para o mesmo domínio.
  • ratelimit-size e slabs → controlam a memória usada para armazenar estatísticas de rate limiting.
  • ratelimit-factor → aplica limite ainda mais forte em respostas negativas (NXDOMAIN), reduzindo abuso.

Assim, mesmo que alguém tente usar seu DNS como amplificador de ataque, as respostas serão cortadas após o limite definido.


Monitoramento

Use o comando abaixo para verificar o desempenho:

unbound-control stats_noreset

Principais métricas:

  • num.queries → número total de consultas.
  • num.cachehits e num.cachemiss → eficiência do cache.
  • ratelimit.dropped → quantas requisições foram bloqueadas pelo rate limiting.

Conclusão

Com a configuração correta, o Unbound DNS é capaz de atender milhares de clientes simultâneos (2000, 4000 ou mais) sem esforço, garantindo baixa latência, alto cache hit e proteção contra abusos.

Para provedores, a combinação de cache otimizado + rate limiting transforma o Unbound em uma solução robusta, econômica e segura.

Rolar para cima