時計の自動調整

コンピュータの内蔵している時計は、お世辞にも正確とは言えません。
サーバを運営する上で、ログの確認等、時刻の正確性は非常に重要です。
サーバの時計を正確な時刻に自動調整するようにNTPを使います。

また、他のPCのNTPサーバとしての機能も持たせます。

ntpのインストール


NTP(Network Time protocol)とは、クライアントがサーバから時刻を取得するためのプロトコルです。
PuTTYでrootログインし次のコマンドを実行します。
#apt-get update
#apt-get install ntp

これで ntpd がデーモンとして常駐するようになり、サーバの時刻は、自動調整されるようになります。
nrpd の各種設定は /etx/ntp.conf で行いますが、特に変更の必要はありませんでした。

ntpdの確認


ntpd再起動数分後、時間の調整が行われます。
ntpqコマンドで動作状態を調べることができます。

<実行例>
#ntpq -p
remote refid st t when poll reach delay offset jitter
=================================================================
+arthur.dit-s.ne 192.53.103.103 2 u 61 64 377 297.135 7.397 5.683
*thesimonet.org .TRUE. 1 u 48 64 377 174.967 -4.948 8.525
+gen2.ihug.co.nz 130.217.76.34 2 u 62 64 377 220.322 7.116 7.999

左端の記号 "*" :現在,参照同期中のサーバー
"+" :現在,クロック誤り検査に合格したサーバー
"#" :現在,参照同期中ですが,距離が遠いサーバー
" " :現在,参照していないサーバー
"x" :現在,クロック誤り検査で不合格になったサーバー
"." :現在,参照リストからはずされたサーバー
remote リモート・サーバーのホスト名
refid 上位のNTPサーバ(不明の場合は、0.0.0.0)
st stratum番号、サーバーが第何階層か示す
t 階層タイプ(l:local,u:unicast,m:multicast,b:broadcast)
when 最後のパケットを受け取ってからの時間(単位:秒)
poll ポーリング間隔(単位:秒)
reach ステータス
delay ポーリングインターバルの遅延見積もり(単位:ミリ秒)
disp 階層の分散(単位:ミリ秒)


問題が!

これで、時刻の自動調整、NTPサーバとしての機能は完璧です。
しかし、このままだと世界中にNTPサーバとしての機能を提供していることになります。
私のサーバは貧乏サーバのため、それ程の能力は持っていません。

現在の方法だと、上位NTPサーバがアクセス毎に変更されます(ランダムにリダイレクトされている)。
上位サーバが特定できないため、ntp.conf でアクセス制限を掛けることもできません。
ひょっとしたら、いい方法があるのかも知れませんが、筆者はこの方法をあきらめ(ヨッパはあきらめも早い)、上位NTPサーバを固定にすることにしました。
NTPサーバは、Experimental NTP Servers さんを使わせていただくことにします。


変更後のntp.conf


restrict default ignore デフォルトで全クライアントからのアクセスを禁止する
restrict 127.0.0.1 nomodify 自身からのアクセスを有効に
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap ローカルネットアドレスからのアクセスを有効に
restrict 210.173.160.27 mask 255.255.255.255 nomodify notrap noquery 上位NTPサーバ−1とのアクセスを有効に
restrict 210.173.160.57 mask 255.255.255.255 nomodify notrap noquery 上位NTPサーバ−2とのアクセスを有効に
restrict 210.173.160.87 mask 255.255.255.255 nomodify notrap noquery 上位NTPサーバ−3とのアクセスを有効に
server 210.173.160.27 上位NTPサーバ−1に210.173.160.27を使用
server 210.173.160.57 上位NTPサーバ−2に210.173.160.57を使用
server 210.173.160.87 上位NTPサーバ−3に210.173.160.87を使用

<restrictのパラメータ概要>
パラメータ

概 要

ignore すべてのNTPアクセスを無視
noquery 時刻問い合わせパケットを無視
nomodify 設定変更要求パケットを無視
notrap 状変時にトラップを上げない



クライアント-PCの設定


クライアントPC(Windows-PC)の時刻も、今設定したNTPサーバを利用して自動で時刻調整ができるようにします。
Win上で動くNTP用クライアント・プログラムとして有名な桜時計をダウンロードし、実行します。




PCの時刻調整が、自宅サーバの時計で行われることになります・・・

って言いたいところなんですが!!


時刻調整がされません。
桜時計が機能しないのです。
ntp.conf の下記行をコメントアウトすると機能します。
   restrict default ignore

今のところ何故なのか分かりません。
とりあえず、ヨッパ得意の問題の先送りで避難します(^^;;;

今回の設定で意図したとおり(ローカルアドレスに対してのみNTPサーバを機能させる)の動作になると思うのだが????
誰か、どこが間違っているのか教えてくださいm(_~_)m

更新日:2009/11/3