Fedora資料一覧

ntpdate実行時に「no server suitable for synchronization found」というエラーが出る

2008/10/15更新

対応バージョン: 9

ntpdateで時刻同期しようとすると以下のエラーが出て同期に失敗する。

% sudo ntpdate timeserver
no server suitable for synchronization found

これにはいくつかの原因が考えられる。

ntpdateに-dオプションを付けて実行すると詳細な情報が得られるので、その結果毎の原因を示す。

NTPサーバからの応答がない場合

% sudo ntpdate -d timeserver
:
Looking for host timeserver and service ntp
host found : timeserver
transmit(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
xxx.xxx.xxx.xxx: Server dropped: no data
server xxx.xxx.xxx.xxx, port 123
stratum 0, precision 0, leap 00, trust 000
:
no server suitable for synchronization found

本来ならtransmitの後にreceive(サーバからの応答)が出力されるが、以下のような原因でサーバに接続できない。

NTPサーバが起動していない。
NTPサーバは起動しているが、サーバが動作しているマシンあるいは途中の経路で123/udpポートがブロックされている。

関連資料・記事

NTPサーバには接続できるが時刻同期できない場合

(パターン1)

% sudo ntpdate -d timeserver
:
Looking for host timeserver and service ntp
host found : timeserver
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
xxx.xxx.xxx.xxx: Server dropped: strata too high
server xxx.xxx.xxx.xxx, port 123
stratum 16, precision -19, leap 11, trust 000
:
no server suitable for synchronization found

この事象は当該NTPサーバには接続できるもののサーバがまだ利用可能な状態になっていない、つまり上位のNTPサーバと同期しておらずstratum値が規定外の16に設定されている状態である。

stratum値はサーバの(時刻保持者としての)信頼度によって1〜15まで階層分けされ、もっとも信頼できる最上位のNTPサーバが1となる。

サーバ側の問題が考えられるのでサーバの設定を見直す。

(パターン2)

% sudo ntpdate -d timeserver
:
Looking for host timeserver and service ntp
host found : timeserver
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
xxx.xxx.xxx.xxx: Server dropped: Leap not in sync
server xxx.xxx.xxx.xxx, port 123
stratum 7, precision -19, leap 11, trust 000
:
no server suitable for synchronization found

パターン1と似ているが、この場合はNTPサーバが上位サーバに同期を実行中、あるいは同期は終了しているもののまだ当該サーバの稼働時間が少ないために信用に足らない状態である。30分程度待ってから再度接続してみる。

関連資料・記事

ntpdate成功時の状態

参考までに、ntpdateが成功した時のntpdate -dの出力を記す。

% sudo ntpdate -d timeserver
:
Looking for host timeserver and service ntp
host found : timeserver
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
transmit(xxx.xxx.xxx.xxx)
receive(xxx.xxx.xxx.xxx)
server xxx.xxx.xxx.xxx, port 123
stratum 7, precision -19, leap 00, trust 000
:
adjust time server xxx.xxx.xxx.xxx offset 0.001289 sec