Vergleiche NTPD und ntpdate

23

Welche Vor- und Nachteile bestehen zwischen diesen beiden Methoden zur Synchronisierung Ihres Servers?

Es scheint mir, dass Ihr Server wahrscheinlich nicht mehr als 1 Sekunde pro Tag driftet, daher wäre ein NTP-Update auf einer Crontab in Ordnung. Aber ich habe gehört, Sie könnten hier redundante NTP-Server verwenden

http://www.pool.ntp.org/en/use.html

um die synchronisierte Zeit im Fehlerfall aufrechtzuerhalten.

Hast du irgendwelche Vorschläge?

unbekannte
quelle

Antworten:

26

Der NTP-Algorithmus enthält Informationen, mit denen Sie die Abweichung in der Uhr Ihres Servers berechnen und korrigieren können. NTPD bietet die Möglichkeit, damit Ihre Uhr synchron bleibt und genauer ausgeführt wird als eine Uhr auf einem Computer, auf dem NTPD nicht ausgeführt wird. NTPD verwendet auch mehrere Server, um die Genauigkeit zu verbessern.

ntpdate behält keinen Status für die Ausführung dieses Dienstes für Sie, sodass nicht die gleiche Genauigkeit bereitgestellt wird. Damit können Sie eine Liste von Servern bereitstellen, mit denen versucht wird, ein besseres Ergebnis zu erzielen. Dies ist jedoch kein Ersatz für die in NTPD bereitgestellten ausgeklügelten Algorithmen, mit denen Sie die Abweichungen von jedem der Server im Laufe der Zeit verfolgen können.

NTPDATE korrigiert die Systemzeit augenblicklich, was bei manchen Programmen zu Problemen führen kann (z. B. beim Löschen einer Sitzung, die jetzt alt aussieht). NTPD korrigiert die Systemzeit absichtlich langsam, um dieses Problem zu vermeiden. Sie können den Schalter -g beim Starten von NTPD hinzufügen, damit NTPD das erste Mal ein großes Update durchführen kann, das mehr oder weniger der einmaligen Ausführung von ntpdate entspricht, bevor NTPD gestartet wird, was zu einem bestimmten Zeitpunkt empfohlen wurde.

Aus Sicherheitsgründen stellen NTP-Server keine Verbindung über nicht initiierte Verbindungen wieder her. Dies bedeutet, dass Ihre Firewall in der Lage sein sollte, anzugeben, dass Sie die NTP-Anforderung initiiert haben, und den Datenverkehr zuzulassen. Es sollte nicht erforderlich sein, Ports für beliebige Verbindungen offen zu lassen, damit NTPD funktioniert.

Aus der Manpage von ntpdate (8):

ntpdate kann bei Bedarf manuell ausgeführt werden, um die Host-Uhr einzustellen, oder es kann über das Host-Startskript ausgeführt werden, um die Uhr beim Booten einzustellen. Dies ist in einigen Fällen hilfreich, um die Uhr zunächst einzustellen, bevor der NTP-Dämon ntpd gestartet wird. Es ist auch möglich, ntpdate über ein Cron-Skript auszuführen. Es ist jedoch wichtig zu beachten, dass ntpdate mit erfundenen Cron-Skripten kein Ersatz für den NTP-Dämon ist, der ausgefeilte Algorithmen verwendet, um die Genauigkeit und Zuverlässigkeit zu maximieren und gleichzeitig den Ressourcenverbrauch zu minimieren. Da ntpdate die Host-Taktfrequenz nicht wie ntpd diszipliniert, ist die Genauigkeit bei Verwendung von ntpdate begrenzt.

Lambacck
quelle
Besser als ntpdate vor dem Start von ntpd: benutze einfach -g!
Alex J
8

ntpd wird gegenüber ntpdate bevorzugt, da Sie eine reibungslose Zeitkorrektur erhalten, anstatt einen Sprung in Ihre Uhr zu machen. Welchen Sinn machen Sie aus Ihren Protokollen, wenn sie einen Zeitsprung nach hinten haben? ntpdate wechselt bei Bedarf auch transparent zwischen den Servern.

Da offene Ports erforderlich sind (wie von Kyle erwähnt), können neuere Versionen von ntpd (z. B. 4.2.4 auf meinem Debian-Server) so konfiguriert werden, dass Broadcast / Multicast mit kryptografischer Authentifizierung an das LAN gesendet wird.

Bearbeiten: siehe auch diese Frage .

pgs
quelle
5

Im Allgemeinen empfehle ich, dass Sie NTPD ausführen und Ihre Server mit einem festgelegten Zeitserver in Ihrer Organisation synchronisieren. Dieser interne Server wird normalerweise mit einem der öffentlichen NTP-Server synchronisiert (mit dem Sie verbunden sind).

Ich habe die ntpdate-Methode ohne Probleme verwendet, aber sie scheint nur hackiger zu sein, als einen echten ntpd-Daemon auszuführen.

Michael Gorsuch
quelle
3

Ich habe von Problemen mit Clock Skew auf virtuellen Maschinen gehört, auf denen ntpd ausgeführt wird. Ich habe auch von Leuten gehört, die dieses Problem behoben haben, indem sie reguläre Cron-Jobs ausgeführt haben, die ntpdate für mehrere Pool-Server aufrufen. Ich habe diese Probleme nicht gehabt, aber ich habe mehrmals davon gehört.

Matt Simmons
quelle
1
Sie werden einen tickless Kernel auf einer VM laufen lassen wollen
goo
1
Die VMware-Tools-Software auf ESX-VMs sorgt für die Synchronisierung der Uhrzeit. Verwenden Sie daher ntpd auf VMs nicht mit VMware-Tools. Richten Sie stattdessen NTPD auf den Hosts ein und lassen Sie die VMware-Tools den Rest erledigen.
Donnerstag,
3

Wie an anderer Stelle erwähnt, sorgt NTP für eine reibungslose Zeitkorrektur. Wenn es den Anwendungen auf Ihrem Server nichts ausmacht, dass ganze Sekunden verloren gehen oder Sie dieselben Sekunden erneut ausführen, bringt Ihnen ntpd nicht viel mehr als ntpdate.

Wenn Sie andererseits zeitkritische Anwendungen haben, die sekunden- oder noch schlimmer sekundenempfindlich sind, ist ntpd bei weitem die bessere Wahl. Aktualisierungen der Novell eDirectory-Zeitstempel für die Behandlung von Aktualisierungskollisionen, die kritisch werden, wenn die Aktualisierungen sehr schnell erfolgen (z. B. während des morgendlichen Anmeldevorgangs). Ein Syslog-Server muss eine Zeitgenauigkeit von mindestens einer halben Sekunde haben, um vernünftige Protokolle zu führen.

Bei meiner MythTV-Box zu Hause bemerke ich, dass der Zeitunterschied meines Kabelanbieters nur wenige Sekunden beträgt, daher verwende ich NTP. Für den USV-Überwachungsserver verwende ich crontabbed ntpdate aus den gleichen Gründen, auf die Kyle Hodgson hingewiesen hat, da es sich um einen Bastion-Host handelt, den ich nicht öffnen möchte, auch wenn ich die Anwendung gesperrt habe. für diese Anwendung ist es nicht schlimm, eine Sekunde falsch zu sein.

Aus Gründen der Redundanz verwalten wir mindestens zwei Zeit-Hosts in unserem Netzwerk und verweisen alle unsere internen Hosts auf diese beiden. Diese beiden verfolgen dann verschiedene Internet-NTP-Hosts. Darüber hinaus sind sie in einer Peer-Konfiguration konfiguriert, sodass sie im Falle eines Ausfalls unserer Internetverbindung auf konsensmäßige Weise Zeit miteinander verbringen können. Robustes NTP ist definitiv möglich zu konstruieren.

sysadmin1138
quelle
1

Auf einem Server, auf dem Zugriff und Absicherung von entscheidender Bedeutung sind, habe ich die Argumentation verwendet, dass xntpd, die von mir verwendete Version von ntpd, einen offenen UDP-Port 123 erfordert. Da ich nur TCP 22 und 80 offen haben wollte, habe ich ntpdate verwendet stattdessen in einer Crontab. Ich habe noch nie einen guten Grund dafür gehört oder keinen, an den ich mich erinnere.

Einer der Nachteile eines crontab'ed ntpdate-Aufrufs besteht darin, dass er die Driftkorrektur nicht elegant handhaben kann. ntpdate, iirc, aktualisiert die Uhr, sobald sich herausstellt, dass Sie nicht mehr auf dem neuesten Stand sind - ntp-Daemons korrigieren die Abweichung normalerweise vorsichtig. Dies hat den Vorteil, dass Ihre Protokolle vernünftig bleiben. Sie können sich beispielsweise auf einem ausgelasteten Webserver vorstellen, dass das Lesen der Webprotokolle am nächsten Tag möglicherweise darauf schließen lässt, dass die Benutzer sicher sind URLs, bevor sie sich angemeldet haben, da die Web-Zugriffe nicht in Ordnung wären.

Kyle Hodgson
quelle
1

ntpdate ist für einmalige Aktualisierungen vorgesehen. Wenn Sie möchten, dass die Zeit regelmäßig synchronisiert wird, verwenden Sie den Dienst ntpd für diesen Zweck.

Es gibt keinen zwingenden Grund, ntpd nicht zu verwenden, soweit ich das beurteilen kann

Rog
quelle
0

Crontab brauchen Sie nicht, dafür ist ntpd gedacht.

Wenn Ihre Zeit abgelaufen ist, besteht eine Möglichkeit darin, ntpd einfach anzuhalten, dann auszuführen ntpdate ntp.server.com, um die Synchronisierung wiederherzustellen, und dann ntp erneut zu starten.

Wenn Sie jedoch ein großes Netzwerk haben, würde ich wahrscheinlich einige lokale NTP-Server einrichten und alle Hosts dazu bringen, sie zu verwenden.

Xerxes
quelle
0

In dieser Diskussion erfahren Sie, warum "ntpdate" immer noch gewünscht und verwendet wird.

Um es zusammenzufassen: ntpd ist im Vergleich zu einer massiven Zeitanpassung langsam , selbst mit der Option -g.

James
quelle
-3

Für den Heimgebrauch ist ntpdate eigentlich kein Problem. Es gibt einen Grund, warum es "langsamer" ist. Jeder, der in einer PRODUCTION ENTERPRISE-Umgebung einen Cron mit ntpdate verwendet, ist nur ein Idiot.

StateGov1
quelle
2
Es gibt Verwendungen. Cron + ntpdate ist zum Beispiel ein Server, der nur minimale offene Ports jeglicher Art und Zeitauflösungsanforderungen von +/- 1000 ms benötigt, um die Zeitsynchronisation aufrechtzuerhalten.
sysadmin1138