Active Directoryにおける名前解決の仕組み
Active Directoryドメインに参加するメンバーサーバーやクライアントの名前を解決するために、NTドメインではNetBIOS名を利用して名前解決を行ってきました。そのため、NTドメイン環境ではDNSサーバーではなく、Windowsインターネット ネーム サービス(WINS)を利用します。WINSサーバーは、コンピュータ名(NetBIOS名)に動的に IP アドレスをマッピングを行うため、ユーザーは IP アドレスではなくコンピュータ名でリソースにアクセスできるようになる仕組みです。
それに対して、Active Directory環境では、ドメインコントローラが持つDNSのレコードを利用して、メンバーサーバーやクライアントとの名前解決を行います。
本編では、ドメインコントローラのDNSの仕組みについて、簡単に見ていきたいと思います。
Active DirectoryにおけるDNSの役割
Active Directoryが提供するDNSの機能は大きく分けて2つあります。
- 一般的なDNSの役割といわれるもので、サーバー、クライアントに対して広く名前解決を行う役割
- Active Directoryがメンバーサーバーやクライアントおよびユーザーを管理するための情報を提供する役割
1. の役割に対し、Active Directory内のDNSサーバは内部ネットワークのDNSサーバとして役割を果たすことが多く、自身の管理外のサーバーに関する情報は、既存のDNSサーバ(UNIXサーバなどが多く利用/※1)に対して、フォワーダという機能による問い合わせを利用した方法が使われます(※2)。
2. の役割では、Active Directory内のオブジェクトを管理するために必要な情報も管理します。例えば、Kerberos認証においてはKerberosの認証サーバ(ドメインコントローラ)のIPアドレスをクライアントに提供する役割を担います。
なお、Windows Server 2008以降は、セキュリティ面からも必要なコンポーネントのみを選択し導入できるようになったことなどから、セキュアに利用できるようになりました。その結果、外部向けサーバーとして利用している環境も増えてきましたが、Active Directoryを管理するDNSサーバーとは別のDNSサーバーを利用するのが一般的です。その理由としては、Active Directoryの持つ役割は認証基盤であり、その管理情報を格納したDNSサーバーを外部向けのDNSサーバーとして公開するのはセキュリティの観点から避けた方がよいと考えられているためです。
UNIXやLinuxサーバー上にBerkeley Internet Name Domain(BIND)を用いて構築されたサーバーが一般的です。
フォワーダを利用する場合、すべての問い合わせを1つのサーバーにする方法と、DNSゾーンごとに問い合わせサーバーを変更する方法があります。