Guida completa alla sincronizzazione oraria in Windows Server e Active Directory: impostazioni predefinite, verifiche rapide, best practice, sicurezza, alta disponibilità e note specifiche per ambienti cloud come AWS EC2.
Panoramica essenziale
La sincronizzazione dell’ora è un pilastro nascosto ma critico delle infrastrutture Windows Server. Kerberos, l’auditing, le repliche AD, i cluster, le transazioni distribuite e persino la validità dei certificati fanno affidamento su un orologio coerente tra host. Uno scarto troppo elevato (clock skew) può causare errori di autenticazione, log confusi e malfunzionamenti “misteriosi”. In un dominio Active Directory ben progettato, il tempo scorre lungo una gerarchia chiara: i membri si sincronizzano con i DC, i DC con il PDC Emulator del dominio, e il PDC Emulator del dominio radice ottiene a sua volta l’ora da fonti NTP esterne affidabili.
Questa guida spiega cosa succede per impostazione predefinita, come verificare rapidamente la sorgente di tempo e come impostare correttamente il servizio Windows Time (W32Time) per ambienti di produzione, anche in cloud. Troverai esempi pratici, tabelle riassuntive, comandi pronti da copiare e una checklist finale.
Server NTP predefiniti in Windows
Computer non in dominio (stand‑alone)
- Per impostazione predefinita, il servizio Windows Time (W32Time) interroga
time.windows.comvia NTP/UDP 123. - La modalità è quella di client NTP tradizionale; la frequenza di interrogazione è gestita dal meccanismo di “special poll”.
Computer in dominio Active Directory
- Tutti i membri del dominio (server e workstation) si sincronizzano solo con un controller di dominio (DC). Non dovrebbero interrogare direttamente l’esterno.
- All’interno della foresta, il PDC Emulator del dominio radice è l’orologio autorevole e deve sincronizzarsi con fonti esterne affidabili (NTP di strato 1/2 o un servizio NTP del provider cloud).
Come funziona W32Time in breve
W32Time implementa un client NTP con un algoritmo di controllo dell’orologio che:
- Regola progressivamente il clock (slew) quando gli scarti sono contenuti.
- Esegue correzioni più incisive (step) solo oltre soglie predefinite.
- Adatta gli intervalli di interrogazione in base alla stabilità (dai decine di secondi a diverse ore).
Alcuni parametri utili risiedono in HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters (ad esempio Type, NtpServer) e HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config (ad esempio AnnounceFlags, MaxPosPhaseCorrection, MaxNegPhaseCorrection, MinPollInterval, MaxPollInterval). In ambienti domain‑joined, il valore Type è tipicamente NT5DS (sincronizzazione tramite gerarchia AD). Per peer manuali si usa NTP con un NtpServer valorizzato.
Verifica rapida della sorgente di tempo
| Comando | Scopo principale | Esempio di output utile |
|---|---|---|
w32tm /query /status | Mostra stato, strato NTP e ultimo sync | Stratum: 4ReferenceId: 0xA9FEA97B |
w32tm /query /source | Indica la sorgente attuale | time.windows.com,0x8 oppure 169.254.169.123,0x9 |
w32tm /query /configuration | Elenca l’intera configurazione, inclusi i peer definiti | Sezione NtpServer: |
Suggerimento: in Event Viewer → Applications and Services Logs ▸ Microsoft ▸ Windows ▸ Time‑Service trovi errori, cambi di sorgente e dettagli utili di diagnostica.
Migliori pratiche per l’ambiente di produzione
Definire fonti esterne affidabili
- Seleziona almeno 3–4 server NTP di strato 1/2 (ad esempio pool geografici) oppure, in cloud, il servizio orario gestito del provider.
- Evita di utilizzare un solo peer: riduce la resilienza ed espone a guasti o offset anomali.
- Configura i peer manuali sul PDC Emulator del dominio radice e marca il ruolo come affidabile (ReliableTimeSource).
Esempio di configurazione sul PDC Emulator:
powershell
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org" /syncfromflags:manual /reliable:yes /update
net stop w32time && net start w32time
w32tm /resync /nowait
Che cosa significano i suffissi ,0x8 e ,0x9?
0x8: modalità client NTP.0x1: special poll (intervallo di interrogazione fisso, tipicamente gestito daSpecialPollInterval).0x9: combinazione di0x8+0x1(client + special poll). È spesso usato dai provider cloud per uniformare il comportamento dei client.
Controllare la gerarchia AD
- Solo il PDC Emulator dovrebbe dichiararsi ReliableTimeSource (
/reliable:yes), così da propagare la fiducia verso gli altri DC e i membri in maniera ordinata. - Non forzare peer esterni sui membri del dominio: la coerenza viene prima della “precisione assoluta”.
Protezione e prestazioni
- Apri e filtra UDP 123 solo verso i peer NTP prescelti. Principio del minimo privilegio anche per l’ora.
- Monitora drift e latenza:
w32tm /stripchart /computer:<peer> /samples:5 /dataonly - Evita che host non necessari diventino server NTP: imposta correttamente
AnnounceFlagso usa/reliable:nodove opportuno.
Alta disponibilità
- Per sistemi sensibili (PKI, ambienti multi‑foresta, sistemi finanziari, cluster geografici), prevedi una coppia di appliance NTP ridondate (idealmente con riferimento GPS/DCF77) o un servizio cloud multi‑regione.
- Esegui periodici test di failover disabilitando temporaneamente un peer alla volta e verificando tempi di convergenza.
Configurazione via Criteri di gruppo
In domini di grandi dimensioni conviene standardizzare con GPO:
- Computer Configuration → Administrative Templates → System → Windows Time Service → Time Providers
- Enable Windows NTP Client: Enabled.
- Configure Windows NTP Client:
- Type:
NT5DSper membri e DC non‑PDC;NTPper il PDC Emulator. - NtpServer: elenco dei peer (ad es.
0.pool.ntp.org,0x8 1.pool.ntp.org,0x8 2.pool.ntp.org,0x8 3.pool.ntp.org,0x8). - SpecialPollInterval (se Type=NTP): tipicamente
3600secondi in produzione. - CrossSiteSyncFlags: allinea alle esigenze di siti AD.
- Type:
Parametri utili e valori consigliati
| Parametro | Dove | Note pratiche |
|---|---|---|
Type | …\W32Time\Parameters | NT5DS nei membri/ DC non PDC; NTP sul PDC con peer manuali. |
NtpServer | …\W32Time\Parameters | Elenco di peer con suffissi ,0x8/,0x9. Almeno 3–4 voci. |
AnnounceFlags | …\W32Time\Config | Gestisce “reliable”. Il comando /reliable:yes imposta i bit opportuni sul PDC. |
MaxPos/NegPhaseCorrection | …\W32Time\Config | Limiti delle correzioni in secondi. Lasciare i default salvo policy restrittive. |
Min/MaxPollInterval | …\W32Time\Config | Esponenti base 2 (es. 6=64s, 10=1024s) per query dinamiche in NT5DS. |
Diagnostica e interpretazione dei risultati
Dopo ogni modifica, convalida sempre:
w32tm /query /statusdeve indicare uno stratum ragionevole (3–4 sul PDC, 4–6 altrove) e un offset stabile.w32tm /query /sourcesui membri deve mostrare il DC locale; sui DC non PDC, un DC di livello superiore; sul PDC, i peer esterni.- In caso di dubbi, usa
w32tm /stripchartper confrontare una destinazione con un riferimento noto per qualche minuto.
Specificità negli ambienti AWS EC2
- Tutte le istanze Windows (compresi i DC) puntano di default al servizio Amazon Time Sync
169.254.169.123(tipicamente strato 3). - È normale osservare nei log e nei comandi un output uniforme su DC e membri: la configurazione iniziale dei driver/agent AWS sostituisce
time.windows.comcon l’IP di Amazon Time Sync.
Se vuoi che il dominio utilizzi un’altra fonte esterna:
- Valuta di disabilitare l’eventuale integrazione di time sync lato hypervisor/agent oppure rimuovere/escludere la voce con suffisso
,0x9riferita a169.254.169.123dalla listaNtpServerdove presente. - Configura manualmente i peer desiderati solo sul PDC Emulator.
- Esegui
w32tm /resynce verifica con i comandi di query che la sorgente sia effettivamente cambiata.
Strategie per ambienti virtualizzati e altri cloud
- Evita doppi meccanismi di sync: su VM Windows, mantieni un solo metodo autorevole (W32Time). Disabilita gli eventuali servizi di integrazione tempo dell’hypervisor se interferiscono.
- Molti provider offrono un time service proprietario raggiungibile da rete interna: valuta se usarlo come uno dei peer, ma continua a garantire ridondanza multi‑sorgente.
Procedure consigliate passo‑passo
- Identifica il PDC Emulator del dominio:
netdom query fsmo - Configura i peer NTP esterni autorevoli solo sul PDC (vedi esempio in alto). Imposta
/reliable:yes. - Convalida sul PDC con:
w32tm /query /status w32tm /query /sourceVerifica che lo strato sia 3–4 e che la sorgente corrisponda ai peer definiti. - Controlla a cascata su altri DC e server membri:
w32tm /query /sourceDovresti vedere il DC locale o quello designato dal sito AD. - Monitora costantemente con script o strumenti (System Center, Log Analytics, CloudWatch) lo Offset e gli eventi ID 35, 37, 47, 139.
Tabella di riscontro veloce
| Scenario | Cosa aspettarti | Azione se diverso |
|---|---|---|
| Membro di dominio | w32tm /query /source → DC del sito | Verifica GPO e valori Type=NT5DS |
| DC non PDC | Sorgente = DC gerarchicamente superiore | Non impostare peer esterni su DC secondari |
| PDC Emulator | Sorgente = peer NTP esterni | Impostare /manualpeerlist e /reliable:yes |
| Stand‑alone | Sorgente = time.windows.com,0x8 | Eventualmente sostituire con peer multipli |
| AWS EC2 | Sorgente = 169.254.169.123,0x9 | Se non desiderato, rimuovere o sovrascrivere con peer propri |
Comandi utili di verifica e manutenzione
- Dump configurazione:
w32tm /query /configuration - Forzare una risincronizzazione:
w32tm /resync /nowait - Misurare latenza/offset verso un peer:
w32tm /stripchart /computer:<peer> /samples:120 /dataonly - Abilitare log di debug temporaneo (per analisi avanzata):
w32tm /debug /enable /file:C:\Temp\w32time.log /size:5242880 /entries:0-300 w32tm /debug /disable
Troubleshooting mirato
Eventi più comuni
- ID 35: sincronizzazione riuscita con una sorgente di tempo. Verifica stratum e offset.
- ID 37: il client NTP non sta ricevendo campioni validi. Indagare connettività UDP 123 e reachability dei peer.
- ID 47: nessun dato di tempo valido dal provider NTP. Controllare firewall, DNS e affidabilità dei server NTP.
- ID 139: problemi con i peer configurati (ad es. DNS, sintassi
NtpServer). Rivedere la lista e i suffissi.
Problemi ricorrenti e rimedi
| Sintomo | Possibile causa | Rimedio |
|---|---|---|
| Kerberos “Clock skew too great” | Membro fuori sync o DC con sorgente errata | Verificare /query /source sui DC, ripristinare gerarchia NT5DS |
| Offset che oscilla | Peer pochi o instabili | Aggiungere 3–4 peer affidabili, controllare latenza e jitter |
| Conflitto di sorgenti | Doppio meccanismo (hypervisor + W32Time) | Disabilitare integrazione tempo dell’hypervisor o allinearla a W32Time |
| Stratum troppo alto | Catena lunga o peer non affidabili | Assicurare che il PDC punti a fonti di strato 1/2 |
| Timezone/ora legale errate | Time zone OS non corretta | Correggere il fuso orario; NTP sincronizza l’UTC, non l’offset locale |
Controlli di sicurezza
- Ridurre la superficie: solo il PDC deve esporre servizio NTP quando necessario; gli altri host rimangano client.
- Filtrare UDP 123 a livello perimetrale e su host. Evita aperture globali verso Internet.
- Inventario delle dipendenze: documenta quali applicazioni sono sensibili al tempo e imposta soglie di alert conservative (es. >100 ms).
Approfondimento sulle modalità di sincronizzazione
- NT5DS: i client seguono la gerarchia AD (consigliato per membri e DC non PDC).
- NTP: usa peer manuali (consigliato per il PDC o per host stand‑alone).
- AllSync/DOMHIER: varianti o alias in strumenti di gestione; resta valido il principio: dominio → PDC → peer esterni.
Esempi pratici
Stand‑alone che usa peer multipli
w32tm /config /syncfromflags:manual /manualpeerlist:"0.pool.ntp.org,0x9 1.pool.ntp.org,0x9 2.pool.ntp.org,0x9 3.pool.ntp.org,0x9" /update
net stop w32time && net start w32time
w32tm /resync /nowait
Ripristino su membro di dominio
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time
w32tm /resync /nowait
Ispezione rapida di più server
for /f %s in (servers.txt) do @echo === %s === && w32tm /computer:%s /query /source && w32tm /computer:%s /query /status</code></pre>
<h2>Monitoraggio continuo</h2>
<p>Integra nei tuoi strumenti di osservabilità:</p>
<ul>
<li><strong>Offset</strong> medio e massimo per host, con soglie di alert.</li>
<li><strong>Latenza</strong> verso i peer principali.</li>
<li><strong>Eventi</strong> 35/37/47/139 indicizzati con correlazione per host e sito AD.</li>
<li><strong>Convergenza</strong> dopo riavvii o failover di DC.</li>
</ul>
<h2>Riepilogo operativo</h2>
<p>In AD la regola d’oro è: <strong>unico punto di verità esterno = PDC Emulator del dominio radice</strong>; tutti gli altri seguono la gerarchia. Con peer multipli affidabili, firewall ben impostati, verifiche periodiche e monitoraggio, la tua infrastruttura manterrà l’orologio allineato, riducendo errori Kerberos, problemi di log e incoerenze tra cluster o database distribuiti.</p>
<hr>
<h2>Appendice: contenuti di riferimento rapido</h2>
<h3>Riepilogo predefiniti</h3>
<ul>
<li><strong>Stand‑alone</strong> → <code>time.windows.com,0x8</code></li>
<li><strong>Membro di dominio</strong> → DC (Type=<code>NT5DS</code>)</li>
<li><strong>PDC Emulator</strong> → peer NTP esterni (Type=<code>NTP</code>, <code>/reliable:yes</code>)</li>
<li><strong>AWS EC2</strong> → <code>169.254.169.123,0x9</code> di default</li>
</ul>
<h3>Comandi chiave</h3>
<table>
<thead>
<tr>
<th>Scopo</th>
<th>Comando</th>
</tr>
</thead>
<tbody>
<tr>
<td>Stato</td>
<td><code>w32tm /query /status</code></td>
</tr>
<tr>
<td>Sorgente</td>
<td><code>w32tm /query /source</code></td>
</tr>
<tr>
<td>Configurazione</td>
<td><code>w32tm /query /configuration</code></td>
</tr>
<tr>
<td>Peer manuali sul PDC</td>
<td><code>w32tm /config /manualpeerlist:"..." /syncfromflags:manual /reliable:yes /update</code></td>
</tr>
<tr>
<td>Ripresa servizio</td>
<td><code>net stop w32time && net start w32time</code></td>
</tr>
<tr>
<td>Risincronizzazione</td>
<td><code>w32tm /resync /nowait</code></td>
</tr>
<tr>
<td>Misura offset</td>
<td><code>w32tm /stripchart /computer:<peer> /samples:5 /dataonly</code></td>
</tr>
</tbody>
</table>
<h2>Checklist finale</h2>
<ol>
<li>Identifica il <strong>PDC Emulator</strong> del dominio (<code>netdom query fsmo</code>).</li>
<li>Configura sul PDC <strong>peer NTP esterni autorevoli</strong> (almeno 3–4) e imposta <code>/reliable:yes</code>.</li>
<li>Conferma con <code>w32tm /query /status</code> uno <strong>stratum</strong> congruo (3–4) e sorgente attesa.</li>
<li>Verifica a cascata su altri DC e membri che <code>w32tm /query /source</code> indichi il <strong>DC locale</strong>.</li>
<li>Monitora nel tempo <strong>Offset</strong> e gli <strong>eventi 35, 37, 47, 139</strong> con alert proattivi.</li>
</ol>
<hr>
<h2>Contenuti “pronti all’uso” dalla traccia</h2>
<h3>Server NTP predefiniti in Windows</h3>
<ul>
<li><strong>Computer non in dominio (stand‑alone)</strong>
<ul>
<li>Il servizio Windows Time (W32Time) interroga di default <code>time.windows.com</code> tramite NTP/UDP 123.</li>
</ul>
</li>
<li><strong>Computer in dominio Active Directory</strong>
<ul>
<li>Tutti i membri del dominio (server e workstation) si sincronizzano solo con un controller di dominio (DC).</li>
<li>All’interno del dominio, il PDC Emulator del dominio radice funge da «orologio autorevole» e deve a sua volta sincronizzarsi con un’origine NTP esterna.</li>
</ul>
</li>
</ul>
<h3>Verifica della sorgente di tempo</h3>
<table>
<thead>
<tr>
<th>Comando</th>
<th>Scopo principale</th>
<th>Esempio di output utile</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>w32tm /query /status</code></td>
<td>Mostra stato, strato NTP e ultimo sync</td>
<td><code>Stratum: 4</code><br><code>ReferenceId: 0xA9FEA97B</code></td>
</tr>
<tr>
<td><code>w32tm /query /source</code></td>
<td>Indica la sorgente attuale</td>
<td><code>time.windows.com,0x8</code> oppure <code>169.254.169.123,0x9</code></td>
</tr>
<tr>
<td><code>w32tm /query /configuration</code></td>
<td>Elenca l’intera configurazione, inclusi i peer definiti</td>
<td>Sezione <code>NtpServer:</code></td>
</tr>
</tbody>
</table>
<blockquote>
<strong>Suggerimento:</strong> Event Viewer → Applications and Services Logs ▸ Microsoft ▸ Windows ▸ Time‑Service documenta eventuali errori e variazioni di sorgente.
</blockquote>
<h3>Migliori pratiche per l’ambiente di produzione</h3>
<ol>
<li><strong>Definire fonti esterne affidabili</strong>
<ul>
<li>Minimo 3 o 4 server di strato 1/2 (es. pool.ntp.org, NIST) o, in cloud, il servizio proprietario del provider.</li>
<li>Sul PDC Emulator usare:</li>
</ul>
<pre><code>powershell
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org" /syncfromflags:manual /reliable:yes /update
net stop w32time && net start w32time
w32tm /resync /nowait
Controllare la gerarchia AD
- Solo il PDC Emulator dovrebbe dichiararsi ReliableTimeSource (
/reliable:yes); gli altri DC e i membri ereditano a cascata.
Protezione e prestazioni
- Aprire/filtrare UDP 123 solo verso gli NTP esterni prescelti.
- Monitorare drift e latenze (
w32tm /stripchart /computer:<peer> /samples:5 /dataonly).
Alta disponibilità
- Se il quorum temporale è critico (es. PKI, Kerberos tra foreste, transazioni), usare una coppia hardware GPS o un’appliance NTP ridondante.
Specificità in ambienti AWS EC2
- Tutte le istanze Windows (compresi DC) puntano di default a Amazon Time Sync
169.254.169.123(strato 3). - L’uniformità di output fra DC e membri è attesa: il driver AWS sostituisce
time.windows.comnella configurazione iniziale. - Per far sì che il dominio usi un’altra fonte:
- Disabilitare il Time Sync Service di EC2 oppure escludere
0x9dalla listaNtpServer. - Configurare manualmente i peer desiderati sul PDC Emulator.
- Rieseguire
w32tm /resynce verificare di nuovo con i comandi sopra.
- Disabilitare il Time Sync Service di EC2 oppure escludere
Procedura consigliata (check‑list rapida)
- Identifica il PDC Emulator del dominio (
netdom query fsmo). - Configura sul PDC i peer NTP esterni autorevoli.
- Convalida con
w32tm /query /statusche lo strato sia 3 o 4 e che la sorgente corrisponda ai peer definiti. - Verifica a cascata su altri DC e server membri che
w32tm /query /sourceindichi il DC locale. - Monitora costantemente (script o System Center/CloudWatch) lo scarto (Offset) e gli eventi ID 35, 37, 47, 139.
Seguendo questi passi otterrai un’infrastruttura sincronizzata con precisione, riducendo errori di Kerberos, problemi di log e incoerenze nei cluster o nei database distribuiti.
