Network Time Protocol Daemon

/ ホーム(H) / Linux(V) / ntpd

About

パソコンが内蔵している時計は以外と時刻が狂いやすいものです。 スタンドアロンの端末であればそれほど害はありませんが、サーバー用途として使う端末において時刻のズレは致命的です。 時刻がズレていると cron でのテレホーダイ時間の接続/切断で痛い目を見ますし。(笑)

そこで外部 NTP サーバーから正確な時刻を取得する NTP サーバーを LAN 内に建て、 LAN 内の端末は全てその NTP サーバーに問い合わせるように設定を行います。


ntp-4.0.99k
2001/02/12

ntp-4.0.99k.tar.gz をインストール。./configure; make; make install。 いつの間にか名前が xntpd から nptd に変わったみたいです。

2001/01/22

xntp3-5.93e.tar.gz をインストール。その前に、デフォルトの rpm パッケージでインストールされている物があるとまずいので rpm -e で削除する。

# tar xzf xntp3-5.93e.tar.gz
# cd xntp3-5.93e
# ./configure; make; make install

Setting
/etc/ntp.conf

rpm パッケージをインストールしていればこのファイルはあると思いますが、無ければ一から書きます。

server 133.31.180.6 ←時刻を問い合わせる NTP サーバ
enable monitor
driftfile /etc/ntp/drift
logfile /var/log/xntpd

時刻を合わせる外部 NTP サーバは、日本の NTP stratum-1 サーバ を参考に、 traceroute で調べて最短のサーバを選べばよいでしょう。 私は東京理科大学のサーバーを利用させて貰っています。

作業ファイルの作成

ログファイルなどの作業ファイルを作成します

# touch /etc/ntp/drift
# touch /var/log/ntpd

設定が終わったら、NTP サーバーを起動します。

# ntpd
動作確認

ntptrace を使って NTP サーバーの状態を表示してみます。

# ntptrace
localhost.localdomain: stratum 16, offset 0.000028, synch distance 0.28960
sutns.sut.ac.jp: stratum 2, offset -0.053601, synch distance 0.00845
sutntp.sut.ac.jp: stratum 1, offset -0.072619, synch distance 0.00000, refid 'GPS'

localhost と sutns.sut.ac.jp(133.31.30.8) 以外に sutntp.sut.ac.jp が表示されています。 これは、localhost は sutns.sut.ac.jp と時刻の同期をし、sutns.sut.ac.jp は sutntp.sut.ac.jp と時刻の同期をしているという意味です。

ログファイルから NTP による時刻合わせの様子を見てみましょう。

11 Feb 23:34:06 xntpd[524]: synchronized to 133.31.30.8, stratum=2
11 Feb 23:34:05 xntpd[524]: time reset (step) -0.425518 s

synchronized が含まれている行が NTP サーバーと通信している部分です。 time reset (step) -0.425518 s という記述は、このホストが NTP サーバーよりも約 0.4 秒時間が進んでいたと言うことを意味します。 xntp はシステムクロックをこの時間差分修正します。

CMOS クロックへの書き込み

xntp でこのように時刻を設定しても、PC が保持する CMOS クロックの修正は行われません。 サーバーが稼働している間は正しく修正されているソフトウェアタイマを利用しますので問題はありませんが、 システムをリブートしたりすると時刻は CMOS クロックに戻ってしまうようです。 (リブート後、xntpd が動き出すまでの間の時刻管理が不正確になってしまう)

このため、時々 hwclock を使って正確な時刻を CMOS クロックに書き込むように設定します。 なお hwclock はスーパーユーザーとして実行する必要があります。これも cron で設定しておきましょう。

# /sbin/hwclock -w

Reference

再登板i486/DX4マシン
xntpd 以外にも、インターネットサーバー構築に関して参考になる記述が沢山あります。


/ ホーム(H) / Linux(V) / ntpd

Copyright © Kazuhiro Yoshikawa (KaZ). All rights reserved.
Last modified