NTP

[2005-01-22] 重要なお願い

以下は下に行くほど古い記述です。 一番下には福岡大のNTPサーバを挙げていますが,現在はたくさんのNTPサーバがあります。 福岡大ではなく,必ずご自分のプロバイダのNTPサーバを使ってください。 プロバイダの管理者さんは,上位のプロバイダのものを使ってください。 最終的にはSINETやmfeedなどに合わせるか,あるいはGPSを利用したサーバの購入をご検討ください。

福岡大学NTPサーバの混雑解消にご協力を (/.J)。

NTP とは

Network Time Protocol(ネットで時間合わせをするためのプロトコル)のことです。 Windows 2000/XP には標準で NTP クライアントの機能が備わっています。

NTP サーバとしては,ネットで公開されているものが使えますが,より正確に時間を合わせるには,GPS に接続した NTP サーバを自ネット内に立てて使います。 製品もあります()。

Windows の場合

Windows 2000/Xp なら標準で時刻合わせの機能が備わっています。 PCJapan 2002年2月号の この記事この記事 をご覧ください (Thanks: 中村くん)。

以下は Windows 95/98/Me では, 宇野信太郎 さんの「桜時計」を使います。

チューチューマウスと仲間たち にも「ピッタリでチュ!」というNTPクライアントがあるようです。

桜時計は Ring Server の ここ からダウンロードできます(skrw021.lzh といったファイル名)。

これを Lhasa などで展開して,できたフォルダの中の SKRWATCH.EXE をスタートアップフォルダあたりに入れておけばいいでしょう。 具体的には,[スタート]―[設定]―[タスクバーとスタートメニュー]の[詳細]―[詳細]で, 「スタートメニュー」の中の「プログラム」の中の「スタートアップ」をクリックし, その右側の欄に SKRWATCH.EXE をドラッグ&ドロップで移動します。

次に,SKRWATCH.EXE をダブルクリックして起動します。 NTP サーバとしては,もともと入っているものは必ず消して,各組織で決まっているものを入力してください。 松阪大学では単に ntp と入れればいいようになっています。 大学外の近隣の場合は,三重県デジタルコミュニティズのサーバ ring.dcs.pref.mie.jp が NTP サーバにもなっていますので,ご活用ください。

これ以外の設定については,桜時計付属の README.TXT をご覧ください。

Mac の場合

Mac OS 8.5 以降にはコントロールパネルに NTP クライアント機能が含まれているそうです。

そうでない場合は Vremya (ヴレーミャ)というものがあるそうです。

Linux 等での NTP サーバのインストール

Time Server (University of Delaware) からソースをいただいてきます。

tar xvzf ntp-4.1.0.tar.gz
cd ntp-4.1.0
./configure
make
make install

/etc/ntp.conf には,そのドメインの時間サーバを指定します。

server ntp.matsusaka-u.ac.jp
driftfile /etc/ntp.drift

起動シーケンスの例です。

echo "Starting NTP daemon"
/usr/local/bin/ntpdate -s -b ntp.matsusaka-u.ac.jp
sleep 5
/usr/local/bin/ntpd -A

そのドメインの時間サーバの /etc/ntp.conf は何らかの方法で時間を合わせる必要があります。 上流の NTP サーバ,たとえば mfeed のものを使わせていただく場合には次のようにします。

server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp
server 127.127.1.0
fudge  127.127.1.0 stratum 10
driftfile /etc/ntp.drift

この場合の起動シーケンスの例です(x = 1, 2, 3)。

echo "Starting NTP daemon"
/usr/local/bin/ntpdate -s -b ntpx.jst.mfeed.ad.jp
sleep 5
/usr/local/bin/ntpd -A

以下は書いたものです。

NTP とは?

NTP (Network Time Protocol) はネットワーク経由で時間を合わせる仕組みです。

詳しくは以下のところを見てください。^^; v

日本の公開サーバは,stratum 1 のものは, Public NTP Primary (stratum 1) Time Servers によれば clock.nc.fukuoka-u.ac.jp と clock.tl.fukuoka-u.ac.jp の2箇所だけで,stratum 2 のものは, Public NTP Secondary (stratum 2) Time Servers によれば,ありません。 ここ にはもうちょっとリストされています。 ここ にもサ−ビスを提供されている旨書かれています。

インストール

以下は Linux Slackware 3.5 にインストールした記録です。

ネットワーク的に近いところから比較的最近のバージョンの ntp をいただいてきます。 私は会津大学を利用させていただきました (ftp://ftp.u-aizu.ac.jp/pub/net/ntp/ntp-4.0.72-export.tar.gz)。 バージョン4になって,xntpd の x が取れたんですね。

インストールは単純です。

tar xvzf どこどこ/ntp-4.0.72-export.tar.gz
cd ntp-4.0.72-export
./configure
make
make check
make install

サーバの設定

組織のサーバの設定です。

まず /etc/ntp.conf というファイルをつくります。 このファイルには,いくつかの公開 NTP サーバ名を書いておきます。 次のものは一例です(これを全部書くわけではありません)。

server ntp1.jst.mfeed.ad.jp          # new mfeed server
server ntp2.jst.mfeed.ad.jp          # new mfeed server
server ntp3.jst.mfeed.ad.jp          # new mfeed server
server clock.nc.fukuoka-u.ac.jp      # Fukuoka Univ
server clock.tl.fukuoka-u.ac.jp      # Fukuoka Univ
server ntp.tut.ac.jp                 # Toyohashi Univ of Technology
server cesium.mtk.nao.ac.jp          # Kokuritsu Tenmondai
server eagle.center.osakafu-u.ac.jp  # Osaka Furitsu Univ
server ntp.sut.ac.jp                 # Science Univ of Tokyo
server ntp.hiroshima-u.ac.jp         # Hiroshima Univ
driftfile /etc/ntp.drift

/etc/ntp.drift は後で ntpd を起動すると自動的に生成されます。

これで,最初はまずたとえば

ntpdate -b clock.nc.fukuoka-u.ac.jp
として,そのマシンの時刻を合わせます。 引数は適当な公開 NTP サーバ(複数可)です。 次に,Linux 特有のおまじないとして,
clock -w
で CMOS 時計をシステム時計に合わせます。 最後に
ntpd
で NTP デーモンを起動します。

起動スクリプト(たとえば /etc/rc.d/rc.local)にたとえば

echo "Starting NTP daemon"
/usr/local/bin/ntpdate -s -b clock.nc.fukuoka-u.ac.jp ntp.tut.ac.jp
sleep 5
/usr/local/bin/xntpd
のように書いておきます。

ntpdate で大幅な時刻合わせをして, ntpd では小刻みかつ経常的に合わせる, というわけです。 なお,SunOS でよく使った tickadj という付属プログラムは, Linux(i386)では不要と思います。

クライアントの設定

組織のサーバ以外のマシンの設定です。

サーバと同様に /etc/ntp.conf というファイルを作り, たとえば次のように自組織のサーバ名を書いておきます。

server sakura.matsusaka-u.ac.jp
driftfile /etc/ntp.drift

これで,最初はまずたとえば

ntpdate -b sakura.matsusaka-u.ac.jp
でそのマシンの時刻を合わせます。次に,Linux なら
clock -w
で CMOS 時計をシステム時計に合わせます。 最後に
ntpd
で NTP デーモンを起動します。

起動スクリプト(たとえば /etc/rc.d/rc.local)にたとえば

echo "Starting NTP daemon"
/usr/local/bin/ntpdate -s -b sakura.matsusaka-u.ac.jp
sleep 5
/usr/local/bin/xntpd
のように書いておきます。

なお,必ずしも ntp を使わなくても, cron などで特定時刻(あるいは起動の際)に ntpdate や netdate(rdate)で他のマシンの時刻を見に行くだけでも十分と思います。

関連リンク

追加

[1999/01/28] SPA で GPS が安い(PCMCIA カード込みで 29,800 円)。 これを利用して すずきひろのぶ さんが Linux で使える時間合わせプログラムを作ってくださっている。

[1999-10-10] 今調べたところ,会津大のディレクトリはあいかわらず 1998年3月18日付の ntp-4.0.72-export.tar.gz が最新でした。 しかし,本家 ftp.udel.edu では ntp-4.0.98a.tar.gz が出ていました。 輸出版と国内版が分かれていませんが, 特に禁輸品になるようなコードは含まれていないようです。 README には ``These programs do not include the cryptographic routines themselves, so are free of U.S. export restrictions.'' とも書かれています。 Y2K 対応のこともあるので,新しいものに入れ換えました。 インストールの仕方は下記と同じです。

[2000-04-03] CyberCom の 製品案内 にパソコンに接続できる電波時計が紹介されています(Thanks: hideyuki さん)

[2001-03-08] ftp://ftp.win.ne.jp/pub/network/ntp/ にも ntp4 が入っていました。 ラジオの時報で計算機の時計を合わせよう! はおもしろそうです。

[2001-04-11] ntpd にバッファオーバーフローの問題があり, 4月6日に ntp-4.0.99k23.tar.gz が出ました。

[2001-04-11] 新しい NTP サーバ ntp1.jst.mfeed.ad.jp, ntp2.jst.mfeed.ad.jp, ntp3.jst.mfeed.ad.jp が公開されました:

[2001-08-03] ntp-4.1.0.tar.gz が出ました。


奥村晴彦

Last modified: 2005-01-22 22:54:09