Bodet-Time
Redundanz im NTP-Protokoll

Ausfälle und Störungen sind bei Netzwerken und Geräten unvermeidlich. Dies gilt auch für die Mechanismen der Zeitsynchronisation, auf die diverse Dienste und Anwendungen angewiesen sind. Ein Netzwerk lässt sich nicht vollständig ausfallsicher machen – aber mit einer guten Planung kann man es gegen eine beträchtliche Anzahl von Ausfällen absichern.

Die effektivste Methode, um Schutz vor Störungen und Ausfällen zu gewährleisten, sind redundante Geräte und Verbindungen. Denn der Ausfall eines Geräts bleibt folgenlos, wenn ein anderes unmittelbar die Funktion übernimmt. Im konkreten Fall von Netzwerken, die NTP (Network Time Protocol) als Zeitsynchronisationssystem verwenden, können und sollten Redundanzmechanismen eingesetzt werden, um das System widerstandsfähig zu machen.

Beim Thema Redundanz ist es wichtig, alle Aspekte des Netzwerks zu prüfen, die ausfallen können, also jede einzelne Stromversorgung, jeder Server, jeder Router; usw. So sollte man beispielsweise sicherstellen, dass es mehrere Stromquellen gibt, von denen einige unabhängig vom Stromnetz sind.

Bei der Einrichtung eines NTP-Netzwerks ist es zudem wichtig zu wissen, welche Maßnahmen man ergreifen muss, um es gegen Ausfälle der einzelnen Netzwerkgeräte (z. B. Server und Router) abzusichern.

Redundanz der Zeitquellen

Der erste Schritt, um die Kontinuität der Zeitsynchronisation bei Ausfällen zu gewährleisten, besteht in der Synchronisation des Netzwerks mit mehreren Zeitquellen. Das NTP-Protokoll ist dafür vorgesehen, unter Verwendung mehrerer Zeitquellen zu funktionieren. Durch diese Redundanz wird sichergestellt, dass der Betrieb auch beim Ausfall und/oder der Störung einer Zeitquelle aufrechterhalten wird. Dabei ist es wichtig, nicht nur mehrere Zeitquellen zu verwenden, sondern auch deren Typ zu variieren. Verwendet man nämlich ausschließlich öffentliche Zeitquellen – wie Stratum-1-Server – macht man sich vom Internet und damit von dessen Ausfällen abhängig. Idealerweise sollte man auch Stratum-0-Zeitquellen (wie etwa GPS) verwenden.

Wenn sich jede Uhr bei Empfang einer Nachricht automatisch synchronisiert, ist offensichtlich, dass eine einfache Verbindung zu mehreren Zeitquellen keinen Schutz vor einem Zeitversatz einer oder mehrerer dieser Quellen bietet. In diesem Fall sollte die beste Zeitquelle ausgewählt oder eine zufriedenstellende Durchschnittszeit berechnet werden, um eine optimale Synchronisation mit den Referenzuhren zu gewährleisten.

Für diese Aufgabe verwendet das NTP-Protokoll eine Variante des Marzullo-Algorithmus, den sogenannten Intersection-Algorithmus. Dieser Algorithmus versucht, den besten Server zu finden, der zur Synchronisierung der lokalen Uhr verwendet werden soll. Anhand der Eigenschaften der verschiedenen Server, die ihre Zeitstempel senden, erstellt der Algorithmus eine Liste von Servern, aus denen er den besten auswählt.

Anschließend wird diese Liste gefiltert, um Server auszuschließen, die nicht den Eignungskriterien entsprechen – beispielsweise aufgrund einer zu großen Entfernung oder weil sie einer zu weit entfernten Ebene in der NTP-Hierarchie angehören.

Nachdem die Liste bereinigt wurde, sucht der Algorithmus den besten Server in der Liste, um die lokale Uhr zu aktualisieren.

Für jeden Server wird ein Zeitintervall berücksichtigt, das sich auf den gesendeten Zeitstempel zentriert und entsprechend der Entfernung zwischen der Uhr und dem Server erweitert wird. Dabei soll ein Schnittpunkt („Intersection“) der Intervalle gefunden werden, der mindestens die Hälfte der Server umfasst. Wenn ein solcher Schnittpunkt vorhanden ist, werden die darin enthaltenen Server für den weiteren Verlauf des Algorithmus berücksichtigt. Anschließend werden die Server basierend auf der Qualität ihrer Uhren bewertet. Diese Qualität wird durch Faktoren wie die Zeitverzögerung, die Entfernung zum Server und den Jitter (Schwankungen in der Latenz) bestimmt. Der Algorithmus arbeitet iterativ: Er eliminiert in jeder Runde einen Ausreißer bzw. Outlier, bis alle Outlier verschwunden sind.

Wenn es keine Outlier mehr gibt und noch genügend Server gemäß der Einstellungen des Algorithmus übrig sind (standardmäßig 1, aus Sicherheitsgründen kann dieser Wert erhöht werden), wird der beste der verbliebenen Server gewählt, um die lokale Uhr zu synchronisieren.

Dank des Marzullo-Algorithmus ist es durch die Verbindung der Geräte mit ausreichend vielen Zeitquellen unwahrscheinlich, dass es keine zuverlässige Zeitquelle gibt, um die Uhren im Netzwerk zu synchronisieren.

Redundanz im Netzwerk

Die Vervielfachung der Zeitquellen reicht jedoch nicht aus, um die Betriebskontinuität im Falle von Ausfällen zu gewährleisten. Vielmehr muss berücksichtigt werden, was innerhalb des Netzwerks vor sich geht. Eine Möglichkeit, die Zeitsynchronisation auch dann aufrecht zu erhalten, wenn die Referenzuhren außer Betrieb sind, ist das Pairing.

Das Pairing ermöglicht es zwei Geräten, abwechselnd als Client und Server für einander zu fungieren, um die Synchronisation aufrechtzuerhalten. Beachten Sie, dass beim Pairing die Uhren sowohl als Client ALS AUCH ALS Server eine symmetrische Rolle spielen. Dies verlangsamt die Synchronisation insofern, als die Server mehr Nachrichten austauschen. Da beide Uhren gleichberechtigt sind, verfolgen sie das Ziel, sich untereinander und nicht mit einer externen Quelle zu synchronisieren. Das Pairing ermöglicht es, eine echte Nähe zwischen den Peer-Uhren aufrechtzuerhalten. Obwohl es in einigen Anwendungen von entscheidender Bedeutung ist, garantiert das Pairing keinen konsistenten Zeitstempel mit einer externen Quelle. Dies kann bei Anwendungen wie der Protokollierung von Datenmanipulationen problematisch sein.

Ein weiterer Mechanismus zur Redundanz innerhalb eines NTP-Netzwerks ist die Verwendung des Anycast-Modus. Im Anycast-Modus teilen sich mehrere Server die gleiche Anycast-Adresse. Die Clients wissen also nicht genau, welcher Server auf ihre Anfrage antworten wird. Dies wird durch die Router bestimmt, indem sie den Server auswählen, der ihnen am nächsten ist: sei es topologisch oder hinsichtlich der Latenzzeit. Der Anycast-Modus bringt neben der Redundanz noch weitere Vorteile mit sich. Da das Routing-Netzwerk automatisch den nächstgelegenen Server für die Anfrage auswählt, werden die Netzwerklast und die Verzögerungen zwischen Client und Server verringert. Die Synchronisationsgenauigkeit ist daher besser.

Die Anycast-Konfiguration ist jedoch im Vergleich zum klassischen Client/Server-Modus komplexer zu implementieren. Es müssen in diesem Fall Zeitserver und kompatible Hardware vorhanden sein. Zudem muss gewährleistet sein, dass die Server, die über dieselbe Anycast-Adresse erreichbar sind, untereinander synchronisiert sind, sodass der zurückgegebene Zeitstempel nicht vom jeweiligen antwortenden Server beeinflusst wird.

Deshalb kann es durchaus verlockend sein, öffentliche „Pool“-Server zu verwenden. Dabei handelt es sich um das gleiche Funktionsprinzip wie bei Anycast, d. h. mehrere öffentliche Server sind mit der gleichen IP-Adresse verbunden. Auf diese Weise wird sichergestellt, dass es immer einen Server gibt, der bei einer Anfrage antwortet.

Obwohl es nicht entscheidend ist, den antwortenden Server zu identifizieren, wenn man die Kontrolle über die Maschinen im eigenen Netzwerk hat, wird dies äußerst wichtig, wenn öffentliche Server genutzt werden, um eine so grundlegende Aufgabe wie die Zeitsynchronisation zu erfüllen. Aus diesem Grund ist dieser Ansatz nicht empfehlenswert.

Monitoring und Sicherheit

Bei der Einrichtung von Redundanzmechanismen darf die Sicherheit des Netzwerks nicht vernachlässigt werden. Es ist wichtig, die Verbindungen zwischen den einzelnen Geräten abzusichern, um neben Ausfällen auch Angriffen standhalten zu können. Durch eine effektive Überwachung können Sie die Vorteile der NTP-Redundanz voll ausschöpfen. Denn durch die Überwachung der Server-Aktivitäten lassen sich Ausfälle, die bei einem Gerät auftreten können, frühzeitig erkennen. Bei Server-Ausfällen ist es daher einfacher, die Geräte mit den anderen Servern im Netzwerk zu synchronisieren, damit der Dienst nicht unterbrochen wird, bis das defekte Gerät repariert ist.

Als Experte der Zeiterfassung und einer Präsenz in mehr als 140 Ländern ist Bodet Time ein führender französischer Akteur auf dem Gebiet der Zeitsynchronisation und Zeitfrequenz.

Benötigen Sie Unterstützung bei der Konzeption einer leistungsfähigen, sicheren und hochverfügbaren Architektur für die Zeitsynchronisation?

Kontaktieren Sie uns

Diesen Artikel teilen