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

02 - Banco de Dados Distribuído

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

Banco de Dados Distribuído (DNS)

1. Definição e Contexto

O DNS (Domain Name System) é a base de dados distribuída mais antiga, resiliente e escalável da história da computação. Pela sua própria natureza técnica, o DNS não é um repositório central único; em vez disso, é uma federação de milhões de servidores independentes que colaboram para fornecer um serviço de resolução de nomes global. Esta arquitetura distribuída, padronizada nas RFC 1034 e RFC 1035, é o que permite à Internet suportar bilhões de consultas diárias com redundância e sem pontos únicos de falha catastrófica.

Características Fundamentais

  • Distribuição geográfica e administrativa: Nenhuma organização detém o DNS completo.
  • Tamanho estimado: Mais de 350 milhões de nomes de domínio e bilhões de registros.
  • Volumetria diária: Estimativas apontam mais de 4 trilhões de consultas DNS por dia no mundo.
  • Latência alvo: < 100 ms para qualquer consulta global (via cache + Anycast).

2. A Estrutura de Particionamento: Zonas DNS

Diferente de um banco de dados relacional clássico (como MySQL ou Oracle), o DNS segmenta seus dados em Zonas.

  • A Zona: É um fragmento contíguo do espaço de nomes sobre o qual um administrador específico tem autoridade técnica.
  • Folhas e Ramos: Uma zona pode conter apenas um domínio simples (empresa.com) ou abarcar subdomínios, desde que a autoridade não tenha sido delegada para outro servidor.
  • Zone Files: No nível do sistema de arquivos do servidor, cada zona é representada por um arquivo de texto plano que contém os Resource Records (RRs) do domínio.

Tipos de Zona

Tipo Função
Forward (Master) Zona direta — mapeia nomes para IPs.
Reverse Zona reversa — mapeia IPs para nomes (.in-addr.arpa).
Stub Zona apenas com NS — encaminha para o autoritativo real (otimização).
Slave/Secondary Réplica somente-leitura de uma zona master.
Hint Cache de servidores raiz (named.ca).

3. O Modelo Mestre-Escravo e Replicação (RFC 1996)

A distribuição de dados no DNS segue um modelo de replicação hierárquica para garantir que a carga de consultas seja dividida e que o sistema sobreviva a quedas de servidores individuais.

Servidor Primário (Master)

É o servidor onde reside a cópia "fonte da verdade" do arquivo de zona. Todas as alterações, como a adição de um novo IP de host, devem ser feitas obrigatoriamente aqui.

Servidores Secundários (Slaves)

São réplicas idênticas do primário que atendem consultas de leitura.

  • Transferência de Zona (AXFR): O ato técnico de copiar todo o arquivo de zona do mestre para o escravo através de uma conexão TCP na porta 53. Especificada na RFC 5936.
  • Transferência Incremental (IXFR): Uma otimização que permite transferir apenas as linhas do arquivo que sofreram alterações desde a última sincronização, economizando banda e tempo de processamento. Definida na RFC 1995.
  • NOTIFY: Quando o mestre sofre uma alteração, ele envia um alerta imediato aos escravos para que iniciem a sincronização (RFC 1996).

Sequência Típica de AXFR

1. Slave envia SOA query para Master
2. Master responde com SOA (incluindo serial atual)
3. Slave compara serial local; se menor, envia AXFR request
4. Master inicia stream TCP, envia registros em ordem:
   SOA → NS → A → MX → ... → SOA (fechando a transferência)
5. Slave valida sintaxe, carrega em memória, atende consultas

4. Consistência Eventual e o SOA (Start of Authority)

O DNS não garante consistência "em tempo real" em toda a rede mundial. Ele utiliza o modelo de Consistência Eventual gerenciado pelo registro SOA.

Campos do SOA que Controlam a Sincronização

Campo Função Típica Exemplo
Serial Número de versão da zona 2023101501
Refresh Intervalo entre checks do slave ao master 3600s (1h)
Retry Intervalo se Refresh falhar 900s (15min)
Expire Tempo máximo que slave atende sem master 1209600s (14 dias)
Minimum TTL TTL mínimo para cache negativo (NXDOMAIN) 3600s (1h)
  • O escravo só sincroniza se o serial do mestre for estritamente maior que o seu.
  • Após Expire, o slave para de responder (considera dados desatualizados demais).

5. Caching Distribuído e Resolução Recursiva

Além de servidores autoritativos, o DNS depende de caching resolvers (recursive resolvers) que armazenam resultados temporariamente para reduzir a carga global.

Hierarquia de Cache

  1. Cache local do SO: Browser/aplicação consulta primeiro /etc/hosts e o cache do systemd-resolved ou nscd.
  2. Resolver do ISP/empresa: Recebe consultas recursivas, cacheia por TTL.
  3. Servidores de TLD e Root: Caching em nível de infraestrutura (cache dos resolvers globais).

TTL (Time To Live) — Compromisso entre Velocidade e Agilidade

  • TTL alto (1h-24h): Menor carga nos servidores autoritativos, mas mudanças demoram a propagar.
  • TTL baixo (60s-300s): Mudanças rápidas, mas maior carga e mais consultas.
  • Estratégia comum: Baixar TTL para 60s 24h antes de migração; subir para 3600s após estabilização.

6. Cyber Security: Riscos na Distribuição de Dados

Para um profissional de Cyber Security, a distribuição de dados é uma superfície de ataque crítica.

Vazamento de Informações via AXFR (Transferência de Zona Não Autorizada)

Se o servidor DNS primário estiver mal configurado, qualquer pessoa pode solicitar um AXFR e baixar o mapa completo da infraestrutura interna da empresa.

  • O Perigo: O atacante obtém todos os nomes de servidores internos, IPs de VPNs, endereços de roteadores e gateways que não deveriam ser públicos, facilitando a fase de reconhecimento (Reconnaissance).
  • A Defesa: Configurar o MTA/DNS para permitir transferências de zona apenas para IPs específicos dos servidores secundários conhecidos.

DNS Cache Poisoning no Nível de Distribuição

Ataques que miram servidores recursivos de grandes ISPs impactam milhões de usuários. Como a base de dados é distribuída, se um servidor de "salto intermediário" for envenenado, a resposta falsa será propagada como se fosse legítima para todos os clientes abaixo dele na cadeia de resolução.

Caso Histórico: Kaminsky Bug (2008)

Dan Kaminsky descobriu uma vulnerabilidade que permitia envenenar caches recursivos em segundos, explorando o fato de que as transações DNS não validavam adequadamente a origem das respostas. A correção imediata foi randomizar a porta de origem (source port randomization), mitigação temporária até a adoção do DNSSEC.

Amplificação DDoS via DNS

Atacantes enviam consultas ANY para servidores DNS com recursive=yes aberto (open resolvers), usando IP spoofing para direcionar respostas (até 70x maiores que a requisição) à vítima. Mitigação: desabilitar recursão pública e implementar RRL (Response Rate Limiting, RFC 7873).


7. Escalabilidade e Anycast no Banco de Dados

O banco de dados DNS escala através da redundância física e lógica.

  • Anycast Routing: Servidores críticos (como os Root e grandes TLDs) utilizam endereços IPs Anycast. Isso significa que o banco de dados é replicado em centenas de locais físicos ao redor do globo, e o roteamento BGP entrega a consulta ao "nó" mais próximo. Se um nó na Europa cair, as consultas são desviadas automaticamente para um nó nos EUA sem alteração de IP.

Anycast no Sistema Raiz

Os 13 clusters lógicos de servidores raiz (A-M) são implementados por mais de 1.700 instâncias físicas globais via Anycast. Isso garante latência baixa e resiliência a DDoS mesmo com tráfego de Tbps.


8. Diagnóstico e Auditoria: O Laboratório de Dados

Um analista de redes deve saber verificar a integridade da base de dados distribuída.

Consultando o Serial Number para Sincronismo:

dig @ns1.empresa.com.br empresa.com.br SOA +short
dig @ns2.empresa.com.br empresa.com.br SOA +short
# Se os seriais forem diferentes, os dados estao desconectados.

Testando a Vulnerabilidade de AXFR:

dig @ns1.alvo.com alvo.com AXFR
# Se retornar a lista completa de subdomínios, o servidor está vulnerável.

Medindo Latência de Resposta entre Anycast Nodes:

# De diferentes regiões do mundo
dig @a.root-servers.net . NS +stats
dig @l.root-servers.net . NS +stats

9. Resumo Técnico

Atributo Valor
RFCs principais 1034, 1035, 1995, 1996, 5936
Modelo de dados Distribuído, hierárquico, eventualmente consistente
Mecanismo de replicação AXFR (full) e IXFR (incremental) via TCP/53
Mecanismo de cache TTL por registro + cache negativo (NXDOMAIN)
Escala Mais de 350M de domínios, ~4 trilhões consultas/dia
Mitigação de DDoS Anycast + RRL + DNSSEC
Latência típica global < 100 ms (com cache)

10. Conclusão: A Robustez da Descentralização

O DNS foi um dos primeiros sistemas a provar que a descentralização é o caminho para a sobrevivência em redes de escala planetária. Sua arquitetura de banco de dados distribuído garante que, mesmo que partes inteiras da Internet sofram apagões ou ataques, a resolução de nomes para o restante do mundo continue operante. Entender os mecanismos de zonas, transferências e consistência eventual é obrigatório para quem deseja administrar redes seguras e resilientes.