Frage Warum ist es wichtig, dass Server genau die gleiche Zeit haben?


Ich habe mehrere Male gelesen (obwohl ich es momentan nicht finden kann), dass Rechenzentren große Anstrengungen unternehmen, um sicherzustellen, dass alle Server genau die gleiche Zeit haben. Einschließlich, aber nicht beschränkt auf die Sorge um Schaltsekunden.

Warum ist es so wichtig, dass Server die gleiche Zeit haben? Und was sind die tatsächlichen Toleranzen?


34
2018-04-26 05:29


Ursprung




Antworten:


Sicherheit

Im Allgemeinen werden Zeitstempel in verschiedenen Authentifizierungsprotokollen verwendet, um zu verhindern Wiederholungsangriffe, wo ein Angreifer ein Authentifizierungs-Token wiederverwenden kann, das er stehlen konnte (z. B. indem er das Netzwerk schnüffelte).

Die Kerberos-Authentifizierung führt genau das aus. In der in Windows verwendeten Version von Kerberos beträgt die Standardtoleranz 5 Minuten.

Dies wird auch von verschiedenen Einmalpasswortprotokollen verwendet, die für die Zwei-Faktor-Authentifizierung verwendet werden, z. B. Google Authenticator, RSA SecurID usw. In diesen Fällen beträgt die Toleranz normalerweise etwa 30-60 Sekunden.

Ohne Synchronisierung zwischen Client und Server ist eine Authentifizierung nicht möglich. (Diese Einschränkung wird in den neuesten Versionen von MIT Kerberos entfernt, indem der Anforderer und KDC den Versatz zwischen ihren Uhren während der Authentifizierung bestimmen, aber diese Änderungen traten nach Windows Server 2012 R2 auf und es wird eine Weile dauern, bis Sie es in einem Windows sehen Version. Aber einige Implementierungen von 2FA werden wahrscheinlich immer synchronisierte Uhren benötigen.)

Verwaltung

Synchronisierte Uhren erleichtern das Arbeiten mit unterschiedlichen Systemen. Zum Beispiel ist das Korrelieren von Protokolleinträgen von mehreren Servern viel einfacher, wenn alle Systeme die gleiche Zeit haben. In diesen Fällen können Sie normalerweise mit einer Toleranz von 1 Sekunde arbeiten, die NTP bietet, aber idealerweise möchten Sie, dass die Zeiten so synchron sind, wie Sie es sich leisten können. PTP, das viel engere Toleranzen bietet, kann in der Implementierung viel teurer sein.


52
2018-04-26 05:45



+1 Fehlerbehebungsfehlerbedingungen bei verteilten Systemen mit nicht synchronisierten Protokollierungszeitstempeln: nie wieder - Mathias R. Jessen
Server, auf denen ein NTP-Dämon läuft, werden in der Regel innerhalb von 0,01 Sekunden synchronisiert (einige Millisekunden). Die native Windows NTP-Synchronisierung überprüft nur ein paar Mal am Tag und ist nicht so genau. Für Windows stehen NTP-Clients zur Verfügung, die für eine gute Synchronisation sorgen. - BillThor
+1 für diese Antwort, weil ich nur meine Systemzeit überprüfe und ich 5 Sekunden zu spät bin, aber jetzt benutze ich ntp, um zu synchronisieren, wäre es gut, der Frage einen Link zu ntp.org hinzuzufügen, damit Leute ihre überprüfen können System - Freedo
make wird auch durch Clock Skews zwischen Client / Server NFS verwirrt. - Sobrique
@BillThor Ihre Informationen über Windows-Zeit-Service ist etwa ein Jahrzehnt zurück. Es ist seit der Veröffentlichung von 2003R2 ein vollständiger NTP-Client und synchronisiert adaptiv Agent-Teil einer AD-Domäne. Wir sehen <16 ms typische Offsets für 2008R2 die Grenzen des 64Hz System Timer Ticks. Wir sehen eine noch bessere Zeitmessung auf 2012+ Boxen, die kleinere Tick-Intervalle verwenden können. - rmalayter


Hauptsächlich können Sie damit Vorfälle aus Protokollen auf verschiedenen Geräten korrelieren. Angenommen, Sie haben einen Sicherheitsvorfall, bei dem jemand über Ihren Webserver auf Ihre Datenbank zugreift - Sie möchten, dass die Zeitstempel Ihrer Firewall, Ihres Lastenausgleichs, Ihres Webservers und Ihres Datenbankservers übereinstimmen, damit Sie die Protokolle auf jedem Gerät finden können die sich auf den Vorfall beziehen. Im Idealfall möchten Sie, dass alles innerhalb weniger Millisekunden erfolgt. Und es muss mit der tatsächlichen externen Zeit synchronisiert sein, sodass Sie Ihre Protokolle auch mit Protokollen von Drittanbietern korrelieren können, falls dies erforderlich sein sollte.


16
2018-04-26 05:41



Außerdem schlagen einige Sicherheitslösungen wie LDAP und / oder Kerberos fehl, wenn die Zeit nicht synchronisiert wird. Wie auch einige HA-Lösungen. - Jenny D


Es ist nicht nur aus der Verwaltungsperspektive wichtig, sondern auch, dass Uhren synchron sind, was auch für die Korrelation auf Anwendungsebene wichtig ist. Dies hängt davon ab, wie die Lösung erstellt wird und wie die ausgeführten Anwendungen ihren Zeitstempel für alle Transaktionen erhalten, mit denen sie arbeiten können. Ich habe gesehen, dass die Transaktionsvalidierung fehlgeschlagen ist, weil eine Anwendung auf einem Server mit zu viel Offset ausgeführt wurde (etwa 20 Sekunden in der Zukunft), verglichen mit den anderen, mit denen sie interagiert hat.

Auch wenn eine Virtualisierung beispielsweise auf dem VMWare ESXi-Server stattfindet und die Zeit der VM nicht mit der des Hypervisors synchronisiert ist, kann eine Aktion wie vmotion den VM-Takt erneut mit den Hypervisoren synchronisieren, was wiederum zu unvorhersehbaren Ergebnissen führen kann wenn der Zeitunterschied groß genug ist.

Ich weiß nicht, was tatsächliche Toleranzen sind, weil ich denke, es hängt sehr viel davon ab, welche Art von Systemen es gibt, aber ich denke, im Allgemeinen ist es erreichbar, die Server im Rechenzentrum mit weniger als einer Sekunde Abstand zueinander zu halten.


6
2018-04-26 11:40





Da Sie Schaltsekunden erwähnt haben, ist zu beachten, dass diese besonders schwierig zu handhaben sind.

Sie werden normalerweise hinzugefügt, indem eine Sekunde als 23:59:60 injiziert wird. Dies ist problematisch, wenn Sie Zeitstempel als 0-59 für die Minuten- und Sekundenfelder validieren. Die Alternative, 23:59:59 zu wiederholen, um es 2 Sekunden lang zu machen, ist nicht viel besser, da das mit etwas, das zeitempfindlich ist, auf eine Sekunde pro Sekunde übergeht.

Google hat vor einiger Zeit eine gute Lösung gefunden, die noch nicht weit verbreitet ist. Ihre Lösung bestand darin, einen "Smear" -Sprung anzuwenden und die Änderung über einen bestimmten Zeitraum aufzuteilen, wobei der gesamte Prozess von einem NTP-Server verwaltet wurde. Sie hat einen Blog veröffentlicht darüber im Jahr 2011, sorgt für interessante Lektüre und scheint relevant für diese Frage.


5
2018-04-27 10:23



Klingt sehr ähnlich einige NTP Kunden schwenken Verhalten, die wie für immer implementiert wurde. - α CVn
@ MichaelKjörling Art von. Der Unterschied ist, dass slew große Sprünge vermeiden soll, nachdem die Uhr durch eine Korrektur über die Zeit als falsch erkannt wurde. Was Google getan hat, war, absichtlich einen Offset zu ihrem NTP-Server hinzuzufügen, im Voraus schwankend und so nie die Schaltsekunde zu haben. - Kaithar


Wann immer Zeitstempeln beteiligt sind, können de-synchronisierte Geräte logische Inherorien erzeugen, wie zum Beispiel: A sendet eine Anfrage an B, und die Antwort von B kommt mit einem Zeitstempel früher als der der Anfrage, was möglicherweise A dazu veranlasst, sie zu ignorieren.


5
2018-04-27 14:16





Ich stimme dem ganzen Punkt zu. Ich möchte mehr Gedanken werfen
Einige Datenbanken wie Cassendra verlässt sich stark auf Zeitstempel. So verhält es sich mit Nebenläufigkeit.

Unterschiedliche Zeitstempel werden die Datenbank komplett durcheinander bringen.


3
2018-04-27 19:54



Dies wird besser als Kommentar gepostet - Dave M
Also habe ich glibc auf einer Reihe von CentOS 5.2-Maschinen aufgerüstet, und das Update hat versehentlich die Hälfte der MST-Zeitzone eingestellt - wir hatten sofort Probleme mit zufällig ausgeloggten Benutzern, die auf "Inaktivität" gehen. Alle möglichen kleinen Widgets und Änderungen erwarten, dass die Zeit mehr oder weniger korrekt ist. Auch wenn Ihre Zeit falsch ist und Sie automatisch zurückversetzt werden, werden Sie mit Dateien und Log-Zeitstempeln enden, die wirklich verwirrend sind und aus der Zukunft kommen ... - Some Linux Nerd
Ich würde erwarten, dass dies für viele verteilte Datenbanken gilt. Ein Unterschied in Zeitstempeln von nur wenigen Sekunden könnte ausreichen, um die Reihenfolge von zwei Operationen umzukehren. - Kaithar