Active Directory環境では、(フォレスト・ルートの)PDCドメイン・コントローラが時刻同期の頂点となっているため、PDCエミュレータがダウンした場合、システム内の時刻同期が適切にできなくなる。PDCエミュレータがダウンした場合、ほかのドメイン・コントローラが外部NTPサーバにそれぞれ同期するように設定できれば、時刻同期に問題が出ることはない。この方法を行いたい場合、PDCエミュレータ以外のドメイン・コントローラ上で次のコマンドを設定し、Windows Timeサービスを再起動する。
w32tm /config /update /manualpeerlist:ntp.nict.jp,0xa /syncfromflags:all
この例では、「NtpServerレジストリ値」で「フォールバック(通常のNTPサーバに同期できない)時のみに、ntp.nict.jpサーバにClientモードで同期する」と、「Typeレジストリ値」で「ドメイン環境と外部NTP環境の両方で同期する」を設定している。こうすることで、「ドメイン・コントローラに同期できるときはPDCエミュレータに、できないときはntp.nict.jpサーバに同期する」というふうに動作する。
筆者の環境では、PDCエミュレータと外部NTPサーバ(ntp.nict.jp)の両方にポーリングを行うが、PDCエミュレータが有効であればこれと同期し、PDCエミュレータがダウンしている場合は外部NTPサーバから同期する、という動作を確認した。
上記の例は、今回の検証環境(example.comフォレスト)のフォレスト・ルート・ドメインの非PDCエミュレータのドメイン・コントローラ上での実行例である。最初は「DC00.example.com」のPDCエミュレータに同期しているが(1)、DC00.example.comがネットワークから切断されると「ntp.nict.jp」に同期を行うようになる(2)。そして「DC00.example.com」が復帰すると、最初の通り「DC00.example.com」に再度同期を行うようになる(3)。この状況は次のように、Time-Serviceイベントからも確認できる。
なお、このケースでは、PDCエミュレータと外部NTPサーバの両方に対して、常にポーリングが発生する。NTPプロトコルのパケットは90〜110bytes程度なので、きわめて多くのトラフィックが発生しない限り、ネットワークに負担はかけないだろう。ネットワークの負担を減らしたいという背景から、「ドメイン・コントローラから時刻同期できている時には外部サーバからはポーリングそのものを行わない」ことができないか、という相談を受けることがあるが、残念ながらこのような設定はできない。これはNTPの仕組み上、NTPサーバの情報を確認しないで同期するかどうかを決めるという考え方がないため、と筆者は考える。
Copyright© Digital Advantage Corp. All Rights Reserved.