Peut-on synchroniser un contrôleur de domaine Windows directement sur une antenne GPS ? Oui — en intercalant un récepteur/serveur NTP stratum 1 relié au GPS, puis en pointant le PDC Emulator vers ce serveur. Voici l’architecture, la configuration pas‑à‑pas et les bonnes pratiques.
Vue d’ensemble de la question
Le besoin initial est clair : s’appuyer sur une antenne GPS locale pour fournir une heure de référence fiable à tout un domaine Active Directory. Par conception, les DC utilisent le service Windows Time (W32Time), et le PDC Emulator de la forêt joue le rôle de source de temps maître. La question est donc : comment brancher proprement un GPS sur cet enchaînement ?
Ce qu’il faut retenir (TL;DR)
- Windows ne lit pas directement un GPS : il lui faut un récepteur GPS + un démon NTP (NTPd/Chrony/Meinberg) qui expose l’heure sur le réseau.
- Le PDC Emulator se synchronise sur ce serveur NTP local (stratum 1) ; tous les autres DC et les clients héritent automatiquement de l’heure via la hiérarchie AD.
- La configuration standard se fait avec
w32tm
, quelques clés de Registre et/ou une GPO. - Prévoyez redondance (deux GPS ou GPS + NTP externe), désactivez la synchro d’horloge de l’hyperviseur sur les DC, et surveillez l’offset.
Principe de fonctionnement de W32Time et rôle du PDC Emulator
Tous les contrôleurs de domaine font tourner W32Time ; le PDC Emulator de la forêt est la source de temps « racine ». Les autres DC de la forêt et des domaines enfants, ainsi que les postes membre du domaine, se calent automatiquement sur ce PDC (directement ou via une chaîne hiérarchique).
Rôle AD / Machine | Type W32Time | Source de temps par défaut | Remarques |
---|---|---|---|
PDC Emulator (forêt) | NTP | Pairs NTP configurés manuellement | Autorité temps « racine » interne (reliable). |
Autres DC | NT5DS | Hiérarchie de domaine (PDC → DC) | Aucun pair NTP externe à configurer. |
Postes & serveurs membre | NT5DS | DC du site (via AD) | Peuvent avoir un DC local comme source de proximité. |
Pourquoi une antenne GPS seule ne suffit pas
Une antenne GPS délivre des trames NMEA (via série/USB) et un signal PPS (Pulse‑Per‑Second) ultra‑précis. Windows ne sait pas interpréter ces signaux pour W32Time. Il faut donc :
- Un récepteur/une carte GPS qui expose NMEA+PPS au système (ou un boîtier GPS‑NTP dédié).
- Un démon NTP qui :
- convertit NMEA/PPS en horloge NTP stratum 1 ;
- publie ce service sur le LAN (UDP/123).
Exemples : boîtiers GPS‑NTP « appliance » (Trimble, Netclock, etc.), Meinberg NTP pour Windows avec carte GPS, ou un Linux minimal avec chrony ou ntpd connecté à un module GPS PPS.
Architecture de référence
Antenne GPS ──> Récepteur GPS (NMEA + PPS) │ └──> Serveur NTP stratum 1 (Meinberg / chrony / ntpd) │ (LAN interne, UDP/123) ▼ PDC Emulator (W32Time <= NTP) │ ┌──────────────┼──────────────┐ ▼ ▼ ▼ DC/RODC Membres Appareils du site du domaine (imprimantes, équipements)
Pré‑requis matériels & logiciels
- Récepteur GPS avec PPS et vue claire du ciel (toit/extérieur, LNA/POE si nécessaire).
- Serveur NTP local (Windows + Meinberg, ou Linux + chrony/ntpd) relié au GPS.
- Réseau : UDP/123 ouvert entre PDC Emulator ↔ serveur NTP.
- Comptes avec droits d’admin local sur le PDC pour configurer W32Time.
- (Optionnel) Deuxième GPS ou pair NTP de secours (interne ou externe autorisé).
Configuration côté PDC Emulator (Windows Server)
Sur le PDC Emulator de la forêt, pointez W32Time vers le serveur NTP GPS local, déclarez‑le fiable, puis redémarrez le service.
# 1) Configurer le pair NTP stratum 1 (GPS) en mode client (0x8)
w32tm /config /manualpeerlist:"IP_DU_SERVEUR_NTP_GPS,0x8" /syncfromflags:manual /reliable:yes /update
# 2) Redémarrer W32Time
net stop w32time && net start w32time
# 3) Forcer une resynchronisation
w32tm /resync
# 4) Vérifier l’état
w32tm /query /status
w32tm /query /configuration
w32tm /query /peers
Assurez‑vous que le pare‑feu Windows autorise UDP/123 (entrant et sortant si nécessaire).
Clés de Registre importantes (PDC)
Clé | Valeur | Utilité | Valeur conseillée (PDC) |
---|---|---|---|
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\Type | REG_SZ | Mode de synchronisation | NTP |
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags | REG_DWORD | Annonce comme source fiable | 0x5 (time server + reliable) |
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled | REG_DWORD | Active la réponse NTP du DC | 1 |
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer | REG_SZ | Liste des pairs NTP | IP_DU_SERVEUR_NTP_GPS,0x8 |
HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval | REG_DWORD (sec) | Intervalle de scrutation (mode manuel) | 64–1024 (ex. 3600 ) |
Après modification du Registre, exécutez w32tm /config /update
puis redémarrez W32Time.
Paramétrage par GPO (recommandé)
Vous pouvez pousser ces paramètres de manière centralisée :
- Ordinateur → Modèles d’administration → Système → Windows Time Service
- Time Providers :
- Enable Windows NTP Client : Enabled
- Configure Windows NTP Client :
- NtpServer :
IP_DU_SERVEUR_NTP_GPS,0x8
- Type :
NTP
(uniquement sur le PDC) - SpecialPollInterval : p.ex.
3600
(1 h)
- NtpServer :
- Enable Windows NTP Server : Enabled (sur les DC qui doivent servir l’heure)
Configuration du serveur NTP GPS
Deux approches courantes : une appliance GPS‑NTP prête à l’emploi, ou un petit serveur (Windows ou Linux) relié physiquement au GPS.
Exemple : chrony (Linux) avec NMEA + PPS
Sur un hôte Linux connecté au module GPS (typiquement /dev/ttyS0
pour NMEA et /dev/pps0
pour PPS) :
# /etc/chrony/chrony.conf (extrait)
# Référence NMEA (phrases GPS) et verrouillage PPS pour la précision
refclock NMEA /dev/ttyS0 baudrate 9600 refid GPS precision 1e-1
refclock PPS /dev/pps0 refid PPS lock GPS
# Sécurité de base (restreindre au LAN)
allow 192.168.0.0/16
local stratum 1
# Redondance (optionnel)
# server ntp-secours.local iburst
# Log et tracking
log tracking measurements statistics
makestep 1.0 3
Démarrez chrony, vérifiez chronyc sources -v
et chronyc tracking
. Une latence PPS stable < 1 ms est attendue.
Exemple : NTP pour Windows (Meinberg)
Sur Windows, un paquet NTP complet (ex. Meinberg) peut lire une carte GPS avec PPS et exposer NTP. Le principe reste identique : le service NTP devient votre stratum 1 local ; le PDC s’y synchronise via W32Time.
Validation et diagnostic
Sur le PDC Emulator :
# Vérifier la source de temps
w32tm /query /status
# Voir la configuration et les pairs
w32tm /query /configuration
w32tm /query /peers
# Mesurer l'offset vers le serveur NTP GPS
w32tm /stripchart /computer:IP_DU_SERVEUR_NTP_GPS /samples:15 /dataonly
Consultez également le journal Système (source : W32Time) : événements de synchronisation, perte de source, correction d’offset, etc. Un Event ID annonçant la réussite de la synchronisation sur NtpClient est attendu. Si l’offset initial est très grand, ajustez temporairement MaxPosPhaseCorrection
/MaxNegPhaseCorrection
(W32Time\Config) ou faites une correction manuelle initiale.
Distribution de l’heure aux autres DC et clients
Une fois le PDC correctement synchronisé, le reste suit la hiérarchie AD :
- Autres DC : la valeur
Type=NT5DS
leur fait utiliser la chaîne AD. N’ajoutez pas de pairs NTP externes sur chaque DC ; cela contrevient au modèle AD et complique le dépannage. - Clients & serveurs membre : ils prennent l’heure de leur DC de site. Laissez
Type=NT5DS
par défaut.
Sites distants et scénarios multi‑sites
Dans un site distant, vous pouvez désigner un DC local (ou RODC) comme source de proximité : il se synchronise sur le PDC (ou sur un DC en amont) et sert le site. Si le WAN tombe, les machines du site continuent de s’aligner localement, limitant les dérives jusqu’au rétablissement du lien.
Précision, performance et attentes réalistes
- GPS stratum 1 : précision de l’ordre de la microseconde grâce au PPS. Idéal pour publier une référence locale.
- W32Time : conçu pour la cohérence AD et des précisions de l’ordre de la milliseconde à la dizaine de millisecondes selon réseau et charge. Pour des exigences microseconde sur hôtes Windows, envisagez PTP (IEEE 1588) avec matériel compatible.
- Réseau : minimisez la gigue (QoS, latence stable, pas de NAT stateful sur UDP/123).
Sécurité et durcissement
- Restreindre l’accès NTP au LAN : seules les IP internes doivent pouvoir interroger votre serveur NTP GPS.
- Éviter l’exposition Internet (réflexion/amplification NTP). Bloquez UDP/123 en périmètre.
- Authentification NTP : si votre démon NTP la supporte, utilisez des clés symétriques entre PDC et serveur NTP. À ce jour, W32Time n’implémente pas NTS (Network Time Security) ; l’authentification se fait côté serveur NTP ou via clés partagées.
- Journalisation & alertes : surveillez l’offset et les pertes de source, alertez au‑delà d’un seuil (p.ex. 50 ms).
Virtualisation : points d’attention
- Hyper‑V/VMware : désactivez la synchronisation d’heure fournie par l’hyperviseur sur tous les DC (sinon, risque de « sauts » non contrôlés). Conservez‑la éventuellement pour des serveurs non DC.
- Migration de rôles : si le rôle PDC Emulator change de DC, reconfigurez
w32tm
sur le nouveau titulaire (pairs NTP,/reliable:yes
, etc.).
Dépannage rapide (cheatsheet)
Symptôme | Cause probable | Action |
---|---|---|
The time service has no time source | Pair NTP injoignable, pare‑feu, mauvaise IP | Vérifier UDP/123, w32tm /query /peers , reachability |
Offset > 1 s persistant | Pas de PPS, latence/gigue réseau, poll trop long | Activer PPS côté NTP, réduire SpecialPollInterval , vérifier réseau |
Clients ne se mettent pas à l’heure | Type erroné (NTP au lieu de NT5DS ), DC non fiable | Forcer NT5DS sur clients, AnnounceFlags=0x5 sur PDC |
Décalage après restauration VM | Sync hyperviseur réactivée | Désactiver sync hyperviseur, w32tm /resync |
Grand saut à l’activation | MaxPos/NegPhaseCorrection trop bas | Ajuster temporairement ces clés, resynchroniser, revenir aux valeurs sûres |
FAQ
Q : Puis‑je connecter chaque DC directement au GPS ?
R : C’est possible techniquement, mais non recommandé en AD. Utilisez le modèle hiérarchique : seul le PDC pointe vers la source externe (GPS‑NTP). Cela évite les boucles, arbitre les conflits et simplifie le support.
Q : Une seule antenne GPS suffit‑elle ?
R : Prévoyez la redondance : deux GPS distincts ou un GPS + une source NTP externe de secours. Les pertes de visibilité satellite (tempête, câble, brouillage) arrivent plus souvent qu’on ne le croit.
Q : Quelle précision espérer côté client Windows ?
R : De la ms à la dizaine de ms selon réseau/charge. Pour des exigences sous‑ms sur Windows, la voie PTP (IEEE 1588) + horodatage matériel est à considérer.
Q : Faut‑il activer l’authentification NTP ?
R : Oui si possible (clés symétriques). Elle protège contre le spoofing basique. Sinon, restreignez drastiquement l’accès et isolez le serveur NTP.
Étapes de bout en bout (résumé opératoire)
- Installer et valider le serveur NTP GPS (PPS actif, stabilité < 1 ms,
chronyc tracking
ou équivalent OK). - Configurer le PDC Emulator :
w32tm /config /manualpeerlist:"IP_GPS,0x8" /syncfromflags:manual /reliable:yes /update
- Vérifier
AnnounceFlags=0x5
etType=NTP
sur le PDC. - Ouvrir UDP/123 entre PDC et serveur NTP.
- Forcer la sync et contrôler l’état (
w32tm /resync
,/query /status
). - Vérifier la diffusion côté autres DC/clients (
Type=NT5DS
,/stripchart
vers le DC local). - Mettre en place la supervision (offset, reach, alerte) et un plan de secours (deuxième GPS ou pair NTP secondaire).
Documentation Microsoft utile (titres)
- How the Windows Time Service Works (concepts, hiérarchie, modes)
- Configuring the Windows Time Service using Group Policy (GPO « Time Providers »)
- Configure an Authoritative Time Source (Windows Server) (PDC fiable : Registre + W32Time)
Bonnes pratiques supplémentaires
- Journal des modifications : tracez toute modification W32Time/GPO (qui, quoi, quand).
- Fenêtre de maintenance : appliquez les changements de source de temps en heures creuses pour éviter des corrections brusques perçues par certaines applications sensibles.
- Valeurs de scrutation : un
SpecialPollInterval
de 64–1024 s offre un bon compromis (1–17 min). Plus court si réseau stable et besoin plus fin. - Time zones & DST : l’horloge NTP est en UTC. Les fuseaux et l’heure d’été/hiver sont gérés par l’OS, indépendamment du NTP.
Conclusion
Oui, un contrôleur de domaine Windows peut s’appuyer sur une antenne GPS locale — indirectement via un serveur NTP stratum 1 interne. En rattachant le PDC Emulator à ce serveur (et en le marquant « reliable »), toute la forêt bénéficie d’une heure précise, stable et auditée. Ajoutez la redondance, durcissez l’accès NTP, désactivez la sync hyperviseur sur vos DC, et surveillez l’offset : vous obtenez une infrastructure de temps robuste, alignée sur les bonnes pratiques Microsoft et les exigences métiers.