第2回 Active Directoryおよびワークグループ環境での時刻同期Windowsネットワーク時刻同期の基礎とノウハウ(改訂版)(3/5 ページ)

» 2012年05月17日 05時00分 公開
[小鮒通成マイクロソフトMVP]

Active Directory環境で、ドメイン・コントローラが同期できないときに外部NTPサーバに時刻同期を行わせる

 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サーバから同期する、という動作を確認した。

(1)PDCエミュレータに同期している状態(初期状態) (1)PDCエミュレータに同期している状態(初期状態)
(2)切り替わった外部NTPサーバに同期している状態 (2)切り替わった外部NTPサーバに同期している状態
(3)PDCエミュレータに同期している状態(復帰状態) (3)PDCエミュレータに同期している状態(復帰状態)

 上記の例は、今回の検証環境(example.comフォレスト)のフォレスト・ルート・ドメインの非PDCエミュレータのドメイン・コントローラ上での実行例である。最初は「DC00.example.com」のPDCエミュレータに同期しているが(1)、DC00.example.comがネットワークから切断されると「ntp.nict.jp」に同期を行うようになる(2)。そして「DC00.example.com」が復帰すると、最初の通り「DC00.example.com」に再度同期を行うようになる(3)。この状況は次のように、Time-Serviceイベントからも確認できる。

(1)PDCエミュレータに同期している状態(初期状態)のイベント・ログ (1)PDCエミュレータに同期している状態(初期状態)のイベント・ログ

PDCエミュレータから切断され、同期が失敗している状態のイベント・ログ PDCエミュレータから切断され、同期が失敗している状態のイベント・ログ

(2)切り替わった外部NTPサーバに同期している状態のイベント・ログ (2)切り替わった外部NTPサーバに同期している状態のイベント・ログ

(3)PDCエミュレータに同期している状態(復帰状態)のイベント・ログ (3)PDCエミュレータに同期している状態(復帰状態)のイベント・ログ

 なお、このケースでは、PDCエミュレータと外部NTPサーバの両方に対して、常にポーリングが発生する。NTPプロトコルのパケットは90〜110bytes程度なので、きわめて多くのトラフィックが発生しない限り、ネットワークに負担はかけないだろう。ネットワークの負担を減らしたいという背景から、「ドメイン・コントローラから時刻同期できている時には外部サーバからはポーリングそのものを行わない」ことができないか、という相談を受けることがあるが、残念ながらこのような設定はできない。これはNTPの仕組み上、NTPサーバの情報を確認しないで同期するかどうかを決めるという考え方がないため、と筆者は考える。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。