28 ottobre 2010

Time server in 2003: sincronizzare l'ora da fonte esterna

Ultimamente ho avuto qualche problema per via del fatto che il mio dc nonostante cambiassi il server di sincronizzazione dell'ora dopo qualche decina di secondi tornava all'ora non corretta.
I seguenti sono gli appunti su questo argomento.

1) Il valore contenuto in:
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
determina se la fonte di sincronizzazione deve essere un sntp esterno oppure la cmos. Il valore di default dovrebbe essere 10 (cmos). Mentre inserendo il valore 5 si indica all'so di sincronizzare con una fonte esterna.
2) Per settare l'sntp server esterno per la sincronizzazione si puo' fare in 2 modi, o andando ad editare il registro oppure più semplicemente con:
net time /setsntp:"ntp1.inrim.it,0x1 ntp2.inrim.it,0x1"
3) il valore ",0x1" in coda all'indirizzo dell'sntp serve a forzare la sincronizzazione secondo un intervallo preciso indicato in:
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
senza questa stringa windows si attiene alle specifiche ntp.
4) riavviare il servizio con:
net stop w32time && net start w32time
5) aprire il firewall su udp:123
6) eventualmente provare a forzare la sincronizzazione con:
w32tm /resync /rediscover

Regole.
a) tutti i client di un dominio e tutti i server membri usano il dc come server orario.
b) tutti i dc nominano il pdc come server orario.
c) tutti pdc nominano il capo della foresta come server orario.

P.S. se non viene cambiata la key del registro al punto 1 il server tornerà ad avere l'ora della cmos dopo alcune decine di secondi.
Per trovare il PDC emulator a cui fa riferimento il DC è necessario installare i "support tools" per xp o per 2003 ed eseguire il seguente comando:
C:\Programmi\Support Tools>netdom.exe query /domain:MIODOMINIO fsmo