知識マップ: Windowsの時刻同期(w32time)と業務システム ── 「ログのタイムスタンプが合わない」を仕組みから解決する

記事「Windowsの時刻同期(w32time)と業務システム ── 「ログのタイムスタンプが合わない」を仕組みから解決する」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

装置とPCのログでタイムスタンプがずれる原因は、Windowsの時刻同期サービスw32timeの既定動作にあります。ドメイン環境ではドメインコントローラーを経てフォレストルートのPDCエミュレーターへ至る時刻階層に従いKerberosの5分要件を満たす一方、ワークグループ機はSpecialPollIntervalの既定604,800秒という低頻度でtime.windows.comとしか同期せず、数十秒のずれが常態化します。w32timeは小さなずれをスルー、大きなずれをステップで補正するため、システム時計は前にも後ろにも跳びうるので、経過時間の測定はDateTime.UtcNowではなくStopwatchで行い、ログのタイムスタンプはUTCで記録し、装置との時刻オフセットは定期的に記録しておくことが実務上の設計原則になります。

Windowsの時刻同期(w32time)の知識マップドメインの時刻階層とワークグループの低頻度同期という既定動作の違い、w32tmによる診断とmanualpeerlistでの同期先指定、Hyper-Vの二重の時刻プロバイダー、Kerberosの時刻要件、StopwatchとDateTime.UtcNowを使い分けるアプリ側設計の関係を示す図利用するで構成できるで確認できる前提とする前提とする利用する利用する前提とするで構成できる利用する前提とする実装を担う用いるのは非推奨推奨される対応両立しない利用する前提とする利用する推奨される対応推奨される対応用いるのは非推奨原因になり得る防止するWindows Timeサービス(w32time)w32tmコマンドNTP(Network Time Protocol)ドメインコントローラーPDCエミュレーターワークグループ構成SpecialPollIntervalレジストリ値/manualpeerlistによる同期先の手動指定グループポリシーKerberosKerberosの時刻同期要件クロック規律(スルー/ステップ補正)DateTime.UtcNowプロパティ(.NET)経過時間・タイムアウト判定Stopwatchクラス(.NET)Hyper-V時刻同期統合サービス(VMICTimeSync)階層(Stratum)高精度時刻のサポート境界装置とPCの時刻オフセット定期記録ログタイムスタンプのUTC記録経過時間・タイムアウト判定の誤り

概念間の関係(全23件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

Windows Timeサービス(w32time)
NTPでマシンの時計をネットワーク上の時刻源と同期するWindowsのサービス。Kerberos認証など時刻ずれに敏感な仕組みの土台になる。
w32tmコマンド
w32timeの同期状態確認・診断・構成をコマンドラインから行うツール。
ドメインコントローラー
Active Directoryのディレクトリサービスを提供し、KDCの機能やNTLMのパススルー認証の相手を担うサーバー。
ワークグループ構成
Active Directoryドメインに参加しない、Kerberosの土俵にないWindowsのネットワーク構成。この構成のシステムのWindows認証には依然としてNTLMが使われ、使われなければならない。
SpecialPollIntervalレジストリ値
0x1(SpecialInterval)フラグの付いた時刻源に対するポーリング間隔を秒単位で決めるレジストリ値。スタンドアロン既定は604,800秒。
/manualpeerlistによる同期先の手動指定
w32tm /config /manualpeerlistと/syncfromflags:manualで、同期先のNTPサーバーとNtpServerフラグ(0x1・0x2・0x8・0x9)を明示的に指定する構成。
Kerberos
チケットによる一度だけの本人確認と相互認証を提供する認証プロトコル。Windows ServerはKerberos version 5と、公開鍵認証・認可データの転送・委任のための拡張を実装する。
DateTime.UtcNowプロパティ(.NET)
コンピューターのシステム時計が示す現在のUTC日時を返す.NETのプロパティ。分解能はシステムタイマー依存でおおむね0.5〜15ms。
Stopwatchクラス(.NET)
ハードウェアとOSが対応していれば高分解能パフォーマンスカウンターでティックを数える、経過時間測定専用の.NETクラス。
Hyper-V時刻同期統合サービス(VMICTimeSync)
Hyper-Vのホストがゲストに時刻を渡す統合サービス。ゲストのNTPクライアントと並存するもう1つの時刻プロバイダー。
高精度時刻のサポート境界
Windows Server 2016/Windows 10 1607以降のw32timeで、条件を満たす場合に1秒・50ミリ秒・1ミリ秒の精度がサポート対象として定義される境界。
装置とPCの時刻オフセット定期記録
通信可能な装置の時刻とPCのUTC時刻の差を起動時・定期的に記録し、障害調査時のログ突合に使う運用。
ログタイムスタンプのUTC記録
ログの記録時刻をローカル時刻ではなくUTCで記録し、タイムゾーンやサマータイムによる突合のずれを避ける設計原則。
クロック規律(スルー/ステップ補正)
時刻のずれが小さいときはクロックの進む速度を調整して徐々に合わせ(スルー)、大きいときは時計を直接書き換える(ステップ)、w32timeが用いる時刻補正方式。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。