DNSに起因するとあるトラブル

ある日、私の管轄しているドメインとは無関係の別のAD ドメインでエラーが出ているので見てほしいとの電話が。

そこは小規模なドメインで、ドメインコントローラ1台だけ。その1台に TrendMicro ウイルスバスター Corporate Edition のサーバが入っているらしいのだが、管理コンソールが出なくなったのが発見動機。

ところが、イベントログを確認していただくと Schannel 系のエラーやNetlogonのエラーメッセージも出ていて、状況は思ったより深刻であることが判明。こりゃすぐ対応しないとまずい。

イベントの1つはこんな感じ。(コンピュータ名やドメイン名は架空のものです)

ログの名前:         System
ソース:           NETLOGON
日付:            2014/04/17 8:29:48
イベント ID:       5781
タスクのカテゴリ:      なし
レベル:           警告
キーワード:         クラシック
ユーザー:          N/A
コンピューター:       dc.example1.local
説明:
 DNS ドメイン 'ForestDnsZones.example1.local.' に関連付けられた、1 つ以上の DNS レコードの動的な登録または
削除に失敗しました。これらのレコードは、他のコンピューターがこのサーバーを ドメイン コントローラー(指定され
たドメインが Active Directory ドメインである場合) または LDAP サーバー (指定されたドメインがアプリケーション
パーティションである場合) として検出するのに使用されます。 
DDNSの登録失敗?ともかく、自分自身のDNSサーバの周辺が怪しいことが分かります。Microsoft でも KB259277 にチェックリストが出ていますが

  1. DNS Server サービスは起動しているか?
  2. ドメインコントローラ自身でDNSサーバは自分自身を指しているか?
  3. DNSのスナップインが正しく開けて、中身が見れるか

をまず確認することにしました。3つとも問題はなかったのですが、DNSスナップインのスクリーンショットを送ってもらったところ、example1.local の NS レコードは dc.example1.local になっているのに、dc.example1.local の A レコードがないことに気付きました。何が原因で消えたのかはさっぱり分かりませんが、このレコードを作ってもらい、ドメインコントローラを再起動したところエラーはなくなりました。

AD管理者の方はご存知だと思いますが、ADのリソース(たとえばドメインコントローラのIPアドレス等)は DNS で広告されるなど、AD にとっては自ドメインのDNSの情報は生命線ですし、認証にも影響します。すぐに分かることはクライアントのドメイン参加などができなくなります。

今回のトラブルで思い出したのは、自分が管理しているADドメインでの失敗談。ここはドメインコントローラが4台あるので、ドメイン名を example2.local とすると NS レコードは4つあり、example2.local の A レコードも4つあるのが正しい状態です。

ところが、一部のクライアントがドメインログオンできないトラブルが発生。同じクライアントでもエラーが出たり出なかったりで、最初は原因が分からなかったのですが、DNS を見ると example2.local の A レコード がなぜか5つになっていて、ドメインコントローラ4台以外に 10.192.128.0 のようなありえないIPが入っていました。どうやら DNSレコードを新規作成しようとした際に、ダイアログへの入力が不十分なまま「ホストの追加」ボタンを押してしまったのが原因のようです。
入力ダイアログ

ホスト名を記入しなければ確かにドメイン全体のAレコードになりますわな。チェックぐらいしてくれたらいいのに、という繰り言も言いたくなりますが、そもそもこのダイアログであれこれするのは管理者だけですから、油断した奴が悪いということでしょう。

でも、この状況をわざと起こしても、dcdiag の DNS のテストも、SCOM(2007/2012でテスト) ですらも、エラーを報告しない仕様のようです。チェックツールはもちろんありがたい存在ですが、過信は禁物です。


戻る