In einer Active Directory Domain gibt es 5 FSMO Rollen:
- Domain Naming Master
- Schema-Master
- RID (Relative ID)-Master
- Domain Infrastructure Master
- PDC (Primary Domain Controller)-Emulator
Wir interessieren uns in diesem Beitrag für die letzte der fünf Rollen.
- Für die einheitliche Zeit innerhalb der Domäne ist der PDC Emulator zuständig. Dieser muss mit einer externen Zeitquelle synchronisiert werden.
- Jeder weitere Domänencontroller synchronisiert die Zeit mit dem PDC-Emulator der eigenen Domäne.
- Mitgliedserver und Clients einer Active-Directory-Domäne synchronisieren die Zeit mit dem Anmeldedomänencontroller seiner Domäne.
In unserem Alltag sehen wir immer wieder Umgebungen, in denen die Zeit innerhalb des Active Directories asynchron ist. Im schlimmsten Fall wird sich dann durch manuelle Anpassung des Zeitdienstes der einzelnen Windows PCs oder Server beholfen, was das Chaos perfekt macht.
Habe ich ein Problem mit der Zeit?
Der typische Fall ist die Rückfrage von Anwendern, warum das Telefon eine andere Uhrzeit als der PC anzeigt. Ich nenne es mal „reaktive Administration“. Besser wäre es, vorher die Eventlogs des PDC auf auffällige Einträge zu überprüfen.
1 |
Event ID 142: Der Zeitdienst wird nicht mehr als Zeitquelle angekündigt, da die lokale Systemuhr nicht synchronisiert ist. |
Auf weiteren Servern oder Clients finden sich dann bei größeren Zeitdifferenzen auch gerne solche Eventlog Einträge:
1 |
Der Zeitdienst hat eine Zeitdifferenz von mehr als 5000 ms auf 900 Sekunden festgestellt. Die Zeitdifferenz wurde möglicherweise durch die Synchronisation mit einer ungenauen Zeitquelle oder durch schlechte Netzwerkbedingungen verursacht. Von nun an wird der Zeitdienst nicht mehr synchronisiert, die Zeit keinem weiteren Client mehr zur Verfügung gestellt und die Systemuhr nicht mehr synchronisiert. Sobald ein gültiger Zeitstempel von einem Zeitdienstanbieter empfangen wird, wird der Zeitdienst sich selbst korrigieren. |
Hier ist es dringend Zeit zu handeln.
Der Status des Zeitdienstes lässt sich auch einfach mit einem Kommandozeilen-Aufruf ermitteln. Beispiel eines Zeitdienstes auf einem Windows 10 Domänenmitglied:
C:> w32tm /query /status
Sprungindikator: 0(keine Warnung)
Stratum: 4 (Sekundärreferenz - synchr. über (S)NTP)
Präzision: -23 (119.209ns pro Tick)
Stammverzögerung: 0.0065990s
Stammabweichung: 11.4463657s
Referenz-ID: 0xC0A81F0A (Quell-IP: 192.168.xxx.xxx)
Letzte erfolgr. Synchronisierungszeit: 23.01.2019 17:56:23
Quelle: xxx.xxx.s2dt.de
Abrufintervall: 11 (2048s)
Um die Zeitdifferenz eines Windows Servers oder Clients gegenüber einer Referenz zu ermitteln, kann natürlich auch der Zeitdienst direkt befragt werden. Im dem folgenden Beispiel nutzen wir den Zeitserver der PTB als Referenz:
C:> w32tm /stripchart /computer:ptbtime1.ptb.de /samples:1 /dataonly
ptbtime1.ptb.de wird verfolgt [192.53.103.108:123].
1 Proben werden gesammelt.
Es ist 23.01.2019 17:59:35.
17:59:35, +29.6097512s
Die angegebenen +29.6097512s bezeichnen hier die Zeitdifferenz in Sekunden zur angegebenen Referenz.
Warum sind Zeitdifferenzen problematisch?
Mal davon abgesehen das heute viele Anwendungen zeitkritisch sind; Beispiel ist hier Transport und Logistik mit Zeitstempeln oder das Abmelden und Anmelden von Anwesenheit von Mitarbeiter. Viele IT-Systeme führen Logs mit genauen Zeitstempeln, bei denen wenige Minuten oder gar Sekunden zu Problemen bei der Auswertung führen. Zuletzt gibt es aber auch eine wesentliche, technische Problematik:
Die in Active Directory verwendete Kerberos-Authentifizierung erlaubt in der Standardeinstellung eine maximale Zeitdifferenz der beteiligten Systeme von fünf Minuten. Sollte diese Zeitdifferenz überschritten werden, ist unter anderem eine Anmeldung an der Domäne nicht möglich.
Wie konfiguriere ich die Zeitdienste richtig?
Kommen wir zum wichtigsten Teil. Im Regelfall sollten in einer Active-Directory-Domäne nur zwei verschiedene Zeitdienst-Konfigurationen vorhanden sein.
- PDC bezieht seine Zeit von einer externen Zeitquelle
w32tm /config /manualpeerlist:"0.pool.ntp.org 1.pool.ntp.org" /syncfromflags:manual /reliable:yes
- Domänen-Mitglieder beziehen ihre Zeit von den Domänencontrollern
w32tm /config /update /syncfromflags:DOMHIER
Nach einer Anpassung der Konfiguration muss der Zeitdienst neu gestartet werden.
net stop w32time
net start w32time
Unser Service für Sie
Mittlerweile ist die Überwachung der Zeitdifferenz der Domänencontrollern unserer Service-Kunden Bestandteil des proaktiven Monitorings. Damit werden potenzielle Abweichungen frühzeitig erkannt und auf Wunsch durch uns analysiert sowie behoben.
Weiterführende Links und Referenzen
Für jeden, der noch tiefer Einsteigen möchte, kann ich folgenden Technet-Link von 2012 empfehlen: https://technet.microsoft.com/de-de/library/cc794937(v=ws.10).aspx
Und für jeden, der wissen will wie spät es wirklich ist: https://uhr.ptb.de
Vielen Dank fürs Lesen und viel Spaß beim Zeitreisen!