Active DirectoryにおけるDNSのゾーンの役割
Active Directoryに対して、DNSサーバー機能を導入した際に構成されるゾーンについて簡単に見てゆきたいと思います。DNSゾーンの名前は「tarkyon.local」とします。
「図2 Active DirectoryのDNSコンソール」を参照すると以下のようなゾーンが作成されていることが確認できます。
-
前方参照ゾーン
- 「_msdcs.tarkyon.local」
- 「tarkyon.local」
- 逆引き参照ゾーン
前方参照ゾーン内部にある「tarkyon.local」ゾーンは、BINDなどでも利用されている一般的な名前解決のためのゾーンです。正引きのためのサービスを提供します(※3)。「_msdcs.tarkyon.local」以下は、Active Directoryが内部で管理するために使用するゾーンです。Kerberos認証関連の情報などが格納されています。
ここでは、各ゾーンについて詳しい説明は省きますが、詳しく知りたい場合は、少し古い情報になりますが、Windows 2000 DNSを参照ください。
次に逆引き参照ゾーンは、逆引きが必要な場合に手動で作成をします。「reverse lookup」のことでありIPアドレスに対応するホスト名を割り出す際などに逆引きを用いることができます。例えば、ログなどを参照した場合に、通信元、先のIPアドレス情報のみが記載されている際に、ホスト名を調べたい場合には逆引きを行うことで確認できます。
Active Directory運用に必要なものではありませんが、トラブルシューティングの際などに役立つこともあるため、必要に応じて作成しておけばよいでしょう。
正引き:ホスト名からIPアドレスを割り出すこと。
Active Directory環境における動的更新
Active Directoryサーバーは、自身のDNSに登録されたメンバーサーバーやクライアントのホスト名とIPアドレスを関連づけ、その情報を利用してメンバーサーバーやクライアントを管理します。そのため、メンバーサーバーやクライアントのIPアドレスが変わってしまった場合、自身のDNS上にある情報が更新されていなければ、メンバーサーバーやクライアントを管理することができません。
それらの問題点を解決するために、メンバーサーバーやクライアントから自身の持つIPアドレスの情報をDNSへ通知する仕組みが採用されています。この仕組みは、動的更新と呼ばれデフォルトでは有効になっています。
ただし、設計上の理由などで動的更新の機能を無効にする場合には、手動で情報を更新するような仕組みを考慮する必要があります。
ゾーン名についての注意点
DNSのゾーンを作成する際には、外部へ問い合わせを行う必要があるゾーンと同様の名前のゾーンは作成しないようにします。これは、DNSサーバーの仕組みとして、自身が持つゾーンと同じ名前のゾーンは、フォワーダ先のサーバーへ問い合わせを行わない仕様となっているためです。
例えば、「tarkyon.net」を外向けに公開する場合、例えば内部向けのDNSは「tarkyon.local」という名前にする必要があります。「tarkyon.net」を内部サーバーで利用した場合は、フォワーダ先の外部DNSサーバ等への問い合わせを実施しないため、名前解決が実施されない状況となります(※4)。
なお、DNSサーバの障害時や管理の簡素化を検討した際に、別のDNSサーバに対して同じゾーンの情報を保持させたい場合は、 同じゾーンを作成するのではなく、セカンダリゾーンやスタブゾーンを使用することができます。
セカンダリゾーンは、プライマリゾーンを保持するサーバからゾーンの情報を定期的に転送することで、 自身の持つゾーンの情報を用いてクライアントに対して対象ゾーンの情報を提供します。
スタブゾーンについては、「スタブ ゾーンを使用する」を参照ください。
同じDNS名にする場合は、そのゾーンに登録されている内容をActive directoryのDNSに登録することで名前解決が可能となります。
まとめ
Active Directory環境では、ドメインコントローラが提供するDNSの機能を利用してメンバーサーバーやクライアントを管理し、DNS内の情報はメンバーサーバーやクライアントからの通知によって更新されます。
また、同じ名前のDNSゾーンが存在する場合は、問い合わせを行わない仕組みのため同じ名前のゾーンを作成する場合は、関係する情報をすべて登録するなど設計時に注意が必要です。