パソコンが内蔵している時計は以外と時刻が狂いやすいものです。 スタンドアロンの端末であればそれほど害はありませんが、サーバー用途として使う端末において時刻のズレは致命的です。 時刻がズレていると cron でのテレホーダイ時間の接続/切断で痛い目を見ますし。(笑)
そこで外部 NTP サーバーから正確な時刻を取得する NTP サーバーを LAN 内に建て、 LAN 内の端末は全てその NTP サーバーに問い合わせるように設定を行います。
ntp-4.0.99k.tar.gz をインストール。./configure; make; make install。 いつの間にか名前が xntpd から nptd に変わったみたいです。
xntp3-5.93e.tar.gz をインストール。その前に、デフォルトの rpm パッケージでインストールされている物があるとまずいので rpm -e で削除する。
# tar xzf xntp3-5.93e.tar.gz # cd xntp3-5.93e # ./configure; make; make install
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 はシステムクロックをこの時間差分修正します。
xntp でこのように時刻を設定しても、PC が保持する CMOS クロックの修正は行われません。 サーバーが稼働している間は正しく修正されているソフトウェアタイマを利用しますので問題はありませんが、 システムをリブートしたりすると時刻は CMOS クロックに戻ってしまうようです。 (リブート後、xntpd が動き出すまでの間の時刻管理が不正確になってしまう)
このため、時々 hwclock を使って正確な時刻を CMOS クロックに書き込むように設定します。 なお hwclock はスーパーユーザーとして実行する必要があります。これも cron で設定しておきましょう。
# /sbin/hwclock -w
再登板i486/DX4マシン
xntpd 以外にも、インターネットサーバー構築に関して参考になる記述が沢山あります。