NTP (Network Time Protocol)

NTP はネットワークを通して、時刻を同期させます。 NFS などを使う場合は、ファイルをいじった時刻を 違うホスト同士で同期させておかないと ファイルの情報がおかしくなってしまいます。

状況設定
手元には、以下の2台のホストがあるとします。 1台(foo)を手元の NTP サーバにして、 もう1台(foo2)は foo に同期させます。

用意するもの


ntp のインストール

少なくとも FreeBSD 4.{7,8}-RELEASE や 5.1-RELEASE には ntpd というのがあるので、この項の作業は不要です。

FreeBSD 3.4-RELEASE の Ports では ntp-4.0.93a.tar.gz が ターゲットとなっています。 しかし、/usr/ports/net/ntp で make したら、 次のようなエラーメッセージがでてコンパイルに失敗しました。
ntp_refclock.c: In function `refclock_gtlin':
ntp_refclock.c:654: warning: pasing arg 2 of `time_pps_fetch' makes integer from pointer without a cast
ntp_refclock.c:654: too few arguments to function `time_pps_fetch'

しょーがないので、ついでに最新の ntp を NTP なページ から拾って来て、手動でコンパイル&インストールします。 著者が拾って来たのは ntp-4.0.99i (2000/4/16 現在)です。
% ls /somewhere
ntp-4.0.99i.tar.gz
% tar zxf ntp-4.0.99i.tar.gz
% cd ntp-4.0.99i
% ./configure
% make
% make check
% su
Password:
# make install
これで、/usr/local/bin 以下に ntpd, ntpdate, ntpdc, ntpq, ntptime, ntptimeset, ntptrace の実行ファイルがインストールされます。

/etc/ntp.conf の作成

NTP の設定ファイル、/etc/ntp.conf を作成します。 次のような感じでよいでしょう。

foo を外部の NTP サーバに同期させる
foo.hogehoge.ac.jp:/etc/ntp.conf
server ntp.server.ac.jp
driftfile /etc/ntp.drift

foo2 を foo に同期させる
foo2.hogehoge.ac.jp:/etc/ntp.conf
server foo.hogehoge.ac.jp
driftfile /etc/ntp.drift

それぞれのホストで、/etc/ntp.drift ファイルを作っておきます。
# touch /etc/ntp.drift

ntp の手動起ち上げ

本格的に動かす前に、ntpdate で時刻合わせをしておきましょう。
# ntpdate ntp.server.ac.jp

よければ、xntpd を起ち上げます。 xntpd は標準で入っています。
# xntpd

FreeBSD 4.{7,8}-RELEASE や 5.1-RELEASE では xntpd の代わりに ntpd を立ち上げます。
# /usr/sbin/ntpd -p /var/run/ntpd.pid

/etc/rc.conf の設定

問題がなければ、ブート時に自動的に起ち上るように /etc/rc.conf ファイルを設定します。 以下の4行を追加します。

foo.hogehoge.ac.jp:/etc/rc.conf
### Network Time Services options: ###
ntpdate_enable="YES" # Run the ntpdate to sync time (or NO)
ntpdate_flags="-s -b ntp.server.ac.jp" # Flags to ntpdate
xntpd_enable="YES" # Run xntpd Network Time Protocol (or NO)

foo2.hogehoge.ac.jp:/etc/rc.conf
### Network Time Services options: ###
ntpdate_enable="YES" # Run the ntpdate to sync time (or NO)
ntpdate_flags="-s -b foo.hogehoge.ac.jp" # Flags to ntpdate
xntpd_enable="YES" # Run xntpd Network Time Protocol (or NO)

FreeBSD 5.x-RELEASE では xntpd の代わりに ntpd を立ち上げます。
ntpd_enable="YES"

国内の主な公開 NTP サーバ


FreeBSD の部屋


Apr. 1, 2000