ActiveDirectory環境でNTPを設定する

WindowsのActiveDirectoryでは通常ドメインコントローラーの時刻をドメイン内に配布していますが、そのドメインコントローラーの時刻がずれてしまうことがありました。

手動でその都度直すのもよいのですが、ずれないようにNTPを設定することにしたため、そのメモを残します。

環境

 

NTP設定の確認方法

コマンドプロンプトで以下を入力します。

w32tm /query /peers

 

デフォルトの設定

ピア: time.windows.com,0x9
状態: アクティブ
残り時間: 486014.9856000s
モード: 3 (クライアント)
階層: 0 (未指定)
ピアポーリング間隔: 0 (未指定)
ホストポーリング間隔: 9 (512s)

 

NTPの設定

デフォルトのMicrosoftタイムサーバをやめて、NICTのNTPを利用することとします。

設定手順は以下のサイトを参考にしました。
Windowsタイムサービスを構成する - TechNet

 
デフォルト設定とNICT間の時刻差異を確認します。

w32tm /stripchart /computer:ntp.nict.jp /samples:5 /dataonly

 
NICTのNTPを使用するための設定を行います。

なお、相手がWindowsサーバとは限らないため、同期方法はクライアントモードとします。

w32tm /config /manualpeerlist:ntp.nict.jp,0x8 /syncfromflags:manual /reliable:yes /update

入力後、「コマンドは正しく完了しました。」と表示されれば、成功です。

 
NICTのNTPに切り替わっているかを確認します。

# 確認
w32tm /query /peers

# 結果
ピア数: 1

ピア: ntp.nict.jp,0x8
状態: アクティブ
残り時間: 638.3914567s
モード: 3 (クライアント)
階層: 1 (主参照 - 電波時計で同期)
ピアポーリング間隔: 15 (32768s)
ホストポーリング間隔: 10 (1024s)

 

/manualpeerlistの第二引数

上記では「0x8」とすることでクライアントモードでの動作をさせていますが、他にも引数がいくつかあります。

それらについては、以下に詳しくまとめられています。
3.Active Directory 環境における時刻同期 - @IT

 
ただ、この中にはデフォルトで指定されていた「0x9」がありません。

「0x9」は新しい値なのか、それともビットフラグなのかを調べたところ、以下の記事が見つかりました。

By making the primary NTP server flag 0x9, we made it “Client 0x08 + SpecialInterval 0x01” and as for the second NTP time server.

Configuring your PDCE with Alternate Time Sources - Ask the Directory Services Team Blog

ビットフラグのようですね。