Por dentro do Active Directory

Arquitetura do Data Store(armazenamento de dados) do Active Directory

 

O armazenamento de dados do Active Directory consiste de vários componentes que juntos fornecem serviço de diretório para clientes e outros servidores de diretório. Esses componentes incluem três serviços, quatro interfaces e um arquivo de banco de dados onde os dados são armazenados.

A figura abaixo ilustra a arquitetura do armazenamento de dados do Active Directory

clip_image001

A tabela abaixo descreve cada componente

Componente

Descrição

Interfaces: Lightweight Directory Access Protocol (LDAP), replication (REPL) and domain controller management interface, Messaging API (MAPI), Security Accounts Manager (SAM))

As interfaces de armazenamento de dados fornecem um caminho para clientes e outros servidores de diretório a acessarem os dados do diretório. Ou seja, é através das interfaces que se obtém acesso aos objetos do Active Directory.

Directory System Agent (DSA) (Ntdsa.dll)

(Agente do Serviço de Diretório)

O DSA, o qual é executado como Ntds.dll em cada Controlador de domínio, fornece as interfaces através das quais os clientes e outros servidores de diretório ganham acesso ao banco de dados do diretório.

Database layer (Camada de banco de dados)

A camada de banco de dados é uma API que reside em Ntds.dll e fornece uma interface entre a aplicação e o banco de dados de diretório, este mecanismo protege o banco de dados ser acessado diretamente por aplicações.

Extensible Storage Engine (ESE) (Esent.dll)

(Mecanismo de armazenamento Extensível)

O ESE, o qual é executado como Esent.dll, gerencia as tabelas de registros – cada um com uma ou mais colunas – Essas tabelas compõem o banco de dados de diretório.

Database files (arquivos de banco de dados)

Os dados do diretório são armazenados em um único arquivo chamado Ntds.dit. Adicionalmente são utilizados arquivos de log, os quais são temporariamente utilizados para escrita de transações não comitadas.

Protocolos utilizados pelo Data Store(Armazenamento de dados)

O principal protocolo utilizado pelo Active Directory é o LDAP (Lightweight Directory Access Protocol),o qual é executado sobre a pilha TCP/IP. Adicionalmente o Armazenamento de usa RPC(Chamada de procedimento Remoto) para tarefas como:MAPI, replicação e gerenciamento do controlador de domínio. O protocolo SMTP é suportado para replicação entre controladores de domínio onde não existe uma conexão constante, embora não seja recomendável essa arquitetura.

A figura abaixo ilustra os protocolos e interfaces que são usados pelo Armazenamento de dados(Data Store).

Protocolos do Data Store

clip_image002

Protocolo

Descrição

LDAP

O LDAP é um protocolo de serviço de diretório que especifica a comunicação com o diretório. Ele é executado diretamente sobre a pilha TCP/IP, e também pode ser executado sobre UDP. Clientes LDAP podem criar,atualizar,deletar e consultar informações que são armazenadas no diretório que é acessado através da porta TCP 389. O Active Directory suporta LDAP v2 e LDAP v3, os quais são padrões de indústria e pode ser usado como qualquer serviço de diretório que implementa o protocolo LDAP. Historicamente o LDAP é uma simplificação (“lightweight” leve) da versão do DAP, que é um protocolo utilizado para acessar diretórios X.500.

A seguir as características chaves do LDAP:

· O protocolo roda diretamente sobre TCP para conexões orientadas(recebimento de dados é confirmado) e sobre UDP para conexões sem confirmação.

· A maioria dos elementos de dados podem ser codificados como uma cadeia de caracteres, por exemplo distinguished names.

· Referencias para outros servidores podem ser retornadas para os clientes.

· O mecanismo SASL(Simple Authentication and Security Layer) pode ser utilizado com o LDAP para fornececer segurança de acesso ao diretório.

· Valores de atributos e distinguished names podem ser traduzidos através do uso de conjunto de caracteres ISO 10646.

· O protocolo pode ser estendido para o suporte a novas operações.

· O esquema do diretório é publicado através de um atributo no directory root object (rootDSE) para ser usado pelos clientes.

RPC

O Data Store usa o RPC para replicação e gerenciamento de controladores de domínio, comunicações MAPI e operações relacionadas ao SAM. RPC é um poderoso,robusto e eficiente mecanismo de comunicação entre processos(IPC), que possibilita a troca de dados e chamada de funcionalidades entre diferentes processos. Os processos podem estar no mesmo computador, em uma rede local ou até mesmo na internet.

SMTP

O Data Store pode utilizar SMTP para replicação entre controladores de domínio que não possuem uma comunicação permanente. Embora não seja uma prática recomendada.

Interfaces do Data Store

Como mostrado na figura anterior “Arquitetura do Data Store”, clientes de rede outros servidores de diretório obtém acesso ao diretório através de uma das interfaces que são descritas na tabela abaixo.

Interface

Description

LDAP

LDAP é a principal interface do Data Store. Clientes de diretório usam LDAP v3 para conectar ao DSA através da interface LDAP. A interface LDAP é implementada através da DLL Wldap32.dll. LDAP v3 é compatível com LDAP v2.

REPL

A principal funcionalidade desta interface é prover todos os recursos necessários para replicação de dados entre diretórios.

MAPI

Clientes de messageria podem ter acesso ao serviço de diretório através da interface MAPI.

SAM

SAM é uma interface proprietária para clientes Windows NT 4.0 ou anterior se conectarem ao DSA. Esses clientes usam APIs de rede do Windows NT 4.0 para conectar ao DSA, replicações com BDCs também usam esta interface.

Estrutura lógica do Data Store

O Active Directory armazena os dados de acordo com o modelo de informações do LDAP. Adicionalmente os dados são organizados em partições lógicas que podem sem replicadas independentemente, sendo assim, um controlador de domínio precisará somente armazenar dados referentes ao domínio no qual ele reside.

Modelo de informações do LDAP

O modelo de informações do LDAP é baseado em entradas, as quais contêm informações referentes a algum objeto, por exemplo, uma pessoa ou computador.

A implementação do modelo de informação é chamada de schema, o qual é um conjunto de classes e atributos que definem a estrutura e conteúdo de cada objeto que pode ser criado no diretório.

Árvore de Diretório

O Active Directory organiza os seus objetos em uma hierarquia de estrutura em árvore. A estrutura da hierarquia é derivada do schema, e o serviço de diretório implementa essa hierarquia.

Cada objeto no Active Directory tem exatamente um pai, e a referencia ao objeto pai é armazenada com o objeto. Como um resultado dessa referencia ao objeto pai, a hierarquia de objetos que é gerenciada pelo Active Directory forma a estrutura em árvore. Os objetos que populam o Active Directory criam essa estrutura de acordo com as regras do schema.

As restrições de arquitetura e requisitos da árvore de diretório são listadas abaixo:

· Objetos do tipo Domain, os quais são containers, podem somente serem filhos de outros objetos domain. Por exemplo, um domínio não pode ser filho de uma Unidade Organizacional.

· O objeto raiz da árvore de diretório é chamado de DSA-specifc Entry(DSE), ou rootDSE. O rootDSE não tem nome hierárquico ou classe schema, más ele tem um conjunto de atributos que identificam o conteúdo do controlador de domínio no qual ele resido. Sendo assim, o rootDSE constitui a raiz da árvore de diretório da perspectiva do controlador de domínio no qual ele está.

· Abaixo do rootDSE, cada diretório tem um domínio raiz, o qual é o primeiro que é criado na floresta. Este domínio sempre tem um contêiner filho chamado Configuration, o qual contém os dados de configuração da floresta.

clip_image004

Tipo de dado

Descrição

Dados do domínio

· Dados específicos do domino são armazenados na partição de domínio.

· Uma cópia completa e gravável é replicada para cada controlador de domínio no domínio.

Dados da floresta

· Dados da floresta são armazenados em duas partições: partição de configuração e partição de schema.

· Uma cópia completa e gravável da partição de configuração é replicada para cada controlador de domínio na floresta.

· Uma cópia somente leitura da partição de schema é replicada para cada controlador de domínio na floresta. A partição de schema é gravável somente no controlador de domínio que tem a função de mestre de operação de schema.

· Além de uma cópia completa gravável de um único domínio (o domínio para o qual o controlador de domínio é autoritativo), controladores de domínio especiais que são designados como servidores de catálogo global, também armazenam cópias parciais somente leitura de todas as outras partições de diretório de domínio da floresta. (As cópias somente leitura no catálogo global são "parciais" porque eles armazenam apenas alguns dos atributos de cada objeto). Um controlador de domínio que é um servidor de catálogo global pode ser consultado para encontrar qualquer objeto na floresta.

Dados de aplicação

· Aplicações podem utilizar a partição de diretório para armazenar dados específicos de seu interesse.

Estrutura física do Data Store

A estrutura física do data store consiste do arquivo de banco de dados do Active Directory (Ntds.dit) e seus arquivos de log associados bem como os arquivos temporários. Os dados contidos no arquivo de banco de dados são classificados como estáticos e dinâmicos.

Data Store Physical Structure

clip_image005

Componente

Descrição

NTDS.DIT

O arquivo de banco de dados no qual todos os dados do diretório são armazenados. Este arquivo consiste de três tabelas internas: A Data Table, Link Table e Security Descriptor (SD)

EDB.LOG

O arquivo de log no qual as transações de diretórios são escritas antes de serem comitadas (gravadas) no arquivo de banco de dados.

EDB.CHK

O arquivo que é usado para controlar quais transações no arquivo de log já foram gravadas no banco de dados.

RES1.LOG, RES2.LOG

Arquivos que são usados como espaço reserve para arquivos de log adicionais, caso EDB.LOG venha tornar-se cheio.

Banco de dados do Active Directory

Dados do Active Directory são armazenados no arquivo Ntds.dit. O Banco de dados do Active Directory (Ntds.dit), contém três tabelas internas: Data Table, Link Table e SD Table.

Duas cópias do Ntds.dit estão presentes em locais separados em um controlador de domínio, systemrootNTDS and systemrootSystem32:

· systemrootNTDSNtds.dit armazena o banco de dados que é usado pelo controlador de domínio. Ele contém os valores para o domínio e para a floresta.

· systemrootSystem32Ntds.dit contém uma cópia de distribuição do diretório padrão, o qual é usado na instalação do Active Directory.

Data Table

O data table contém todas as informações do Active Directory: Usuários, computadores,grupos, dados de aplicação, e qualquer dado que tenha sido armazenado após a sua instalação.

Link Table

O link table contém dados que representam links de atributos, os quais contém valores que referem a outros objetos no Active Directory. Por exemplo o atributo MemberOf do objeto usuário, este atributo contém valores que referenciam grupos dos quais o usuário é membro.

SD Table

O SD Table contém dados que representam descritores de segurança herdados para cada objeto.

clip_image007

Arquivos de log

Arquivo de log

Descrição

Edb.log

Este arquivo armazena as transações do diretório antes delas serem escritas no arquivo Ntds.dit. este arquivo tem um tamanho fixo de 10MB

Edb00001.log, Edb00002.log, Edb00003.log, and so on

O Active Directory cria arquivos de log adicionais quando necessário, ou seja, quando o arquivo de log padrão tornar-se cheio, cada novo arquivo de log tem um tamanho fixo de 10MB.

Edb.chk

Este arquivo mantém o controle sobre quais transações no arquivo de log já foram comitadas(gravadas) no arquivo Ntds.dit

Espaço mínimo requerido

· Ntds.dit e arquivos de log em partições separadas: Mínimo de 500 MB livre em cada partição.

· Ntds.dit e arquivos de log na mesma partição: Mínimo de 1 GB livre na partição.

Objetos e capacidade

Não existe um limite prático para o número máximo de objetos que podem ser armazenados no Active Directory. Um banco de dados do Active Directory foi testado com até 60 milhões de objetos. O teste revelou o mesmo desempenho de um logon em um diretório com 10 mil objetos, 100 mil objetos e 1 milhão de objetos; isto é, o serviço de diretório mostrou-se altamente escalável.

Observações

· Em um ambiente de domínio misto, onde existe BDCs do Windows NT 4.0, o limite recomendado de objetos é de 40 mil por domínio. Este limite é devido à capacidade de armazenamento do banco de dados SAM.

Dados do Active Directory

 

As principais características dos dados armazenados por qualquer serviço de diretório são o seu tamanho e o tempo de replicação. Um serviço de diretório deve armazenar objetos que não são tão grandes que impeçam a replicação. Portanto, grandes conjuntos de dados não estruturados não são adequados para o armazenamento do Active Directory. Dados de domínio e dados de configuração são geralmente estáticos por natureza.

 

Publicado por

Ulisses Poveda do Nascimento

Experiência na Área de Infraestrutura de TI e Cloud: 20 Anos. Especialista Sênior em tecnologias Microsoft atuando forte como Cloud Solution Architect em ambientes com Azure. Forte conhecimento em administração (AD/DNS, demais Serviços Microsoft), migração e implementação com Microsoft 365, Windows Server e ambientes com VMware ESXi 6/6.5, System Center, Hyper-V, Cluster, Storage EMC VNX, XtremIO, A10 LB, Blade Dell, Cisco e Veeam Backup & Replication. Treinamento demais profissionais, interno e para clientes em Azure (Arquitetura e Infraestrutura).

Deixe um comentário