Frage Vergleichen Sie NTPD und NTPDATE


Was sind die Vor- und Nachteile dieser beiden Möglichkeiten, Ihren Server zu synchronisieren?

Es scheint mir, dass Ihr Server wahrscheinlich nicht mehr als 1 Sekunde jeden Tag treiben würde, also wäre ntpdate auf einer Crontab in Ordnung. Aber ich habe gehört, du könntest hier redundante NTP-Server verwenden

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

um die synchronisierte Zeit im Falle eines Fehlers zu erhalten.

Hast du irgendwelche Vorschläge?


22
2018-06-01 00:39


Ursprung




Antworten:


Der NTP-Algorithmus enthält Informationen, mit denen Sie die Drift in der Uhr Ihres Servers berechnen und beheben können. NTPD bietet die Möglichkeit, diese Funktion zu verwenden, um Ihre Uhr synchron zu halten, und läuft genauer als eine Uhr auf einem Computer, auf dem NTPD nicht ausgeführt wird. NTPD wird auch mehrere Server verwenden, um die Genauigkeit zu verbessern.

ntpdate behält keinen Status bei, um diesen Dienst für Sie auszuführen, daher bietet er nicht die gleiche Genauigkeit. Es ermöglicht Ihnen, eine Liste von Servern bereitzustellen, mit der Sie versuchen, Ihnen ein besseres Ergebnis zu liefern. Dies ersetzt jedoch nicht die ausgefeilten Algorithmen von NTPD, die Ihre Abweichungen von jedem der Server im Zeitverlauf verfolgen.

NTPDATE korrigiert die Systemzeit sofort, was Probleme mit einer Software verursachen kann (z. B. das Zerstören einer Sitzung, die jetzt alt aussieht). NTPD korrigiert absichtlich die Systemzeit langsam und vermeidet dieses Problem. 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 dem Ausführen von ntpdate entspricht, bevor NTPD gestartet wird, was zu einer bestimmten Zeit empfohlen wurde.

Aus Sicherheitsgründen stellen NTP-Server keine Verbindung zu nicht initiierten Verbindungen her. Dies bedeutet, dass Ihre Firewall erkennen können sollte, dass Sie die NTP-Anforderung initiiert und Rückverkehr zugelassen haben. Es sollte nicht notwendig sein, Ports für beliebige Verbindungen offen zu lassen, damit NTPD funktioniert.

Auf der Manpage ntpdate (8):

ntpdate kann nach Bedarf manuell ausgeführt werden, um die Host-Uhr zu setzen     kann vom Host-Startskript ausgeführt werden, um die Uhrzeit beim Systemstart festzulegen.     Dies ist in einigen Fällen nützlich, um die Uhr vor dem Start zu setzen     der NTP-Daemon ntpd. Es ist auch möglich, ntpdate von einem Cron auszuführen     Skript. Es ist jedoch wichtig zu beachten, dass ntpdate mit erfunden     Cron-Skripte sind kein Ersatz für den NTP-Daemon, der hochentwickelte Algorithmen verwendet, um die Genauigkeit und Zuverlässigkeit zu maximieren und gleichzeitig zu minimieren     Quellennutzung. Schließlich, da ntpdate den Host-Takt nicht diszipliniert     frequenz wie ntpd ist die genauigkeit mit ntpdate begrenzt.


26
2018-06-01 02:21



Besser als ntpdate vor dem Start von ntpd verwenden: einfach -g! - Alex J


ntpd wird gegenüber ntpdate bevorzugt, da Sie eine glatte Zeitkorrektur erhalten und nicht Ihre Uhr springt. Was für einen Sinn hast du von deinen Logs, wenn es einen Rückwärtssprung gibt? ntpdate wird bei Bedarf auch transparent zwischen Servern wechseln.

Für die Anforderung offener Ports (wie von Kyle erwähnt) können neuere Versionen von ntpd (z. B. 4.2.4 auf meinem Debian-Server) so konfiguriert werden, dass sie mit kryptografischer Authentifizierung Broadcast / Multicast an das LAN senden.

Bearbeiten: siehe auch diese Frage.


8
2018-06-01 02:22





Ich empfehle im Allgemeinen, dass Sie NTPD ausführen und Ihre Server mit einem bestimmten Zeitserver in Ihrer Organisation synchronisieren. Dieser interne Server wird normalerweise mit einem der öffentlichen NTP-Server (wie Sie ihn verlinkt haben) synchronisiert.

Ich habe die ntpdate-Methode ohne Probleme verwendet, aber es scheint nur hackischer als einen echten ntpd-Daemon auszuführen.


5
2018-06-01 00:46





Ich habe von Problemen mit Clock Skew auf virtuellen Maschinen gehört, auf denen ntpd läuft. Ich habe auch von Leuten gehört, die dieses Problem korrigieren, indem sie reguläre Cron-Jobs ausführen, die ntpdate gegen mehrere der Pool-Server aufrufen. Ich hatte diese Probleme nicht, aber ich habe mehrmals davon gehört.


3
2018-06-01 01:03



Sie werden einen ketzligen Kernel auf einer VM ausführen wollen - goo
Die VMware Tools-Software auf ESX-VMs sorgt dafür, dass die Zeit synchronisiert wird. Verwenden Sie daher nicht ntpd auf VMs mit VMware-Tools. Richten Sie stattdessen NTPD auf den Hosts ein und lassen Sie VMware-Tools den Rest erledigen. - dunxd


Wie bereits an anderer Stelle erwähnt, bietet NTP eine sanfte Zeitkorrektur. Wenn die Anwendungen auf Ihrem Server nichts dagegen haben, dass ganze Sekunden verloren gehen oder die gleichen Sekunden immer wieder ausgeführt werden, dann bringt ntpd nicht viel mehr als ntpdate.

Wenn Sie dagegen zeitsensible Anwendungen haben, die empfindlich auf Sekunden reagieren, oder noch schlimmer auf Teilsekunden reagieren, ist ntpd bei weitem die bessere Wahl. Novell eDirectory stempelt Updates für die Behandlung von Update-Kollisionen mit Zeitstempeln. Dies wird kritisch, wenn die Updates sehr schnell kommen (z. B. während der morgendlichen Login-Phase). Ein Syslog-Server muss eine Zeitgenauigkeit von mindestens einer halben Sekunde haben, um vernünftige Protokolle zu behalten.

Für meine MythTV-Box zu Hause merke ich, wenn es nur ein paar Sekunden von dem ist, was mein Kabelanbieter für die Zeit hält, also benutze ich NTP dafür. Für den UPS-Monitor-Server bei der Arbeit verwende ich crontabbed ntpdate aus den gleichen Gründen, auf die Kyle Hodgson hingewiesen hat, da es ein Bastion-Host ist, möchte ich diesen Port nicht öffnen, selbst wenn ich die Anwendung gesperrt habe; für diese Anwendung, die eine zweite aus der Wahrheit ist, ist nicht schlimm.

Was die Redundanz betrifft, unterhalten wir mindestens zwei Zeit-Hosts in unserem Netzwerk und weisen alle unsere internen Hosts auf diese beiden auf. Diese beiden verfolgen dann verschiedene Internet-NTP-Hosts. Darüber hinaus sind sie in einem Peer-Arrangement konfiguriert, so dass sie die Zeit zwischen ihnen auf einheitliche Art und Weise halten können, wenn unsere Internetverbindung unterbrochen wird. Robustes NTP ist definitiv möglich zu konstruieren.


3
2018-06-13 04:23





Auf einem Server, auf den Zugriff und Härtung wichtig sind, habe ich argumentiert, dass xntpd, die Version von ntpd, auf die ich angewiesen bin, einen offenen UDP-Port 123 benötigt. Da ich lieber nur TCP 22 und 80 geöffnet habe, habe ich ntpdate verwendet stattdessen in einer Crontab. Ich habe nie einen guten Grund dafür gehört, warum es das brauchte oder nicht, an das ich mich erinnere.

Einer der Nachteile der Verwendung eines Crontab'ed Ntpdate-Aufrufs ist, dass es die Driftkorrektur nicht elegant handhaben kann. ntpdate, iirc, aktualisiert die Uhr sobald sie erkennen kann, dass Sie veraltet sind - ntp Daemons korrigieren normalerweise sanft. Dies hat den Vorteil, dass Ihre Protokolle vernünftig bleiben - Sie können sich beispielsweise auf einem stark frequentierten Webserver vorstellen, dass wenn die RTC einige Minuten gedriftet ist, das Lesen der Weblogs am nächsten Tag vermuten lässt, dass die Leute in der Lage waren, sicher zu treffen URLs, bevor sie sich einloggen, da die Web-Hits nicht in Ordnung sind.


1
2018-06-01 00:59





ntpdate ist für einmalige Updates vorgesehen, wenn Sie regelmäßig synchronisiert werden möchten, verwenden Sie dann den Dienst ntpd.

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


1
2018-06-01 02:04