Compartilhar via


O grande Segredo de como controlar e priorizar solicitações de autenticação e logon do cliente em controladores de domínio!

Olá Especialistas e Entusiastas Ninjas, tudo bem!
Iniciamos com o processo sucinto:
1 - Para localizar um DC, a estação de Trabalho consulta seu DNS local (Cliente DNS, Hosts, Cache), caso não obtenha um endereço de um DC, ele se conecta ao DNS e obtém uma lista de DC disponível;
2 - Realiza ping ao DC para verificar a disponibilidade;
3 - O usuário é autenticado via Kerberos;
4 - Obtenção de membros do Grupo universal;
5 - Carrega as Gpo’s para o usuário;

Bom especialistas, acreditamos que você deva ter passado pelo seguinte problema:

Imagina que você tem 03 Sites, com 08 Dc´s separados nesses sites:

  • Site A: DC-01, DC-02;
  • Site B: DC-03, DC-04;
  • Site C: DC-05, DC-06, DC-07, DC-08;

Site A: Brasília (Plano Piloto);
Site B: Brasília (Cidade Satélite);
Site C: São Paulo (Site de Contingência);

Obs: Site A, Site B e um DC (DC-05), fazem da mesma estrutura de autenticação de Brasília, sendo o último DC mencionado (DC-05), é para contingência e resiliência de ambiente.

Bom, uma vez explicado o escopo acima, o que percebemos no ambiente?

  • Que quando os desktops logam no Site A: Os DC´s do Site A autenticam, assim segue a mesma de raciocínio para os outros sites, até ai tudo bem, mas cadê a tal da resiliência?

  • Seguindo a raciocínio lógico, de fato não tem, por que, se os  Dc´s do Site A tiverem desastre catastrófico e nenhum simplesmente não poder mais autenticar, quem irá autenticar?

  • Analisando o Cenário acima, percebemos claramente que o DC-05 é para isso, muito bem!

  • Continuando a linha, movemos claro esse DC para o site A e tudo resolvido, pois, apesar de esse (DC-05), está logicamente no Site, mas fisicamente encontra-se em São Paulo, tudo muito lindo correto? SQN (Só que não);

  • Vamos lá para entender melhor!

  • Uma vez movido para o site e acondicionado, a resiliência máxima possuímos, mas não garantimos a performance compliance no ambiente, por esse também está no Pool de Servidores disponíveis para autenticação. Sim e solamente sim, e pior não garantimos que o mesmo não tem prioridade, tão somente no Crash.

  • E agora? Temos Resiliência, mas não garantimos performance, por que, se 1 ou mais desktops autenticarem nesse DC (DC-05), o mesmo irá demorar autenticar e atributos de replicação serão altíssimos passando pelo link e MPLS, restando para o usuário o simples esperar alguns minutos para logar, dores para as equipes d einfra e suporte podem acontecer.

E agora?

Localização do controlador de domínio no site mais próximo

Durante uma pesquisa por um controlador de domínio, o localizador tenta localizar um controlador de domínio no site mais próximo do cliente. Este usa as informações armazenadas no Active Directory para determinar o site mais próximo (Estrutura de Sites and Services).

Cada controlador de domínio baseado no Windows Server registra registros DNS que indicam o site onde o controlador de domínio está localizado. O nome do site (o nome distinto relativo do objeto de site no Active Directory) é registrado em vários registros para que as várias funções que o controlador de domínio pode executar (por exemplo, servidor de catálogo global ou servidor Kerberos) possam ser associadas ao site do controlador de domínio . Quando o DNS é usado, o Localizador pesquisa primeiro por um registro DNS específico do site antes de começar a procurar um registro DNS que não seja específico do site (localizando preferencialmente um controlador de domínio nesse site).

Um computador cliente armazena suas próprias informações de site no registro, mas o computador não está necessariamente localizado fisicamente no site associado ao seu endereço IP. Por exemplo, um computador portátil que foi movido para um novo local pode entrar em contato com um controlador de domínio em seu site inicial, que não é o site ao qual o computador está conectado no momento. Nessa situação, o controlador de domínio pesquisa o site do cliente com base no endereço IP do cliente comparando o endereço com os sites identificados no Active Directory e, em seguida, retorna o nome do site mais próximo do cliente. O cliente atualiza as informações no registro.

O controlador de domínio armazena informações do site para toda a floresta no contêiner Configuração. O controlador de domínio usa as informações do site para verificar o endereço IP do computador cliente contra a lista de sub-redes na floresta. Dessa maneira, o controlador de domínio verifica o nome do site no qual o cliente está localizado ou o site que mais se aproxima e retorna essas informações ao cliente.

Logo, Uma das primeiras tarefas importantes que um computador membro do domínio precisa fazer quando inicia é localizar um controlador de domínio. Geralmente, essa tarefa requer o uso de um servidor DNS (Sistema de Nomes de Domínio), que contém registros para cada controlador de domínio no domínio, e o Localizador, uma chamada de procedimento remoto para o serviço Netlogon local do computador.

No início:

Quando o computador cliente é iniciado, seu serviço Netlogon é iniciado automaticamente (na configuração padrão). Este serviço implementa a interface de programação de aplicativo (API) DsGetDcName, que é usada para localizar um controlador de domínio.

A máquina cliente começa coletando várias informações que serão usadas para localizar um controlador de domínio.

Essas informações incluem o endereço IP local do cliente, que é usado para determinar a associação do site do Active Directory do cliente, o nome de domínio desejado e um endereço de servidor DNS.

Encontrando os controladores de domínio

Netlogon então consulta o servidor DNS configurado.

O Netlogon recupera os registros de recurso de serviço (SRV) e os registros de host (A) do DNS que correspondem aos controladores de domínio do domínio desejado.

A forma geral dos registros SRV consultados é _service._protocol.domainname, em que service é o serviço de domínio, protocol é o protocolo TCP / IP e domainname é o nome de domínio totalmente qualificado (FQDN) do Active Directory desejado. Por exemplo, como o Active Directory é um serviço de diretório compatível com LDAP (Lightweight Directory Access Protocol), os clientes consultam _ldap._tcp.domainname (ou _ldap._tcp.dc._msdcs.domainname ao localizar o controlador de domínio mais próximo).


Cada controlador de domínio em um domínio registrará seu nome de host com o registro SRV, portanto, os resultados da consulta do cliente serão uma lista de nomes de host do controlador de domínio. O cliente também recupera os registros A associados, fornecendo ao cliente o endereço IP de todos os controladores de domínio no domínio. O cliente envia uma consulta de pesquisa LDAP, por meio do UDP (User Datagram Protocol), para cada controlador de domínio. Cada controlador de domínio responde, indicando que está operacional. O serviço Netlogon armazena em cache todas essas informações para que localizar um controlador de domínio no futuro não exija a repetição desse processo inicial. Em vez disso, o serviço pode simplesmente consultar seu cache para localizar outro controlador de domínio.

Selecionando um controlador de domínio

Depois que o cliente localiza um controlador de domínio, o cliente usa o LDAP para acessar o Active Directory em um controlador de domínio, preferencialmente um na sub-rede do próprio cliente. O controlador de domínio usa o endereço IP do cliente para identificar o site do Active Directory do cliente. Se o controlador de domínio não estiver no site mais próximo, o controlador de domínio retornará o nome do site do cliente e o cliente tentará encontrar um controlador de domínio nesse site consultando o DNS. Se o cliente já tentou encontrar um controlador de domínio nesse site, o cliente continuará usando o controlador de domínio não optimado atual.

Depois que o cliente encontra um controlador de domínio que ele gosta, ele armazena em cache as informações desse controlador de domínio e o cliente continuará a usar esse controlador de domínio para contatos futuros (a menos que o controlador de domínio fique indisponível).

Outros pontos importantes:

Como os clientes localizam controladores de domínio:

Quando um computador tenta localizar um controlador de domínio, um processo chamado localizador de controlador de domínio (localizador) é iniciado para que o controlador de domínio do Active Directory apropriado pode ser localizado. O Localizador usa informações armazenadas no Active Directory e no DNS para tentar localizar um controlador de domínio com as funções desejadas e que está localizado em um site mais próximo do cliente.

O Localizador usa informações definidas no contêiner Configuração no domínio raiz da floresta, que é replicado para todos os controladores de domínio da floresta. Objetos de site, objetos de sub-rede e objetos de servidor de controlador de domínio são todos obrigatórios para o localizador localizar o controlador de domínio mais próximo para um computador cliente. Objetos de site são usados ​​para representar sites do Active Directory. Objetos de sub-rede são usados ​​para representar segmentos de endereço IP e estão associados ao objeto de site apropriado. Objetos de servidor de controlador de domínio são usados ​​para representar controladores de domínio e estão associados a um objeto de site.

Os controladores de domínio do Active Directory registram registros DNS que especificam o site no qual o DC reside. O número de registros DNS que cada controlador de domínio registra depende das funções do DC. Por exemplo, um controlador de domínio que é um servidor de catálogo global registrará um registro DNS adicional que se anuncia como tal. Da mesma forma, um controlador de domínio que detém uma função de mestre de operações registrará um registro DNS que se anuncia como isso.

O processo para um computador cliente localizar um controlador de domínio é o seguinte (09 passos):

1.O Localizador é iniciado no computador cliente como uma chamada de procedimento remoto (RPC) para o serviço Netlogon local.

  1. O cliente coleta as informações necessárias para selecionar um controlador de domínio e passa as informações para o serviço Netlogon.

3.O serviço Net Logon no computador cliente usa as informações coletadas para criar uma consulta para enviar ao DNS para identificar o controlador de domínio apropriado.

  1. O serviço Net Logon no computador cliente envia um datagrama para os controladores de domínio descobertos.

5.O serviço de diretório intercepta a consulta e a transmite para o serviço Netlogon no controlador de domínio.

6.O serviço Net Logon no controlador de domínio pesquisa o endereço IP do cliente em sua tabela de mapeamento de sub-rede até o local localizando o objeto de sub-rede que melhor corresponde ao endereço IP do cliente e retorna as seguintes informações ao cliente: do site no qual o cliente está localizado ou o site que mais se aproxima do endereço IP do cliente; o nome do site no qual o controlador de domínio atual está localizado; e um pouco que indica se o DC encontrado está localizado no site mais próximo do cliente.

O cliente inspeciona as informações para determinar se deve tentar encontrar um controlador de domínio melhor. A decisão é tomada da seguinte maneira: Se o controlador de domínio retornado estiver no site mais próximo, o cliente usará esse controlador de domínio; Se o cliente encontrou um controlador de domínio no site em que o DC afirma que o cliente está localizado, o cliente usa esse controlador de domínio; Se o controlador de domínio não estiver no site mais próximo, o cliente atualizará as informações do site e enviará uma nova consulta DNS para localizar um novo controlador de domínio no site. Se a segunda consulta for bem-sucedida, o novo DC será usado. Se a segunda consulta falhar, o DC original será usado.

8.Se o domínio que está sendo consultado pelo cliente for o mesmo que o domínio ao qual o computador ingressou, o site no qual o computador reside será armazenado no registro no computador cliente.

9.Depois que o cliente localiza um controlador de domínio, a entrada do controlador de domínio é armazenada em cache. Se o controlador de domínio não estiver no site ideal, o cliente libera o cache após quinze minutos e descarta a entrada do cache. Em seguida, tenta encontrar um controlador de domínio ideal no mesmo site que o cliente.

No caso em que um computador cliente usa um endereço IP que não é representado na tabela de mapeamento de sub-site, o DC retorna um nome de site NULL e o cliente usa o controlador de domínio retornado, que pode residir em qualquer site do Active Directory.

E agora que explicamos tudo e tal, como vamos resolver essa performance?

Como controlar e priorizar solicitações de autenticação e logon do cliente em controladores de domínio

Cada domínio associado ao cliente Windows localiza um Controlador de Domínio apropriado usando um componente chamado “DCLocator” como parte do serviço NETLOGON.

Agora surge a pergunta, se há uma lógica que o controlador de domínio responde primeiro às consultas do DCLocator. 

O serviço NETLOGON possui dois parâmetros que controlam o comportamento de resposta para solicitações LDAP: LdapSrvWeigth e LdapSrvPriority

Por padrão, cada CD tem uma prioridade de 0 e um peso de 100. O peso pode ser usado para preferir DCs específicos com a mesma prioridade.

Se o valor de prioridade for definido, ele terá precedência sobre o valor do peso.

Os controladores de domínio com o maior peso e a menor prioridade têm mais probabilidade de ser contatados

Para modificar, criar 02 REG_DWORD values (LdapSrvWeight and LdapSrvPriority) under the Key: - HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters

Número máximo de caracteres excedido

Escolha um valor entre 0 e 65335

Reinicie o serviço NETLOGON e observe os registros SRV no DNS, eles devem ser atualizados em breve com os novos valores.

A tabela a seguir ilustra um exemplo de configuração


O CSEs (extensões do lado do cliente) é o que escolhe um DC nesta ordem:

1.A DC em seu próprio site de anúncios com base no endereço IP e na sub-rede do cliente;

  1. Se mais de um DC no mesmo site para escolher na mesma sub-rede IP, o Round Robin prevalece;

  2. Se houver mais de um controlador de domínio no mesmo site do AD, mas um dos DCs estiver na mesma sub-rede e o outro não, a sub-priorização de sub-rede prevalecerá para escolher o controlador de domínio em sua própria sub-rede;

  3. Se mais de um controlador de domínio no mesmo site do AD, mas ambos os DCs estiverem em sub-redes IP diferentes do cliente, e os dois DCs estiverem na mesma sub-rede, o Round Robin prevalecerá para escolher um dos DCs nesse mesmo sub-rede.

  4. Se mais de um controlador de domínio no mesmo site do AD, mas ambos os DCs estiverem em sub-redes IP diferentes do cliente, a sub-priorização de sub-rede prevalecerá para escolher uma das sub-redes mais próximas com base nos bits de rede. 

Registros SRV registrados pelo Net Logon

A lista a seguir fornece as definições dos nomes associados aos registros SRV registrados. Também descreve os critérios de pesquisa suportados por cada registro e as verificações executadas pelo Netlogon à medida que cada registro é registrado. Texto em negrito indica componentes de registro constantes; texto em tipo itálico indica nomes de variáveis.

Nas descrições de registros SRV registrados, DnsDomainName refere-se ao nome de domínio DNS usado durante a criação do controlador de domínio quando a árvore de domínio é unida ou criada (ou seja, enquanto o computador está executando o Assistente para Instalação do Active Directory). DnsForestName refere-se ao nome de domínio DNS do domínio raiz da floresta.

Segue-se uma lista dos nomes dos proprietários dos registos SRV registados pelo Net Logon. Um nome de proprietário é o nome do nó DNS ao qual o registro de recurso pertence.

***Grande abraço a todos!

FOL e Christian Centeno Bezerra***