Configurazione di w32time

Configurazione di w32time come client NTP
Le prestazioni di w32time come client NTP dipendono principalmente dalla versione del software w32time. Tuttavia, Microsoft ha iniziato a migliorare la precisione raggiungibile con w32time se si usano le versioni fornite con Windows Server 2016 o Windows 10 versione 1607, o successive.
Configurazione Predefinita di w32time: perplessità
Se una macchina Windows ottiene il tempo da un server NTP sulla rete, allora è solamente un client di quel server e dovrebbe inviare normali pacchetti di richiesta "client" NTP, di conseguenza il server dovrebbe inviare un pacchetto di risposta "server" NTP. Tuttavia, per impostazione predefinita molte versioni del servizio w32time ("Windows Time") fornito con Windows inviano pacchetti "peer symmetric active" invece di pacchetti in modalità "client" e normalmente il daemon NTP (ntpd), come server NTP, non dovrebbe nemmeno rispondere a tali pacchetti, a meno che il pacchetto "symmetric active" provenga da un peer autenticato. Tuttavia, da molti anni ntpd ha implementato una soluzione alternativa in cui non gestisce richieste di peer stupide come farebbe per i peer reali, ma invii comunque una risposta, solo per soddisfare i client w32time.
Versioni di firmware / ntpd LANTIME che non rispondono alle richieste "symmetric active"
Nel giugno 2018 c'è stato un cambiamento nel codice sorgente di ntpd per risolvere un problema differente, tale cambiamento ha disabilitato involontariamente la soluzione sopra menzionata. Quando fu notato notato dagli utenti, la soluzione alternativa venne abilitata nuovamente, e quindi la successiva versione della patch ntp-4.2.8p12 funziona nuovamente. La versione di ntpd in cui la soluzione alternativa per i client w32time è stata disattivata involontariamente è stata fornita con le versioni firmware LANTIME 6.24.013 e 6.24.014. Questo dovrebbe funzionare correttamente con tutte le vecchie versioni del firmware LANTIME e con la versione firmware LANTIME 6.24.015 o successiva. Ad ogni modo, la soluzione corretta sarebbe configurare il servizio w32time sulle macchine Windows in modo che invii solamente richieste "client" al server, come previsto dagli standard NTP, come andremo a spiegare nel prossimo capitolo.
Configurare Correttamente un NTP Server Privato
w32time è il nome del servizio che viene normalmente configurato automaticamente per interrogare l'ora da un controller di dominio in un dominio Active Directory, se la macchina è un membro di un dominio AD o da uno dei server NTP pubblici di Microsoft a cui è possibile accedere tramite time.microsoft.com, se la macchina è una macchina autonoma o un controller di dominio AD. Il comando w32tm, tuttavia, è una utility che può essere eseguita in una finestra della console (cmd) con autorizzazioni di amministratore per configurare e monitorare il servizio w32time. I seguenti comandi possono essere utilizzati per specificare il nome host o l'indirizzo IP di un server NTP esterno da interrogare e per controllare le impostazioni.
Quando si specifica un server NTP, potrebbe essere necessario aggiungere un flag specifico al nome host o all'indirizzo IP, anche se questo non è chiaramente specificato da Microsoft. Secondo la documentazione di Microsoft a: [MS-SNTP]: Abstract Data Model | Microsoft Docs - https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-sntp/fef409e4-5297-4f18-850b-e386f7e10fea - sono supportati le seguenti flag.
0x1 |
SpecialInterval |
Attendere per un intervallo speciale anziché per l’intervallo standard prima di inviare la query successiva, vedere Impostazioni del Registro di sistema |
0x2 |
UseAsFallbackOnly |
Utilizza il server NTP specificato solo come fallback |
0x4 |
SymmatricActive |
Forza l’invio di symmetric active peer request al server NTP specificato |
0x8 |
Client |
Forza l’invio di client request al server NTP specificato |
Come già menzionato, alcune versioni di w32time sono solite inviare richieste peer symmetric active ai server NTP di default, ma se il server NTP sta eseguendo il software NTP standard ( ntpd ), il server potrebbe non rispondere a tali richieste peer non autenticate. Il comportamento normale è quello di inviare richieste client a un server, dopodichè il server invia una risposta al client. Quindi è sicuro usare il flag 0x8, o una combinazione di altre flag con 0x8, se necessario. Ad esempio, 0x8 e 0x1 risulterebbero in una falg 0x9.
Quindi in realtà il seguente comando può essere utilizzato per specificare un singolo server:
w32tm / config / manualpeerlist: [server], 0x8 / syncfromflags: MANUAL /update |
L'indirizzo IP o il nome host DNS del server NTP devono essere inseriti al posto di [server], e il flag 0x8 viene aggiunto dopo la virgola. Se diversi server devono essere configurati per la ridondanza, i server specificati da / manualpeerlist devono essere separati da uno spazio, quindi l'intero parametro deve essere racchiuso tra virgolette:
w32tm / config / manualpeerlist: "[server1], 0x8 [server2], 0x8" / syncfromflags: MANUAL / update |
Il parametro / update assicura che le modifiche siano immediate. Il seguente comando può essere utilizzato per controllare l'elenco di server (in realtà sempre etichettati come peer) attualmente in uso:
w32tm / query / peers |
L'output di questo comando mostra anche una mode per ogni server / peer specificato, che dovrebbe essere 3 (Client) nella maggior parte dei casi. Per altre opzioni del comando w32tm, vedere le informazioni sull'utilizzo visualizzate se il comando viene eseguito senza alcun parametro. Il comando net time ... è stato utilizzato su sistemi Windows precedenti per configurare il servizio w32time. Tuttavia, tale comando dovrebbe essere utilizzato solo se l’utility w32tm non è disponibile.
Impostazioni del Registro di sistema
Le seguenti impostazioni sono richieste su ogni nodo che esegue w32time per ottenere i migliori risultati: Valore chiave del Registro di sistema.
Registry Key |
Value |
MinPollInterval |
6 |
MaxPollInterval |
6 |
UpdateInterval |
100 |
SpecialPollInterval |
64 |
FrequencyCorrectRate |
2 |
Questi parametri sono controllati tramite le impostazioni del registro o tramite alcune policy di gruppo. Vedi la sezione AVVERTENZA su questa pagina web. Voci del Registro di sistema del servizio Ora di Windows: https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings#w2k3tr_times_tools_uhlp
Riferimenti
Strumenti e impostazioni del servizio Ora di Windows: https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings
Ora esatta per Windows Server 2016: https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/accurate-time
Addendum al white paper su Windows Time Sync Accuracy: http://windocs.blob.core.windows.net/windocs/WindowsTimeSyncAccuracy_Addendum.pdf
Confine di supporto per configurare il servizio Ora di Windows per ambienti ad alta precisione: https://docs.microsoft.com/en-us/windows-server/networking/windows-time-service/support-boundary
Anche: https://www.yammer.com/wsscengineering/#/files/133303237
Discussioni Passate sulla soluzione alternativa di ntpd per w32time
Il problema che w32time invia richieste "simmetriche attive" per impostazione predefinita è stato sollevato da Dave Mills nel gruppo di notizie NTP nel 2002: https://groups.google.com/d/msg/comp.protocols.time.ntp/WlClEg_IB4w/vnyhqB0_llEJ
In un altro post Dave Mills ha dichiarato di aver implementato una soluzione alternativa in ntpd: https://groups.google.com/d/msg/comp.protocols.time.ntp/WlClEg_IB4w/p6nFlsoymRkJ
Il problema è stato discusso ancora una volta nel 2008, dove Dave Mills ha affermato che ntpd dovrebbe semplicemente inviare una risposta "passiva simmetrica" a tali clienti, ma non dovrebbe mobilitare un'associazione: https://groups.google.com/d/msg/comp.protocols.time.ntp/b1fYqZ1VEio/7_HSCBt-sAEJ
Per approfondire o per abilitare le funzionalità descritte qui sopra non esitate a contattaci.