So erzwingen Sie eine lokal isolierte NTP-Aktualisierungszeit

So erzwingen Sie eine lokal isolierte NTP-Aktualisierungszeit

Zielsetzung

Ich hatte lokal isolierte Hosts. Ich möchte, dass sie alle die gleiche Zeit haben. Einer übernimmt die Rolle des Zeitservers, die anderen synchronisieren sich als Clients damit.

Alle Maschinen haben sporadische Betriebszeiten. Sie werden selten mit Strom versorgt. Daher können sie einen erheblichen Zeitversatz aufweisen. Der gesamte Host-Satz sollte innerhalb weniger Minuten nach dem manuellen Einstellen der lokalen Serverzeit synchronisiert werden.

Um die Zuverlässigkeit zu bestätigen, habe ich die Verbindung des NTP-Hosts getestet, indem ich lange manuelle Anpassungen vorgenommen habe (mehrere Stunden) und gemessen habe, wie schnell die Clients synchronisiert wurden.

ntpd - ntpd-Fall

Ich habe versucht,ntpdsowohl für Clients als auch für den Server.ntpdDas Einstellen der Uhr dauert sehr lange. Außerdem weigert sie sich, die Zeit um ein paar Stunden zurückzudrehen.

Wenn es behoben werden könnte, würde ich lieber verwendenntpdals Client. Ich suche also nach Konfigurationsoptionen, um ntpd Hinweise zu geben, wie er Netzwerkuhr-Updates eifrig akzeptieren soll.

Aber wenn es keine Möglichkeit gibt, zu beschäftigenntpd,ntpdateAlternative ist immer noch akzeptabel.

ntpd - ntpdate-Fall

ntpdateaktualisiert die Uhr perfekt und ohne zu zögern. Ich habe es in eine Cron-Aufgabe eingefügt und eine grobe, aber funktionierende Lösung erhalten. Leider war der erste Eindruck falsch. Nach mehreren Tests stellte ich fest, dass dientpdateDer Client begann, den Server abzulehnen. Aus irgendeinem Grund entschied sich der Server, Stratum 16 zurückzugeben. Ich habe ausdrücklich fudge 127.127.1.0 stratum 8in dientp.confauf der Serverseite, um genau dieses Verhalten zu vermeiden. Aberntpdate -v -dDie Ausgabe zeigt „Stratum 16“, das vom Server übertragen wurde.

Ich sehe also zwei Möglichkeiten. Entweder zwingt man dientpdServer kehrt Stratum 9 zurück, unabhängig von der lokalen Zeitsprüngen oder erzwingen dientpdateClient, jeden Server zu akzeptieren, auch wenn dieser Stratum 16 hat.

Ich habe versucht, auf beide Arten zu googeln, aber nichts gefunden. Kann jemand geeignete Konfigurationsoptionen vorschlagen?

Antwort1

Verwenden Sie einen ntpdZeitserver für alle. Alle täglich neu gestarteten PCs können ihre Uhren beim Start per ntpdateBefehl synchronisieren. Uhren auf anderen Servern können per ntpdDienst synchronisiert werden, da dieser die Zeit sanft anpasst.

Für ntpddie Verwendung des Hauptzeitservers:

server 127.127.1.0 prefer
fudge 127.127.1.0 stratum 2
driftfile /var/lib/ntp/ntp.drift
restrict default nomodify notrust
restrict 127.0.0.0/8
disable auth
logfile /var/log/ntp.log

Antwort2

Mein Hauptvorschlag: Tun Sie das nicht. Versuchen Sie, Ihre Anforderungen oder Einschränkungen so zu ändern, dass Sie ein ständig verfügbares System haben, das eine Zeitquelle sein kann, oder dass Ihre Systeme nicht isoliert sind und Zeit vomglobaler NTP-Pool, oder beides.

Heutzutage sind stromsparende NTP-Server mit GPS-Empfängern recht günstig erhältlich. Wenn Sie gerne selbst Hand anlegen, können Sie BeagleBones und Raspberry Pis für unter 100 US-Dollar in NTP-Server verwandeln. Wenn Sie etwas von der Stange möchten, probieren Sie einenLeoNTP.

Nächster Vorschlag: Wenn ntpddas Aktualisieren der Uhr lange dauert, müssen Sie wahrscheinlich Ihre Konfiguration überprüfen:

  1. -GStellen Sie sicher, dass Sie das Befehlszeilenflag verwenden . -gDies ist bei einigen Linux-Distributionen die Standardeinstellung, führt jedoch nicht zu großen Rückschritten.
  2. Stellen Sie sicher, dass alle Ihre Server/Pools mit konfiguriert sind iburst.
  3. Verwenden Sie tinker step 0.5und , um die Fähigkeit von zum Korrigieren großer Abweichungen tinker panic 0zu maximieren .ntpd
  4. Stellen Sie sicher, dass Ihre Drift-Datei beschreibbar ist ntpdund beim Herunterfahren korrekt gespeichert wird.

Dritter Vorschlag (den ich vorziehen würde ntpdate): Versuchen Sie es chrony– es bietet explizite Unterstützung für gelegentlich verbundene Clients (wie Laptops, die regelmäßig angehalten werden). Die chrony.conf(5)Manpage enthält alle Einzelheiten dazu. Wenn Sie eine Distribution verwenden, bei der chronydie Standardeinstellung ist (CentOS/Red Hat und Ubuntu nach der Veröffentlichung von 18.04), wäre dies wahrscheinlich mein zweiter Vorschlag.

Letzter Vorschlag: Wenn ntpdateein Server als Stratum 16 gemeldet wird, bedeutet dies, dass mit diesem Server etwas nicht stimmt. Versuchen Sie, die Konfiguration des Servers und die Ausgabe von zu posten, ntpq -npdamit ntpq -nc rvwir bei der Diagnose helfen können.

verwandte Informationen