Linux lernen

NTP-Server und Best Practices

NTP-Server und Best Practices

NTP steht für „Network Time Protocol“.” Es ist ein Protokoll, das von Geräten verwendet wird, die mit dem Internet verbunden sind, um die Zeit ihres Systems mit einer Zeitreferenz zu synchronisieren. Es gibt verschiedene wichtige Punkte, warum es wichtig ist, die genaue Zeit einzuhalten, und die Arbeitsprinzipien von NTP sind elementar, aber erstaunlich.

Wir haben kürzlich einen Artikel über das Einrichten des NTP-Servers und -Clients auf Ubuntu-basierten Distributionen veröffentlicht. Dies erfordert eine detaillierte Beschreibung, wie genau NTP funktioniert und warum es wichtig ist.

Was ist die Anforderung an die genaue Zeit??

Lassen Sie uns zunächst sehen, warum eine so tiefe Infrastruktur entwickelt wurde, damit unsere Maschinen eine genaue Zeit verwenden können.

Drift tritt auf

Wann immer Sie ein Computersystem verwenden, ist es eine gut beobachtete Tatsache, dass die Hardwareuhr mit der Zeit nachläuft. Dieser Effekt kann in manchen Fällen sogar zu einer hohen Ungenauigkeit führen. Dies ist offensichtlich kein wünschenswerter Effekt, daher ist es ratsam, die Zeitsynchronisierung zu verwenden.

Protokollverwaltung

Wenn ein Netzwerk mit mehreren Geräten vorhanden ist und ein Problem auftritt, das mehrere Systeme im Netzwerk betrifft. Der beste Weg, das Problem zu verfolgen und herauszufinden, was passiert ist, besteht darin, die Systemprotokolle zu überprüfen (mehr zum Überprüfen von Protokolldateien hier). Wenn eines dieser Systeme einige Sekunden zurückliegt, scheint es vor dem anderen System, das tatsächlich zuerst betroffen war, durchgeführt worden zu sein. Dies macht es schwierig, Fehler zu beheben und im Allgemeinen mehrere Systeme in einem Netzwerk zu verwalten. Dies war nur ein Beispiel, aber es gibt noch viel mehr und schwerwiegendere Möglichkeiten.

Übersicht über NTP-Server (Mit freundlicher Genehmigung: Siemens)

Transaktionen

Über das Internet werden verschiedene Arten von Transaktionen durchgeführt. Wenn Ihre Systemuhr der tatsächlichen Zeit voraus ist, kann es manchmal vorkommen, dass in den Systemprotokollen der Zahlung angezeigt wird, dass die Zahlung eingegangen ist, bevor Sie den Betrag tatsächlich bezahlt haben. Dies führt dazu, dass die Zahlung nicht Ihre ist und es zu weiteren Problemen kommt.

Oder in einem ähnlichen Fall kann es aufgrund von Zeitungenauigkeiten oft vorkommen, dass Ihr Empfänger eine Antwort auf Ihre E-Mail sendet, bevor Sie die E-Mail überhaupt gesendet haben. Wie Sie sich vorstellen können, kann die Zeitgenauigkeit über zwei verschiedene Systeme im Internet die Ursache mehrerer potenziell schädlicher Folgen sein.

Befehlsausführung

In einem Netzwerk werden oft Skripte geschrieben, um Aufgaben auszuführen, die über mehrere Systeme hinweg orchestriert werden. Wenn ein solches Skript Zeitparameter hat, kann es durcheinander kommen, wenn ein System eine ungenaue Zeit hat. Einige Befehle werden ausgeführt, bevor dies erforderlich ist oder nachdem der gesamte Prozess sabotiert wurde. Das ist natürlich nicht gut zu passieren.

Auch hier würde Ihr GPS nicht richtig funktionieren, wenn die Zeit zwischen Ihrem System und dem GPS-Satelliten nicht richtig synchronisiert ist.

Wie funktioniert es?

Daher haben wir mehrere Gründe gesehen, warum die Aufrechterhaltung einer genauen Zeit über ein Netzwerk sehr wichtig ist, um Szenarien und unser tägliches Leben zu integrieren. Zum Glück für uns ist das nicht sehr schwer zu erreichen. Mit NTP machen wir das möglich. Aber wie macht NTP das möglich?? Lass uns sehen.

Zeitquellen

Die ultimativen Zeitquellen müssen natürlich extrem präzise sein. Diese Zeitquellen gehören zu den derzeit besten wissenschaftlich möglichen, von denen die ersten sind: Atomuhren, die 9192631770 Zyklen der Strahlung verwenden, die dem Übergang zwischen zwei Energieniveaus des Cäsium-133-Atoms im Grundzustand als eine Sekunde entsprechen use. Ansonsten kann man den Empfängern für Zeitsignale, die von einigen nationalen Standardagenturen ausgestrahlt werden, als genaue Zeit vertrauen trusted.

NTP100-GPS

Diese Zeitquellen sollen sich am S . befindentratum 0 Niveau. Das Stratum-Konzept funktioniert wie beschrieben:

Stratum-Konzept

Stratum bedeutet wörtlich „eine aus einer Reihe von Schichten, Ebenen oder Abstufungen in einem geordneten System“, und so wird es auch im Kontext von NTP verwendet. Das Stratum 0 Level ist die genaueste mögliche Zeit. Wenn ein Server die Zeit mit einer Stratum 0-Zeitquelle synchronisiert, handelt es sich um eine Stratum 1-Zeitquelle. Und wenn er einem anderen Server Zeit zur Verfügung stellt, ist dieser Server eine Stratum 2-Time-Quelle. Wenn die Schichten weiter steigen, steigt normalerweise auch die dem Server zugewiesene Stratum-Nummer weiter an. Je niedriger also die einem Server zugewiesene Stratum-Nummer, desto genauer wäre die Zeit.

Die Schichtstufen werden bis Schicht 16 berücksichtigt, danach ist der Zeitunterschied zu groß. In vielen Szenarien wird nur empfohlen, bis zu Stratum 4 Server zu verwenden.

Stratum 1-Server

Ein Server mit Stratum 0-Level darf von normalen Benutzern wie uns nicht verwendet werden. Atomuhren und Zeitquellen der nationalen Behörden werden direkt von der Regierung verwaltet.

Weiter oben ist ein Stratum 1-Server ein Server, der direkt mit einer Hardware-Uhr verbunden ist, die sich auf Stratum 0-Ebene befindet. Dies ist der bestmögliche Zeitquellenserver, da das Stratum 0 eigentlich kein Server, sondern eine Uhr ist. Der eigentlich anschließbare Server ist der Stratum 1 Server, der die Uhrzeit direkt von der Hardwareuhr erhält the.

Ein Stratum 1 Server muss ein präzises und gut gewartetes. Es sollte auch hochverfügbar sein, da andere Systeme möglicherweise auf seinen Zeitdienst angewiesen sind.

Zeitsynchronisierungsprozess

Um das NTP auf Ihrem System einzurichten, müssen Sie zunächst die Server auswählen, mit denen Sie die Uhrzeit synchronisieren möchten. Dazu können Sie den Server auswählen, den Sie verwenden möchten, und die Einstellungen in Ihrer Systemsoftware konfigurieren.

So wird die Zeit synchronisiert

Der Synchronisationsprozess beginnt damit, dass das System und der NTP-Server über längere Zeit mehrere Datenpakete austauschen. Tatsächlich wird die Zeit berechnet, die das Paket für einen Roundtrip zum NTP-Server und zurück benötigt back. Die Zeit wird in diesen Datenpaketen vom NTP-Server gesendet und die berechnete Reisezeit entsprechend abgezogen. Beispielsweise:

Das System hat die Uhrzeit 17:00:05, wenn es das Paket sendet. Das System erhält nun um 17:00:11 die Antwort vom NTP-Server. Der NTP-Server hat die Zeitinformation gesendet, dass es gerade 17:05:23 ist. Aber wenn Sie sich die Reisezeit des Pakets ansehen, die 6 Sekunden beträgt, bedeutet dies, dass es 3 Sekunden gedauert hat, um zum Server zu gelangen und 3 weitere, um zurückzukommen. Dies bedeutet, dass die Zeit vor 17:05:23 3 Sekunden war, nicht im Moment. Also wird die Zeit entsprechend auf 17:05:26 angepasst adjusted.

(Ich habe den Maßstab natürlich sehr stark vergrößert, aber das dient nur der Erklärung. Diese Unterschiede liegen in der Realität in Millisekunden, aber die Logik ist dieselbe.).

Dieser gesamte Paketaustauschprozess dauert ungefähr 5 Minuten, um die richtige Zeit zu gewährleisten und sicherzustellen, dass der Offset behoben wurde. Je kürzer, konsistenter und symmetrischer der Paketaustausch ist, desto genauer wird die Zeit sein. Das NTP-Protokoll verwendet für diesen Prozess aufgrund ihrer Geschwindigkeit und Zuverlässigkeit UDP- und IP-Pakete. Der verwendete Port ist 123. Es wird gesagt, dass die Zeitgenauigkeit typischerweise zwischen 5-100 ms . liegt.

Wenn der Zeitunterschied zwischen dem NTP-Server und dem System klein genug ist, wird er schnell geändert. Wenn der Zeitunterschied groß ist, wird die Zeit ständig mit winzigen Unterschieden geändert, bis er korrigiert wird.

Empfohlene Vorgehensweise

Habe mehrere Server

Dies ist die am meisten empfohlene Vorgehensweise: mehrere redundante NTP-Server zu verwenden, wenn der eine Fehlfunktionen verwendet oder aus irgendeinem Grund ungenau wird. Es entsteht nicht viel Verlust, wenn das Netzwerk sofort mit einem anderen NTP-Server verbunden werden kann. Darüber hinaus ist es noch besser, wenn Sie Skripte einrichten können, die das Netzwerk automatisch aktivieren und mit einem der redundanten Server verbinden können, wenn bestimmte offensichtliche Hinweise gegeben werden (z. B. keine Pakete vom NTP-Server empfangen usw.).).

Betrachten Sie das Netzwerk-Layout

Das Netzwerk sollte so strukturiert sein, dass die Systeme, die eine genauere Zeit benötigen, physisch näher und direkt mit dem NTP-Server verbunden sind. Wenn Subnetzwerke vorhanden sind, sollten sie für Aufgaben verwendet werden, die relativ keine genaue Zeit erfordern.

Sichere NTP-Kommunikation

Da NTP auf UDP basiert, ist es ein Protokoll, das sich auf ziemlich viel konzentriert. Abhängig von Ihrem System können daher potenzielle Schwachstellen vorhanden sein. Es ist immer eine gute Idee, die NTP-Verbindung mit Authentifizierung abzusichern.

Zugriff einschränken

Der Schutz des Netzwerks vor externen Angreifern ist sicherlich wichtig, aber auch die Verhinderung von Fehlbedienungen. Indem Sie den Zugriff auf die NTP-Server auf die absolute Mindestanzahl von Personen beschränken, können Sie sicherstellen, dass so wenig menschliche Fehler wie möglich auftreten, und darüber hinaus können Sie sicher sein, dass sie nicht von jemandem bearbeitet werden, der keine hat das technische Verständnis, um das Netzwerk tatsächlich zu handhaben.

Vermeiden Sie Zeitschleifen

Abgesehen von Science-Fiction-Interessenten sollten Sie immer darauf achten, Zeitschleifen in der Netzwerkstruktur zu vermeiden. Angenommen, A fungiert als Server für B und B für C. Wenn nun C wieder als Server für A zugewiesen wird, kann es chaotisch werden. Natürlich würde dies niemand tun, der bei Verstand ist, aber manchmal kann es versehentlich passieren, daher ist es eine gute Idee, das NTP-Netzwerk-Layout von Zeit zu Zeit zu überprüfen.

Fazit

NTP ist ein hervorragendes und effizientes Protokoll, um sicherzustellen, dass Ihr System immer die richtige Zeit hat. In einem großen Netzwerk oder einer Büroumgebung kann es etwas knifflig werden, aber ein wenig vorsichtig zu sein und gute Layouts zu haben, kann viel bewirken. Wir hoffen, dass Sie diesen Artikel nützlich fanden.

So verwenden Sie die GameConqueror-Cheat-Engine unter Linux
Der Artikel enthält eine Anleitung zur Verwendung der GameConqueror-Cheat-Engine unter Linux. Viele Benutzer, die Spiele unter Windows spielen, verwen...
Beste Spielkonsolen-Emulatoren für Linux
Dieser Artikel listet beliebte Spielekonsolen-Emulationssoftware auf, die für Linux verfügbar ist. Emulation ist eine Softwarekompatibilitätsschicht, ...
Beste Linux-Distributionen für Gaming im Jahr 2021
Das Linux-Betriebssystem hat sich weit von seinem ursprünglichen, einfachen, serverbasierten Aussehen entfernt. Dieses Betriebssystem hat sich in den ...