web-dev-qa-db-ja.com

Linuxでntpdateおよびntpdがクロックの同期に失敗する

サーバーの1つに奇妙な問題があります。 ntpdおよびntpdateは機能しませんが、デバッグではエラーはまったく表示されません。最初は、ローカルまたはネットワークのファイアウォールがUDPポート123をブロックしていると思いましたが、そうではありません。このサーバーは、UDPポート123(ntpプロトコル)をインターネットに接続して応答を取得できます。

問題を説明させてください。

date -s "30 DEC 2012 02:30:00"-機能するので、エラーなくクロックを正常に設定できます。

ntpq -pn pool.ntp.org-機能します。タイムサーバーから詳細な時刻データを取得し、UDPパケットが機能していることを証明します。

ntpdate -d pool.ntp.org-デバッグモードが機能し、大量のデバッグデータを表示し、現在の時間オフセットを表示します:30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec

次の状態になるまで、すべて正常に見えます:ntpdate pool.ntp.org-4.7秒の一時停止の後、次を返します:30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found

ntpdの実行時に同様の問題が発生し、時計が更新されません。

Ntpdが起動した後、ntpq -pnは、すべてのrefidが.INIT.つまり、同期できません。

/ var/lib/ntp/driftは、他のすべてのシステムと同様に、ntp.confのドリフトファイル設定です。これはchmod 644であり、ntp:ntpが所有します。

私は他のダースのntpタイムサーバーを試して、iptablesファイアウォールを無効にし、データセンターがudpトラフィックをフィルタリングしていないことを確認しました。 ntpdとntpdateがクロックを同期しないようにするためのアイデアはありますか?

これは、Intel CPUを搭載した専用サーバー上のCentOS 6.3 x64です。

11
Crash Override

ntpdate(およびntpd)は、オフセットが高すぎる場合、時間の設定を(簡単に)拒否します。両方のアプリケーションは、システムまたは大きなタイムジャンプをうまく処理できない可能性のあるアプリケーションを混乱させないように、時間をゆっくり調整しようとします。

代わりにntpdate -bをお試しください。それはそれがどんなに不合理に見えても、時間を設定します。

-uフラグを追加する必要がある場合もあります。これにより、ntpdateが特権ポート(<1024)を使用できなくなります。 -u-dによって暗示されることに注意してください! -dは正常に機能しているようです。

-uを追加すると、機能しているものと機能していないものに違いがある場合、これらの問題を引き起こしている途中にファイアウォールがあります。

そして、残念ながら ntpdに無制限のポートを使用させることはできないようです

13
chutz

Pastebinで次の出力を提供できますか。

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

ストラタム1サーバーなどから同期していますか。

同期に適したサーバーがないということは、クライアントとサーバー間の通信を確立できないことを意味します。

このデータセットから手がかりが見つからない場合、パケットが失われている場所を確認するためにtcpdumpが必要になることがあります。

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

Ntpdデーモンを停止して開始し、リーチが377になるまで待ってから、tcpdumpを停止します。それはさらなる手がかりを与えるはずです。

2