ntpdの設定
マシンの時刻を合わせるためのデーモンの設定
最終更新日 2001/05/30

1 はじめに
 今回は時刻同期サーバーの設定をします。時刻同期サーバーが動いていれば、そのマシン内の時計は非常に正確になります。
 NTP をサポートするプログラムは ntpdate と xntpd の2つあります。ntpdate は、その場で時報サーバを見に行って時刻を合わせてくれるプログラムで、起動時に電源の切れていたマシンの時計を補正するときや、cron を使って定期的に補正するときに使用します。 xntpd はサーバとクライアント両方の働きをするデーモンで、自動的にローカルクロックをサーバに合わせて調整する機能と、他のホストへ時報を流す機能を持ちます。
 LAN内で使用される一般的な構成は、次のようになります。

基本構成図
第1レベル  パブリックNTPサーバー

           ↑参照

第2レベル  LAN内NTPサーバー

          ↑↑↑参照

第3レベル  LAN内クライアント


 パブリックNTPサーバーとは世界にいくつかあり、以下のホームページで確認することができます。そのなかから、一番近いサーバーを選ぶとよいでしょう。

パブリックNTPサーバーのリスト
Public NTP Primary (stratum 1) Time Servers  (英語)


 また、上記の基本構成図のように、LAN内にNTPサーバーを設けて他のクライアントはそのサーバーを参照し、全てのクライアントがパブリックNTPサーバーを参照するようなことは行いません。
 今回は以下のような状況を想定して説明します。

今回の設定の例
レベル
サーバー名
IPアドレス
第1レベルclock.nc.fukuoka-u.ac.jp 133.100.9.2
第2レベルntpserv.test.net192.168.1.1
第3レベルntpcli.test.net192.168.1.100
2 設定
2.1 第2レベルの場合
 まず、 /etc/rc.conf ファイルに次の行を追加します。
 ntpdupdate を使用し、その時に参照するサーバーは 133.100.9.2 であり、xntpd も使用する設定です。

/etc/rc.confファイルに追加する項目
ntpdate_enable="YES"             # Run the ntpdate to sync time (or NO).
ntpdate_program="ntpdate"       # path to ntpdate, if you want a different one.
ntpdate_flags="-s -b 133.100.9.2"                # Flags to ntpdate (if enabled).
xntpd_enable="YES"              # Run xntpd Network Time Protocol (or NO).
xntpd_program="ntpd"           # path to xntpd, if you want a different one.
xntpd_flags="-p /var/run/xntpd.pid"     # Flags to xntpd (if enabled).


 上記の ntpdate_flags の行のオプションの意味は次のようになっています。
-sutpdate の出力を、syslog に吐く。
-bクロック修正を強制する。

 また、xntpd_flags の行の-pオプションの意味は、デーモンのプロセス ID を記録するためのファイル名とパスを指定します。


 次に、/etc/ntp.conf ファイルを作成し、以下の記述をします。

/etc/ntp.confファイルに記述する項目
server          133.100.9.2
driftfile       /etc/ntp.drift


 そして、上で設定した ntp.drift ファイルが存在しなければいけないので、次のコマンドで作成します。
 drift ファイルとは、時計のずれ具合いの統計情報をとり、補正に必要な時差を保存するためのものであり、補正によってできるだけサーバへの負荷を減らすのが目的です。

カラのファイルを作るコマンド
# touch /etc/ntp.drift [Enter]


 そしてマシンを再起動すると ntpd が起動し、マシンタイムが 133.100.9.2 と同じになります。そして、LAN内のNTPサーバーができました。
2.2 第3レベルの場合
 実は、前に述べた第2レベルの場合とほとんど同じです。第2レベルで 133.100.9.2 で設定したことを、全て 192.168.1.1 で設定するとよいでしょう。これは、前にも述べましたように、ntpdがサーバーの役割も果たすために 192.168.1.1 を参照するとよいからです。
2 動作の確認
 動作中の ntpd の設定を確認するプログラムが ntpq にります。以下のコマンドを実行してみてください。

ntpdの動作を確認するコマンド
> ntpq -p [Enter]
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*clock.nc.fukuok .GPS.            1 u   28   64  277   23.660  -34.702  17.373

 最初にアスタリスク '*' がついていなかったり、st が 16になっていると、サーバとの交信がうまくいっていません。ただし起動直後はしばらく切れているので、慌てて再起動せず、10分〜1時間ぐらい待つようにしましょう。
各欄の意味は次のようになっています。

各項目の意味
remote参照しているサーバ名。
refidremote が参照している時刻。他のサーバだったり、GPS 時刻源だったりする。
stremote の階層 (stratum)。1 が時報源、2、3、4…と増えるに従い遠くなっていく。
t ピアの種類 (local、unicast、multicast、broadcast)
when最後にパケットを受信した時間。
pollポーリング間隔。
reach到達可能性レジスタ(8進数)
delay遅延の推定値
offsetずれ


 ntpdのマニュアル(日本語)を用意しましたので、必要な場合はご覧ください。

ntpdのマニュアル   (日本語)

←戻る