Configurare un sistema Windows come NTP Relay

Come riportato nel seguente How the Windows Time Service Works i client ora Windows ottengono automaticamente l’ora esatta sincronizzandosi con un controller di dominio nello stesso dominio, mentre in una foresta, i controller di dominio di un dominio figlio sincronizzano l’ora con i controller di dominio nei domini padre.

In alcuni scenari Active Directory può accadere però che sia necessario che alcuni sistemi Windows siano in grado di rispondere a query NTP pur non essendo uno dei controllori di dominio. Un esempio di questi scenari è ad esempio quando viene implemento un sistema di video sorveglianza che prevede due reti separate quella dei server e quella delle telecamere le quali devono poter sincronizzare l’ora in modo centralizzato.

Scendendo nel dettaglio di una possibile architettura di video sorveglianza è possibile fare riferimento a quella proposta da Milestone nel documento XProtect VMS Products – System Architecture Document in cui come è possibile vedere dallo schema proposto le telecamere sono attestate su una rete dedicata e comunicano con il Recording Server che altro non è che un server Windows che ha due interfacce di rete una connessa alla rete delle telecamere e una connessa alla rete su cui vi sono gli altri server e i client di videosorveglianza.

Nello scenario proposto da Milestone il Recording Server è un server membro del dominio, ma sarebbe necessario che potesse rispondere a query NTP provenienti dalla rete delle telecamere.

Di seguito vedremo come configurare un sistema Windows membro di un dominio Active Directory che sincronizza quindi la sua ora con il controller di dominio per rispondere a query NTP ovvero per operare come un NTP relay.

Un sistema Windows membro di un dominio Active Directory ha la chiave HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags impostata per default al valore decimale 10 come indicato in Windows Time Service Tools and Settings e questo implica che il sistema sincronizzerà l’ora con il controller di dominio, questa configurazione è quella desiderata dal momento che si intende configurare il sistema per eseguire l’NTP relay del riferimento orario del dominio.

Occorre però configurare il sistema per far sì che implementi un server NTP in modo che possa rispondere alle query NTP, per fare questo è necessario che impostare al valore decimale 1 la chiave di registro HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enable che per default è impostata a 0, quindi occorre riavviare il servizio w32time tramite il seguente comando eseguito con privilegi amministrativi:

net stop w32time && net start w32time

A questo punto affinché il sistema possa rispondere alla query NTP occorre configurare una Regola di connessione in entrata su Windows Firewall per consentire il traffico in ingresso sulla porta UDP 123 proveniente dalla rete su cui sono attestate le telecamere, dal momento che sulla rete a cui sono connessi su cui sono connessi gli altri server e i client di videosorveglianza il riferimento orario deve essere fornito dai domain controller è consigliabile non abilitare su questa rete il traffico in ingresso sulla porta UDP 123 per impedire di servire eventuali erronee query NTP provenienti da questa rete.

Di seguito le configurazioni necessarie per configurare una Regola di connessione in entrata su Windows Firewall per consentire il traffico in ingresso sulla porta UDP 123 proveniente dalla rete su cui sono attestate le telecamere di seguito si ipotizzerà che la rete delle telecamere sia la 10.0.1.0/24:

Per testare se il sistema risponde correttamente alle query NTP è possibile utilizzare il seguente comando specificando l’indirizzo IP del sistema configurato come NTP relay da un sistema connesso alla rete su cui è stato consentito il traffico ingresso sulla porta UDP 123, nell’esempio il sistema su cui è stato configurato l’NTP relay ha l’indirizzo IP 10.0.1.100:

w32tm /stripchart /computer: 10.0.1.100 /dataonly /samples:5

In alternativa è possibile utilizzare un tool free come NTP Query Tool.

Per ulteriori informazioni sul servizio orario di Windows si veda Windows Time Service (W32Time), inoltre si tenga conto che come riportato in How the Windows Time Service Works il servizio orario di Windows non è un’implementazione esatta del protocollo NTP (Network Time), ma usa la suite di algoritmi definiti nelle specifiche NTP per garantire che gli orologi dei computer in una rete siano il più accurati possibile (ad esempio non supporta la sincronizzazione di rete da broadcast o multicast peer previsto dall’RFC 1305). Questo significa che alcuni sistemi non Windows potrebbero non riuscire a sincronizzare correttamente l’ora (a titolo informativo da test eseguite le telecamere Axis riescono a sincronizzare correttamente l’ora un sistema Windows configurato per implementare l’NTP relay come descritto precedentemente):

“Although the Windows Time service is not an exact implementation of the Network Time Protocol (NTP), it uses the complex suite of algorithms that is defined in the NTP specifications to ensure that clocks on computers throughout a network are as accurate as possible.”

 

“The Windows Time service does not support network synchronization from broadcast or multicast peers. For more information about these NTP features, see RFC 1305 in the IETF RFC Database.”