Redes 14 min de leitura

Arquitetura Interna do Active Directory: Da Estrutura do NTDS.DIT e Replicação (KCC/ISTG) ao Gerenciamento dos 5 Mestres FSMO

Guilherme Nascimento 0 comentários

Arquitetura Interna do Active Directory: Da Estrutura do NTDS.DIT e Replicação (KCC/ISTG) ao Gerenciamento dos 5 Mestres FSMO

Arquitetura Interna do Active Directory

Base Técnica Oficial: Fundamentado na documentação de engenharia do Microsoft Learn e TechNet
HORA NERD // MICROSOFT KNOWLEDGE BASE 2026

Destaque Arquitetural
Manual de Engenharia de Diretórios para SysAdmins, Arquitetos Windows e Especialistas em Infraestrutura

O Active Directory Domain Services (AD DS) é o serviço de identidade mais onipresente do planeta, presente em mais de 90% das empresas da Fortune 500. No entanto, sua operação interna é frequentemente tratada como uma “caixa preta”. Compreender a fundo o funcionamento do arquivo de banco de dados NTDS.DIT, a matemática dos vetores de replicação multimaster (USN e UTDV), os algoritmos do KCC e do ISTG e a distribuição cirúrgica dos 5 papéis FSMO é o divisor de águas entre um administrador reativo e um engenheiro de infraestrutura de alto nível.

✓
NTDS.DIT & ESE: O motor Jet Blue e a integridade de páginas via Write-Ahead Logging.
✓
Replicação Multimaster: Vetores USN, High-Watermark e a prevenção de USN Rollback.
✓
KCC & ISTG: A árvore geradora mínima (Spanning Tree) intra e inter-sites.
✓
Os 5 Papéis FSMO: Regras de ouro de posicionamento, transferência e apreensão forçada (*Seize*).

—

1. O Motor de Dados do AD DS: Anatomia do ntds.dit e ESE

Diferente de sistemas que utilizam bancos relacionais tradicionais, o Active Directory Domain Services opera sobre uma instância embarcada do Extensible Storage Engine (ESE), historicamente conhecido como Jet Blue.

A base de dados reside fisicamente no arquivo %SystemRoot%\NTDS\ntds.dit (Directory Information Tree), conforme especificado na documentação oficial de Estrutura do Banco de Dados do Active Directory no Microsoft Learn).

TERMINAL / bashUTF-8
+---------------------------------------------------------------------------------------------------+
|               ARQUITETURA INTERNA DE ARMAZENAMENTO DO ACTIVE DIRECTORY                            |
+---------------------------------------------------------------------------------------------------+

  [ REQUISIÇÃO LDAP / KERBEROS ] ──► (Criação de Usuário, Alteração de Senha, Membresia de Grupo)
                 │
                 ▼
  [ LSASS.EXE (Local Security Authority Subsystem Service) ]
                 │
                 ▼
  [ NTDSA.DLL (Active Directory Core Directory Service Agent) ]
                 │
                 ▼
  [ ESENT.DLL (Extensible Storage Engine API) ]
                 │
                 ├─► [ MEMÓRIA RAM: Database Buffer Cache ] ──► Alteração em páginas de 8 KB ("Dirty Pages")
                 │
                 ├─► [ WRITE-AHEAD LOGGING (Disco Sequencial) ]
                 │   `edb.log`, `edbtmp.log` (Arquivos de transação de 10 MB cada)
                 │
                 ├─► [ CHECKPOINT FILE: `edb.chk` ] ──► Ponteiro entre a memória e a base
                 │
                 └─► [ ARQUIVO FÍSICO NTDS.DIT ] ──► Árvore B+ com 3 Tabelas Principais:
                     • Schema Table: Metadados de classes e atributos
                     • Link Table: Relacionamentos multivalorados (ex: membros de grupos)
                     • Data Table: Todos os objetos (usuários, computadores, OUs, sites)
+---------------------------------------------------------------------------------------------------+

As Três Tabelas Fundamentais do ntds.dit

O arquivo ntds.dit é estruturado internamente em três tabelas em árvore balanceada (B+ Tree):
1. Data Table: Contém cada objeto instanciado no diretório. Cada linha representa um objeto (um usuário, uma impressora, um grupo), e cada coluna armazena um atributo (sAMAccountName, userPrincipalName, objectGUID, objectSid).
2. Link Table: Armazena referências a atributos que contêm múltiplos valores vinculados. O exemplo clássico é o atributo member de um grupo, que aponta de volta para o atributo memberOf do usuário correspondente.
3. Schema Table: Armazena a definição universal da estrutura de dados da floresta: os tipos de objetos que podem ser criados e quais atributos são permitidos ou obrigatórios.

O Ciclo Transacional e Proteção Contra Corrupção

O ESE opera estritamente através do princípio de Write-Ahead Logging (WAL):

  • Nenhuma alteração é gravada diretamente no arquivo ntds.dit.
  • A página de 8 KB é alterada no cache da memória RAM e a instrução sequencial é gravada no arquivo de log de transação ativo (edb.log).
  • Somente após a gravação síncrona do log no disco ser concluída com sucesso, o sistema operacional confirma a transação para o cliente. O processo de descarga das páginas sujas (Dirty Pages) para o ntds.dit ocorre assincronamente em segundo plano.

—

2. A Física da Replicação Multimaster: USN, High-Watermark e UTDV

O Active Directory é um sistema de banco de dados distribuído que adota o modelo Multimaster (Múltiplos Mestres): quase qualquer alteração (como criação de usuários ou troca de senhas) pode ser executada em qualquer Controlador de Domínio (DC) gravável da rede, e essa modificação é replicada assincronamente para todos os outros nós.

Para orquestrar essa consistência distribuída sem gerar loops de tráfego, o AD utiliza os conceitos detalhados no guia de Active Directory Replication Concepts no Microsoft Learn.

TERMINAL / bashUTF-8
+---------------------------------------------------------------------------------------------------+
|               O MECANISMO DE SINCRONIZAÇÃO ENTRE DOIS CONTROLADORES DE DOMÍNIO                    |
+---------------------------------------------------------------------------------------------------+

       [ CONTROLADOR DE DOMÍNIO A ]                                 [ CONTROLADOR DE DOMÍNIO B ]
  ┌───────────────────────────────────┐                         ┌───────────────────────────────────┐
  │ DSA InvocationID: GUID_A          │                         │ DSA InvocationID: GUID_B          │
  │ Maior USN Local: 15420            │                         │ Maior USN Local: 21980            │
  │ Up-To-Date Vector (UTDV):         │                         │ Up-To-Date Vector (UTDV):         │
  │ • DC_B: USN 21975                 │                         │ • DC_A: USN 15400                 │
  └───────────────────────────────────┘                         └───────────────────────────────────┘
                    │                                                             ▲
                    │ 1. Solicita alterações via RPC (DRSGetNCChanges)            │
                    │    Envia seu High-Watermark Vector (último USN visto de B) │
                    └─────────────────────────────────────────────────────────────┘
                    ▲                                                             │
                    │ 2. DC_B analisa seu UTDV, filtra apenas deltas de dados    │
                    │    com USN entre 21976 e 21980 e envia os pacotes           │
                    └─────────────────────────────────────────────────────────────┘

1. Update Sequence Number (USN)

Cada DC mantém um contador de 64 bits chamado USN (Número de Sequência de Atualização), local e monotônico:

  • Sempre que um objeto é criado ou modificado no DC, o contador USN interno desse DC é incrementado em 1.
  • O atributo uSNChanged do objeto alterado recebe esse novo valor.
  • Atenção: O USN é estritamente local a cada Controlador de Domínio. O USN 10.000 no DC01 não possui nenhuma relação de equivalência temporal com o USN 10.000 no DC02.

2. High-Watermark Vector e Up-To-Date Vector (UTDV)

Para saber quais dados precisam ser transmitidos durante uma sessão de replicação:

  • High-Watermark Vector: Registra o maior USN que o DC de destino já recebeu de um parceiro de replicação específico em uma determinada partição de diretório.
  • Up-To-Date Vector (UTDV): Mantém uma tabela com o par (InvocationID, Highest-USN) de todos os DCs da floresta que já originaram alguma alteração na partição. Isso impede o efeito de replicação redundante: se o DC01 recebe uma alteração que se originou no DC03 através do DC02, o DC01 analisa o UTDV e sabe que não precisa pedir essa mesma alteração novamente quando for sincronizar diretamente com o DC03.

3. Resolução de Conflitos: Last Writer Wins

Se dois administradores alterarem o mesmo atributo do mesmo usuário ao mesmo tempo em DCs diferentes (ex.: o telefone de um colaborador alterado no DC de São Paulo e no DC de Nova York):
1. Número de Versão do Atributo: O AD verifica o atributo msDS-ReplAttributeMetaData. O DC com a maior versão do atributo vence.
2. Critério de Desempate (Timestamp): Se as versões forem idênticas, o AD adota a regra Last Writer Wins (Último a Escrever Vence), comparando o carimbo de data/hora UTC da gravação.
3. Desempate Final (InvocationID): Se até os timestamps forem exatamente iguais (mesmo microssegundo), vence o DC que possuir o menor GUID de invocação (DSA InvocationID), garantindo determinação matemática idêntica em toda a rede.

—

O Perigo Crítico do USN Rollback em Ambientes Virtualizados

Um dos cenários mais destrutivos para um ambiente Active Directory corporativo é o USN Rollback, documentado detalhadamente em How to Detect and Recover from a USN Rollback no Microsoft Learn.

TERMINAL / bashUTF-8
+---------------------------------------------------------------------------------------------------+
|               A ANATOMIA DE UM DESASTRE: USN ROLLBACK POR SNAPSHOT                               |
+---------------------------------------------------------------------------------------------------+

  [ DIA 01: DC01 em produção atinge o USN 50.000 ] ──► (Administrador tira um Snapshot de VM)
                    │
  [ DIA 05: DC01 atinge USN 80.000 ] ──────────────► (Replica dados normalmente para o DC02)
                    │
  [ DIA 06: DC01 sofre um problema ] ──────────────► (SysAdmin inexperiente restaura o Snapshot do Dia 01!)
                    │
  [ ESTADO DO DC01 APÓS O SNAPSHOT: USN RETROCEDEU PARA 50.000 ]
                    │
                    ▼
  [ O COLAPSO DA REPLICAÇÃO ]:
  1. DC01 cria novos usuários (USN 50.001 a 55.000) e tenta replicar para o DC02.
  2. O DC02 consulta seu High-Watermark Vector e responde:
     "Eu já recebi do DC01 todas as alterações até o USN 80.000! Suas alterações abaixo de 80.000 são velhas!"
  3. Resultado: O DC02 DESCARTA silenciosamente todos os novos usuários criados no DC01.
  4. O DC01 fica permanentemente isolado na floresta (Objetos Fantasmas / Lingering Objects).
+---------------------------------------------------------------------------------------------------+

Como o Windows Server Moderno Mitiga o USN Rollback

A partir do Windows Server 2012 e hipervisores modernos (Hyper-V e VMware ESXi compatíveis com o identificador VM-GenerationID):

  • O hipervisor expõe um identificador único de geração de máquina virtual na BIOS/firmware.
  • Quando um snapshot de VM é revertido, o hipervisor altera esse identificador.
  • O subsistema do Active Directory detecta a mudança de geração no boot, invalida imediatamente o seu banco local de invocações, gera um novo InvocationID, descarta o pool de RIDs local e força uma sincronização de entrada autoritativa antes de aceitar qualquer nova escrita.

—

3. A Topologia de Replicação: KCC, ISTG, Sites e Sub-redes

A topologia de comunicação entre dezenas ou centenas de Controladores de Domínio espalhados por filiais é calculada dinamicamente pelo Knowledge Consistency Checker (KCC) e pelo Inter-Site Topology Generator (ISTG), documentados na especificação de How Active Directory Replication Topology Works).

TERMINAL / bashUTF-8
+---------------------------------------------------------------------------------------------------+
|               TOPOLOGIA DE REPLICAÇÃO: INTRA-SITE VS INTER-SITE                                   |
+---------------------------------------------------------------------------------------------------+

   [ SITE: MATRIZ-SP (Sub-rede: 10.0.1.0/24) ]
   ┌────────────────────────────────────────────────────────────────────────┐
   │ REPLICAÇÃO INTRA-SITE:                                                 │
   │ • Protocolo: RPC sobre TCP (Sem compressão, foco em baixa latência)    │
   │ • Topologia: Anel Bidirecional Duplo gerado pelo KCC local             │
   │ • Latência: Notificação quase imediata (15 segundos de atraso)          │
   │                                                                        │
   │      [ DC01 ] ◄═════════════════════════════════► [ DC02 ]             │
   │         ▲                                            ▲                 │
   │         ╚══════════════════► [ DC03 ] ═══════════════╝                 │
   └───────────────────────────────────┬────────────────────────────────────┘
                                       │
                                       ▼ (Link WAN / Site Link com Custo 50)
                      [ REPLICAÇÃO INTER-SITE (ISTG / Bridgehead) ]
                      • Protocolo: IP/RPC ou SMTP (Com compressão de dados)
                      • Agendada: A cada 15 a 180 minutos (Preserva banda WAN)
                                       │
                                       ▼
   [ SITE: FILIAL-CURITIBA (Sub-rede: 10.0.2.0/24) ]
   ┌────────────────────────────────────────────────────────────────────────┐
   │      [ DC04 (Bridgehead Server) ] ◄═════════════► [ DC05 ]             │
   └────────────────────────────────────────────────────────────────────────┘
+---------------------------------------------------------------------------------------------------+

1. Replicação Intra-Site (Dentro do Mesmo Datacenter / LAN)

  • O KCC roda a cada 15 minutos em cada DC e gera automaticamente um anel de conexão bidirecional duplo.
  • O objetivo do anel é garantir que nenhum nó esteja a mais de três saltos de distância de qualquer outro nó no mesmo site.
  • Notificação de Alteração (Change Notification): Quando um objeto é modificado, o DC de origem aguarda apenas 15 segundos e envia uma notificação aos seus vizinhos de anel. A sincronização ocorre via chamadas RPC sem compactação de dados, priorizando velocidade sobre economia de CPU.

2. Replicação Inter-Site (Entre Filiais e Nuvens / WAN)

  • Para links WAN lentos ou conexões de nuvem (ex.: VPN / ExpressRoute entre a Matriz e o Azure):
  • Um DC de cada site é eleito como Inter-Site Topology Generator (ISTG).
  • O ISTG calcula a Árvore Geradora Mínima (Spanning Tree) entre os sites para evitar loops e designa servidores específicos chamados Bridgehead Servers.
  • A replicação entre Bridgeheads é compactada (reduzindo o tráfego de rede em até 70% às custas de processamento) e segue um agendamento estrito (por exemplo, sincronizando apenas a cada 60 minutos ou fora do horário comercial).

—

4. Os 5 Mestres de Operação FSMO (Flexible Single Master Operations)

Embora o Active Directory seja quase todo multimaster, existem cinco tarefas críticas que gerariam colapso de consistência se pudessem ser executadas em dois servidores simultaneamente.

Para essas cinco funções, a Microsoft adota o modelo de Mestre Único Flexível (FSMO), detalhado na base de suporte técnico oficial em FSMO roles in Active Directory no Microsoft Learn e no guia de planejamento Planning Operations Master Role Placement.

TERMINAL / bashUTF-8
+---------------------------------------------------------------------------------------------------+
|               A HIERARQUIA DOS 5 PAPÉIS FSMO NO ACTIVE DIRECTORY                                  |
+---------------------------------------------------------------------------------------------------+

  [ NÍVEL DE FLORESTA (1 Único Servidor para Toda a Floresta) ]
  ├── 1. SCHEMA MASTER
  │      Controla adições de classes e atributos (ex: setup do Exchange ou atualização de schema).
  └── 2. DOMAIN NAMING MASTER
         Garante a unicidade na adição ou remoção de domínios na floresta.

  [ NÍVEL DE DOMÍNIO (1 Servidor por Domínio Existente) ]
  ├── 3. PDC EMULATOR (Primary Domain Controller)
  │      • Fonte autoritativa de sincronização de horário (NTP / W32Time)
  │      • Validação prioritária de senhas incorretas e bloqueio imediato de contas
  │      • Alvo preferencial e travamento de edição de Diretivas de Grupo (GPO)
  ├── 4. RID MASTER (Relative Identifier)
  │      Distribui blocos de 500 RIDs para cada DC criar novos SIDs sem colisão.
  └── 5. INFRASTRUCTURE MASTER
         Traduz referências entre domínios (objetos fantasmas em ambientes multi-domínio).
+---------------------------------------------------------------------------------------------------+

Análise Detalhada dos Papéis e Diretrizes de Engenharia

Papel FSMO Escopo O que Faz na Prática? Comportamento se Ficar Offline Regra de Ouro Arquitetural
**Schema Master** Floresta Gerencia todas as modificações no esquema universal do Active Directory. Nenhuma mudança estrutural pode ser feita (nenhum patch de schema do Windows ou Exchange pode ser instalado). Mantenha protegido e com acesso restrito a membros do grupo *Schema Admins*.
**Domain Naming Master** Floresta Arbitra a criação e exclusão de novos domínios filhos e partições de aplicação. Nenhum novo domínio ou partição de DNS pode ser criado na floresta. Posicione preferencialmente no mesmo DC que o Catálogo Global (GC).
**PDC Emulator** Domínio É o coração pulsante do domínio: sincroniza o horário de todas as estações e servidores, recebe notificações imediatas de senhas alteradas e centraliza edições de GPOs. **Impacto Imediato:** Falhas de autenticação Kerberos por desvio de relógio (>5 min), lentidão ao logar com senhas recém-alteradas e conflitos ao editar GPOs. **Deve ser a máquina mais estável, rápida e com melhor conexão de rede do domínio.**
**RID Master** Domínio Aloca conjuntos de identificadores relativos (RIDs em blocos de 500) para os outros DCs criarem objetos com SIDs universais exclusivos. DCs continuam criando objetos até esgotarem seus pools locais de 500 RIDs. Após isso, **nenhum novo usuário ou computador pode ser criado naquele DC**. Monitore o contador de esgotamento de RID Pool periodicamente.
**Infrastructure Master** Domínio Atualiza referências cruzadas entre domínios diferentes quando um usuário de um domínio é colocado em um grupo de outro domínio. Usuários de domínios remotos podem aparecer como SIDs numéricos em listas ACL em vez de nomes amigáveis. **Nunca coloque no mesmo DC que o Catálogo Global (GC)** em florestas multi-domínio, a menos que todos os DCs sejam GC.

Transferência Graciosa (Transfer) vs Apreensão Forçada (Seize)

  • Transferência Graciosa (Transfer): Ocorre quando o detentor atual do papel FSMO está online e cooperativo. O comando transfere a função sincronizando os dados pendentes sem perda de consistência:
TERMINAL / powershellUTF-8
  # Transferência graciosa do papel de PDC Emulator para o DC02
  Move-ADDirectoryServerOperationMasterRole -Identity "DC02" -OperationMasterRole PDCEmulator
  
  • Apreensão Forçada (Seizure): Deve ser utilizada exclusivamente quando o DC original sofreu uma catástrofe física irreversível e nunca mais retornará à rede:
TERMINAL / powershellUTF-8
  # Força a apreensão do RID Master após falha definitiva de hardware do nó original
  Move-ADDirectoryServerOperationMasterRole -Identity "DC02" -OperationMasterRole RIDMaster -Force
  
  • > ⚠️ ALERTA CRÍTICO DE ENGENHARIA: Se você realizar o Seize forçado dos papéis de Schema Master, Domain Naming Master ou RID Master, o servidor original que detinha o papel NUNCA MAIS DEVE SER RECONECTADO À REDE. Se ele for ligado, ocorrerá corrupção catastrófica de SIDs duplicados e divergência irrecuperável de esquema. O disco do servidor antigo deve ser formatado imediatamente.

—

5. Diagnóstico Prático e Auditoria de Saúde via CLI e PowerShell

Para auditar e monitorar a saúde dos controladores de domínio e da esteira de replicação, utilize a suíte padrão de comandos de baixo nível recomendada pela Microsoft:

TERMINAL / powershellUTF-8
# 1. Localização instantânea de qual DC detém cada um dos 5 papéis FSMO
Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster
Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster

# 2. Resumo sintético do estado de replicação de toda a floresta (Repadmin)
repadmin /replsummary

# 3. Inspeção detalhada de falhas e vizinhos de replicação do nó local
repadmin /showrepl * /errorsonly

# 4. Verificação de filas pendentes de replicação no KCC
repadmin /queue

# 5. Diagnóstico profundo de serviços, permissões e registros DNS essenciais (Dcdiag)
dcdiag /v /c /d /e /s:DC01.corp.local

—

6. Referências Técnicas Oficiais da Microsoft

Para aprofundamento adicional nos manuais de engenharia utilizados na construção desta análise:

—


Consultoria em Active Directory & Identidade Microsoft
Diagnóstico de Replicação•FSMO Recovery•Hardening de Domínio•Migrações

Sua infraestrutura de Active Directory apresenta lentidão, falhas de replicação ou riscos de corrupção?

A equipe especializada da Hora Nerd atua na auditoria e resolução de falhas complexas de replicação multimaster, realocação segura de papéis FSMO, recuperação de Controladores de Domínio e modernização de florestas corporativas legadas.

Guilherme Nascimento ✓

Guilherme Nascimento

Especialista & Fundador

Especialista em Infraestrutura, Cloud/DevOps e Cibersegurança | +10 anos de experiência prática

Profissional com mais de uma década atuando no campo de batalha da tecnologia corporativa. Especialista em arquiteturas resilientes, automação com Docker/Kubernetes, Hardening de Active Directory, Linux avançado e observabilidade SRE. Criador do ecossistema Hora Nerd, dedicado a desmistificar a tecnologia para profissionais e estudantes.

Cloud & DevOps Active Directory Hardening Linux SysAdmin Docker & CI/CD Observabilidade SRE
HORA NERD EMPRESAS · DIAGNÓSTICO TÉCNICO

Sua empresa enfrenta desafios com este tema ou precisa destravar a infraestrutura?

Elimine gargalos de rede, problemas de lentidão em servidores, custos descontrolados de nuvem e riscos de segurança. Atuamos como especialista freelance emergencial ou consultoria técnica contínua.

Deixe seu comentário

Seu e-mail não será publicado. Campos obrigatórios estão marcados com *