Warum wird ntp nach einem Start ohne Internet nicht wiederhergestellt?

11

Ich habe ein paar Linux-Geräte (ohne TOY-Chips, daher sind sie vollständig auf NTP angewiesen), die möglicherweise ohne Internetzugang booten (die Verbindung zum Switch ist hergestellt). Der ntpDienst wird gestartet, aber offensichtlich werden keine Kollegen kontaktiert. Am Ende habe ich einen ntpDienst, der ausgeführt wird, aber nicht mit Peers synchronisiert wird ( ntpq -pgibt einen .INIT.Status an).

Das Problem ist, dass sich dies ändert, wenn eine Verbindung zum Internet hergestellt wird.

Wenn die Verbindung beim Booten verfügbar ist, funktioniert alles einwandfrei. Idem, wenn ich manuell a ausstelle service ntp restart( ntpstellt eine Verbindung zu den Peers her und die Zeit ist korrekt synchronisiert).

Sollte ntp nicht versuchen, in regelmäßigen Abständen die Verbindung wiederherzustellen?

  • Wenn ja: Wird dies von mir erwartet (ich habe nichts in der Konfiguration gesehen)
  • Wenn nicht: Was wäre ein guter Weg, um den Neustart des Dienstes oder die Verzögerung des Dienststarts zu handhaben (ich könnte davon ausgehen, dass die Verbindung zum Internet n Minuten nach dem Start wieder hergestellt wird).

Hinweis: Aus den Dokumenten geht hervor, dass die maximale Poolzeit (die meines Wissens die maximale Zeit ist, die ntp versucht, eine Verbindung zu Peers herzustellen, bevor er aufgibt?) 1024 Sekunden = 17 Minuten beträgt, was weit mehr ist als die zum Einrichten erforderliche Zeit Internetzugang (ca. 2 bis 5 Minuten, schlimmster Fall)

WoJ
quelle

Antworten:

12

Sie könnten von einem Randfall für ntpd gebissen worden sein:

IIRC ntpd-Versionen <4.2.4p3 haben alle Server aus der Synchronisationsliste entfernt, die irgendwann nicht mehr erreicht werden konnten. Dies ist in diesem Fall natürlich ziemlich schlecht, da ntpd die Liste seiner Kollegen sehr gut "erschöpfen" könnte, bevor es eine Internetverbindung erhält.

Man könnte / kann die dynamicOption für diese Server in setzenntp.conf , um dieses Problem zu umgehen.

Bei neueren Versionen sollte dies nicht mehr erforderlich sein (außerdem wurde die dynamische Option irgendwann eingestellt, was bei einigen Leuten, bei denen sich ntp plötzlich beschwerte, zu geringfügigen Problemen führte).

Sie können also entweder Ihr ntpd aktualisieren oder die Option festlegen.

Als dritte Option können Sie eine ordnungsgemäße Abhängigkeit in Ihrem Init-System erstellen. ntpd muss sich auf eine etablierte Internetverbindung verlassen ( nicht nur auf ein Netzwerk). Das Ergebnis wäre, dass Sie dies auch mit anderen Diensten wiederverwenden können.

römisch
quelle
1

Das Debian OpenNTPD-Paket startet es automatisch neu, wenn eine Schnittstelle angezeigt wird. Das ist üblich.

Außerdem müssen Sie (normalerweise) eine einmalige Synchronisierung durchführen, bevor Sie xntpd starten. Ich schlage daher vor, dass dies der richtige Weg ist.

Mirabilos
quelle
1
Die Schnittstelle ist aktiv. Es ist das Internet, das nicht erreichbar ist.
WoJ
Ich musste auch nie einen Schuss synchronisieren. Dies ist eindeutig ein möglicher Fall, aber ein Neustart des Dienstes bereinigt den Status.
WoJ