Friday, January 15th, 2010...1:12 am

Gdzie jest mój DC?

Jump to Comments

Pwszechna jest wiedza, że klient usługi katalogowej w konkretnym wydaniu jaką jest Active Directory w celu zalogowania się poszukiwał będzie rozwiązania optymalnego. Rozwiązaniem tym jest znalezienie najbliższego sobie kontrolera domeny i użycia go w tym procesie. Całość procesu opiera się o rozwiązywanie nazw DNS oraz konfigurację infrastruktury fizycznej katalogu (sieci i lokacje) o czym już nieraz pisałem.

A co gdy sieci mamy podefiniowane, podpięte pod odpowiednie lokacje a pomimo tego uparty klient nadal nie korzysta z kontrolera domeny z którym jest mu najbardziej po drodze lecz preferuje ten w przysłowiowym Pcimiu (bez obrazy dla mieszkańców tegoż… pozdrowienia)? Wtedy nadchodzi czas na to co każdy administrator lubi najbardziej … troubleshooting.

(cc) trriseesthings

Konfiguracja sprawdzona, logi przejrzane … nic nie widać  … i co dalej?

W tym konkretnym przypadku, problemów z procesem lokalizacji kontrolera domeny mamy możliwość skorzytania z kilku dodatkowych mechanizmów wpierających cały proces.

Pierwszy to możliwość włączenia trybu debug dla procesu netlogon. Netlogon jest to usługa systemowa, który obsługuje całość działań związanych z procesem logowania się użytkownika. W każdej wersji Windows z rodziny wywodzącej się NT możliwe jest włączenie trybu debug poprzez ustawienie odpowiednich flag w rejestrze … a jakie to flagi i jak je ustawić można przeczytać w KB 109626 Enabling debug logging for the Net Logon service. Po ustawieniu odpowiednich wartości, w pliku %widir%\debug\netlogon.log zapisywane będą informacje dotyczące procesu logowania, w tym lokalizacji kontrolera domeny. W większości przydatne :). Przykładowy log związany z lokalizacją DC przez klienta znajduje się poniżej (lekko podrasowany dla czytelności).

[SITE] Setting site name to ‘(null)’
[SESSION] \Device\NetBT_Tcpip_{33941FFA-DFED-4744-BF9A-972228BC6FF0}: Transport Added (192.168.1.10)
[SESSION] Winsock Addrs: 192.168.1.10 (1) List used to be empty.
[SESSION] V6 Winsock Addrs: (0)
[CRITICAL] Address list changed since last boot. (Forget DynamicSiteName.)
[SITE] Setting site name to ‘(null)’
[DNS] Set DnsForestName to: w2k.pl
[DOMAIN] W2K: Adding new domain
[DOMAIN] Setting our computer name to wss wss
[DOMAIN] Setting Netbios domain name to W2K
[DOMAIN] Setting DNS domain name to w2k.pl.
[DOMAIN] Setting Domain GUID to ce28b6f7-a26a-4e0f-9f39-0e63e525493e
[MISC] Eventlog: 5516 (1) "wss" "W2K"
[INIT] Replacing trusted domain list with one for newly joined W2K domain.
[SITE] Setting site name to ‘(null)’
[LOGON] NlSetForestTrustList: New trusted domain list:
[LOGON]     0: W2K w2k.pl (NT 5) (Forest Tree Root) (Primary Domain) (Native)
[LOGON]        Dom Guid: ce28b6f7-a26a-4e0f-9f39-0e63e525493e
[LOGON]        Dom Sid: S-1-5-21-1855823386-3643518527-1754427229
[INIT] Starting RPC server.
[SESSION] W2K: NlSessionSetup: Try Session setup
[SESSION] W2K: NlDiscoverDc: Start Synchronous Discovery
[MISC] NetpDcInitializeContext: DSGETDC_VALID_FLAGS is c00ffff1
[INIT] Join DC: \\resfs.w2k.pl, Flags: 0xe00013fd
[MISC] NetpDcInitializeContext: DSGETDC_VALID_FLAGS is c00ffff1
[MAILSLOT] NetpDcPingListIp: w2k.pl.: Sent UDP ping to 192.168.1.1
[MISC] NlPingDcNameWithContext: Sent 1/1 ldap pings to resfs.w2k.pl
[MISC] NlPingDcNameWithContext: resfs.w2k.pl responded over IP.
[MISC] W2K: NlPingDcName: W2K: w2k.pl.: Caching pinged DC info for resfs.w2k.pl
[INIT] Join DC cached successfully
[SITE] Setting site name to ‘Default-First-Site-Name’
[MISC] NetpDcGetName: w2k.pl. using cached information
[PERF] NlAllocateClientSession: New Perf Instance (001E6688): "\\resfs.w2k.pl"
    ClientSession: 00237D58
[SESSION] W2K: NlDiscoverDc: Found DC \\resfs.w2k.pl
[SESSION] W2K: NlSetStatusClientSession: Set connection status to 0
[DOMAIN] Setting LSA NetbiosDomain: W2K DnsDomain: w2k.pl. DnsTree: w2k.pl. DomainGuid:ce28b6f7-a26a-4e0f-9f39-0e63e525493e
[LOGON] NlSetForestTrustList: New trusted domain list:
[LOGON]     0: W2K w2k.pl (NT 5) (Forest Tree Root) (Primary Domain) (Native)
[LOGON]        Dom Guid: ce28b6f7-a26a-4e0f-9f39-0e63e525493e
[LOGON]        Dom Sid: S-1-5-21-1855823386-3643518527-1754427229
[SESSION] W2K: NlSetStatusClientSession: Set connection status to 0
[SESSION] W2K: NlSessionSetup: Session setup Succeeded
[INIT] Started successfully

Prawda że może być to pomocne??

4 Comments

Leave a Reply