クローズドネットワークでNTPを使いたい

クローズドネットワークでNTPを使いたい

PCの時計が遅れがち

インターネットに接続のない閉じたネットワークでは、Windows PCの時計は直ぐに狂ってしまいます。別にマイクロソフトのWindowsが悪いわけではなく、PCの性能によるところなのだと推測します。

時間がずれる理由には、PC内部のCMOS用のボタン電池の電池切れなんていう理由もあるそうです。ちなみに殆どのずれの場合、PCの時間は遅くなります。早いほうにずれることはありません。

インターネットに繋がっているPCであれば、どこかのNTPサーバと同期すれば時間はずれません。

しかし、大学には閉じたネットワークに配置されたPCというのが結構存在します。そんなときには、どうすればいいのでしょうか。

定期的に手動で時刻合わせ

前任の担当者は、PCの時刻合わせを毎週一回していたみたいです。そんなのやってられないなというのが、そもそものスタートになるわけです。

近くのサーバに接続してみる

同じネットワーク上にサーバがあるなら、これに接続してみる。この方法が、煩わしい手動での時刻合わせを不要にする便利な方法です。しかし、このサーバも当然クローズドのネットワークに接続しているので、NTPで外のサーバと時刻同期をしているわけではありません。ですので、時間はズレます。ただし、ズレの度合いは小さいのが一般的です。

さらに、サーバの管理者が定期的に時間を合わせている可能性があります。サーバの管理者が自分でなければ、そこに乗っかるのは良いアイデアです。

Linuxサーバに接続する場合

まずLinuxサーバのIPアドレスをネットワーク管理者かサーバ管理者に聞きます。そのLinuxサーバを触る権限があれば、自分でIPアドレスを調べることもできますね。

次にそのIPアドレスで、WindowsPCからLinuxにpingを飛ばしてみましょう。コマンドプロンプトを起動して、

> ping ntp_servers_ip_address

いかがでしょうか。ping飛びましたかね。

そして、Linuxサーバでは大体ntpdというサービスが起動しています。
なので、これが起動していて、NTPサーバとして機能していると仮定して、勝手にWindowsPCから同期してしまいましょう。コマンドプロンプトを起動して、

> w32tm /config /manualpeerlist: ntp_servers_ip_address, 0x8 /syncfromflags:manual

> w32tm /config /update

終わったら、regeditで確認してみましょう。

場所は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parametersです。
ここのNtpServerというところの値がntp_servers_ip_address, 0x8 /syncfromflags:manualに変わっているはずです。

次にWindowsデスクトップ画面右下の日時をクリックして日付と時刻のプロパティを開いてみると、同期がうまくいっています。
(自動的にインターネット時刻サーバーと同期するにチェックがついていますが、気にしないでください。ここの設定より、レジストリが優先されます。)

Windowsサーバに接続する場合

サーバ名が分かったらコマンドプロンプトで、

> net time \\server_name /set /yes

で同期完了です。

同期の間隔を変更する

regeditで、場所は、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClientになります。

SpecialPollIntervalをダブルクリックして、表記を10進数にしてから同期の間隔を秒で入力します。

1日間隔での同期なら、86400 を入力。(60秒×60分×24時間)