完全ローカルのドメイン環境における時刻同期設定

前書き

Active Directoryのドメイン環境で、さらにインターネットに出ていかない完全ローカルな環境の場合の、時刻同期(NTPサーバー構築)の方法について備忘録を残す。
超シンプルに書こうと思う。

繰り返しとなるが、以下のような環境の場合の話だ。

<環境>
・ドメインコントローラが存在するActive Directoryドメイン環境である
・メンバサーバーを含め、インターネットへは一切出ていかない。

 

方法をざっくり書くと以下のようになる。

<<方法>>
・ドメインコントローラに権威のある(一番偉い)NTPサーバーとして宣言させる
・メンバーサーバーたちには、ドメインの中で権威のある(一番偉い)NTPサーバーを探すという設定を入れる。

 

設定を入れる箇所は、ずばりレジストリ値である。

レジストリエディタの起動は、みなさんご存知の通り[ファイル名を指定して実行]ダイアログボックスに「regedit」と入力して[OK]をクリックすれば良い。

regedit

 

ドメインコントローラの設定

設定を入れる場所は合計5箇所である。

キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config
値の名前:AnnounceFlags
型:REG_DWORD
設定値:0x5
※「時刻サーバとして公開するかどうか」「時刻サーバとして権威があるかどうか」を決定するレジストリ値である。
「0x5」:時刻サーバとして宣言する
「0xa」:時刻サーバとして宣言しない
キー:KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters
値の名前:Type
型:REG_SZ
設定値:NoSync
※「時刻同期をどのマシンから行うか」を決定するレジストリ値である。ドメインコントローラは誰とも時刻同期を行わないので、設定値は「NoSync」となる。
「NoSync」:同期を行わない
「NTP」:NtpServerレジストリ値(後述)で指定したサーバから同期を行う
「NT5DS」:ドメイン階層により決定されたサーバから同期を行う
「AllSync」:ドメイン階層と外部NTPサーバの両方から同期を行う
キー:KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters
値の名前:NtpServer
型:REG_SZ
設定値:(空欄)
※「参照先のNTPサーバ」と「同期モードと同期の間隔」を指定するレジストリ値である。ドメインコントローラは誰とも時刻同期を行わない。そして自分自身を同期先に指定することは許されていないので設定値は空欄である。
キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer
値の名前:Enabled
型:REG_DWORD
設定値:0x1
※「NTPサーバ機能が有効かどうか」を決定するレジストリ値である。
「0x1」:有効
「0x0」:無効
キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config
値の名前:LocalClockDispersion
型:REG_DWORD
設定値:0x0
※この値が0になっていないと不正確なNTPサーバと認識されてしまうため、ドメインコントローラにおいては「0」を設定する。




メンバサーバー側

ドメインのメンバサーバー側で設定する場所は1つだけだ。

キー:KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Parameters
値の名前:Type
型:REG_SZ
設定値:NT5DS
※前述したが、「NT5DS」はドメイン階層により決定されたサーバから同期を行うという設定である。

 

検証

設定が完了したら、実際に時刻同期ができるか確認を取る。

①.設定をしたメンバサーバでWindowsサービスを起動し「Windows Time」サービスを再起動する。

WindowsTimeサービス再起動

②.イベントビューアーを起動する。
※[ファイル名を指定して実行]ダイアログボックスに「eventvwr」と入力し[OK]ボタンをクリックすると起動できる。

eventvwr

 

③.[システム]ログに、下記のようなメッセージが表示されていれば、ドメインコントローラ(NTPサーバ)と時刻同期ができている。

システム時刻とタイムソース [ドメインコントローラのホスト名](ntp.d|0.0.0.0:123->[ドメインコントローラのIPアドレス]:123)の同期を取っています。

タイムプロバイダー NtpClient は現在 [ドメインコントローラのホスト名](ntp.d|0.0.0.0:123->[ドメインコントローラのIPアドレス]:123)から有効な時間データを受信しています。

Windowsイベント成功ログ

ちなみに、123ポートはNTP(Network Time Protocol)が通信するときのポート(ウェルノウンポート)である。

 

補足

もしActive Directoryを冗長化しており、2台めのドメインコントローラが存在する場合は、2台めのドメインコントローラのみ以下の設定値を見てほしい。

キー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time\Config
値の名前:AnnounceFlags
型:REG_DWORD
設定値:0xa
※ドメインコントローラのAnnouseFlagsの値は初期値で「0x5」となっている可能性がある。

 

最後までお読みいただきありがとうございました。