[Active Directory] – Active Directory et la synchronisation temporelle de forêt

Pour que la réplication se passe sans encombre, Active Directory requiert que tous ses contrôleurs de domaine se mettent plus ou moins d’accord sur une référence de date et d’horaire…ils ne doivent pas être absolument synchronisés (comme on pourrait le penser!) mais doivent être assez proches. En effet, Kerberos échouera si un contrôleur de domaine et le système qui tente de communiquer (et donc l’utiliser) pour s’authentifier ne s’accordent pas sur l’heure à moins de cinq minutes près!!

Note : Sous NT4 (et les versions antérieures), l’établissement d’une synchronisation temporelle dans un domaine était difficile à accomplir. Windows 2000 et supérieur incluent un service appelé « Service de temps Windows » qui synchronise toutes vos stations de travail et tous vos serveurs.

 

Les ordinateurs dans un annuaire Active Directory restent synchronisés de cette manière. Le maître d’opérations (FSMO en anglais) – émulateur PDC de la racine de la forêt (premier contrôleur de domaine du premier domaine créé) est le serveur de temps maître. Tous les autres serveurs créent automatiquement une hiérarchie pour convoyer les informations de synchronisation temporelle. Ils sont donc synchronisés par le serveur qui se trouve directement au dessus d’eux.

Note : Nous nous basons ici entièrement sur l’architecture Active Directory, votre infrastructure peut également se reposer sur des serveurs de temps UNIX ou autre qui synchronisera alors votre annuaire AD.


Quelques points fondamentaux;

* Les serveurs membres et stations de travail se synchronisent avec les DC (Domain Controller) qui les ont authentifiés.

* Les DC se tournent tous vers le DC de leur domaine qui prend en charge le rôle FSMO – PDC.

* S’il y a plusieurs domaines dans la forêt, il y a plusieurs émulateurs PDC (1 par domaine). Les émulateurs doivent donc se mettre d’accord sur le temps et choisissent l’un des leurs comme « source » – l’émulateur PDC du premier domaine de la forêt (donc du domaine racine). C’est donc l’émulateur PDC du domaine racine de la forêt qui représente l’autorité ultime pour la synchronisation temporelle.

Note : Pour connaître et comprendre l’utilité de chaque FSMO dans une architecture Active Directory, vous pouvez consulter mon article ici.

 

  • Mais qui synchronise alors l’émulateur PDC de la racine de la forêt?

Aussi étrange que cela puisse paraître; vous n’êtes pas obligé de synchroniser ce rôle FSMO! Tout ce qui compte pour AD, c’est que l’ensemble des serveurs se fixe un même repère temporel (donc notre fameux FSMO – PDC du domaine racine de la forêt).

Certes, on peut trouver plus plaisant qu’il s’agisse de l’heure effective mais ce n’est pas nécessaire. Si la totalité de votre entreprise possède 10 minutes d’avance sur le reste du monde 😀 cela ne posera aucun problème à AD!

  Il est toutefois très important que vous définissiez correctement les zones temporelles sur tous vos systèmes! AD stocke et synchronise les données temporelles en « temps universel ». Ainsi, AD s’articule toujours sur l’axe temporel de Londres (notre bon et vieux Greenwich GMT – Greenwich Mean Time! qui a servit de référence temporelle au 20e siècle avant d’être remplacé par le temps universel coordonné – UTC au début des années 70. Par abus de langage, GMT est souvent employé comme synonyme du fuseau horaire UTC+0. A savoir que GMT est basé sur la rotation terrestre alors que UTC est basé sur le temps atomique international…mais revenons sur Active Directory et notre synchronisation temporelle! – juste pour finir il y a environ 340 horloges atomiques dans le monde dont 20 en France…maintenant que vous savez tout ça vous n’avez plus le droit d’être en retard 🙂 ).

Depuis Windows 2000, les systèmes d’exploitations Microsoft utilisent le système des zones de temps pour décoder les données de temps de l’horloge système et afficher les informations temporelles sous une forme qui soit compréhensible. Si vous deviez abandonner la zone de temps universelle et vous caler sur les horaires du Pacifique en réglant l’horloge système sur l’heure locale, chacun de ces systèmes considérerait que le temps est décalé de plusieurs heures et la synchronisation échouerait. En pratique, vous observeriez un DC et un client dont les données temporelles sembleraient parfaitement identiques (seules leurs zones de temps étant paramétrées différemment) et leur impossibilité à communiquer paraîtrait un joli mystère.

Pour vérifier la zone temporelle d’un système, ouvrez l’invite de commande et tapez w32tm/tz

 

Autant faire les choses correctement jusqu’au bout, donc, et synchroniser notre PDC racine depuis une source fiable. Vous pourriez très bien utiliser une horloge atomique, l’une de celle qui coûtent aux alentours de 100€ l’unité… et lire l’heure officielle à partir de signaux de Paris ou économiser et gagner du temps en exploitant une autre source…Internet!

 

  • Outils Windows Time

La suite de standards Internet propose un moyen de partager des informations de temps à travers le protocole SNTP (Simple Network Time Protocol – actuellement en version 4 – RFC 4330). Un très grand nombre d’ordinateurs sur Internet font office de serveurs SNTP et fournissent des informations de temps à n’importe quel ordinateur exécutant un client SNTP. Les systèmes depuis Windows 2000 incluent justement un client SNTP, AD utilise ce protocole pour synchroniser ses clients.

 * Clients Windows XP/2003/Vista/2008/7/2008 R2

Win32 Time Client – w32tm

 * Clients Windows 2000

Net Time

 * Clients Windows NT

Ressource Kit

 * Clients Windows 95/98

ClockWatch Client

 

Note : Sous Windows 7 et 2008, les commandes net time /querysntp et net time /setsntp sont obsolètes.

Pour synchroniser votre client avec le serveur de temps sur un domaine Active Directory, ouvrez l’invite de commande et tapez w32tm /resync

Pour synchroniser votre client avec des serveurs de temps externe, ouvez l’invite de commande et tapez w32tm /config /syncfromflags:manual /manualpeerlist: NOM_DNS

Pour que vos commandes retournent un résultat, le service « Temps Windows » doit être démarré à l’aide de la commande net start w32time

 

 

Le service NTP requiert que le port 123 soit ouvert sur votre firewall. La réponse est alors envoyée sous forme d’un paquet de données UDP/IP au format NTP.

Par défaut, le FSMO PDC de la racine de la forêt tentera de se synchroniser avec sa source de temps une fois toutes les 45 minutes jusqu’à ce qu’il y parvienne. Il reprend cette opération 45 minutes plus tard, et encore 45 minutes après. Il continue de se synchroniser toutes les 45 minutes jusqu’à ce qu’il y soit parvenu 3 fois d’affilée. Ensuite, il réduit se fréquence de connexion pour un intervalle de 8 heures.

Ce paramètre est modifiable via le registre. Tous les paramètres sont stockés dans HKLM\System\CurrentControlSet\services\W32Time\Parameters

 

Si vous souhaitez activer l’enregistrement de débogage pour le service de temps Windows, vous devez modifier quelques paramètres au niveau de la branche de registre HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config et créé 3 nouvelles clés de registres;

 * Value Name: FileLogSize        //Taille du fichier de log en octets
   Data Type: DWORD
   Value data: 10000000

 * Value name: FileLogName     //Emplacement du fichier de log
   Data Type: String
   Value data: C:\Windows\Temp\w32time.log

 * Value name: FileLogEntries   //Niveau de détails du fichier de log (0-300)
   Data Type: String
   Value: 0-116

 

Autres paramètres Win32Time

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time   //Paramètres globaux du service W32Time

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NTPClient\SpecialPollInterval   //Intervalle de temps de communication entre le client et le serveur NTP (900 secondes recommandées soit 15 minutes)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters\NtpServer   //Liste des serveurs de temps externe

Non classé

jordanlaurent

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *