8-5. マシンの時刻同期 '99 (1) マシン内臓時計の設定 * 時刻同期の必要性 ネットワ−クが安定してきたら、マシンの時刻をちゃんと合わせておいた方がいい。セキ ュリティ的にはログのタイムスタンプがあってないと侵入の経過が分からなくなってしま う。本「テイクダウン」の中でも、主人公の下村氏がやかましく言っていた。EWSは結 構時間がずれるものである。どうもまだパソコンの方がましらしい。安定しているのはル −タなどのネットワ−ク機器らしい。セキュリティだけでなく、様々な障害が起こってく る。注意したいものである。以下、幾つか問題をあげてみる。 先ずは早速 NTP のコンパイルで問題がおきた。 マシンの時刻をいろいろいじっていたら make がうまくいかなくなった。make コマンドはファイルのタイムスタンプを見ているの で、時間がおかしいと効かなく場合があるのだ。こういう場合は make distclean するか、 ファイルを再度展開するしかない。make に似たようなので、 プログラム開発のバ−ジョ ン管理ソフト SCCS でも問題になるようだ。小生 SCCS など、この手のツ−ルは使ったこ とないけど便利らしい。 $ /usr/local/bin/make make: *** File `Makefile' has modification time in the future make: Failed to remake makefile `Makefile'. ### Building XNTP: version=3.4y (beta multicast); 他、タイムシンクロナス方式の暗号化パスワ−ドも使えなくなる。ある程度の時間、多分 数分はいいだろうが。それに NFS も効かなく場合がある、これは困るぞ。Apollo のディ スクレス機が起動しなくなったこともある。ディスクレス機の日付が2006年とかなっ ていて、時間がおかしいといって、起動プロセスが途中で止まってしまったのである。 * NTP( Network Time Protocol )の概要 EWSなどコンピュ−タの時刻を合わせるソフトには timed というプログラム、 もう一 つ NTP というプロトコルを実装した ntp というプログラムがある。timed は十年以上前 の Apollo にも入っていたという古いものである。ntp の方は実際使われるようになった のは、ここ何年かのことと思う。timed がフリ−ソフトかどうか知らないが、ntp はフリ −ソフトとしてあちこちのサイトに見つけることができる。バ−ジョン3までは xntp と 呼ばれていたので、小生なんかはXのソフトかと思っていた。バ−ジョン3になって、た だの ntp になっている。 最近では Solaris 2.6 や Linux には最初から実装されるよう になってきている。 ntp の仕組みは、内部ネットのホストを1台、時刻の元とする。社内の他ホストはこの元 ホストに時刻を合わせる。さらに、元ホストはもっと大元の時刻ホスト、タイムサ−バか ら時刻をもらうことになる。このホストは GPS( Global Positioning System ) という装 置で正確な時刻を合わせるらしい。このような大元のタイムサ−バは国内にも幾つかあり、 福岡大学の clock.nc.fukuoka-u.ac.jp とか、 豊橋技術科学大学の ntp.tut.ac.jp など がそうである。タイムサ−バは stratum サ−バとも言われ、大元から次へ、 そして次へ という階層構造をとり、必然的に正確な時刻からずれていくことになる。ntp の設定ファ イルで、複数のタイムサ−バを記述する時は、同じ階層のものを指定しないといけない。 ntp ソフトで主に使うのは、ntpd デ−モンと ntpdate コマンドである。 ntpd はサ−バ とクライアントで共通で、制御ファイルにより区別する。 ntpd は時間を少しかけながら、 時刻を同期させていくらしい。急に時刻を変更するとファイルのタイムスタンプと整合性 がとれなくなったり、問題が起きる場合がある。それを考慮してじょじょにあわせていく ようになっている。時刻の伝達はブロ−ドキャストと1対1のやり方がとれるようになっ ている。一方 ntpdate コマンドは、 タイムサ−バの時刻にすぐに合わせるようになって いる。これら2つの手段を組み合わせたりして、実際の運用をすることになる。timed は ntp が使えないマシンでのみ使うということになるだろう。 * NTP の設定 [ 方法1 ] /etc/ntp.conf /etc/ntp.conf -------------------------------- ------------------------- |server clock.nc.fukuoka-u.ac.jp |server 192.168.1.2 |server ntp.tut.ac.jp |driftfile /etc/ntp.drift |driftfile /etc/ntp.drift 192.168.1.2 ---------- ---------- | ntpd | | ntpd | << サ−バの設定 >> | | | | << クライアントの設定 >> ---------- ---------- | indy2 | node_abcd ------*------------------*------------- サ−バの ntp.conf ファイルの server の項目には、複数のアドレスを書いてもいい。ク ライアントの方は、ネットワ−クの代表時刻サ−バのアドレスを書く。driftfile という のはマスタ−からの時間のずれを1時間毎に記録している。マスタ−の ntpd が止まって も、このファイルから平均的な時間のずれを計算し、しばらくは時刻の調整をするらしい。 そんな役目なので、driftfile のところはなくても構わないといえば構わない。 % tcpdump udp port 123 << indy2 で実行。4分ごとにパケットを出している。 tcpdump: listening on ec0 14:12:52.971664 node_abcd.ntp > indy2.ntp: v3 client strat 0 poll 6 prec -16 14:12:52.972548 indy2.ntp > node_abcd.ntp: v3 server strat 0 poll 6 prec -17 14:13:56.963754 node_abcd.ntp > indy2.ntp: v3 client strat 0 poll 6 prec -16 14:13:56.964547 indy2.ntp > node_abcd.ntp: v3 server strat 0 poll 6 prec -17 [ 方法2 ] /etc/ntp.conf /etc/ntp.conf -------------------------------- ------------------------- |server clock.nc.fukuoka-u.ac.jp |broadcastclient yes |server ntp.tut.ac.jp |driftfile /etc/ntp.drift |broadcast 192.168.1.255 |driftfile /etc/ntp.drift 多分こっちのやり方の方が実際的かも知れない。NTP のクライアント・マシンが多いとそ れぞれでパケットを吐き出すことになる。方法2ではサ−バが、自ホストのセグメントに ブロ−ドキャストを流して、クライアントはそれを受けるようにしている。同じセグメン トはこれで、セグメントが異なる場合に方法1により、セグメント毎のマスタ−に時刻を 供給するというのがいいのでないだろうか。 [ 方法3 ] /etc/ntp.conf 192.168.1.2 のマシン % /usr/local/bin/ntpdate -b 192.168.1.2 -------------------------------- |server 127.127.1.1 クライアントは cron でこのコマンドを定期 |driftfile /etc/ntp.drift 的に実行しておくだけでもいい。 一番簡単な方法。マスタ−の時刻は NTP サ−バ自体の内臓クロックを使う。 クライアン トの方は ntpdate コマンドでマスタ−の時刻に合わせてしまう。起動時だけ ntpdate を やるようにしても、実用上十分かと思う。 * マニュアルによる時計の設定 おなじみ date コマンドを使う。INDY IRIX 5.3 での例を示す。 root でロッグインして 自分の時計をにらみながら 3,2,1 はい、% date 1420 というように打つ。 14時20分 にマシンの時計を合わせたことになる。秒まで合わすこともできるが、0分単位で十分で ある。このコマンドでの時計の設定はすぐ有効になる。 IRIX 5.3 での date のヘルプを 見ると cc というのがある。ここは 1999 の 19 の部分である。SunOS 4.1.4 では年号の 下二桁でしか設定できない。2000年問題なわけである。 Apollo の date コマンドも同じく設定できなかった。 しかし Apollo の場合は date コ マンドは使わない。Apollo 専用の calendar コマンドを使って設定する。Solaris 2.5.1 はどうか。ちゃんと 1999 と設定できます。コマンドは /usr/bin/date である。date と やって文字が化ける場合はロケ−ルが合っていないので、# setenv LANG C とやってみる。 最後におまけ。SunOS 4.1.x には # /usr/ucb/rdate hostname なる、 他のマシンの時計 に合わせる rdate コマンドがある。これは他のマシンにはないようである。参考に一応。 % date -v 日付の指定が間違っています 形式: date [-u] [+format] date [-u | -n] [[mmdd] HHMM | mmddHHMM[[cc]yy]][.ss] date [-a [-]sss.fff] % date 06151420 << IRIX 6.5 でもコマンドの内容は同じ。 1999年 6月15日(火曜日) 14時20分00秒 JST % date 061514201998 << 年数を変えても警告メッセ−ジも何も出ない。 1998年 6月15日(月曜日) 14時20分00秒 JST % date << GMT とはちょうど9時間の差がある。 1999年 6月15日(火曜日) 14時49分45秒 JST % date -u << グリニッジ標準時間で表示する。 1999年 6月15日(火曜日) 05時49分47秒 GMT * Solaris 2.6 で時刻を合わせる マシン起動時の制御ファイルは /etc/rc2.d/S74xntpd である。 OSインスト−ルままの 状態では、NTP の制御ファイル /etc/inet/ntp.conf がないので、 デ−モン xntpd は起 動されない。マシン稼働中の制御コマンドは # /etc/init.d/xntpd { start | stop } で ある。/usr/sbin/ntpdate, /usr/lib/inet/xntpd, /etc/inet/ntp.conf。 # date 02071121 2005年02月07日 (月) 11時21分00秒 JST # date 2071123 date: フィールド記述子が正しくありません。 使用法: date [-u] mmddHHMM[[cc]yy][.SS] date [-u] [+format] date -a [-]sss[.fff] * Windows パソコンの場合 ( Windows 98 で確認 ) C:\WINDOWS> time << 時刻を合わせる。日付が狂うことは先ずない。 現在の時刻は 17:54:11.03 時刻を入力してください: 18:00 C:\WINDOWS> date << 日付を合わせる。これで昔の日付にすることもできる。 現在の日付は 2002-12-31 (火) 日付を入力してください(年-月-日): または、コントロ−ルパネルの時計のアイコンをクリックすると時計の絵が出て来る。同 じ画面に日付と時刻表示も出て来る。日付や時刻のとこをマウスでクリックし、値を変え ることができる。市販ソフトの評価版などで、いついつまで使えるというのがある。この date コマンドで日付を遡って付ければ、その場でそのソフトは使えるようになる。 本当 はそういうことはやってはいけないのだが、新規に購入していて以前のバ−ジョンでの評 価版の機能を確認したい場合などあるだろう。もしそのようなことをする場合は、そのソ フトだけを稼働させるようにする。これで、これまで作成したファイルやアプリケ−ショ ンのデ−タ・ファイルなど、日付がおかしくなることは多分ない。念のため、他のソフト はその際には使わないようにした方が無難である。 (2) timed と NTP の併用 * 概要 NTP が使えないマシンやコンパイルするのがめんどうな場合、 NTP だけでなく timed デ −モンも使ってみよう。timed の設定の仕方は簡単。 timed -M としたマシンが時刻マス タ−になる。複数 timed -M がある場合、一番早く起動したのがマスタ−となり、次はス レ−ブとなる。スレ−ブはマスタ−が途中で落ちた場合に代わりをするのである。ただの クライアントは timed でよい。 timed -M と timed はブロ−ドキャストで情報交換する ので、同じセグメント内でのみ有効になる。 どうも timed のオプションで他セグメント のIPアドレスも指定できるみたいだが、そこは確認していない。 tcpdump で timed の挙動を見てみると、マシン1対1で 525/udp ポ−ト同士で情報交換 するのと、マスタ−がブロ−ドキャストを出しているのが見える。これらのパケットは4 分間隔でパッパッと出ている。クライアントの時刻は、最初のパケットを受け取るとすぐ 時計があうみたいである。NTP はそんなことないらしいが。試しに Apollo のクロックを 1年戻し1998年とし、時間も1時間程度遅らせてみた。これでもスパッと時計はあい ました。年数まで違っては時計はあわないのじゃないかと思ったので、やってみたのだが。 このマシンを全体のマスタ−とする ↓ Apollo INDY INDY Windows --------- ---------- --------- ---------- 桜時計は フリ−です。 | | | ntpd | | ntpd | | 桜時計 | プロトコルは NTP と | timed | |timed -M| | | | (ntpd) | SNMP が使えるとある。 --------- ---------- --------- ---------- | | | | --------*--------------*--------------*-------------*-------- node_abcd indy1 indy2 [ マシンのサポ−ト状況 ] timed は Apollo と INDY にはデフォルトで入っていた。SunOS 4.1.4 と Solaris 2.5.1 には timed はないみたい。Apolloでは NTP はコンパイルできたが、時刻はあわなかった。 [ ポ−ト番号:UDP ] | サ−バ側 クライアント側 ------|---------------------------------- timed | 525 525/broacast ntpd | 123 123/broacast/multicast Apollo の /etc/services ファイルでは NTP は 123/tcp,udp になっていた。 INDY では 123/udp になっていた。実際 TCP は使ってないようである。外の NTP サ−バから時刻を もらう場合は、ファイアウォ−ルで 123/udp を通すことになる。 ちゃんと、どこどこの アドレスからの 123/udp のみを許可するとした方が、念のためである。 * timed いろいろ $ /etc/timedc << timed デ−モンのツ−ル。Apollo の node_abcd です。 timedc> help clockdiff msite trace help quit ? timedc> msite << timed のマスタ−はどのマシンかな。 master timedaemon runs on indy1 timedc> clockdiff indy2 << node_abcd と indy2 との時間のずれを見る。 % tcpdump port timed << 4分ごと時刻をやりとりしている。indy2 で見てみた。 tcpdump: listening on ec0 15:12:03.098148 indy1.timed > indy2.timed: udp 268 [tos 0x10] 15:12:03.098617 indy2.timed > indy1.timed: udp 76 15:12:03.099694 indy1.timed > node_abcd.timed: udp 268 [tos 0x10] 15:12:03.103505 node_abcd.timed > indy1.timed: udp 76 15:12:03.104435 indy1.timed > 192.168.1.255.timed: udp 268 [tos 0x10] 15:16:03.250587 indy1.timed > indy2.timed: udp 268 [tos 0x10] 15:16:03.251041 indy2.timed > indy1.timed: udp 76 15:16:03.252109 indy1.timed > node_abcd.timed: udp 268 [tos 0x10] 15:16:03.256991 node_abcd.timed > indy1.timed: udp 76 15:16:03.257828 indy1.timed > 192.168.1.255.timed: udp 268 [tos 0x10] * Apollo の場合 /etc/rc.local /sys/node_data/etc/rc.local へのリンク。 ---------------------------------------------------- | | |# Enable the Berkeley time server daemon. |if [ -f /etc/timed -a -f /etc/daemons/timed ]; then | (echo " timed\c" >/dev/console) | /etc/timed |fi | | * INDY の場合 % chkconfig デフォルトではこのようになっている。 | マスタ−にするには % chkconfig timed on timed off とやってリブ−トする。 timeslave off (3) NTP のインスト−ル * INDY IRIX 5.3 の場合 % ftp ftp.u-aizu.ac.jp ftp> cd /pub/net/ntp ftp> ls -rw-r--r-- 1 root daemon 1295887 Mar 18 1998 ntp-4.0.72-export.tar.gz -rw-r--r-- 1 root daemon 1281022 Dec 13 1996 xntp3-5.87.tar.gz -rw-r--r-- 1 root daemon 1916434 Mar 18 1998 xntp3-5.92c-export.tar.gz % tar xvfz ntp-4.0.72-export.tar.gz << GNU の tar ならこれで展開できる。 % cd ntp-4.0.72-export % ls -F COPYRIGHT automake-1.2d.patches libparse/ ChangeLog blddbg.bat* missing* INSTALL bldrel.bat* mkdist.bat Makefile.am clockstuff/ mkinstalldirs* Makefile.in conf/ mksrc.bat NEWS config.guess* ntpd/ README config.h.in ntpdate/ TODO config.sub* ntpdc/ WHERE-TO-START configure* ntpmake* WINNT-README.html configure.in ntpq/ acconfig.h dot.emacs ntptrace/ aclocal.m4 excludes parseutil/ adjtimed/ html/ patches/ ansi2knr.1 include/ scripts/ ansi2knr.c install-sh* stamp-h.in authstuff/ kernel/ util/ autoconf-2.12.patches libntp/ % ./configure % make % make check % make install << /usr/local/bin に ntpd, ntpdate, ntpdc, ntpq, ntptrace, tickadj が入る。 ドキュメントは html/ 以下に入っている。 このディレクトリに入って % netscape . と やってみること。コンパイルするのは結構時間かかる。すぐ終わるかと思ったが、10分 ぐらいかかったか。これは正確な時間を GPS( Global Positioning System ) という装置 から取って、時刻マスタ−とするプログラムもいろいろ入っているからである。 ntpq と か ntptrace とかいったチェックソフトも入っている。ほとんど使うことはないが。 * Apollo SR10.4.0 の場合 [ 結論から言うと ] いろいろやってみたけどダメでした。NTP のバ−ジョンを双方、明示的に3にしたり2し たり。クライアントをブロ−ドキャストで受けるようにしたりしたけど。NTP サ−バの時 刻はマシンのシステム時計をここでは使ってみた。最初ロ−カルホストを指定する意味だ と思い server 127.0.0.1 とした。どうも違うらしい。インタ−ネットや雑誌を見ていた ら、ここは 127.127.1.1 とすべきらしい。127.127.1.0 という記述も見た。 それで両方 ともでテストしたが、やっぱり時刻は合わなかった。 % /usr/local/bin/ntpd $ /usr/local/bin/xntpd /etc/ntp.conf サ−バ /etc/ntp.conf クライアント ----------------------------- ------------------------------ |server 127.127.1.1 version 3 |server 192.168.1.2 version 3 |#broadcast 192.168.1.255 |#broadcastclient yes |driftfile /etc/ntp.drift |driftfile /etc/ntp.drift << INDY indy2 : 192.168.1.2 >> << Apollo node_abcd >> $ /usr/local/bin/ntpdate -b 192.168.1.2 4 Jun 13:06:28 ntpdate[3307]: no server suitable for synchronization found % tcpdump udp port 123 << indy2 で NTP のポ−トを見てみた。 tcpdump: listening on ec0 14:15:00.966068 node_abcd.ntp > indy2.ntp: v3 client strat 0 poll 6 prec -16 14:15:00.966894 indy2.ntp > node_abcd.ntp: v3 server strat 0 poll 6 prec -17 14:16:04.967304 node_abcd.ntp > indy2.ntp: v3 client strat 0 poll 6 prec -16 14:16:04.968094 indy2.ntp > node_abcd.ntp: v3 server strat 0 poll 6 prec -17 $ /usr/local/bin/xntpd -l /usr/tmp/time << ログもとってみる。 $ /usr/ucb/tail /usr/tmp/time 8 Jun 15:21:55 xntpd[1110]: logging to file /usr/tmp/time 8 Jun 15:21:55 xntpd[1110]: xntpd version=3.4y (beta multicast); Tue Jun 4 16:11:16 GMT+9:00 1996 (1) 8 Jun 15:21:55 xntpd[1110]: tickadj = 668, tick = 16666, tvu_maxslew = 39412 8 Jun 15:21:55 xntpd[1110]: precision = 20 usec [ 一応コンパイル ] 同じ ntp-4.0.72-export を Apollo にもってきてコンパイルしてみたがダメだった。 先 ず Apollo の新しい gcc がないのが致命的である。 純正Cコンパイラでもエラ−が出て ダメだった。そこで Apollo で実績がありそうな NTP を探すことにした。 WWWの "ア ポロコンピュ−タ化石館" のリンクギャラリ−から、ミシガン大学のサイトにあることが わかった。http://www.umich.edu/~archive/apollo/xntp3.4y.tar.gz README-apollo を先ず読んでみる。このファイルには2つのパッチが入っている。最初は 電子メ−ルによるもので、このパッチは xntp3.4y にはすでに当たっている。SR10.3.5の C 6.7 でテストしたとある。 次のは comp.sys.apollo ニュ−ス・グル−プに出たもので、 SR10.2 でコンパイルしたある。Config ファイルの DEFS に -DNOKMEM を入れよ、場合に よっては -DNO_SIGNED_CHAR_DECL も追加するべしとある。そして *** xntpd/ntp_io.c/1 以下の部分をパッチにして当てろとある。 先ずは xntp3.4y を展開したままで make をかけた。コンパイルはできたが時刻は合う気 配がない。仕方ないので、 README-apollo の2番目のパッチ部分を fff というファイル にしてパッチをあてた。これでもダメだった。まあ、ここはパッチの当て方のお勉強とい うことで。/usr/local/bin の patch は GNU のです。 Apollo には patch コマンドは入 ってません。 $ /bin/start_csh $ cd /usr/local/source/xntp3.4y $ /usr/local/bin/patch < fff Hmm... Looks like a new-style context diff to me... The text leading up to this was: | $ make $ make install << /usr/local/bin に xntpd, xntpdc, ntpq, ntptrace ntpdate, tickadj が一応入る。 * Red Hat Linux 9 では `25/04 別にソフトを取ってきて、コンパイルしたりインスト−ルしなくても最初から入っていた。 [システム設定]->[日付と時間] で出てくる画面で "ネットワ−クタイムプロトコル(ntp) を有効にする" にチェックし、時刻サ−バのURLかIPアドレスを記入する。ここでは "ntp1.jst.mfeed.ad.jp" と入れて [OK] をクリックした。これで自動的に ntpdデ−モン がバックグラウンドで稼働し、時刻を取りにいく。 ]# /usr/sbin/tcpdump udp port 123 でパケットの様子を見ると、[OK]を押したすぐにパケットが10個程ババっと流れる。こ れで ntp1.jst.mfeed.ad.jp へ時刻を取りに行っている。その後、約1分毎に現在の時刻 を取りに行く。この際流れるパケットは行き帰りの2個が見えた。NTTの117の時報 で、このコンピュ−タの時刻をチェックしたら、ほとんど同じだった。数秒の狂いはある のでないかと思ったが、まるでなかった。 入力するところにはプルダウンすると clock.redhat.com, clock2.redhat.comとかあるが、 一番上に来ているのだけが /etc/ntp.conf に反映されるようである。 [システム設定]->[サ−バ設定]->[サ−ビス] で {サ−ビスの設定}画面を見ると ntpd の ところにチェックが入っていて NTPv4 daemon ですと説明がでていた。 /etc/ntp.conf --------------------------------------------------------------------- |restrict default ignore |restrict 210.173.160.27 mask 255.255.255.255 nomodify notrap noquery |restrict 127.0.0.1 |server 210.173.160.27 "ntp1.jst.mfeed.ad.jp"と設定画面で記入したが、 |fudge 127.127.1.0 stratum 10 IPアドレスになって、この制御ファイルに記述 |driftfile /etc/ntp/drift されていた。NTP のコマンドは下のように幾つか |broadcastdelay 0.008 ある。ちなみに ntpq は、現在の状態を表示する |authenticate yes コマンドである。 |keys /etc/ntp/keys ]# cd /usr/sbin/; ls ntp* ntp-genkeys ntpd ntpdc ntptime ntptrace ntp-wait ntpdate ntpq ntptimeset ]# ntpq -p remote refid st t when poll reach delay offset jitter ============================================================================== *ntp1.jst.mfeed. ote-ntp1.jpnap. 2 u 76 128 377 42.947 2.783 0.189 ]# ping ntp.tut.ac.jp PING sagi.cc.tut.ac.jp (133.15.64.8) 56(84) bytes of data. ]# ping ntp1.jst.mfeed.ad.jp PING ntp1.jst.mfeed.ad.jp (210.173.160.27) 56(84) bytes of data. ]# ping clock.nc.fukuoka-u.ac.jp PING clock.nc.fukuoka-u.ac.jp (133.100.9.2) 56(84) bytes of data. (4) NTP による時刻の同期設定 * 内部ネットワ−クのホストの時刻同期 メ−ルサ−バのホストを内部ネットワ−クの正となる時計にする。他のホストは、このホ ストの時計に時刻をあわせるようにする。サ−ビスは NTP を利用することにする。 メ− ルサ−バのホストの様子をしばらく見て、時刻がどれだけずれて行くか調べてみる。あま りずれるようでなければ、このホストの内臓クロックを正の時計とする。そう、1週間に 数分程度ならいいのでないか。わざわざ外のタイムサ−バを使うまでのこともない。セキ ュリィティ的にも安全である。WWW と Gate と Mail ホストの時計は、例えば1週間に一 度NTTの 117 を聞いて、その場でマシンの時刻を合わせてしまうかだ。 ------- -------- | WWW | |Router| ------- -------- | | -------*-------*-----------*------- nix.co.jj | | 社内ネットの時刻マスタ−、セグメント1のマスタ−。 ------- ------- ------ | Gate| | Mail| ntpd Server |UNIX| ntpd Client ------- ------- 192.168.1.1 ------ | | | -------*-------*---------*--------------------*----- セグメント1 | 192.168.1.0 | ntpd Server ntpd Client ------- ------- --------- |hostX| |Linux| |Windows| -------192.168.2.1 ------- --------- 桜時計 | | | -------*------------------*----------*----- セグメント2 セグメント2のマスタ− 192.168.2.0 [ 192.168.1.1、Mail ホストの設定 ] /etc/ntp.conf 一応このホストを内部ネットの大元の時計とする。 ------------------------- その指定が 127.127.1.1である。同じセグメント |server 127.127.1.1 のホストへはブロ−ドキャストで時刻を知らせる。 |broadcast 192.168.1.255 |driftfile /etc/ntp.drift [ 192.168.2.1、hostX ホストの設定 ] /etc/ntp.conf hostX が Cisco のル−タだったりしたら,これを ------------------------- NTP の元サ−バにするという手もある。ル−タの |server 192.168.1.1 内臓時計は結構正確らしい。試したことないけど。 |broadcast 192.168.2.255 |driftfile /etc/ntp.drift [ その他 UNIX, Linux のホストの設定 ] /etc/ntp.conf NTP のクライアントはこれだけ。yes はなくても ------------------------- いいかも知れない。要チェック。 |broadcastclient yes |driftfile /etc/ntp.drift * 国内の時刻の供給は? `21/03 平成11年11月16日に、郵政省通信総合研究所(CRL) と IIJ と MFEED という会社が "インターネット上への日本標準時供給サービスに関する共同研究開始"というのを発表し ている。郵政省通信総合研究所、現在は総務省になっているが、ここの周波数標準課とい うところが日本の標準時(JST)を供給している。この標準時を大元にして、 通信総合研究 所が NTP 用の Stratum-1 サ−バを運用し、 MFEED が Stratum-2 サ−バを運用すること を目標に、共同研究していた。 Stratum-2 は Stratum-1 から時刻の供給を受けるという 階層構造をとる。研究は平成12年3月末までということだったので、もう終わっている のだが、まだこのような NTP サ−バは設置されていない。 設置しようという動きも止ま っているみたいである。MFEED は Cisco や IIJ など多くのインタ−ネット関連の企業が 出資してできた会社である。Stratum はストレ−タムと呼ぶ。 現在の国内の Stratum-1、Stratum-2 サ−バはどうなっているか。通信総合研究所のホ− ムペ−ジ http://jjy.crl.go.jp/ の "周波数標準・標準時などのQ&A" から、 全世界 の NTP サ−バのリストをたどることができる。それによれば、福岡大学に Stratum-1 が 2つ、Stratum-2 が民間のが1つあった。'96/08/01 時点での情報となっている。リスト は http://www.eecis.udel.edu/~mills/ntp/servers.html で、福岡大学の1つは Public NTP Primary ( Stratum-1 ) Time servers, JP clock.nc.fukuoka-u.ac.jp(133.100.9.2), NTP V3.3 primary(GPS clock) と掲載されていた。 Stratum-2 の民間のは MFEED でない、 知らない会社の名前が書かれていた。以前調べた時は豊橋技術科学大学も Stratum になっ ていた気がするが。ともかく早く国内のタイム・サ−バをきちんとして欲しいものである。 `21/06 追記。上の共同研究による Stratum2 NTP サ−バのサ−ビス開始。`21/04/10から 来年3月末までの実験サ−ビス。よければそれでずっとサ−ビスするらしい。誰でも利用 できる。http://www.jst.mfeed.ad.jp/,"Experimental NTP Servers (Public Stratum2)" を見られたい。NTP サ−バは ntp1.jst.mfeed.ad.jp、IPアドレスは 210.173.160.27で ある。ntp2 と ntp3 もある。`25/04 追記。MFEDの実験サ−ビスはそのまま "時刻情報提 供サ−ビス for Public" として継続されていた。RFC1305で規程されている NTP Version 3 に準じた Stratum2 の NTPサ−バで時刻情報を提供している。どうも一般的にどんどん 使われているようである。福岡大学も豊橋技術科学大学のも、まだサ−ビスはあった。し かし福岡大学の方は利用者が多過ぎて、時刻がずれたという話もあるようである。 * 参考 「NETWORK MAGAZINE」 `21/07, P.176〜179。桜時計の記事です。 > "もう1ランク上を目指す Windows システム運用管理"、第8回 全PCの時計を正確に 「UNIX MAGAZINE」 '99/06, P.58〜62。"DAEMONS & DRAGONS, NTP による時刻の同期"。 > 調べ終わった時に記事が出た。参考にさせてもらった。'99/06。 http://www.matsusaka-u.ac.jp/~okumura/networking/ntp.html > 最初に NTP について参考にしたサイトです。 (5) 全システムの時刻同期 * 見取図 WebMail Mail-Relay 仮想IP : hostM'□ hostA'□ アドレス □ Router |.4 |.3 |.1 -------------------------------------------------------- 202.241.128.0 | |.2 hostM hostA in.named, sendmail hostM は ------- □ □ WWWサ−バ Cobalt Qube3J FireWall-1 |hostG|.2 |.4 |.1 | |--------------------- hostA,G,B は NetCache ------- 192.168.2.0 sendmail, qpopper Solaris 2.6 □ |.2 hostB □ InterScan VirusWall |.5 | |.1 -------------------------------------------------------- 192.168.1.0 | .9 Mail-Store | |.3 -------- □ □ hostC indy |Summit| Windows 98 管理者用 -------- いろいろ機器があります。NetCache, Summit, SonicWALL, Cobalt Qube3J, Windows パソ コン多数など。これら各種ログに関係してくる。 FireWall-1、InterScan、WWWサ−バ、 メ−ル送受信のログ。先ずは date コマンドなどで手動で、マシンの内臓時計の時刻を合 わすことにする。それで時刻が狂うようだったら、NTP の導入を考えてみたい。 [ NetCache の時刻を合わせる ] % telnet 192.168.1.5 デフォルトのままではロッグイン時、ユ−ザ名などなし。 cache> Tue Oct 15 14:24:39 JST [telnet_0:info]: root logged in from host: 続く cache> date 192.168.1.3 Tue Oct 15 14:29:58 JST 2002 << 約5分進んでいた。 cache> date 10151425 << 10月15日午後2時25分にセットする。 Tue Oct 15 14:25:00 JST [rc:info]: Time changed (via "date") to Tue Oct 15 続く Tue Oct 15 14:25:00 JST 2002 14:25:00 JST 2002 cache> Ctrl+D で抜ける。 WWWブラウザで設定する場合。http://192.168.1.5:3132/ で、NetCache の管理画面へ アクセスする。[Setup]->[System]->[Clock] で日付と時刻の設定をする。NetCache Time Zone: Japan にする。Synchronization Protocol: の設定で、時刻を同期させることもで きる。デフォルトは ntp になっている、他 sntp, rdate, rfc868 が選択できる。 [ Summit 24 の時刻を合わせる ] % telnet 192.168.1.9 デフォルトのままではロッグイン admin, パスワ−ドなし。 Summit24:1 # show switch << これで、日付や時刻も出てくる。 | しかし Summit は時計を合わせ Current time: Tue Oct 15 14:38:13 2002 ても、あまり意味はないかな?。 Timezone: GMT Offset: 0 minutes, DST is in effect. Auto DST check: Enabled << DST というのは夏時間うんぬん | のこと、日本では関係ない。 Summit24:2 # config time 11/28/2002 11:19:00 << mm/dd/yyyy hh:mm:ss の指定。 Summit24:3 # config timezone +540 << GMTからのオフセット。540分、 * Summit24:4 # save つまり9時間プラスに設定する。 Do you want to save to the primary configuration database? y ................... Saved to primary configuration database. Summit24:5 # quit ExtremeWare は、RFC1769 に基づく Simple Network Time Protocol( SNTP ) の Version 3のクライアント部分をサポ−トする。ExtremeWare は Summit のOS、SNTP は NTP の 簡易プロトコルである。SNTP クライアントは NTP サ−バから時刻の供給を受けることが できる。SNTP の設定コマンドは、# show sntp-client などである。 [ Cobalt Qube3J の時刻を合わせる ] 適当なマシン、例えば Windows 98 から http://192.168.2.4:444/ へアクセスし、admin で入る。[システム]->[時刻] の画面で時刻をセットする。 ただし、分単位でしか合わす ことができない。NTP サ−バのアドレスを入れるところもある。 * メ−ル関係から設定していってみる Windows 98 の Netscape Messenger から ikken@tcp-ip.or.jj へメ−ルを送る。向こう では自分もメ−ルを受けて、katou@nix.co.jj にも転送するようにしている。 Return-Path: Received: from hostA.nix.co.jj by hostB.nix.co.jj (8.8.5/nix.1.0) id PAA20456; Thu, 10 Oct 2002 15:39:47 +0900 (JST) << hostB。 | プロバイダを通って帰ってくる Received: from hostB.nix.co.jj (hostB [192.168.1.1]) by hostA.nix.co.jj (8.12.5/8.12.5) with ESMTP id g9A6XG7X017954 for ; Thu, 10 Oct 2002 15:33:17 +0900 (JST) << hostA の時刻。 Received: from nix.co.jj by hostB.nix.co.jj (8.8.5/nix.1.0) id PAA20446; Thu, 10 Oct 2002 15:39:28 +0900 (JST) << hostB の時刻。 Message-ID: <3DA51BF7.FC7BAFDB@nix.co.jj> Date: Thu, 10 Oct 2002 15:19:35 +0900 << Windows 98 の時刻。 From: かとう X-Mailer: Mozilla 4.78 [ja] (Win98; U) X-Accept-Language: ja MIME-Version: 1.0 To: ikken@tcp-ip.or.jj Subject: TEST DESU Content-Type: text/plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit X-Mozilla-Status: 8001 X-Mozilla-Status2: 00000000 X-UIDL: [eo"!F*1"!(N]!!:]a!! マシンの内臓時計のテストです [ Windows 98 の時刻を合わせる ] C:\WINDOWS> time 現在の時刻は 15:02:11.03 時刻を入力してください: 15:10 << 手元の時計を見ながら、 午後3時10分になった らリタ−ン・キ−を押す。 [ Mail-Store の時刻を合わせる ] Solaris 2.6 % telnet 192.168.1.1 << 管理者用ホストから telnet で入った。 # date このマシンも時刻がずれていた。5分程遅れ 2002年10月15日 (火) 15時14分19秒 JST ていた。 Mail-Relay のホストも同様合わす。 # date 10151519 こちらは10分程遅れていた。やはりたまに 2002年10月15日 (火) 15時19分00秒 JST は時計を合わせなければいけない。 * 時刻に関する新しい動向 タイムスタンプサ−ビス、時刻公証サ−ビスというのが出てきた。信頼のおける第三者に、 文書をいつ何時何分に作成したのか証明してもらう。対外的には必要になってくるだろう。 タイムスタンプサ−ビスは企業間での文書のやりとりに。役所に出すような文書には、時 刻公証サ−ビスが用いられていくのでないか。自前で、高精度な時刻を GPSなどから配信 を受けネットワ−ク・タイムサ−バを設置する場合もあるだろう。楽天やヤフ−のオ−ク ション・サイトでの1秒を争うような場合に必要であり、もうすでに導入しているとのこ とである。文書の時刻認証はXMLの電子署名フォ−マットが利用されるのが濃厚である。 Word や Excel の最新バ−ションは、XMLでタイムスタンプを押すことができるように なっているはずである。 時刻配信プロトコルは NTP バ−ジョン4というのが新しくでき た。公開鍵暗号方式を用いて第三者による時刻の改竄ができないようになっている。今後 サイバ−タイムビジネスが土俵に上がり、商取引きや公文書などで "時刻" は必須のもの になっていく気がする。 時刻認証システム構築パッケ−ジ http://www.seiko-cybertime.co.jp/ > Time Stamp Server SecureTSS。セイコ−プレシジョン(株)。 電子文書が作成された時 刻を認証。存在証明、改竄の有無の証明に役立ちます。文書管理電子商取引関連、電子 自治体向けシステムに利用できる。 Time Server TS-2010、Windows 2000 Server、SQL Server 2000 が必要。クライアントはWWWブラウザ。2003年の3月に見た。 高精度標準時刻サ−バ > Time Server TS-2010 セイコ−プレシジョン(株)製。45万円位。ネットワ−クに接続 する。テレホンJJYとFMの2タイプがある。通信総合研究所のテレホンJJYサ− ビス、修正精度 +/- 10ms、修正頻度1−6回/日(デフォルト1回)、 付属モデムで公 衆回 線経由でテレホンJJYにアクセスする。FMタイプは NHK FMラジオの7時お よび19時の時報を検出して修正する。+/- 100ms、いわばネットワ−クラジオみたい。 TymServe 2100/2100LD ネットワ−ク・タイムサ−バ http://www.marubun.co.jp/aero/ > 2002年の Interop の丸文(株)のブ−スで見た。GPS 衛星から UTC 時刻を参照する。 精度は 1 microsecond,relative to UTC。その他 IRIG-B タイムコ−ド参照、ダイアル アップ・サ−ビス参照もできる。NTP v2/v3 対応。もう1つ NTP v4 に世界初で対応と いう GPS 衛星利用の SyncServer S100 を2002年6月から販売する、138万円か ら。これら米国 Datum 社開発の製品である。 SII時刻認証サ−ビス クロノトラスト(Chronotrust) 2002年の Interop パンフ > 日本初をうたうインタ−ネット上の時刻認証サ−ビス。セイコ−インスツルメント(株)。 時刻配信サ−ビス、時刻監査サ−ビス、タイムスタンプサ−ビス。時刻監査サ−ビスは 1時間に1回対象サ−バの時刻を検証する、規定値を超えた場合はアラ−トのメ−ルを 管理者に通知する。基本料金5万円/月1台、ログ保管20万円/年1台。ハッシュ化 されたデ−タに時刻認証を加えるタイムスタンプサ−バ Ni-5110A もある。 * 今の時刻は何時? `24/10 仕事の場所が変わって壁掛けの時計がなくなった。これまではその時計を見て、コンピュ −タなんかの時刻をセットしていたのだが。小生腕時計持ってないし、持っているのはカ −ド型の電卓についている時計。これも久しく時計合わせしてないし。ともかく、どうも キャッシュサ−バの NetCache の動きが怪しい気がする。 NetCache の内臓クロックを見 たら時計がだいぶ進んでいた。それでどこかウェブに時刻が出てないかググってみました。 独立行政法人情報通信研究機構の日本標準時。正確な時刻は日本標準時グル−プのペ−ジ を参照されたし。ネットワ−クが混み合っている時は、表示誤差が大きくなる。キャッシ ュも聞いていると正しい時刻でなくなる。このシステムはNTPにより、WWWサ−バの 時計を日本標準時に合わせ、その時計を表示している。電話の117で時刻を聞いたら5 秒遅れてました。ブラウザは Netscape、プロキシはかましてない。 ----------------------------------------------------------------- | http://www2.nict.go.jp/cgi-bin/JST.pl |---------------------------------------------------------------- | | WWWサ−バから供給された時刻 | | 日本標準時(JST) : [ Thursday, November 18, 2004 15:17:00 ] | 協定世界時(UTC) : [ Thursday, November 18, 2004 06:17:00 ] | 国際原子時(TAI) : [ Thursday, November 18, 2004 06:17:32 ] | 地域標準時 : [ Thursday, November 18, 2004 15:17:00 ] | | あなたのコンピュ−タの内臓時計 | | 時刻 : [ Thursday, November 18, 2004 15:17:42 ] | | 地域標準時との差 : [ 42 秒 進んでいます ]