Windows 2000 Server による NTP サーバの立ち上げ
Windows2000 Server で NTP サーバを立ち上げようと探していたところ、「MS の部屋 (http://www.sato.nakano.tokyo.jp/) 」と言うところに、「「謎のGPSユニット」で時刻同期 (http://www.sato.nakano.tokyo.jp/gps/product/furuno/junk/furuno-junk.html) 」と言うページを見つけました。この中で、「<時刻同期用ソフト利用>---NMEA+1PPS利用可能なもの」を参考にさせていただきました。
上記のページから、私が求めていた物に非常に近い NTP サーバだと思ったので、すぐに、http://www.five-ten-sg.com/ からダウンロードして試してみました。この時点のバージョンは 4.1.71 でした。
VC6++でできており、ソースも提供されているようですが、私はVC6も知識も持っていないため、バイナリーをダウンロードしました。
● インストールの開始
● インストールされるファイル
%SystemRoot%\ntp.conf
%SystemRoot%\ntp.drift%SystemRoot%\system32\ntpd.exe
%SystemRoot%\system32\ntpdate.exe
%SystemRoot%\system32\ntpdc.exe
%SystemRoot%\system32\ntpq.exe
%SystemRoot%\system32\ntptrace.exe
● 設定方法
Linux の NTP の設定と同じ様です。 ntp.conf をメモ帳等で修正すればよいようです。インストール時に NTP サーバを指定しているので、その分は既に記述されています。
詳細の記述方法は「 NTP 4.x for Windows NT (http://www.eecis.udel.edu/~ntp/ntp_spool/html/hints/winnt.html)」の「Trimble Palisade Receiver (http://www.eecis.udel.edu/~ntp/ntp_spool/html/driver29.html) 」参照してください。(2006/4/17 ダウンロードサイトにリンク切れが発生しましたのでリンクを削除します)
私は、Server の設定のみ追加してみました。
● 起動方法
サービスで起動しているので、サービスのウインドウで指定するしかないようです。コマンドプロンプトから起動してみましたが、起動できませんでした。
● 動作確認
Linux と同様に
C:\>ntpq -p と入力する。
remote refid st t when poll reach delay offset jitter
==============================================================================
+ntp1.jst.mfeed. mf-isdn3.mfeed.2 u 77 64 176 36.867 49.885 108.525
+ntp2.jst.mfeed. mf-isdn3.mfeed.2 u 13 64 73 35.847 44.439 147.385
+ntp3.jst.mfeed. mf-isdn4.mfeed.2 u 77 64 176 35.716 34.853 159.936
*sutntp.sut.ac.j .GPS. 1 u 13 64 173 41.373 33.640 90.205などと表示される。
● 精度
「 Trimble Palisade Receiver 」の中の記述で Windows NT 系は精度が 1ms 程度になっていました。他の OS は 10us 〜 50us なので、何か NT 上の仕様の問題があるのかもしれません。
● ログ
ログは Windows のイベントログに吐き出されます。かなり頻繁に吐き出される場合がありますので、ログの容量等に注意した方がいいでしょう。
<あとがき>
Windows2000上で NTP サーバは動いているようです。ただ、精度の面で他の OS とは数倍劣るようです。現実的には問題がないようにも考えられますが、比較的安価に精度の高い物を手に入れられるなら、そちらの方がよいかと思います。
Windows2000上で長期に渡って使用してみてから決める予定です。
● 長期運用の結果 (2001/12/26 追加)
24時間の計測の結果、LAN 環境下で2台の SNTP クライアントから5分に1回程度問い合わせを行うと、2回に1回程度、失敗していました。また、平均すると20〜40ms程度の誤差があるように感じられました。(環境の影響もあるかもしれませんが。)
その為、今回はこのアプリケーションによる、 NTP サーバの構築は見送ることにしました。
他のシェアウエア、フリーウエア等で、再度、構築してみることにしました。
現状では、精度を求めると Linux で構築するしかないように感じます。
このソフトウエアはアンインストールしようとしても、「アプリケーションの追加と削除」の中に表示されません。インストールされたファイルをエクスプローラにて削除し、レジストリを検索して該当する項目を削除するしかありませんでした。
削除したレジストリ・キー
マイ コンピュータ\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\NTP
マイ コンピュータ\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Network Time Protocol
マイ コンピュータ\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\NTP
マイ コンピュータ\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Network Time Protocol
● その他の方法 (2002/1/15 変更)
SNTP サーバの機能を持った、フリーウェア、シェアウェアがあるので、それを使用します。私が使用した代表的な物は下記のソフトウェアです。
AdjustPC
NTのサービスとして稼働し、SNTP サーバとしも稼働します。ピッタリでチュ! (シェアウェア)
NTのサービスとして稼働し、SNTP サーバとしも稼働します。また、時間の誤差をグラフで表示したり、時間で PC のシャットダウン等ができます。私は、時刻源となるサーバに F 社のフリーのソフト(ただし、ハードのサポート契約を行ったユーザのみ配布対象なので、ソフトの名前は伏せさせていただきます。)を入れました。設定をどうすればよいか試行錯誤中です。
F 社のソフトより、「ピッタリでチュ!」の方が優れている様にも感じましたが、私のサーバを建てた環境下では時間によってネットワークがきつくなるので、 F 社のソフトはサーバを4つ登録できるメリットがあった為に使用しました。設定内容は、
8分おきに時間を確認し、問い合わせ応答時間が80ms以上はエラーとし、3ms以上、時間に誤差があれば同期する様にしました。
どのソフトもネットワーク遅延が大きい場合に誤差が大きくなるように感じられます。長期運用して、誤差の少ない設定が必要だと思います。