Condividire...

Condividere ha il suo costo, ma alla fine finisce per arricchire tutti


Sharing has its cost, but at the end leads everyone to a better knowledge

giovedì 13 gennaio 2011

IL Servizio Ora di Windows - Windows Time Service

Introduzione

Prima o poi ad ogni sistemista capita di dover combattere con la questione degli orari dei computer della rete.
La documentazione Microsoft in verità è ottima ed abbondante.... forse anche troppo abbondante, ecco il motivo di questo articolo, vediamo se riusciamo a fare un riassunto il più funzionale possibile.

Il servizio Time di Windows (W32Time) si occupa di mantenere sincronizzati gli orari dei computer in ambiente Microsoft.


La questione è di vitale importanza per il corretto funzionamento di una rete Microsoft in quanto il protocollo di autenticazione Kerberos tollera, di default, una differenza di orario al massimo 5 minuti in fase di autenticazione, altrimenti la blocca.

(nell'immagine si evidenzia il parametro di impostazione all'interno di una Group Policy)




NTP

W32time è un'implementazione del protocollo NTP (Network Time Protocol) che, attraverso una serie di complessi algoritmi, assicura che gli orologi dei computer all'interno di una rete siano il più accurati possibile.
L' NTP è  l'evoluzione del protocollo SNTP (Simple Network Time Protocol) che veniva utilizzato nelle versioni precendenti di Windows (es: Windows 2000) con cui garantisce perfetta interoperabilità.
Per fare questo nell'ambito di un dominio AD DS tutti gli orologi dei computer vengono sincronizzati con l'ora di un computer considerato autorevole, mentre i computer standalone sincronizzano, di default, con il server NTP Internet della Microsoft: time.windows.com.

La sincronizzazione dell'orario NTP avviene ad intervalli prestabiliti e comporta il trasferimento di pacchetti NTP sulla rete. La porta utilizzata è la UDP 123 (la stessa dell'SNTP).



Windows Time service

E' un paccheto completo di sincronizzazione che supporta i cosiddetti Fornitori di Orario (Time Providers) che  si occupano o di ottenere un orario accurato (dalla rete o da un  HW apposito es: GPS) o di fornire l'orario agli altri computer della rete. Per cui il Windows Time Service consiste di due diversi componenti:
  1. NtpServer: fornitore di orario in uscita, in grado di rispondere alle richieste dei client sulla rete.
  2. NtpClient: fornitore di orario in entrata, che ottiene dati sull'orario che sono utilizzati per sincronizzare l'orologio locale del computer.


 Archittetura del Servizio Orario di Windows - Fonte Technet


Il servizio si chiama W32Time e può essere fermato ed avviato tramite i comandi:

Net Stop w32time

Net Start w32time



La gerarchia degli orari

Ogni computer utilizza uno dei seguenti metodi per identificare il fornitore di orario con cui sincronizzarsi (per semplificare il discorso utilizziamo un'architettura a singolo dominio):
  1. Se non è membro di un dominio si configura con la sorgente di orario esplicitamente indicata.
  2. Se è una macchina virtuale si sincronizza tramite i servizi di integrazione, almeno che non venga disabilitato, con l'orario del computer Host. Attenzione disabilitare sempre questa funzione in caso di Server AD DC virtuale!
  3. Se è un client o un server membro di un dominio, di default, segue la gerarchia di AD e si sincronizza con il  controller del proprio dominio che sta agendo come NTPServer.  
  4. Se è un controller di dominio si sincronizza con il Domain Controller che detienene il ruolo FSMO di PDC Emulator (si può facilmente identificare usando il comando: Netdom Query Fsmo).
  5. Se è il PDC Emulator si sincronizza con un server NTP esterno (o con un Time Server HW)


Gerarchia del Servizio Orario di Windows - Fonte Technet (modificata)


Questa gerarchia trova riscontro nel concetto di Strato riportato, ad esempio, in risposta al comando W32tm /monitor (eseguire il comando come amministratore)

La configurazione

Ricapitolando all'interno di un dominio abbiamo i normali client,  i controllori di dominio ed in capo a tutti il DC che detiene il ruolo Fsmo di Pdc Emulator, quindi i nostri obiettivi sono:


  1. Configurare la sincronizzazione del PDC emulator con una sorgente esterna e qui trovate una fix che fa un pò tutto da sola, dovete solo scegliere i Time Server da usare: Vi consiglio di scegliere  qualcosa di ridondante del tipo: 0.it.pool.ntp.org,0x8 1.it.pool.ntp.org,0x8 2.it.pool.ntp.org,0x8 3.it.pool.ntp.org,0x8 (NB: time.windows.com non è affidabile!).
    Il valore specificato dopo il nome DNS 0x01 corrisponde al seguente schema:    

        * 0x01 Intervallo speciale
        * 0x02 Usa solo per failback
        * 0x04 Attivo Simmetrico
        * 0x08 Client
    Di default troveremo preimpostato time.windows.com, 0x09 dove 0x09=0x08+0x01
  1. Configurare i client per sincronizzarsi automaticamente con il Dominio questa operazione non dovrebbe essere necessaria in quanto di default tutti i client di dominio si sincronizzano con AD.



Gli Strumenti di configurazione

Innanzitutto  specifichiamo gli strumenti che abbiamo a disposizione:

 

A)  l'area di registro HKLM\SYSTEM\CurrentControlSet\Services\W32Time a cui accediamo tramite il comando Regedit.




 HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type: NTP per il PDCE o computer standalone, NT5DS per i computer membri

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags:  5 per il PDCE

HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer: time.windows.com,0x1 per i PDCE o computer standalone


       



B) il modello amministrativo all'interno delle GPO: Computer-> Modelli amministrativi-> Sistema -> Servizio Ora di Windows  

 Fondamentamentalmente lo usiamo per attivare e disattivare i componenti NTP Client e NTPO server.

Attenzione in alcuni casi ho riscontrato che la Default Domain Policy disattivava l'NTP Server e Client! 




C) Il comando w32tm   Il comando "principe" che ci fornisce ottimi strumenti di configurazione che di analisi e debug. I comandi fondamentali:

w32tm /config /syncfromflags:domhier /update 

 Impone ad un client la sincronizzazione con il dominio 

w32tm /config /manualpeerlist: servers /syncfromflags:manual /reliable:yes /update

Servers: lista dei Server NTP

Imposta il PDCE per la sincronizzazione con i server NTP indicati
Es: w32tm /config /manualpeerlist:"0.it.pool.ntp.org,0x8 1.it.pool.ntp.org,0x8 2.it.pool.ntp.org,0x8 3.it.pool.ntp.org,0x8"  /syncfromflags:manual /reliable:yes /update


w32tm /stripchart /computer:obiettivo /samples: n /dataonly
obiettivo: server NTP
n: numero di campionemanti effettuati
Es: w32tm /stripchart /computer:time.windows.com /samples:5 /dataonly

Riporta la differenza di orario con il server indicato nel parametro obiettivo 

 w32tm /resync
 Forza una sincronizzazione degli orari usato spesso con i parametri /rediscover e/o /nowait
 
 w32tm /monitor
  Esegue il monitoraggio della configurazione e lo stato della gerarchiain AD  

w32tm /query /source
 Mostra la sorgente di sincronizzazione dell'ora



 w32tm /unregister
  Elimina il Servizio Ora di Windows e tutte le sue configurazioni


 w32tm /register
  Abilita il Servizio Ora di Windows con le impostazioni di default


  
D) i comandi  NET. E' buona norma dopo avere apportato modifiche di configurazione fermare e riavviare il servizio.


NET Stop w32time Ferma il Servizio Ora di Windows
Net Start w32time  Avvia il Servizio Ora di Windows


Spero che questo articolo possa esservi di aiuto. Come al solito ogni segnalazione e precisazione è la benvenuta.



Nessun commento:

Posta un commento