NTP

最終更新日時:2007-09-19 23:57:38
その他UNIX系

NTP とは


NTP とは Network Time Protocol の略で、ネット上で時刻を合わせるためのプロトコルのことです。
また、この NTP に対応したアプリケーション群のことを NTP と呼びます。
ようは、NTP と言った場合にはプロトコルを差す場合とアプリケーションを差す場合とがあるわけです。
この NTP を使用してマシンの時刻を常に正しい時刻に設定しておくことができます(もちろん、若干の誤差はありますが)。
通常、PC の時計は放っておくと徐々にずれていきます。
Linux 等 OS で持っている内部時計も同様にずれていきます。
従って、24 時間稼働なマシンでは時刻を設定する仕掛けが必要になり、そのために NTP を使用します。

インストール


ntp-4.1.1a の例です。
まず、NTP の公式サイトからアーカイブを取得し、展開します。

 % gzip -dc ntp-4.1.1a.tar.gz | tar xvf - 


展開したディレクトリに移動し、あとはお決まりのパターンでOKです。

 % ./configure
 % make
 % make check
 % su
 # make install


使用方法


NTP には大きく2つの使い方があります。
1つ目の方法は、他のサーバに問い合わせをし、そのサーバの時刻に自サーバの時刻を設定するという方法です。

 % /usr/local/bin/ntpdate -b ntp.hogehoge.com 


この方法では、一瞬で正しい時刻に設定できるという反面、いきなり時刻が大きく変わることもあるので、ログのタイムスタンプがおかしくなったり、時刻を見て動作するようなアプリケーション( cron とか)が誤動作するという危険性があります。
まだサービスを提供していないマシンの時刻を合わせる方法としては最適です。

もう1つの方法は、他のサーバに問い合わせをし、徐々にそのサーバの時刻に近づけていくという方法です。

 % ntpd 


この場合は、自サーバ上にデーモンとして常駐し、断続的に指定したサーバに問い合わせを行います。
また、このデーモンは他のサーバからの問い合わせに対して応答を返すことも行うので、自分のネットワーク内で NTP サーバを立ち上げる場合にも有効です。
自分のネットワーク内にマシンが複数台ある場合には NTP サーバを立ち上げるべきです。
上位の NTP サーバは様々な箇所から問い合わせが殺到するので、なるべく NTP 通信を分散させるようにしましょう。
ntpd を起動するには設定ファイル( /etc/ntp.conf )を作成しておく必要があります。
最低限な設定は以下のような感じになります。

 server xxx.xxx.xxx.xxx
 server xxx.xxx.xxx.xxx
 server xxx.xxx.xxx.xxx
 server xxx.xxx.xxx.xxx
 driftfile /etc/ntp/ntp.drift


問い合わせをするサーバは複数指定することが出来ます。
また、driftfile は ntpd が作るファイルなので、あらかじめ作成する必要はありません。

確認方法


ntpd を使用して時刻調整をする場合、以下のようにして現在の時刻の同期状態を確認することが出来ます。
※より詳しい情報はJPRING NTPをどうぞ(/o\)

 % ntpq -p 


すると、以下のような結果が表示されます。

      remote           refid      st t when poll reach   delay   offset  jitter
 ==============================================================================
 +ntp1.jst.mfeed. fs-monntp2.mfee  2 u    1 1024  377    2.112   -0.486   0.075
 *ntp2.jst.mfeed. ote-ntp1.jpnap.  2 u  919 1024  377    2.501    0.186   0.111
 +ntp3.jst.mfeed. fs-monntp2.mfee  2 u  279 1024  377    1.901   -0.372   0.132


上記の表示の意味は以下のとおり。

項目概要
remote参照している時刻調整元サーバおよびそのサーバとの同期状態
同期状態は以下のとおり
距離が遠いため不使用
x falseticker 検査で捨てられたサーバ
. 参照サーバが多いために不使用
- クラスタリング検査で捨てられたサーバ
+ 参照可能
# 同期距離は遠いが参照可能
* 同期中
o 同期中
refid参照サーバの参照先
st参照サーバの階層
t階層の種類 ( l:local u:unicast m:multicast b:broadcast )
when参照サーバから最後にパケットを受け取ってからの秒数
poll参照サーバへの接続間隔の秒数。 通常 1024
reach到達可能レジスタデータ(8進)。通常 377
delay参照サーバとの遅延見積もりのミリ秒表示
jitter参照サーバの分散のミリ秒表示


PCの内部時計について


これら NTP で設定するのは OS のカーネルで持っている時計です。
従って、再起動してしまうと、また PC の内部時計に設定されてしまいますので、PCの内部時計はどんどんずれが大きくなっていってしまいます。
これを回避するには以下のコマンドを実行します。

 # clock -w


このコマンドを実行すると、PC の内部時計を現在の OS の時刻に設定します。
これを1日1回、または ntpdate 実行後あたりに実行しておけば、PCの内部時計もそれなりに正しい時刻に合わせることができます。

リンク


サイト名概要
NTPNTP についての使用方法・設定について分かりやすく解説されています
Experimental NTP Serversインターネット上で日本標準時を提供しているNTPサービスについて情報を提供



お問い合わせは 掲示板 にて。