Home Comunidade Eventos YouTube Networks Desafios // produtos Academy News CTI | CVE Contato

02 - Armazenada em Name Servers

video explicativo
Video explicativoEspaco reservado para o video desta anotação — adicione video: https://youtu.be/... no frontmatter da nota.

Armazenada em Name Servers

Uma zona de DNS, embora seja um conceito lógico de autoridade, necessita de uma infraestrutura física e de software para existir e responder a consultas. Essa infraestrutura é composta pelos Name Servers (Servidores de Nomes). Armazenar uma zona em um Name Server significa que este servidor detém a "cópia autoritativa" dos registros e está configurado para responder oficialmente por qualquer busca dentro dos limites daquela zona.

1. O Name Server como Repositório Ativo

Ao contrário de um simples backup de arquivos, o armazenamento de uma zona em um Name Server transforma dados estáticos em um serviço de rede dinâmico. O servidor carrega as informações da zona (seja de um arquivo local ou de uma transferência de rede) para a sua memória RAM, permitindo respostas com latência da ordem de milissegundos.

Softwares de Gerenciamento

O armazenamento é controlado por daemons especializados. No mundo Linux, o BIND (Berkeley Internet Name Domain) é o padrão histórico (mantido pela ISC). Outros softwares amplamente utilizados em ambientes de alta performance incluem:

Software Foco Linguagem Característica
BIND9 Recursivo + Autoritativo C Mais utilizado, suporta DNSSEC, IPv6, TSIG
NSD (Name Server Daemon) Apenas autoritativo C Alta performance, usado em raiz e TLDs
Knot DNS Apenas autoritativo C Otimizado para altíssimo volume de queries
PowerDNS Autoritativo + Recursivo C++ Backends em MySQL, PostgreSQL, LDAP
Unbound Apenas recursivo C Validador DNSSEC, foco em performance
Dnsmasq Pequenos ambientes C Resolvedor + DHCP para LANs

2. Vinculação via Registro NS (Name Server)

Para que a internet saiba que uma zona está armazenada em determinados servidores, utiliza-se o registro NS. Este registro funciona como um "ponteiro" na zona pai.

  • Se a zona exemplo.com.br está armazenada nos servidores ns1.provedor.com e ns2.provedor.com, a zona pai (.br) deve conter registros NS apontando para esses nomes.
  • Isso estabelece a Cadeia de Confiança: a raiz aponta para o TLD, o TLD aponta para o Name Server que armazena a sua zona.

Exemplo Prático: Consulta NS

# Consulta registros NS do domínio
dig NS exemplo.com.br +short

# Consulta a origem (SOA) e servidores autoritativos
dig exemplo.com.br SOA +noall +answer

# Traça a cadeia de delegação completa
dig +trace NS exemplo.com.br

3. Persistência e Formatos de Armazenamento

Os Name Servers podem armazenar as zonas de diferentes formas técnicas, dependendo da necessidade de escalabilidade:

  • Arquivos de Texto Plano (Flat Files): Formato mais comum (RFC 1035). Fácil de ler por humanos e altamente portável entre diferentes softwares. Cada arquivo contém o registro SOA e todos os registros da zona.
  • Bancos de Dados Relacionais: Alguns Name Servers (como o PowerDNS) podem armazenar as zonas em MySQL ou PostgreSQL. Isso permite atualizações em tempo real via SQL e integração fácil com painéis de controle web.
  • Bancos NoSQL: Para zonas massivas com milhões de registros (ex: CC-TLDs nacionais), podem ser usados backends como Redis, Cassandra ou LMDB para acelerar o lookup.
  • Arquivos Binários Indexados: O servidor converte o arquivo de texto em um formato binário indexado para acelerar o carregamento e reduzir o consumo de memória (ex: BIND named-compilezone).

Exemplo de Arquivo de Zona (BIND)

$ORIGIN exemplo.com.br.
$TTL 3600
@       IN  SOA ns1.exemplo.com.br. admin.exemplo.com.br. (
            2024011501 ; Serial
            3600       ; Refresh
            900        ; Retry
            1209600    ; Expire
            86400 )    ; Minimum TTL
@       IN  NS      ns1.exemplo.com.br.
@       IN  NS      ns2.exemplo.com.br.
@       IN  MX  10  mail.exemplo.com.br.
@       IN  A       203.0.113.10
www     IN  CNAME   @
ns1     IN  A       203.0.113.5
ns2     IN  A       203.0.113.6

4. Tipos de Name Servers por Papel

Tipo Função Exemplo de Uso
Master (Primário) Armazena a cópia mestre editável da zona Servidor onde o admin altera os registros
Slave (Secundário) Replica a zona via AXFR/IXFR Sobe quando master cai (alta disponibilidade)
Stealth (Hidden) Master não anunciado publicamente Defesa contra ataques diretos ao master
Caching-only Não armazena zonas, apenas respostas em cache Resolvedores locais de ISP
Forwarder Encaminha recursão para outro resolvedor Configuração de firewall corporativo

Mecanismo de Transferência de Zona (AXFR/IXFR)

A replicação entre Master e Slave ocorre via TCP na porta 53:

  • AXFR (Full Zone Transfer): Transfere a zona inteira. Custoso para zonas grandes.
  • IXFR (Incremental Zone Transfer): Transfere apenas os registros alterados desde o último serial.
# Testando transferência de zona (debug)
dig @ns1.exemplo.com.br AXFR exemplo.com.br

A transferência deve ser protegida via TSIG (Transaction SIGnature, RFC 2845) com chaves HMAC-SHA256 compartilhadas entre Master e Slave, e a ACL allow-transfer deve restringir IPs autorizados.

5. Armazenamento em Cluster e Anycast

Em arquiteturas de alta disponibilidade, a zona não é armazenada em apenas um servidor físico, mas em um cluster de Name Servers.

  • Replicação Master-Slave: A zona é editada no servidor primário e replicada para múltiplos secundários via IXFR.
  • Anycast IP: Todos os Name Servers do cluster anunciam o mesmo endereço IP via BGP. O roteamento da internet leva a consulta do usuário para o Name Server mais próximo que armazene aquela zona. Esta técnica é usada pelos 13 root servers lógicos, que na prática são mais de 1.500 instâncias físicas distribuídas mundialmente via Anycast.
  • Geographical Distribution: Zonas globais costumam ter Name Servers em continentes diferentes (América do Norte, Europa, Ásia) para reduzir a latência para usuários.

Exemplo: Cluster Anycast

Usuário no Brasil -> BGP -> nó Anycast em São Paulo (latência 5 ms)
                                  |
                          (se o nó SP cair)
                                  v
                         nó Anycast em Miami (latência 110 ms)

6. Segurança do Armazenamento: DNSSEC

Quando uma zona é armazenada em um Name Server, ela está sujeita a ataques de envenenamento de cache (Cache Poisoning, RFC 3833). Para garantir que os dados armazenados e entregues são legítimos, utiliza-se o DNSSEC (Domain Name System Security Extensions, RFCs 4033-4035).

  • O Name Server armazena não apenas os registros (A, MX, etc.), mas também assinaturas digitais (RRSIG) para cada um deles.
  • As chaves públicas são publicadas em registros DNSKEY e a cadeia de confiança vai da raiz (KSK) até o registro final.
  • Adiciona o registro DS (Delegation Signer) na zona pai, conectando a cadeia criptográfica entre TLD e domínio.

Impactos do DNSSEC no Armazenamento

  • Aumento do tamanho das respostas (necessita EDNS0 com UDP ≥ 1232 bytes).
  • Maior consumo de CPU (validação de assinaturas em cada consulta).
  • Necessidade de rotação de chaves (KSK rollover, RFC 6781).

7. Considerações sobre o TTL (Time To Live)

O armazenamento no Name Server também define por quanto tempo os outros servidores (recursivos) podem "copiar" essa informação em seus caches. O valor de TTL definido na zona no Name Server original dita a velocidade de propagação de qualquer mudança na internet.

Cenário TTL Recomendado Justificativa
Site estável, sem migrações 86400s (24h) Reduz carga no servidor autoritativo
Migração programada 300s (5 min) Permite rollback rápido
CDN com failover 30-60s Muda IP rapidamente em queda
Registro SPF/DKIM 3600s Estável mas com flexibilidade

8. Auditoria e Operação

# Verifica a versão do BIND e status
rndc status

# Recarrega uma zona específica sem reiniciar o daemon
rndc reload exemplo.com.br

# Verifica consistência entre Master e Slave
rndc zonestatus exemplo.com.br

# Audita uma zona em busca de erros
named-checkzone exemplo.com.br /etc/bind/db.exemplo
named-checkconf /etc/bind/named.conf

9. Boas Práticas de Armazenamento

  1. Manter pelo menos 2 Name Servers em redes/IPs distintos (recomendação RFC 2182).
  2. Sincronizar relógios via NTP (crítico para TSIG e IXFR).
  3. Monitorar a integridade entre Master e Slave com rndc zonestatus.
  4. Fazer backup periódico do arquivo de zona (.jnl e master).
  5. Restringir allow-recursion e allow-transfer por ACL.
  6. Habilitar DNSSEC em zonas críticas.

10. Conclusão

Armazenar uma zona em Name Servers é muito mais do que "salvar um arquivo": envolve a escolha de software adequado (BIND, NSD, PowerDNS), definição de topologia (Master/Slave/Anycast), proteção criptográfica (DNSSEC, TSIG) e operação contínua (transferências de zona, monitoring, rotação de chaves). Um armazenamento bem projetado garante baixa latência, alta disponibilidade e resistência a ataques — pilares da resiliência do DNS moderno.