Azureに構築したWindowsの仮想マシンのNTP参照についてメモします。オンプレ(またはデータセンターなど)とAzureでADレプリケーションを行っている場合は気を付ける必要がある。
まず、Azure上に構築されたWindows仮想マシンのNTP参照先は、デフォルトではホストになる。これは、仮想マシン統合サービスという機能によるもの。AD複製の対象が上述のAzure以外の環境にいるサーバだけでなく、同じAzureであっても、異なるリージョンにあるほうが普通(BCPやディザスタリカバリーの観点から)だと思うので、やっぱり同じ外部のNTP参照先を明示する必要がある。
対処法
大きくわけて以下の2点を行う必要がある。
- 外部のNTP参照先を指定
- 仮想マシン統合サービスによるNTP同期を無効とする
外部のNTP参照先を指定
今回の状況では、外部のNTP参照先はドメインポリシーで指定されていたため、特に修正をしていない。指定がされていないのであれば明示する。
現在の設定を確認するにはコマンドプロンプトで以下を実行することで確認できる。今回はすでに ntp.nict.jp,0x8 が指定されている。
1 2 3 4 5 6 7 |
> w32tm /query /configuration /Verbose : 省略 : Type: NTP (ポリシー) NtpServer: ntp.nict.jp,0x8 (ポリシー) : |
直前の同期先は以下を実行すれば確認できる。ソースが、VM IC Time Synchronization Provider と表示されている場合は仮想マシン統合サービスによってホストを参照している。上記で ntp.nict.jp,0x8 が指定されているにもかかわらずホストへ同期していることがわかる。
1 2 3 4 5 6 7 |
> w32tm /query /status : 省略 : 最終正常同期時刻: 7/20/2017 4:39:12 PM ソース: VM IC Time Synchronization Provider ★ ポーリング間隔: 6 (64s) |
仮想マシン統合サービスによるNTP同期を無効とする
この設定はレジストリの値を変更することで可能。NTPサービスの再起動で値の変更が反映される。対象のキーは、以下。
レジストリキー:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider\Parameters
まず、現在のレジストリの値を確認する。
1 2 3 4 5 6 |
> reg query HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider DllName REG_EXPAND_SZ %SystemRoot%\System32\vmictimeprovider.dll Enabled REG_DWORD 0x1 ★ InputProvider REG_DWORD 0x1 |
Enabled が1で有効/0で無効 なので、現在有効となっている。
値の変更もコマンドで実行可能。上書きメッセージが表示されるのでYesを入力してエンター。もちろんregedit.exe からでも可能。
1 2 3 |
> reg add HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider /v Enabled /t reg_dword /d 0 値 Enabled は存在します。上書きしますか? (Yes/No) yes この操作を正しく終了しました。 |
変更されたか値を確認する。
1 2 3 4 5 6 |
> reg query HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\VMICTimeProvider DllName REG_EXPAND_SZ %SystemRoot%\System32\vmictimeprovider.dll Enabled REG_DWORD 0x0 ★ InputProvider REG_DWORD 0x1 |
NTPサービスを再起動して設定を反映する。
1 2 3 4 5 6 7 |
> net stop w32time Windows Time サービスを停止中です. Windows Time サービスは正常に停止されました。 > net start w32time Windows Time サービスを開始します. Windows Time サービスは正常に開始されました。 |
変更後の同期先確認
"w32tm /query /status" コマンドでは、直前の同期先となるため、一度手動で同期を行う。
1 2 3 |
> w32tm /resync 再同期コマンドをローカル コンピューターに送信しています コマンドは正しく完了しました。 |
同期先の確認を行う。
1 2 3 4 5 6 7 8 9 10 |
> w32tm /query /status 閏インジケーター: 0 (警告なし) 階層: 2 (二次参照 - (S)NTP で同期) 精度: -6 (ティックごとに 15.625ms) ルート遅延: 0.0097329s ルート分散: 7.7882111s 参照 ID: 0x85F3EEA4 (ソース IP: xxx.xxx.xxx.xxx) 最終正常同期時刻: 7/20/2017 4:46:28 PM ソース: ntp.nict.jp,0x8 ★ ポーリング間隔: 6 (64s) |
ソースの行をみると、ドメインポリシーで指定された外部NTPサーバと同期していることが確認できる。
以上です。
↓↓↓ 持っていると便利な一冊。