NTPで時刻同期が出来ないサーバ

サーバの一台が不可思議なエラーでネットワークに接続できないので、そのサーバからHDDを抜き出し他のPCに入れて代わりのサーバとした。
ところがntpdは起動しているにもかかわらずいつまで経ってもタイムサーバとの時刻同期が取れない。
最初はタイムサーバ側で接続を拒否しているかと思ったが、クライアント(問題のサーバ)側からtelnetで123番ポートに接続を試すと一応「Connected to ”タイムサーバ名”」と出るのでタイムサーバ側は拒否していない。
反対にタイムサーバ側からクライアント側に同じ事をしてみると、「Unable to connect to remote host」と出たので、クライアント側は接続を拒否している。
ntpdateを使って手動で同期を取ることは出来るので、iptables等でブロックされているわけでも無い。

調べてみると案外単純なことで、/etc/ntp.conf内でのセキュリティ設定でntpdの接続をローカルホスト(自分自身)からのみ許可していて、外部へのアクセスを拒否するようになっていた。
これでは外部のタイムサーバと同期できるわけが無い。

具体的には/etc/ntp.confファイル内の
# restrict mytrustedtimeserverip mask 255.255.255.255 nomodify notrap noquery
の部分が上記のようにデフォルトのままになっていて、外部へのアクセスを許可していなかった。
この部分を
restrict ”タイムサーバのIPアドレス” mask 255.255.255.255 nomodify notrap noquery
と書き換え、
/etc/rc.d/init.d/ntpd stop
/etc/rc.d/init.d/ntpd start
を実行してntpdを再起動したところ程無く時刻の同期が出来た。
同時にタイムサーバ側での認証が必要という設定になっていたので、
authenticate yes

authenticate no
に書き換え認証不要としておいた。

←クリックしてくれると嬉しいです。
PR

One comment to this article

コメントを残す