Hoe domeincontrollers zich in Windows bevinden

In dit artikel wordt het mechanisme beschreven dat door Windows wordt gebruikt om een domeincontroller in een Windows-domein te vinden.

Opmerking

Dit artikel is van toepassing op Windows 2000. De ondersteuning voor Windows 2000 eindigt op 13 juli 2010. Het Windows 2000 End-of-Support Solution Center is een uitgangspunt voor het plannen van uw migratiestrategie vanuit Windows 2000. Zie het levenscyclusbeleid voor Microsoft Ondersteuning voor meer informatie.

              Van toepassing op: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2
Origineel KB-nummer: 247811

Samenvatting

In dit artikel wordt het proces beschreven van het zoeken naar een domein op basis van de DNS-stijlnaam en de NetBIOS-naam (flat-style). De naam van de platte stijl wordt gebruikt voor achterwaartse compatibiliteit. In alle andere gevallen moeten namen in DNS-stijl worden gebruikt als een kwestie van beleid. In dit artikel wordt ook het oplossen van problemen met het locatieproces van de domeincontroller behandeld.

Hoe de locator een domeincontroller vindt

In deze reeks wordt beschreven hoe de locator een domeincontroller vindt:

  • Op de client (de computer waarop de domeincontroller zich bevindt), wordt de locator gestart als een externe procedureaanroep (RPC) naar de lokale Netlogon-service. De Locator DsGetDcName API-aanroep (Application Programming Interface) wordt geïmplementeerd door de Netlogon-service.

  • De client verzamelt de informatie die nodig is om een domeincontroller te selecteren. Vervolgens wordt de informatie doorgegeven aan de Netlogon-service met behulp van de DsGetDcName-aanroep.

  • De Netlogon-service op de client gebruikt de verzamelde gegevens om op twee manieren een domeincontroller voor het opgegeven domein op te zoeken:

    • Voor een DNS-naam voert Netlogon een query uit op DNS met behulp van de met IP/DNS compatibele locator. DsGetDcName roept de DnsQuery-aanroep aan om de SRV-records (Service Resource) en A-records van DNS te lezen nadat de domeinnaam is toegevoegd aan de juiste tekenreeks die de SRV-records aangeeft.

    • Een werkstation dat zich aanmeldt bij een Windows-domein, voert dns-query's uit voor SRV-records in de algemene vorm:

      _service._protocol.DnsDomainName
      

      Active Directory-servers bieden de LDAP-service (Lightweight Directory Access Protocol) via het TCP-protocol. Clients vinden dus een LDAP-server door dns op te vragen voor een record van het formulier:

      _ldap._tcp. DnsDomainName

  • Voor een NetBIOS-naam voert Netlogon detectie van domeincontrollers uit met behulp van de met Microsoft Windows NT versie 4.0 compatibele locator. Dat wil gezegd, door gebruik te maken van het transportspecifieke mechanisme, zoals WINS.

    In Windows NT 4.0 en lager is 'detectie' een proces om een domeincontroller te vinden voor verificatie in het primaire domein of een vertrouwd domein.

  • De Netlogon-service verzendt een datagram naar de computers die de naam hebben geregistreerd. Voor NetBIOS-domeinnamen wordt het datagram geïmplementeerd als een mailslotbericht. Voor DNS-domeinnamen wordt het datagram geïmplementeerd als een LDAP User Datagram Protocol (UDP)-zoekopdracht. (UDP is het verbindingsloze datagramtransportprotocol dat deel uitmaakt van de TCP/IP-protocolsuite. TCP is een verbindingsgeoriënteerd transportprotocol.)

  • Elke beschikbare domeincontroller reageert op het datagram om aan te geven dat deze momenteel operationeel is en retourneert de informatie naar DsGetDcName.

Met UDP kan een programma op de ene computer een datagram verzenden naar een programma op een andere computer. UDP bevat een protocolpoortnummer, waarmee de afzender onderscheid kan maken tussen meerdere bestemmingen (programma's) op de externe computer.

  • Elke beschikbare domeincontroller reageert op het datagram om aan te geven dat deze momenteel operationeel is en retourneert de informatie naar DsGetDcName.
  • De Netlogon-service slaat de gegevens van de domeincontroller in de cache op, zodat latere aanvragen het detectieproces niet hoeven te herhalen. In de cache opslaan van deze informatie wordt een consistent gebruik van dezelfde domeincontroller en een consistente weergave van Active Directory aangemoedigd.

Wanneer een client zich aanmeldt bij of lid wordt van het netwerk, moet deze een domeincontroller kunnen vinden. De client verzendt een DNS-opzoekquery naar DNS om domeincontrollers te vinden, bij voorkeur in het eigen subnet van de client. Clients vinden dus een domeincontroller door dns op te vragen voor een record van het formulier:

_LDAP._TCP.dc._msdcs.domainname

Nadat de client een domeincontroller heeft gevonden, brengt deze communicatie tot stand met behulp van LDAP om toegang te krijgen tot Active Directory. Als onderdeel van die onderhandeling identificeert de domeincontroller op welke site de client zich bevindt op basis van het IP-subnet van die client.

Als de client communiceert met een domeincontroller die zich niet op de dichtstbijzijnde (meest optimale) site bevindt, retourneert de domeincontroller de naam van de site van de client. Als de client al heeft geprobeerd domeincontrollers in die site te vinden, gebruikt de client de domeincontroller die niet optimaal is. De client verzendt bijvoorbeeld een DNS-opzoekquery naar DNS om domeincontrollers te vinden in het subnet van de client.

Anders voert de client opnieuw een sitespecifieke DNS-zoekopdracht uit met de nieuwe optimale sitenaam. De domeincontroller gebruikt een deel van de adreslijstservicegegevens voor het identificeren van sites en subnetten.

Nadat de client een domeincontroller heeft gevonden, wordt de vermelding van de domeincontroller in de cache opgeslagen. Als de domeincontroller zich niet op de optimale site bevindt, wordt de cache na 15 minuten leeggemaakt en wordt de cachevermelding verwijderd. Vervolgens wordt geprobeerd een optimale domeincontroller te vinden op dezelfde site als de client.

Nadat de client een communicatiepad naar de domeincontroller heeft ingesteld, kan deze de aanmeldings- en verificatiereferenties tot stand brengen. En als dat nodig is voor Windows-computers, kan het een beveiligd kanaal instellen. De client is vervolgens klaar om normale query's uit te voeren en te zoeken naar informatie in de map.

De client brengt een LDAP-verbinding tot stand met een domeincontroller om u aan te melden. Het aanmeldingsproces maakt gebruik van Security Accounts Manager. Het communicatiepad maakt gebruik van de LDAP-interface en de client wordt geverifieerd door een domeincontroller. Het clientaccount wordt dus geverifieerd en via Security Accounts Manager doorgegeven aan de directoryserviceagent, vervolgens aan de databaselaag en ten slotte aan de database in de Extensible Storage-engine (ESE).

Problemen met het domeinzoekerproces oplossen

Ga als volgt te werk om problemen met het domeinzoekerproces op te lossen:

  1. Controleer Logboeken op zowel de client als de server. De gebeurtenislogboeken kunnen foutberichten bevatten die aangeven dat er een probleem is. Als u Logboeken wilt weergeven, selecteert u Start, wijst u Programma's>voor systeembeheer aan en selecteert u vervolgens Logboeken. Controleer het systeemlogboek op zowel de client als de server. Controleer ook de directoryservicelogboeken op de server en DE DNS-logboeken op de DNS-server.

  2. Controleer de IP-configuratie met behulp van de ipconfig /all opdracht bij een opdrachtprompt.

  3. Gebruik het hulpprogramma Ping om de netwerkverbinding en naamomzetting te controleren. Ping zowel het IP-adres als de servernaam. U kunt ook de domeinnaam pingen.

  4. Gebruik het hulpprogramma Netdiag om te bepalen of netwerkonderdelen correct werken. Gebruik de volgende opdracht om gedetailleerde uitvoer naar een tekstbestand te verzenden:

    netdiag /v >test.txt
    Bekijk het logboekbestand, zoek naar problemen en onderzoek eventuele betrokken onderdelen. Dit bestand bevat ook andere netwerkconfiguratiegegevens.

  5. Als u kleine problemen wilt oplossen, gebruikt u het hulpprogramma Netdiag met de volgende syntaxis:

    netdiag /fix.

  6. Gebruik de nltest /dsgetdc:domainname opdracht om te controleren of een domeincontroller kan worden gevonden voor een specifiek domein.

  7. Gebruik het NSLookup hulpprogramma om te controleren of DNS-vermeldingen correct zijn geregistreerd in DNS. Controleer of de serverhostrecords en GUID SRV-records kunnen worden omgezet.

    Gebruik bijvoorbeeld de volgende opdrachten om de recordregistratie te verifiëren:
    nslookup servername. childofrootdomain. rootdomain.com
    nslookup guid._msdcs. rootdomain.com

  8. Als een van deze opdrachten niet lukt, gebruikt u een van de volgende methoden om records opnieuw te registreren bij DNS:

    • Als u registratie van hostrecords wilt afdwingen, typt u ipconfig /registerdns.
    • Als u de registratie van de domeincontrollerservice wilt afdwingen, stopt en start u de Netlogon-service.
  9. Als u problemen met de domeincontroller wilt detecteren, voert u het hulpprogramma DCdiag uit vanaf een opdrachtprompt. Het hulpprogramma voert veel tests uit om te controleren of een domeincontroller correct wordt uitgevoerd. Gebruik deze opdracht om de resultaten naar een tekstbestand te verzenden: dcdiag /v >dcdiag.txt

  10. Gebruik het hulpprogramma Ldp.exe om verbinding te maken met de domeincontroller en deze te verbinden om de juiste LDAP-connectiviteit te controleren.

  11. Als u vermoedt dat een bepaalde domeincontroller problemen heeft, kan het handig zijn om logboekregistratie voor foutopsporing in Netlogon in te schakelen. Gebruik het hulpprogramma NLTest door deze opdracht te typen: nltest /dbflag:0x2000ffff. De informatie wordt vervolgens vastgelegd in de map Foutopsporing in het bestand Netlogon.log.

  12. Als u het probleem nog steeds niet hebt geïsoleerd, gebruikt u Netwerkmonitor om het netwerkverkeer tussen de client en de domeincontroller te bewaken.

Verwijzingen

Zie voor meer informatie de Windows Resource Kit, Hoofdstuk 10, 'Active Directory Diagnostic, Troubleshooting, and Recovery'.