Active DirectoryでのNTP、W32time

Active Directoryを利用する際には意外と時間が大事です。
というか非常に大事です。
とりあえず、全てのホストで時間の同期が取れていることが前提で動作しているようなもんです。
# それはKerberosのせい


そんなこんなんでいつの間にか時刻同期に失敗するようになっていたので修正
Linux上のntp.confでは細かい設定はさておき


restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap


とクライアント(今回の場合はDC)が正しく参照できるように設定しておいて
ADのFSMOを持ったDC(以下はFSMOとしときます)上の設定を行います。

まずはFSMOでLinux時刻サーバが参照できるかどうかテストしましょう。


w32tm /monitor /computers:


で正しく参照できてるかを確認
# 駄目な場合は NTP: error〜〜〜〜〜ってな表示がされます。
エラーを吐かれたらntp.confやら途中のパケットフィルタやらをチェックしましょう

大丈夫な状態であれば


w32tm /resync


で同期してみましょう。

基本的には大丈夫だと思いますが


「時刻データが利用できなかったため、コンピュータは同期をとり直しませんでした。」


ってなメッセージが出た場合や、


「次のエラーが発生しました。 RPC サーバーを利用できません。 (0x800706BA)」


ってなエラーを吐きやがった場合は


w32tm /config /manualpeerlist:,0x8 /syncfromflags:manual


とW32timeの設定(実際はCurrentControlSet内に記述されてる)を変えてやりましょう。
W32timeもAD同様に双方向同期?が基本みたいで一般的なntpは対応してません。
指定したNTPサーバに対して0x8のオプションを指定してやることで一方的な参照になるっぽいです。
# 詳細は上記のコマンドでググればOK。


んで、w32tmの設定を変えたら


w32tm /config /update


で設定を更新してやるか、w32timeサービスを再起動しましょう。


これできっとバッチり。