ntpdate und ntpd können die Uhr unter Linux nicht synchronisieren

11

Ich habe ein seltsames Problem mit einem meiner Server. ntpdund ntpdatefunktionieren nicht, aber das Debuggen zeigt überhaupt keine Fehler. Zuerst dachte ich, vielleicht blockiert eine lokale oder Netzwerk-Firewall den UDP-Port 123, aber das ist nicht der Fall - dieser Server kann den UDP-Port 123 (das NTP-Protokoll) mit dem Internet kommunizieren und Antworten erhalten.

Lassen Sie mich das Problem demonstrieren.

date -s "30 DEC 2012 02:30:00" - funktioniert, so dass ich die Uhr ohne Fehler erfolgreich einstellen kann.

ntpq -pn pool.ntp.org - funktioniert, ich erhalte detaillierte Zeitdaten vom Zeitserver und beweise, dass UDP-Pakete funktionieren.

ntpdate -d pool.ntp.org - Der Debug-Modus funktioniert, zeigt eine Menge Debug-Daten und zeigt den aktuellen Zeitversatz an: 30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec

Alles sieht normal aus, bis: ntpdate pool.ntp.org- nach einer Pause von 4,7 Sekunden: 30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found

Ähnliches Problem läuft ntpd, es aktualisiert nicht die Uhr.

Nachdem ntpd gestartet wurde, ntpq -pnbleiben alle Refids für immer hängen, .INIT.was bedeutet, dass sie nicht synchronisiert werden können.

/ var / lib / ntp / drift ist die Driftdateieinstellung in ntp.conf, die chmod 644 ist und ntp: ntp gehört, genau wie alle meine anderen Systeme.

Ich habe ein Dutzend anderer NTP-Zeitserver ausprobiert, die iptables-Firewall deaktiviert und bestätigt, dass das Rechenzentrum den UDP-Verkehr nicht filtert. Irgendwelche Ideen, was verhindert, dass ntpd und ntpdate meine Uhr synchronisieren?

Dies ist CentOS 6.3 x64 auf einem dedizierten Server mit Intel-CPU.

Crash Override
quelle
2
Können Sie klarstellen, was Sie unter "dediziertem Server" verstehen - handelt es sich um physische Hardware oder eine virtuelle Maschine?
Shane Madden
Dedizierter Server = physische Hardware. KEINE virtuelle Maschine.
Crash Override

Antworten:

13

ntpdate(und ntpd) weigern sich (leicht), die Zeit einzustellen, wenn der Versatz zu hoch ist. Beide Anwendungen werden versuchen, Ihre Zeit langsam anzupassen, um Ihr System oder andere Anwendungen, die möglicherweise keine großen Zeitsprünge ausführen, nicht zu verwirren.

Versuchen Sie es ntpdate -bstattdessen. Es wird die Zeit einstellen, egal wie unvernünftig es erscheinen mag.

Möglicherweise müssen Sie auch das -uFlag hinzufügen , um die ntpdateVerwendung privilegierter (<1024) Ports zu verhindern. Beachten Sie, dass -uimpliziert wird durch -d! Und es hört sich so an, als würde -des gut funktionieren.

Wenn das Hinzufügen -ueinen Unterschied zwischen funktionierend und nicht funktionierend macht, befindet sich eine Firewall auf dem Weg, die diese Probleme verursacht.

Und leider scheint es nicht möglich zu sein, ntpdeinen uneingeschränkten Port zu nutzen .

Chutz
quelle
Scheitert immer noch. ntpdate -b pool.ntp.orgErgebnisse: 30 Dec 03:00:10 ntpdate[1341]: no server suitable for synchronization foundDas ntpdate-Debug-Flag, das -dDebug-Daten anzeigt, aber nicht wirklich synchronisiert, und das funktioniert: ntpdate -d pool.ntp.orgErgebnisse:30 Dec 03:00:55 ntpdate[1343]: step time server 128.10.254.6 offset 228.030338 sec
Crash Override
@CrashOverride, ich habe meine Antwort aktualisiert, um zu erklären, warum -dmöglicherweise funktioniert, während dies sonst nicht der Fall ist.
Chutz
1
ntpdate -b -ufunktioniert !!! Genial. Zwei Fragen. Der ntpd-Daemon schlägt immer noch fehl. Wie kann ich dafür sorgen, dass keine privilegierten Ports verwendet werden? Zweite Frage: WARUM schlägt dieser Computer mit ntp an privilegierten Ports fehl, wenn dies bei allen anderen Servern nicht der Fall ist?
Crash Override
Humm, vielleicht blockiert eine Firewall den Quell-UDP-Port 123 von meinem Server. Überprüfen Sie das. Nochmals vielen Dank für Ihre Antwort.
Crash Override
Ich habe mit einem Link aktualisiert, um zu erklären, dass es nicht möglich ist, den ntpd-Quellport zu ändern. Entschuldigung, ich habe nicht weiter gesucht, als diesen Link zu finden.
Chutz
2

Können Sie die folgenden Ausgaben in Pastebin bereitstellen?

cat /etc/ntp.conf
cat /etc/sysconfig/ntpd
ntpq -pn
ntpdc -c sysstat
ntpdc -c kerninfo
ntpdc -c loopinfo
ntpdate -d <time-server-IP>
ntptrace

Synchronisieren Sie von Stratum 1-Servern oder etwas anderem?

Kein für die Synchronisation geeigneter Server bedeutet, dass die Kommunikation zwischen Client und Server nicht hergestellt werden kann.

Wenn wir aus diesem Datensatz keine Hinweise finden können, ist möglicherweise tcpdump erforderlich, um festzustellen, wo das Paket verloren geht.

tcpdump -s0 -i ethX -p udp -w /tmp/ntp.pcap

Stoppen und starten Sie den ntpd-Daemon und warten Sie, bis die Reichweite auf 377 steigt. Stoppen Sie dann den tcpdump. Das sollte weitere Hinweise geben.

Soham Chakraborty
quelle
pastebin.com/Rw0nZTA8
Crash Override