« 今日のお天気とごはん | トップページ | なんだよ、ココログ、バージョンアップとか言って、機能制限かよ(w »

2008年8月27日 (水)

NTPによる時刻同期がうまく動いてないんじゃね?

ってことで、Vine Seed で動くようにしてみた。

まず、ntpdate を使って、手動でNTPサーバと同期してみるテスト。ポートがふさがってなければできるハズだよねー。

あ、ntpdateの実行時には、ntpdが上がっていてはダメです。ntpdと同じポートを使うので動きませんから。もし、the NTP socket is in use, exiting と表示されたら、ntpdがすでに起動しています、たぶん。

# service ntpd stop
ntpdを停止中:        [  OK  ]
# ntpdate ntp.jst.mfeed.ad.jp
27 Aug 18:02:06 ntpdate[25524]: adjust time server 210.173.160.57 offset -0.294431 sec

手動では、同期でけた。

次に、ntpdで自動的に時刻同期させてみる。
/etc/ntp.conf を以下の様に修正。

restrict default ignore
restrict 127.0.0.1
restrict 210.173.160.27 noquery nomodify
restrict 210.173.160.57 noquery nomodify
restrict 210.173.160.87 noquery nomodify
driftfile /etc/ntp.drift
logfile /var/log/ntp.log
server 210.173.160.27 # ntp1.jst.mfeed.ad.jp
server 210.173.160.57 # ntp2.jst.mfeed.ad.jp
server 210.173.160.87 # ntp3.jst.mfeed.ad.jp

最初の5行のrestrictで、NTP通信を制限しています。
まず1行目で、すべて拒否。
2行目でローカルからの問い合わせを許可。
3〜5行目は、参照するNTPサーバへの問い合わせを許可しています。
ここでは、noquery nomodify というオプションをつけて、指定したサーバからの問い合わせを無視するようにしています。つまり参照だけの一方通行。まぁ、ここまでガチにしなくてもいいような気がしますが、どうなんでしょ?>エロイヒト。

まぁ、詳細はこちらを参照してね(w

4.2.3 ntpdのインストールと設定

これらの、restrictと、後ででてくるserverの記述の両方が必要なのですねー。これが動かなかった原因っぽ。serverだけの記述でOKにするには、restrictで、『ざるざる』な設定にしないといけませんねー。別途、iptablesとかでアクセス制御してれば大丈夫なのカナ?カナ?とも思いましたが、さてどうなんでしょう?

それはさておき。

driftfileでは、誤差を修正するための値を保存するファイル名を指定しています。もし /etc/ntp.drift というファイルが存在しない場合は、touchコマンドを使って

# cd /etc
# touch ntp.drift

ntp.drift ファイルを作っておきます。中身はからっぽで(・∀・)イイ!
logfileは、NTPに関するログを保存するファイルを指定します。
最後のserverは、接続するNTPサーバを指定しています。ここには、サーバのアドレスを、FQDNで指定できます。ntp.jst.mfeed.ad.jp を指定すると、ラウンドロビンで、ntp1から3が選択されるようです。

サービス詳細 : インターネットマルチフィード時刻情報サービス for Public

んがしかし、restrictで許可・拒否するときは、IPアドレス指定風味なのよねぇ。せっかくラウンドロビンするのにー。しょうがないんで、restrictで、IPアドレスを記述、server もIPアドレスを記載して、さらにコメントをつけてみた。

設定できたら、NTPサービスの起動。

# service ntpd start
ntpdを起動中:        [  OK  ]

起動でけた。

すぐに同期しないので、しばらくして確認。

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp1.jst.mfeed. 210.173.160.86   2 u   58   64  177   20.729   55.191   4.978
*ntp2.jst.mfeed. 210.173.160.86   2 u   57   64  177   20.110   55.232   5.037
+ntp3.jst.mfeed. 210.173.160.86   2 u   51   64  177   19.833   54.645   4.897

ヽ( ´∇‘)ノワーイ

先頭の"*"がプライマリで同期するサーバっぽ。"+"は次に参照する風味。
当然、ネットワークやサーバの状態によって変化します。
時刻同期が進んで、誤差(drift)が分かってきたら、ポーリング(poll)の間隔が開いていきます。

# 数時間後に確認したら、1024まで増えてました。

最後に、ntpdが自動起動するように設定。

# chkconfig --level 35 ntpd on
# chkconfig --list | grep ntpd
ntpd               0:off    1:off    2:off    3:on    4:off    5:on    6:off

これで、しばらく様子見。

あ、GUIツールの、"時刻と日付の設定"の設定は変えないほうがいいかと。

やれやれ、これで、やっと...

# hwclock --systohc

ハードウェアクロックに書き込みますた(KMさめ、トンクス!!)
毎回手動で書き込むのはアレゲなのですが、cronで実行させるほどでもないかと。

んで、ThinkPad X40をサスペンド(suspend2ね)から復帰させたあとも、ちゃんと時刻同期するかどうか、/var/log/ntp.log を観察。

# tail -f /var/log/ntp.log
27 Aug 19:17:09 ntpd[11084]: Listening on interface #10 eth0, ほげほげIPアドレス#123 Enabled
27 Aug 20:08:12 ntpd[11084]: synchronized to 210.173.160.27, stratum 2
27 Aug 20:11:17 ntpd[11084]: time reset -0.658116 s
27 Aug 20:14:39 ntpd[11084]: synchronized to 210.173.160.87, stratum 2
27 Aug 20:20:15 ntpd[11084]: synchronized to 210.173.160.57, stratum 2
27 Aug 20:37:26 ntpd[11084]: synchronized to 210.173.160.27, stratum 2

しばらくすると、同期し始めたんだけど、pollが、64にもどっちゃったよ...orz
まぁ、しょうがないか。そのうち、間隔が開いていくでしょう。

|

« 今日のお天気とごはん | トップページ | なんだよ、ココログ、バージョンアップとか言って、機能制限かよ(w »

Linux」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/163245/42300084

この記事へのトラックバック一覧です: NTPによる時刻同期がうまく動いてないんじゃね?:

« 今日のお天気とごはん | トップページ | なんだよ、ココログ、バージョンアップとか言って、機能制限かよ(w »