Replicação do Active Directory

Quando um profissional começa a especializar-se em servidores Microsoft, um dos primeiros e o principal produto, ou melhor a base de todo um ambiente Microsoft, é o Active Directory, sua instalação é bastante simples, o que permite que profissionais sem experiência implementem com sucesso, talvez não da forma correta, más de uma forma que permita sua utilização.

No Geral este profissional possui uma visão superficial de como o produto funciona e na maioria das vezes trabalha em pequenas organizações, onde passa a ser o pioneiro a implementar um ambiente como este e é comum que este profissional implemente apenas 1 controlador de domínio em seu ambiente, embora a Microsoft use uma conta simples para determinar a quantidade de Controladores de Domínio em um ambiente (1 Controlador de Domínio a cada 5000 usuários), costumo dizer que em TI, quem tem 1, não tem nenhum, então o cenário ideal é que tenha-se ao menos sempre 2 Controladores de Domínio, mesmo que tenha-se menos de 5000 usuários, ai que entra o assunto replicação.

Replicação é como definimos o sincronismo de informações entre Controladores de um mesmo domínio ou floresta, este processo é importante e crucial para a integridade de um ambiente Microsoft com Active Directory, utilizando-se de 2 Controladores de domínio ou mais, precisamos que as informações armazenadas em um estejam sempre disponíveis nos demais, más como funciona este processo? Isto é o que explico a seguir.

Sempre que realizamos uma alteração em um servidor Controlador de Domínio, este necessita atualizar/sincronizar estas informações com os demais servidores, afimd e manter a base de dados do Active Directory consistente em todos os servidores, esta operação precisa ser transparente, de forma que não gere conflitos ou perca informações e é a este processo que atribuimos o nome Replicação.

Uma replicação ocorre quando:

  1. Um objeto é adicionado ao Active Directory (Usuário, Computador e etc)
  2. Um objeto tem os valores de seus atributos alterados (Ex: Alterar nome de um usuário)
  3. O nome de um container de objeto é alterado
  4. Um objeto é excluído

Como acontece:

Quando uma alteração ocorre, o Controlador de Domínio alterado, gera um pacote chamado Change Notification que é um aviso aos outros Controladores de Domínio de seu site, este aviso é gerado sempre que ocorre alterações na base de dados do Active Directory e é enviado a cada 15 segundos.

Quando um Controlador de Domínio recebe o chamado de Change Notification, este gera um pacote de pedido chamado de Request Change.

Request change é uma solicitação enviada ao controlador de Domínio originário do Change Notification, que solicita pelo valor da alteração realizada, ao receber este pacote, o Controlador de Domínio originário envia um pacote chamado Update que é exatamente o pacote que contém as alterações realizadas na base de dados do Active Directory.

Se não houver conectividade neste momento?

Se por algum motivo, não houver conectividade entre os Controladores de Domínio, irá ocorrer o acumulo de pedidos Request Change recebidos e pendentes em um Controlador de Domínio. Se isto ocorrer, o Controlador de Domínio coloca os pedidos em uma fila de espera (Wait Queue), até que a conectividade seja restabelecida e ele possa responder a todas, uma a uma.

Latência de Replicação:

A cada 15 segundos os Controladores de Domínio geram um pacote Change Notification, independente de haver ou não alterações na base de dados do Active Directory e os enviam para os outros Controladores de Domínio do site. Este procedimento é chamado de Replication Latency e serve para manter a base de dados do Active Directory atualizada. A completa atualização de todos os Controladores de Domínio da rede é chamado de Convergência.

Existem, no entanto alterações que não respeitam o periodo de 15 segundos para enviar o chamado Change Notification, as quais damos o nome de Urgent Replication, que são enviadas sem delay, são estas atualizações que compreendem atributos sensiveis de segurança como Bloqueio de Contas e Alteração de Senhas.

Replicação Desnecessária:

Para evitar que uma replicação desnecessária ocorra, cada Controlador de Domínio adiciona:

  • USN (Update Sequence Number)
    • Funciona como uma marca da versão da base de dados do Active Directory.
  • GUS (Global Unique Stamp)
    • Funciona como uma marca da versão do objeto na base de dados do Active Directory e o timestamp da alteração.
  • GUID (Server Globally Unique Identifier)
    • Identifica o servidor de origem das alterações.

Resolução de Conflitos:

As informações de USN, GUS e GUID são adicionadas ao pacote de atualização para evitar conflitos. O Active Directoru resolve 3 tipos de conflitos:

  1. Atributo dos objetos
    -> Quando detectado, é mantida a alteração mais nova.
  2. Objetos excluídos
    -> Quando detectado, o objeto é colocado dentro da OU Lost and Found, tornando-se inutilizável, más permitindo ao administrador restaurá-lo à sua origem.
  3. Nomes iguais de objetos (RDN – Relative Distinguished Name)
    -> Quando detectado, é mantida a alteração realizada pelo Controlador de Domínio que possui o maior GUID.

Diferenças na replicação, quanto ao Nível Funcional da Floresta:

A Replicação entre Controladores de Domínio possui diferenças de funcionalidades, dependendo do nível funcional da floresta, o que diminui consideravelmente a latencia da rede.

  • Modo Misto ou Windows 2000
    • Todos os atributos do objeto alterado independente de terem sido ou não alterados, são replicados.
  • Modo Windows 2003
    • Somente os atributos alterados do objeto são replicados

Partições do Active Directory:

A base de dados do Active Directory é dividida em 4 partições, são elas:

  • Schema
    • Contém a definição de todos os objetos e atributos que podem ser criados no Active Directory e as regras de criação e manipulação destes.
  • Configuração
    • Contém informações sobre a estrutura do Active Directory, incluindo: Domínio, sites, Controladores de Domínio e serviços.
  • Domínio
    • Contém dados de todos os objetos e informações do domínio, como usuários e grupos..
  • Aplicação
    • Possuem informações de aplicações que se integram ao Active Directory, como Exchange ou SQL.

Replicação:

A replicação do domínio e da floresta são feitas de forma separada. Quando possuímos apenas um domínio a replicação é realizada entre todos os Controladores de Domínio e incluem todas as partições.

    No caso de uma floresta com 2 ou mais domínios a replicação das partições de schema e configuração são realizadas entre todos os Controladores de Domínio da floresta e as partições de Domínio e Aplicação são replicadas apenas entre os Controladores de Domínio do domínio ao qual pertencem.

Replicação Global Catalog:

O Global Catalog, possui uma replicação bem parecida com a replicação da partição de schema, ou seja é replicada em todos os Controladores de Domínio da floresta, más somente entre os Controladores de Domínio que possuam o papel de Global Catalog, criando uma terceira rede de replicação.

Knowledge Consistency Checker (KCC):

A Topologia de replicação é a rota pela qual os Controladores de Domínio realizam a replicação na floresta, Um Controlador de domínio procura atualizar-se sempre com pelo menos outros 2 Controladores de Domínio na rede, essa topologia é gerada entre todos os Controladores de Domínio da rede até que se crie um circulo de atualizações entre os Controladores de Domínio.

A Geração desta topologia é realizada pelo KCC (Knowledge Consistency Checker) que faz automaticamente a avaliação dos Controladores de Domínio da rede e decide qual trocará informações com qual. O KCC roda em todos os Controladores de Domínio e a cada 15 segundos verifica se os parceiros estão ativos. Se a verificação retornar falha, o programa pede o recalculo da topologia.

As informações utilizadas pelo KCC para a geração da topologia de replicação entre os Controladores de Domínio em um domínio são:

  • Custo da transmissão de dados
  • Link entre os parceiros
  • Protocolos utilizados

Topologia KCC:

Em uma rede composta de até 7 Controladores de Domínio, o KCC gera uma topologia de replicação em anel. Acima de 7 Controladores de Domínio o KCC criará uma estrutura que interligará todos, essa alteração de estrutura deve-se ao Propagation Dump, processo que mata a atualização após 3 saltos, evitando assim um Update infinito.

    A Função do KCC é de ler, criar e apagar informações da base de dados do Active Directory, o KCC de um controlador de Domínio não se comunica diretamente com outro para gerar a topologia, ele usa as informações comuns armazenadas na partição de configuração e com base nestas informações o KCC utiliza-se de um algoritmo para convergir a rede em uma mesma visualização da topologia de replicação.

O KCC utiliza as informações da partição de configuração para criar as conexões que se aplicam a si mesmos, um KCC somente comunica-se diretamente com outro para trocar informações de erros. Essa informação de erro é usada para identificar falhas na topologia de replicação e só ocorre entre Controladores de Domínio de um mesmo site.

Replicação entre sites:

Em cada site um Controlador de Domínio é escolhido para realizar a função de Intersite Topology Generator (ISTG). Para permitir a replicação entre sites o ISTG designa um ou mais Controladores de Domínio para realizarem a replicação site-a-site. Aos Controladores escolhidos para esta função é dado o nome de Bridgehead Servers.

    Na replicação entre sites é utilizado o Inter-site Transports, neste campo que podemos acessar através do Active Directory Sites and Services(dssite.msc), podemos ajustar as configurações de replicação com base em:

  • Qual site tem acesso ao outro
  • Se existe um horário específico para a replicação
  • Qual o custo de cada conexão, que nos permite definir com base na estrutura da empresa qual a melho0r maneira de se comunicar entre os sites

Ferramentas de Diagnóstico:

Abaixo coloquei 3 ferramentas essenciais que podem se usadas no troubleshooting de problemas relacionados a replicação.

Tentei adicionar um pouco do meu conhecimento trabalhando com Active Directory com base em minhas experiências com os diversos problemas de replicação que já enfrentei, com um pouco de teoria para que saibamos antes de fazer o troubleshooting, como o produto funciona e deve se comportar, isto certamente ajuda bastante a clarear a mente.

Sinta-se a vontade de comentar e compartilhar suas dúvidas. Obrigado!