未だにWindowsServerの時刻同期はW32timeサービスによって管理されている。
ADドメインに参加したWindowsサーバOSでNTPサーバ指定を変更する方法をナレッジとして登録する。
NTPサーバーを指定する
1.Windows Timeサービスを開始する
サービス管理コンソールにて"Windows Time"を開始する
2.タイムプロバイダ設定を確認する
現在のタイムプロバイダを確認。/sourceオプションはNTP要求先の確認、/peersオプションはNTPサーバとの同期状態を確認できる。
C:\Windows\system32> w32tm /query /souce
HostName(Active Directory Server Name)
C:\Windows\system32> w32tm /query /peers
ピア数: 1
ピア: HostName
状態: アクティブ
残り時間: 23619.029770s
モード: 3 (クライアント)
階層: 1(主参照 - 電波時計で同期)
ピアポーリング間隔: 15 (32768s)
ホストポーリング間隔: 15 (32768s)
3.タイムプロバイダを変更する
/manualpeerlistオプションでNTPサーバのアドレスを指定する。サーバーアドレス指定の後に",0x8"とか",0x9"とか指定することがある。これはNTPサーバーに対する挙動を示す。
Clientモードで動作する挙動指定は下記の通り。
Clientモードは時刻同期を受け取るだけのモード。基本的にはこれを使う。
挙動の指定 | 動作説明 |
---|---|
0x8 | RFC1305に準拠した同期を行う |
0x9 | 一定の間隔で同期を行う |
Clientモードの他にSymmetricActiveモードというものがある。SymmetricActiveモードは指定したNTPサーバと相互同期を行う。相手にも時刻同期の修正を要求してしまう為、外部NTPサーバにやっちゃダメ。
挙動の指定 | 動作説明 |
---|---|
0x1 | Windowsで実装した一定間隔での同期 |
0x2 | フォールバック時に利用するNTPサーバを指定 |
0x4 | RFC1305に準拠した間隔での同期 |
/syncfromflagsオプションはmanual(手動指定)もしくはdomainhier(ADドメイン指定)のどちらかを選ぶ。
C:\Windows\system32> w32tm /config /update /manualpeerlist:ntpサーバアドレス /syncfromflags:manual
コマンドは正しく完了しました。
NTPサーバと通信できないとコマンドが正しく完了してもタイムプロバイダが更新されない。
4.タイムプロバイダを確認する
C:\Windows\system32> w32tm /query /souce
NTPサーバのIPアドレス
C:\Windows\system32> w32tm /query /peers
ピア数: 1
ピア: NTPサーバのIPアドレス
状態: アクティブ
残り時間: 97.6056001s
モード: 3 (クライアント)
階層: 2(二次参照 - (S)NTP で同期)
ピアポーリング間隔: 17 (有効範囲外)
ホストポーリング間隔: 10 (1024s)
余談
ActiveDirectoryドメインの時刻同期について
メンバーとなるサーバーOSとActive Directoryサーバ間の時刻同期は64秒ごとに行われる。時刻同期の間隔は常に64秒がキープされているわけではない。64->128->256->512->1024(17分)と次第に時刻同期の間隔が延び、パケットの送受信頻度を減らすようになっている。
Active Directoryサーバ間の時刻の問い合わせはSymmetricActiveモードで行われるが、返答はClientモードで返される。
PDCエミュレータが権限のある時刻サーバとして認識されている為
参考
Capm Network さん
@it さん
Microsoft公式