Como os controladores de domínio estão localizados no Windows

Este artigo descreve o mecanismo usado pelo Windows para localizar um controlador de domínio em um domínio baseado no Windows.

Observação

Este artigo se aplica ao Windows 2000. O suporte ao Windows 2000 termina em 13 de julho de 2010. O Centro de Soluções de Fim de Suporte do Windows 2000 é um ponto de partida para planejar sua estratégia de migração do Windows 2000. Para obter mais informações, consulte a política de ciclo de vida Suporte da Microsoft.

Aplica-se a: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Número de KB original: 247811

Resumo

Este artigo detalha o processo de localização de um domínio por seu nome no estilo DNS e seu nome de estilo simples (NetBIOS). O nome de estilo simples é usado para compatibilidade com versões anteriores. Em todos os outros casos, os nomes no estilo DNS devem ser usados como uma questão de política. Este artigo também aborda a solução de problemas do processo de localização do controlador de domínio.

Como o Localizador encontra um controlador de domínio

Esta sequência descreve como o Localizador encontra um controlador de domínio:

  • No cliente (o computador que está localizando o controlador de domínio), o Localizador é iniciado como uma RPC (chamada de procedimento remoto) para o serviço netlogon local. A chamada de API (interface de programação de aplicativo) do Localizador DsGetDcName é implementada pelo serviço Netlogon.

  • O cliente coleta as informações necessárias para selecionar um controlador de domínio. Em seguida, ele passa as informações para o serviço Netlogon usando a chamada DsGetDcName.

  • O serviço Netlogon no cliente usa as informações coletadas para procurar um controlador de domínio para o domínio especificado de duas maneiras:

    • Para um nome DNS, o Netlogon consulta o DNS usando o Localizador compatível com IP/DNS. Ou seja, dsGetDcName chama a chamada DnsQuery para ler os registros srv (recurso de serviço) e registros "A" do DNS depois que ele acrescenta o nome de domínio à cadeia de caracteres apropriada que especifica os registros SRV.

    • Uma estação de trabalho que está fazendo logon em uma DNS de consultas de domínio baseada no Windows para registros SRV no formulário geral:

      _service._protocol.DnsDomainName
      

      Os servidores do Active Directory oferecem o serviço LDAP (Protocolo de Acesso ao Diretório Leve) por meio do protocolo TCP. Assim, os clientes encontram um servidor LDAP consultando o DNS para obter um registro do formulário:

      _ldap._tcp. DnsDomainName

  • Para um nome NetBIOS, o Netlogon executa a descoberta do controlador de domínio usando o Localizador compatível com o Microsoft Windows NT versão 4.0. Ou seja, usando o mecanismo específico do transporte, como WINS.

    No Windows NT 4.0 e anterior, "discovery" é um processo para localizar um controlador de domínio para autenticação no domínio primário ou em um domínio confiável.

  • O serviço Netlogon envia um datagram para os computadores que registraram o nome. Para nomes de domínio do NetBIOS, o datagram é implementado como uma mensagem de emaillot. Para nomes de domínio DNS, o datagram é implementado como uma pesquisa UDP (Protocolo de Datagrama de Usuário) LDAP. (UDP é o protocolo de transporte de datagram sem conexão que faz parte do pacote de protocolos TCP/IP. O TCP é um protocolo de transporte orientado à conexão.)

  • Cada controlador de domínio disponível responde ao datagram para indicar que ele está operacional no momento e retorna as informações ao DsGetDcName.

O UDP permite que um programa em um computador envie um datagram para um programa em outro computador. O UDP inclui um número de porta de protocolo, que permite que o remetente distingue entre vários destinos (programas) no computador remoto.

  • Cada controlador de domínio disponível responde ao datagram para indicar que ele está operacional no momento e retorna as informações ao DsGetDcName.
  • O serviço Netlogon armazena em cache as informações do controlador de domínio para que as solicitações posteriores não precisem repetir o processo de descoberta. O cache dessas informações incentiva o uso consistente do mesmo controlador de domínio e uma exibição consistente do Active Directory.

Quando um cliente faz logon ou entra na rede, ele deve ser capaz de localizar um controlador de domínio. O cliente envia uma consulta de pesquisa DNS ao DNS para encontrar controladores de domínio, preferencialmente na sub-rede do próprio cliente. Assim, os clientes encontram um controlador de domínio consultando o DNS para obter um registro do formulário:

_LDAP._TCP.dc._msdcs.domainname

Depois que o cliente localiza um controlador de domínio, ele estabelece a comunicação usando o LDAP para obter acesso ao Active Directory. Como parte dessa negociação, o controlador de domínio identifica em qual site o cliente está com base na sub-rede IP desse cliente.

Se o cliente estiver se comunicando com um controlador de domínio que não está no site mais próximo (ideal), o controlador de domínio retornará o nome do site do cliente. Se o cliente já tentou encontrar controladores de domínio nesse site, o cliente usará o controlador de domínio que não é ideal. Por exemplo, o cliente envia uma consulta de pesquisa DNS ao DNS para encontrar controladores de domínio na sub-rede do cliente.

Caso contrário, o cliente fará uma pesquisa DNS específica do site novamente com o novo nome de site ideal. O controlador de domínio usa algumas das informações do serviço de diretório para identificar sites e sub-redes.

Depois que o cliente localizar um controlador de domínio, a entrada do controlador de domínio será armazenada em cache. Se o controlador de domínio não estiver no site ideal, o cliente liberará o cache após 15 minutos e descartará a entrada de cache. Em seguida, ele tenta encontrar um controlador de domínio ideal no mesmo site que o cliente.

Depois que o cliente estabelecer um caminho de comunicação para o controlador de domínio, ele poderá estabelecer as credenciais de logon e autenticação. E, se necessário para computadores baseados no Windows, ele pode configurar um canal seguro. Em seguida, o cliente está pronto para executar consultas normais e pesquisar informações no diretório.

O cliente estabelece uma conexão LDAP com um controlador de domínio para fazer logon. O processo de logon usa o Gerenciador de Contas de Segurança. O caminho de comunicação usa a interface LDAP e o cliente é autenticado por um controlador de domínio. Portanto, a conta do cliente é verificada e passada pelo Gerenciador de Contas de Segurança para o agente de serviço de diretório e, em seguida, para a camada de banco de dados e, finalmente, para o banco de dados no Mecanismo de Armazenamento Extensível (ESE).

Solução de problemas do processo de localizador de domínio

Para solucionar problemas do processo de localizador de domínio:

  1. Verifique Visualizador de Eventos no cliente e no servidor. Os logs de eventos podem conter mensagens de erro indicando que há um problema. Para exibir Visualizador de Eventos, selecione Iniciar, aponte paraFerramentas Administrativas>de Programase selecione Visualizador de Eventos. Verifique o log do sistema no cliente e no servidor. Também marcar os logs do Serviço de Diretório no servidor e logs DNS no servidor DNS.

  2. Verifique a configuração de IP usando o ipconfig /all comando em um prompt de comando.

  3. Use o utilitário Ping para verificar a conectividade de rede e a resolução de nomes. Ping o endereço IP e o nome do servidor. Você também pode querer pingar o nome do domínio.

  4. Use a ferramenta Netdiag para determinar se os componentes de rede estão funcionando corretamente. Para enviar uma saída detalhada para um arquivo de texto, use o seguinte comando:

    netdiag /v >test.txt
    Examine o arquivo de log, procurando problemas e investigue todos os componentes implicados. Este arquivo também contém outros detalhes de configuração de rede.

  5. Para corrigir problemas menores, use a ferramenta Netdiag com a seguinte sintaxe:

    netdiag /fix.

  6. Use o nltest /dsgetdc:domainname comando para verificar se um controlador de domínio pode estar localizado para um domínio específico.

  7. Use a ferramenta para verificar se as NSLookup entradas DNS estão registradas corretamente no DNS. Verifique se os registros do host do servidor e os registros GUID SRV podem ser resolvidos.

    Por exemplo, para verificar o registro de registro, use os seguintes comandos:
    nslookup servername. childofrootdomain. rootdomain.com
    nslookup guid._msdcs. rootdomain.com

  8. Se um desses comandos não tiver êxito, use um dos seguintes métodos para reregister registros com DNS:

    • Para forçar o registro de registro do host, digite ipconfig /registerdns.
    • Para forçar o registro do serviço do controlador de domínio, pare e inicie o serviço Netlogon.
  9. Para detectar problemas do controlador de domínio, execute o utilitário DCdiag de um prompt de comando. O utilitário executa muitos testes para verificar se um controlador de domínio está sendo executado corretamente. Use este comando para enviar os resultados para um arquivo de texto: dcdiag /v >dcdiag.txt

  10. Use a ferramenta Ldp.exe para se conectar e associar ao controlador de domínio para verificar a conectividade LDAP apropriada.

  11. Se você suspeitar que um controlador de domínio específico tem problemas, talvez seja útil ativar o log de depuração do Netlogon. Use o utilitário NLTest digitando este comando: nltest /dbflag:0x2000ffff. Em seguida, as informações são registradas na pasta Depuração no arquivo Netlogon.log.

  12. Se você ainda não isolou o problema, use o Monitor de Rede para monitorar o tráfego de rede entre o cliente e o controlador de domínio.

Referências

Para obter mais informações, confira o Kit de Recursos do Windows, Capítulo 10, "Diagnóstico do Active Directory, Solução de Problemas e Recuperação".