Active Directory用のDNSレコードを強制的に作成する方法Tech TIPS

Active Directoryを利用するには、DNSサーバ上にActive Directory用の特別なレコードが必要になる。何らかの事情により、Active Directoryの構築時にこれらのレコードが作成されていなければ、後から再作成させることができる。手動でDNSサーバを再構成することもできるが、netコマンドを使って自動的に登録させるのが簡単でよい。

» 2003年05月24日 05時00分 公開
[井上孝司]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000 Server/Windows 2000 Advanced Server



解説

 Active Directoryを運用する場合は、Active Directory用の特別なSRVリソース・レコードなどを定義することができるDNSサーバを利用する必要がある。Active Directoryドメインに参加しているコンピュータは、これらの特別なレコードを使って、ドメインに関する情報を取得するからだ。これらのレコードでは、ドメイン・コントローラやサイト、GC(グローバル・カタログ)などの情報(サービスが提供されているサーバ名やプロトコル種別、ポート番号など)が記録されている。例えばWindows 2000 Serverに含まれているDNSサーバでこれらの情報を確認すると、次のように表示される。

Active Directoryドメインとペアを組んで動作しているDNS管理ツールの画面例 Active Directoryドメインとペアを組んで動作しているDNS管理ツールの画面例
Active Directoryドメイン用のDNSサーバには、ドメイン・サブフォルダ(_msdcsやdc、_sites、gcなど)やSRVリソース・レコードを始めとする各種レコードを、正しく登録しておく必要がある。クライアントはこれらの特殊なDNSレコードを使って、ドメインやサイト、ドメイン・コントローラに関する情報を取得している。
  (1)DNSサーバの名前。この例ではドメイン・コントローラと兼用している。
  (2)正引きなどに使用される前方参照ゾーンは、このツリーの下に作成される。
  (3)dcpromo.exeでActive Directoryドメインと一緒にDNSサーバをインストールすると、ドメイン名に対応した前方参照ゾーンが自動的に作成される。
  (4)その前方参照ゾーンの下には、さまざまなドメイン・サブフォルダやレコードが自動作成される。これらの情報がなければ、Active Directoryドメインは正常に機能しない。
  (5)逆引きドメインの定義。

 これらのサブフォルダやSRVリソース・レコードなどは、dcpromo.exeコマンドを使用してActive Directoryドメインを構築した際に、DNSサーバに対して、動的更新の機能を使って自動的に登録・設定されることになっている。Active Directoryを新規構築と同時にDNSサーバを導入する場合は(Active Directoryのインストール・ウィザードの途中でDNSサービスの導入ができるようになっている)、適切なデフォルト値設定でDNSサーバが組み込まれるため問題になることはない。しかし、Active Directoryドメインを構築する際に既存のDNSサーバをそのまま使用したり、1度構築したActive Directoryを再構築したりする場合は、DNSサーバの設定によってはこれらのドメイン・サブフォルダが作成されず、結果としてActive Directoryが正しくインストールできなくなる場合がある。

 こうした問題が発生するのは、主に以下のようなケースが考えられる。

  • DNSサーバの側で、動的更新を受け付けない設定になっている。
  • DNS動的更新に対応していない、古いDNSサーバ(BIND 8.1.2より前のバージョン)を使用している。
  • ゾーン情報の登録に必要な前方参照ゾーンが存在しない。
  • ドメイン・コントローラの側で、TCP/IPのプロパティとして設定されるDNS動的更新の機能が無効になっている。

 SRVレコード機能をサポートしていないなど、DNSサーバのバージョンが古い場合は、DNSサーバそのものを更新するしかない(Windows 2000 Serverに含まれているDNSサーバは問題なく利用できるので、可能ならばこのDNSサーバを利用することを検討する)。また、前方参照ゾーンがない場合には、ゾーンを作成すればよいが、そのゾーンが動的更新に対応していなければ、やはり同様の問題が生じる。

 いずれの場合も、ドメイン・コントローラ上でDNSサーバやゾーン定義を再確認・設定してから、netコマンドを再実行することにより、必要な設定を行うことができる。以下にその手順を示しておく。

操作方法

●手順1―DNSサーバの動的更新を許可する

 まず、TCP/IPのプロパティとしてDNS動的更新が無効に設定されている場合の対策から説明する。すでに有効になっているなら(Windows 2000のデフォルト状態では有効になっている)、次の手順2へ進む。

  1. [コントロール パネル]の[ネットワークとダイヤルアップ接続]をダブルクリックするか、デスクトップの[マイネットワーク]を右クリックして、ポップアップ・メニューから[プロパティ]を選択する。
  2. 使用しているネットワーク・インターフェイスに対応したアイコンを右クリックし、ポップアップ・メニューから[プロパティ]を選択する。
  3. 表示されるダイアログのコンポーネント一覧で、[インターネット プロトコル (TCP/IP)]をクリックしてから、その下にある[プロパティ]をクリックする。
  4. TCP/IPのプロパティ・ダイアログで、さらに[詳細設定]をクリックする。

 こうして表示されるダイアログのうち、[DNS]タブに移動して、下の方にある[この接続のアドレスをDNSに登録する]というチェック・ボックスをオンにする。

DNSレコードの動的登録許可の設定 DNSレコードの動的登録許可の設定
DNSサーバに対して、動的な登録を行うかどうかを設定する。DNSレコード情報(ドメイン・コントローラのIPアドレス情報)の更新などを行うために、この設定は有効になっている必要がある。
  (1)[DNS]タブでは、DNSのサフィックス(このホストが属するDNSドメイン名のこと)や動的登録などの設定を行う。
  (2)DNSへの動的登録を許可するにはこれを有効にする。デフォルトではすでにオンになっているはずである。

●手順2―DNSサーバの動的更新が利用できない場合

 DNSサーバ側の設定で動的更新が利用できない場合は、次のようにして動的更新を許可しておく(以下の例ではWindows 2000 ServerのDNSをベースにしている。UNIX/Linuxを中心に広く使われているBINDについては、BINDのドキュメントを参照されたい)。

  1. [スタート]メニューの[プログラム]−[管理ツール]−[DNS]管理ツールを起動する。
  2. 左側のツリー画面を展開し、使用している前方参照ゾーンもしくは逆引き参照ゾーンを表示させる。
  3. 対象となるゾーン名を右クリックして、[プロパティ]を選択する。
  4. [全般]タブにある[動的更新を使用可能にしますか]のリストボックスで、[セキュリティで保護された更新のみ]を選択してから、[OK]をクリックする。

 以上の操作を、前方参照ゾーンと逆引き参照ゾーンのそれぞれに対して実行し、両方で動的更新が使用可能な状態にする。

DNSゾーンのプロパティ設定 DNSゾーンのプロパティ設定
これは前方参照ゾーンのプロパティだが、逆引き参照ゾーンでも、動的更新に関連する部分で大きな違いはない。ここで[セキュリティで保護された更新]を選択するか、[はい]を選択して、すべての動的更新を受け入れるようにできる。
  (1)DNSサーバの動作状況を表示している。既存のDNSサーバを使ってActive Directoryをインストールする場合は、DNSサーバが起動している必要がある(ゾーンは必要ならば自動的に作成されるため、あらかじめゾーンを作成しておく必要はない)。
  (2)ゾーンごとの動作モード種類を表示しており、[変更]をクリックすることで、種類を変更することも可能。Active Directoryで使用する場合は、[Active Directory統合]モードで運用するのが一般的。このモードでは、ゾーン情報などDNSにかかわる情報のすべてはActive Directoryデータベース中に保存される。標準プライマリ・モードの場合は、DNSのレコードはActive Directoryデータベースではなく、DNS設定用のテキスト・ファイル中に保存される。
  (3)動的更新要求を受け付けるかどうかを指定するリストボックス。全部で3つの選択肢がある。[セキュリティで保護された更新のみ]を選択すると、Active Directoryによって認証されたコンピュータからの動的更新だけを受け入れる。[はい]を選択すると、すべての動的更新を受け入れる。[いいえ]を選択すると、動的更新を受け付けない。

 なお、[セキュリティで保護された更新]を利用できるのは、Active Directory統合DNSだけで、標準プライマリ、あるいは標準セカンダリを指定した場合、動的更新は[はい]と[いいえ]しか選択できない。

●手順3―Active Directory用のレコードが存在しない場合

 次に、Active Directory用のゾーン定義やSRVリソース・レコードなどが存在しない場合の手順について説明する。本来ならばこれらのゾーンやレコードはActive Directoryのインストール時(dcpromo.exe実行時)に自動的に作成されるはずであるが、既存のDNSサーバをそのまま使用したり、1度構築したActive Directoryを再構築したりすると、DNSサーバ側の設定などの問題により、作成されない場合がある。これらをすべて手動で作成することも不可能ではないが、トラブルが発生した場合のことなどを考えると、以下の手順で再設定を行うのがよい。最初にDNSサーバの設定の確認や必要ならばゾーンの定義を行い、次にnetコマンドを実行して必要なレコードを作成させる。

  1. [DNS]管理ツールで左側のツリー画面を展開し、[前方参照ゾーン]あるいは[逆引き参照ゾーン]を選択する。
  2. Active Directory名に対応するDNSゾーン名が存在することを確認する。例えばActive Directoryのドメイン名がabccorp.co.jpならば、このようなDNSゾーン名と、さらにこのゾーン(IPアドレス)に対応する逆引きゾーンが存在することを確認する。
  3. ゾーンが存在しない場合は、次の手順でゾーンを作成しておく。[操作]メニューから[新しいゾーン]を選択して、ウィザードの指示に従ってゾーンを作成する。前方参照ゾーンは、Active Directoryドメイン名と同名のゾーン名を指定する。逆引き参照ゾーンは、使用しているTCP/IPネットワークのネットワーク・アドレスを指定する。また、セキュリティで保護された動的更新を使用できるようにするため、Active Directory統合モードに設定しておく。

●手順4―SRVリソース・レコードの作成・更新

 以上の設定・確認を行ってから、次は実際に必要なリソース・レコードを作成する。具体的にはコマンド・プロンプトで以下のコマンドを順番に実行するだけでよい。これは、Netlogonサービス(Active Directory関連のサービスも含む)の再起動とDNSレコードの動的更新を強制的に行わせるための操作で、これにより、必要なドメイン・サブフォルダや各種のレコードがDNSサーバに登録される。

net stop netlogon
net start netlogon
ipconfig /registerdns



 実際にはnetlogonサービスの停止と再起動だけでも、必要なリソース・レコードの作成が行われる。最後の「ipconfig /registerdns」は、ドメイン・コントローラのIPアドレスの情報を更新するので、念のために実行しておくのが望ましい(例えばドメイン・コントローラのIPアドレスが変更されたような場合には必要となる。なおこれを実行するためには手順1が必要)。

 以上の操作で、正しくDNSレコードが作成されるはずであるが、もしこれでも正しく構築できないようならば、Active Directoryそのものを再構築するところからやり直すのが簡単でよいだろう。dcpromo.exeですべてドメイン・コントローラを降格し、さらにDNSサーバからもすべてのゾーン定義を削除しておく(DNSサービスそのものを停止・削除しなくても、ゾーン定義を消去するだけでよい)。そしてドメイン・コントローラのTCP/IPのプロパティなどを再確認し(IPアドレスやネットマスク、DNSドメイン名、DNSサーバのIPアドレスなどを確認すること)、dcpromo.exeを実行する。基本的には、固定IPアドレスが付けられたWindows 2000 Serverが1台だけあればActive Directoryは構築できるはずである(ドメイン・コントローラを固定でないIPアドレスで運用するのは、トラブルが発生する可能性が高いので勧められない)。この状態でActive Directoryが構築できないようであれば、導入手順そのものが間違っている可能性があるので、よく見直していただきたい。具体的なActive Directoryの導入方法などについては連載「管理者のためのActive Directory入門」などを参照してほしい。

DNSゾーン情報の読み込み場所の指定

 DNSゾーン情報を読み込む元(場所)が正しくない場合にも、同様の問題が発生する場合がある。Windows 2000 ServerのDNSサーバでは、ゾーン情報をActive Directoryもしくはレジストリ、ファイルのいずれかに格納することができる(ただしActive Directory統合モードではファイルは使用しない)。Active Directory用のDNSでは、ゾーン情報はActive Directoryに格納されていなければならないが、ゾーン情報を読み込む場所がレジストリのみになっている場合は、次のような手順で設定を変更する必要がある。

  1. [DNS]管理ツールの左側のペインでDNSサーバ名を右クリックし、ポップアップ・メニューから[プロパティ]を選択する。
  2. [詳細]タブに移動して、[起動時にゾーン データを読み込む]の値を[Active Directory とレジストリから]に設定する。これが[レジストリから]に設定されていると、Active Directory用のDNSとしては正しく動作しない。
  3. [OK]をクリックしてダイアログを閉じ、[操作]メニューの[すべてのタスク]−[再起動]を選択してDNSを再起動する。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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