Zuletzt aktualisiert am 04.12.2025 7 Minuten Lesezeit

NTP

NTP (Network Time Protocol) ist ein Netzwerkprotokoll zur Synchronisierung von Uhren in Computersystemen über paketvermittelte Netzwerke mit variabler Latenz. Das Protokoll ermöglicht es Geräten, ihre Systemzeit mit einer Referenzuhr abzugleichen und dabei Genauigkeiten im Millisekundenbereich zu erreichen. NTP nutzt UDP-Port 123 für die Kommunikation und ist im RFC 5905 standardisiert.

Warum ist Zeitsynchronisation wichtig?

Eine korrekte Systemzeit ist für viele IT-Prozesse unverzichtbar. Ohne synchronisierte Uhren können Probleme in verschiedenen Bereichen auftreten:

  • Protokollierung und Fehlersuche: Log-Dateien enthalten Zeitstempel. Ohne synchrone Uhren lassen sich Ereignisse auf verschiedenen Systemen nicht korrekt zuordnen.
  • Authentifizierung: Protokolle wie Kerberos (in Active Directory) erlauben nur Zeitabweichungen von wenigen Minuten zwischen Client und Server.
  • Transaktionen und Datenbanken: Verteilte Systeme benötigen konsistente Zeitstempel für die Reihenfolge von Operationen.
  • Zertifikate und TLS: Digitale Zertifikate haben Gültigkeitszeiträume, die von korrekten Systemzeiten abhängen.
  • Netzwerküberwachung: Tools zur Analyse von Netzwerkverkehr und Performance benötigen präzise Zeitstempel.

Geschichte und Entwicklung von NTP

NTP wurde 1985 von David L. Mills an der University of Delaware entwickelt und gehört damit zu den ältesten noch aktiv genutzten Internetprotokollen. Die erste Version (NTPv1) wurde im RFC 1059 spezifiziert. Seitdem hat das Protokoll mehrere Evolutionsstufen durchlaufen:

  • 1985 - NTPv1: Erste Spezifikation mit grundlegenden Synchronisationsmechanismen
  • 1989 - NTPv2: Verbesserte Algorithmen und Authentifizierung (RFC 1119)
  • 1992 - NTPv3: Erweiterte Fehlerkorrektur und Broadcast-Modus (RFC 1305)
  • 2010 - NTPv4: Aktuelle Version mit verbesserter Genauigkeit und IPv6-Unterstützung (RFC 5905)

NTPv4 bietet gegenüber früheren Versionen eine Zeitauflösung von unter einer Nanosekunde und verbesserte Algorithmen zur Uhrensynchronisation. Die Rückwärtskompatibilität zu NTPv3 bleibt dabei erhalten.

Funktionsweise von NTP

NTP arbeitet nach dem Client-Server-Modell. Der Client sendet eine Anfrage an einen Zeitserver und erhält eine Antwort mit Zeitstempeln zurück. Aus diesen Zeitstempeln berechnet der Client sowohl die Zeitabweichung (Offset) als auch die Netzwerkverzögerung (Delay).

Zeitstempel und Berechnung

Bei jeder NTP-Kommunikation werden vier Zeitstempel erfasst:

  1. T1 (Origin Timestamp): Zeitpunkt, zu dem der Client die Anfrage sendet
  2. T2 (Receive Timestamp): Zeitpunkt, zu dem der Server die Anfrage empfängt
  3. T3 (Transmit Timestamp): Zeitpunkt, zu dem der Server die Antwort sendet
  4. T4 (Destination Timestamp): Zeitpunkt, zu dem der Client die Antwort empfängt

Aus diesen Werten berechnet NTP zwei wichtige Kennzahlen:

Offset (Zeitabweichung): θ = ((T2 - T1) + (T3 - T4)) / 2
Delay (Netzwerkverzögerung): δ = (T4 - T1) - (T3 - T2)

Der Offset gibt an, wie stark die lokale Uhr von der Serverzeit abweicht. Der Delay misst die gesamte Rundlaufzeit des Pakets. Durch die Berücksichtigung beider Werte kann NTP auch bei asymmetrischen Netzwerkpfaden eine gute Genauigkeit erreichen.

Clock Discipline Algorithmus

NTP passt die Systemuhr nicht abrupt an, sondern verwendet einen Clock Discipline Algorithmus. Dieser stellt die Uhr schrittweise nach und korrigiert gleichzeitig die Gangabweichung (Frequency Drift) des lokalen Oszillators. So werden Zeitsprünge vermieden, die laufende Anwendungen stören könnten.

Das Stratum-Konzept

NTP organisiert Zeitserver in einer hierarchischen Struktur, die als Stratum bezeichnet wird. Je niedriger der Stratum-Wert, desto näher befindet sich der Server an einer hochpräzisen Referenzuhr:

Stratum Beschreibung Beispiel
0 Referenzuhr (kein Netzwerkgerät) Atomuhr, GPS-Empfänger
1 Primärserver, direkt mit Stratum 0 verbunden Nationale Zeitserver (PTB, NIST)
2 Sekundärserver, synchronisiert mit Stratum 1 Pool-Server, Unternehmensserver
3-15 Weitere Hierarchieebenen Lokale Server, Clients
16 Nicht synchronisiert Fehlerzustand

Jeder Server erhöht den Stratum-Wert um eins, wenn er Zeit an Clients weitergibt. Ein Stratum-1-Server verteilt seine Zeit also als Stratum 2. Diese Hierarchie verhindert Synchronisationsschleifen und ermöglicht es Clients, automatisch den besten verfügbaren Zeitserver auszuwählen.

NTP-Betriebsmodi

NTP unterstützt verschiedene Betriebsmodi für unterschiedliche Einsatzszenarien:

Client/Server-Modus

Der häufigste Modus: Der Client fragt regelmäßig einen oder mehrere Server nach der Zeit. Das Poll-Intervall liegt typischerweise zwischen 64 Sekunden und 17 Minuten und wird dynamisch angepasst.

Symmetric Mode (Peer-to-Peer)

Zwei Server synchronisieren sich gegenseitig. Beide agieren gleichzeitig als Client und Server. Dieser Modus wird häufig zwischen gleichwertigen Zeitservern in einem Netzwerk eingesetzt.

Broadcast-Modus

Ein Server sendet periodisch Zeitinformationen an alle Clients im Netzwerk. Dieser Modus reduziert den Netzwerkverkehr, bietet aber eine geringere Genauigkeit als der Client/Server-Modus.

NTP-Server konfigurieren

Auf den meisten Betriebssystemen lässt sich NTP über eine Konfigurationsdatei einrichten. Hier ein Beispiel für Linux mit der klassischen NTP-Implementierung:

# /etc/ntp.conf - NTP-Konfiguration

# Pool-Server aus dem NTP Pool Project
server 0.de.pool.ntp.org iburst
server 1.de.pool.ntp.org iburst
server 2.de.pool.ntp.org iburst
server 3.de.pool.ntp.org iburst

# Drift-Datei speichert die Frequenzabweichung
driftfile /var/lib/ntp/ntp.drift

# Zugriffsbeschränkungen
restrict default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

Die Option iburst beschleunigt die initiale Synchronisation, indem mehrere Pakete in kurzer Folge gesendet werden.

NTP-Status prüfen

Mit dem Befehl ntpq kannst du den Synchronisationsstatus überprüfen:

# Status der NTP-Peers anzeigen
ntpq -p

# Beispielausgabe:
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ptbtime1.ptb.de .PTB.            1 u   23   64  377    15.234   -0.127   0.234
+ptbtime2.ptb.de .PTB.            1 u   45   64  377    16.123    0.089   0.312

Das Sternchen (*) markiert den aktuell verwendeten Server. Das Plus (+) zeigt weitere geeignete Server an. Die Spalten zeigen Stratum (st), Verzögerung (delay), Offset und Jitter in Millisekunden.

NTP vs. andere Zeitsynchronisationsprotokolle

Neben NTP gibt es weitere Protokolle zur Zeitsynchronisation, die sich in Genauigkeit und Komplexität unterscheiden:

Protokoll Genauigkeit Einsatzgebiet
NTP 1-50 ms Internet, Unternehmensnetze
SNTP 100-500 ms Einfache Clients, IoT-Geräte
PTP (IEEE 1588) Sub-Mikrosekunde Industrie, Finanzhandel, 5G
Chrony 1-10 ms Linux-Systeme, Container

SNTP (Simple NTP) ist eine vereinfachte Version von NTP für Geräte, die keine hohe Genauigkeit benötigen. PTP (Precision Time Protocol) erreicht deutlich höhere Genauigkeiten, erfordert aber spezielle Hardware-Unterstützung. Chrony ist eine moderne NTP-Implementierung, die besonders gut mit instabilen Netzwerkverbindungen und virtuellen Maschinen umgehen kann.

Sicherheitsaspekte

NTP wurde ursprünglich ohne Sicherheitsmechanismen entwickelt. Das Protokoll ist daher anfällig für verschiedene Angriffe:

  • Spoofing: Ein Angreifer gibt sich als legitimer Zeitserver aus
  • Replay-Attacken: Abgefangene NTP-Pakete werden erneut gesendet
  • DDoS-Verstärkung: NTP-Server können für Amplification-Angriffe missbraucht werden

Schutzmassnahmen

Um NTP abzusichern, stehen verschiedene Methoden zur Verfügung:

  • NTS (Network Time Security): Moderner Standard (RFC 8915) mit TLS-basierter Authentifizierung
  • Symmetric Key Authentication: Gemeinsamer Schlüssel zwischen Client und Server
  • Access Control Lists: Beschränkung der zugelassenen Clients und Abfragen
  • Firewall-Regeln: Begrenzung des NTP-Verkehrs auf bekannte Server

Für sicherheitskritische Umgebungen empfiehlt sich der Einsatz von NTS, das seit 2020 standardisiert ist und von modernen NTP-Implementierungen wie Chrony unterstützt wird.

Das NTP Pool Project

Das NTP Pool Project ist ein Zusammenschluss von freiwillig betriebenen Zeitservern weltweit. Es stellt eine einfache Möglichkeit dar, zuverlässige Zeitsynchronisation zu erhalten, ohne eigene Server betreiben zu müssen. Die Pool-Adressen wie pool.ntp.org oder de.pool.ntp.org verteilen Anfragen automatisch auf verfügbare Server in der Region.

Für Deutschland betreibt die Physikalisch-Technische Bundesanstalt (PTB) offizielle Stratum-1-Server, die direkt mit Atomuhren synchronisiert sind.

NTP in der Praxis

In Unternehmensumgebungen wird NTP typischerweise hierarchisch aufgebaut: Ein oder mehrere interne Zeitserver synchronisieren sich mit externen Quellen und verteilen die Zeit an alle Clients im Netzwerk. Windows-Domänencontroller übernehmen in Active Directory-Umgebungen automatisch die Rolle des Zeitservers für die Domäne.

Wer als Fachinformatiker für Systemintegration arbeitet, wird regelmäßig mit NTP-Konfigurationen in Berührung kommen - sei es bei der Einrichtung von Servern, der Fehlersuche bei Authentifizierungsproblemen oder der Absicherung von Netzwerkinfrastrukturen.

Quellen und weiterführende Links