NTP

WindowsのNTPの仕様 〜サーバとしての利用の注意点、クライアントの同期状態確認や設定確認〜

WindowsのNTPサービスの仕様

Windows では NTP サーバとして「W32Time Service」 というプログラムが用意されています。

Windows 8.1 および Windows Server 2012R2 までの NTP の仕様については、MS の公式サイトに結構とんでもないことが書かれていました。

How Windows Time Service Works: Windows Time Service
The W32Time service is not a full-featured NTP solution that meets time-sensitive application needs and is not supported by Microsoft as such.
Support boundary for high-accuracy time
This article describes the support bound...
W32Time サービスは、1 ~ 2 秒の範囲で同期時刻を確実に維持できません。このような許容誤差は、W32Time サービスの設計仕様に含まれていません。

Windows Active Directory では NTP が必須となっています。これは AD ドメインのクライアントがドメインコントローラに対して Kerberos 認証を行う際に、5 分以上時刻がサーバとずれていることを許容しないためです。(セッションジャックを緩和するために時間制限を設けているため。)

しかし逆に言うと 5 分未満のずれであれば許容されるということで、W32Time サービスはこの仕様を基準に作られていたようです。

ですが Windows10 および Windows Server 2016 以降は高精度の時刻同期がサポートされたようです。

高精度の時間のサポート範囲
この記事では、高精度かつ安定したシステム時刻を必要とする環境での Windows...

Windows 10 および Windows Server 2016 での時間の精度が大幅に向上し、以前のバージョンの Windows との NTP の完全な互換性が維持されています。 適切な動作条件下では、Windows 10 または Windows Server 2016 以降のリリースを実行しているシステムは、1秒、50ミリ秒 (ミリ秒)、または1ミリ秒の精度を提供できます。

Windows のクロックの取り扱い

Windows ではハードウェアクロックの時刻をそのままローカル時間として読み込むし仕様となっています。

つまり、ハードウェアクロックがUTCの状態でインストール済かつローカル時間が日本時間となっている Windows を起動すると、日本時間にも関わらず表示される時刻が UTC となるケースがあります。(主に時刻情報を VM に保存しない KVM 仮想環境)

WindowsのNTPクライアントの同期状態確認と設定確認の方法

Windows の NTP クライアントの同期状態は以下コマンドで確認できます。

> w32tm /query /status

また、Windows の NTP クライアントの設定は以下コマンドで確認できます。

> w32tm /query /configuration

コメント

タイトルとURLをコピーしました