第3回 UNIXベースのNTPサーバとWindows Timeサービス:Windowsネットワーク時刻同期の基礎とノウハウ(3/3 ページ)
Windowsの時刻同期サービス解説の最終回。UNIXベースのNTPサーバと連携する方法やシステム内で独立したNTP階層を作成する方法についてまとめる。
NTPクライアントとしてのみWindows Timeサービスを利用する
状況によっては、ほかのコンピュータから時刻同期の提供を受けたいが、自身の時刻の提供は明示的に行いたくない場合もあるだろう。このような場合、Windows TimeサービスではTime Serverプロバイダ(NTPサーバ機能を提供しているコンポーネント)を無効とすることで、NTPクライアントとしてのみ利用することができる。このためには、次のようにレジストリ値を変更する。
項目 | 内容 |
---|---|
キー | HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer |
値の名前 | Enabled |
型 | DWORD |
値の内容 | 0x0 (0x1はONの状態となっている) |
NTPサーバ機能を無効にする設定 |
NTPクライアントのみを利用する環境では、参照先NTPサーバから必要時に時刻同期が行われていれば、それ以上に要件を求められないことが少なくないので、こういったときには、必要な一定時間間隔で時刻同期を行わせればいいだろう。この場合、NTPServerレジストリ値を0x1モードで動作させ、SpecialPollIntervalレジストリ値に必要な秒数を設定させればよい。
項目 | 内容 |
---|---|
キー | HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\Parameters |
値の名前 | NTPServer |
型 | REG_SZ |
値の内容 | <NTPサーバのIPアドレス>,0x1 |
キー | HKEY_LOCAL_MACHINEのSYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient |
値の名前 | SpecialPollInterval (ポーリング間隔) |
型 | DWORD |
値の内容 | 0xe10 (単位は秒。0xe10秒=3600秒=1時間) |
一定時間間隔でNTPサーバに同期するための設定 |
上記Enabledレジストリ値の設定を0x0とした場合、NTPプロトコルの同期方法はNTPServerレジストリ値の第2パラメータの値によらず、すべてClient/Serverモードで同期されるため、時刻同期についての問題が発生することは、通常よりは少なくなるだろう。
なお、LinuxのNTPクライアント・アプリケーションとしてntpdateというコマンドがある。これは上記と同じく、指定したNTPサーバから強制的に時刻同期を行わせるコマンドである(オプションによりslewモードで同期させることもできる)。ただしWindows Timeサービスとは異なり、デーモン(サービス)ではないため、定期的に同期させるためには、cron(Windowsのタスク・スケジューラに相当する機能)を利用して繰り返し実行させる必要があるだろう。
Windows Timeサービス以外のNTP時刻同期のためのWindowsプログラム
本稿では、Windows Timeサービスを利用した時刻同期について述べてきたが、実はWindows NTベースで動作するntpd互換プログラムが以前から存在し、多くのユーザーに利用されている。入手方法は以下のWebページを参照いただきたい。
- five-ten-sg.com - 510 Software Group(「Utility programs for NT」という項目を参照)
http://www.five-ten-sg.com/ - NTP 4.1.72 プログラム (上記ページにあるプログラムへのリンク):
http://www.five-ten-sg.com/util/ntp4172.zip
このプログラムはUNIX上で動作するntpdなどのNTPプログラムを移植した内容であるため、ほぼUNIX上のものと同様に動作する。UNIXやLinux環境にWindowsを投入した際の時刻同期に関する問題が起こりにくく、使い勝手がUNIX上のそれと同様なため、UNIX管理者を中心に重宝されるプログラムである。
このプログラムはWindows上ではサービスとして登録したうえで利用することとなるが、Windows Timeサービスが動作している環境では、そのままでは利用ポートが衝突してしまい、サービスが動作しない。そのためこのプログラムを利用する際には、Windows Timeサービスを事前に停止させておく必要がある。
最後に
Windows XPおよびWindows Server 2003上のWindows Timeサービスは機能が拡張され、UNIX/LinuxのNTP環境に組み込んで利用することもある程度は可能となった。このプログラムが実装される以前は、同様の実装が必要であれば、移植版のntpdを導入するより方法がなかったことを考えれば、こういった実装が組み込まれたことは、システム管理上非常に有用と考えられ、大いに歓迎すべきことである。
ただしマイクロソフトでは、Windows Timeサービスを、ドメイン環境での利用に最適化した実装を行っているようにも見受けられ、その設定を管理者自身がきちんと把握/構成するには、NTPプロトコルの実装に沿った形でマイクロソフトの資料を読み下す必要がある。そのうえで、調査と検証を行う必要があることを考えると、Windows Timeサービスを自由自在に取り扱いたいと考えるなら、それなりの心構えと準備が必要となるだろう。
また、マイクロソフトのサポート技術情報にあるように、OSリリース時のWindows Timeサービスはいくつかの不具合を抱えているため、機能を正常に使うためには、どうしても最新のサービスパックないしは必要な修正プログラムを適用させなければならない。最新のサービスパックや修正プログラムを適用することがちゅうちょされる環境であれば、相応に実績のある移植版のntpdなどを利用する手法も検討されてよいだろう。
「運用」
Copyright© Digital Advantage Corp. All Rights Reserved.