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


11

サーバーの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によって所有されています。

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

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


2
「専用サーバー」の意味を明確にできますか?物理ハードウェアですか、それとも仮想マシンですか?
シェーンマッデン

専用サーバー=物理ハードウェア。仮想マシンではありません。
クラッシュオーバーライド

回答:


13

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

ntpdate -b代わりに試してください。どんなに理不尽に見えても時間を設定します。

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

追加-uすることで動作中と非動作中の違いが生じる場合は、これらの問題の原因となっているファイアウォールがあります。

そして残念なことに、無制限のポートntpd利用することは可能ではないようです


それでも失敗します。ntpdate -b pool.ntp.org結果:30 Dec 03:00:10 ntpdate[1341]: no server suitable for synchronization foundntpdateデバッグフラグは-dデバッグデータを表示しますが、実際には同期せず、動作します:ntpdate -d pool.ntp.org結果:30 Dec 03:00:55 ntpdate[1343]: step time server 128.10.254.6 offset 228.030338 sec
クラッシュオーバーライド

@CrashOverride、答えを更新して、なぜ機能しているのかを説明-dするようにしました。
チャッツ

1
ntpdate -b -u動作します!!! 驚くばかり。2つの質問。ntpdデーモンはまだ失敗していますが、特権ポートを使用しないようにするにはどうすればよいですか?2番目の質問、なぜ他のすべてのサーバーがそうではないのに、特権ポートでこのマシンがntpで失敗するのですか?
クラッシュオーバーライド

うーん、多分、私のサーバーからのソースUDPポート123をブロックするファイアウォールがあります。それを確認します。再び、あなたの答えをありがとう。
クラッシュオーバーライド

ntpdのソースポートを変更できないことを説明するために、リンクを更新しました。申し訳ありませんが、私はそのリンクを見つけること以上に探していません。
チャッツ

2

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

stratum 1サーバーなどから同期していますか。

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

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

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

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.