DNSの逆引きゾーンを定義しておくと、IPアドレスからホスト名(FQDN名)を求めることができる。逆引きゾーンを定義するには、ウィザードでIPアドレスの上位3bytesを指定するだけでよい。使用しているネットワークアドレスに応じて、逆引きゾーンを全て定義しておくこと。
対象OS:Windows 2000 / Windows Server 2003
DNSサーバは、TCP/IPネットワークにおいて、名前解決機能を提供する重要なサービスである。主要な機能としては、名前(FQDN名)からIPアドレスを求めるだけでなく(これを「正引き」という)、IPアドレスから名前(FQDN名)を求めるというサービス(「逆引き」サービス)を提供している。
Active Directory環境では、このDNSサービスを利用してログオンするためのドメインコントローラの検出を行うなど、重要な役割を担っている。
Windows OSでActive Directoryネットワークを構築した場合、デフォルトではドメインコントローラ上にDNSサービスが導入され、初期セットアップが行われる。具体的には、Active Directoryで指定したドメイン名を元にDNSのゾーンが定義され、必要なレコードなどがDNSサーバに登録される。
これにより、ユーザーは例えばexserver01.example.co.jpといったFQDN名から(ここでexserver01はドメインコントローラのコンピュータ名、example.co.jpはドメイン名)、10.20.5.11というIPアドレスを取得できる。
だが、DNSのもう1つの機能である「逆引き」ゾーンの設定に関しては、デフォルトではセットアップされない。Windows OSネットワークでは、基本的にはDNSの逆引きゾーンが定義されていなくても問題となることはあまりないが、使用するアプリケーションやネットワーク環境、サービスによっては逆引きが定義されていないと不便なことがある。
逆引きとは、IPアドレスからFQDN名を求めるサービスである。例えば10.20.5.11を与えると、exserver01.example.co.jpという名前が返される(nslookupを使った逆引きの確認方法については、TIPS「nslookupの基本的な使い方(イントラネット編)」参照)。
DNSの逆引きは、サーバソフトウェアのログ解析やネットワークのトラブルシューティング時などに、IPアドレスからそのアクセス元のコンピュータ名を調べるためによく利用される。またソフトウェアによっては、アクセス元の情報(コンピュータ名)を取得してログなどに記録するために、利用したりする。
IPアドレスだけしか分からないと、どのようなコンピュータからアクセスされたかが分かりづらい。一方、コンピュータ名が分かっていると、その名前からさまざまな情報が得られ(サーバかクライアントか、どこのドメインか、誰が管理しているコンピュータか、など)、トラブルシューティング作業などがスムーズに行える。
※逆引きが定義されていないと、トラブルシューティング作業などもスムーズに行えなくなる
C:\>nslookup ……逆引きレコードが定義されていない場合の例
*** Can't find server name for address 10.20.5.11: Non-existent domain
Default Server: UnKnown ……ホスト名が不明となっている
Address: 10.20.5.11
>
C:\>nslookup ……逆引きレコードが定義されている場合の例
Default Server: exserver01.example.co.jp ……正しいホスト名が表示される
Address: 10.20.5.11
>
またサーバソフトウェアの設定によっては、アクセス元のIPアドレスからいったん逆引きでドメイン名を求め、そのドメイン名に基づいてアクセス制限をかけることができるものがある(例:IISのディレクトリセキュリティにおける、ドメイン名によるアクセス制限機能)。このようなシステムを利用している場合は、正しく逆引き情報をセットアップしておかないと、サーバを利用することができない。
本TIPSでは、イントラネットで利用されているWindows OSのDNSサーバにおいて、この逆引きゾーンを設定する方法について解説する。インターネットの逆引きゾーンでは、プロバイダとのやりとりなども必要になるし、特別なゾーン名の定義方法などが使われていることが多いので、ここでは取り上げない(今後別TIPSで取り上げる予定)。
Windows Server OSにActive Directoryをインストールする場合、デフォルトでDNSサービスが導入されるようなっている(もしくは、あらかじめDNSサーバを設定しておいてからActive Directoryの導入を開始する)。
しかし、正引きゾーンと違って、逆引きゾーンの重要性は低いため(Active Directoryにとっては逆引きゾーン情報は必須ではない。どちらかというとWindows OS以外の環境で利用されることの方が多い)、デフォルトでは導入されないようになっている。そのため、必要ならば管理者自身が自分で逆引きゾーンを定義しなければならない。
といっても、その定義方法は非常に簡単である。DNSサーバのIPアドレスに基づいて逆引きゾーンを定義するだけである。作業はウィザードを起動して、IPアドレスを指定するだけなので、手間はかからない。以下、順にその手順を見ていこう。
逆引きゾーンを定義するには、ウィザードを利用すると簡単である。まずDNSサーバの管理ツールを起動し([管理ツール]−[DNS]を実行)、[逆引き参照ゾーン]を右クリックして、ポップアップメニューから[新しいゾーン]を選択する。
最初に作成するゾーンのタイプを指定する。DNSのゾーン定義では、マスターとなる「プライマリ ゾーン」と、プライマリゾーンのミラーとして機能する「セカンダリ ゾーン」の2つがあるが、最初はプライマリゾーンを作成しなければならない。2台目以降のDNSサーバの場合はセカンダリゾーンにする。
Active Directoryを利用する場合は(上で(2)をオンにした場合は)、ゾーンデータの複製方法を指定する。デフォルトのままでよい。
次が一番重要であるが、逆引きのゾーン名を定義する。具体的には、ゾーンの元となるIPアドレス(上位3bytes)を指定すると、それに基づいて、自動的に逆引きゾーン名が決定される。必要ならば、手動で逆引き用のゾーン名を定義することもできるが、イントラネットの逆引き用途では、デフォルトのままでよい。
逆引きのゾーン名のデフォルトはIPアドレスから自動的に求めることができる。例えば「10.20.5.11」というIPアドレスがあるとすると、最終byteのデータ(「11」)の部分を削除して「10.20.5」とし、これを逆順に並べて(「5.20.10」となる)、最後にドメイン名として「.in-addr.arpa」を追加する。最終的には「5.20.10.in-addr.arpa」となる。
「in-addr.arpa」は、逆引きのゾーンの最後に付けられる特殊な名前であり(Internet Address、ARPAの意味)、DNSの規格で決まっている。
つまり「10.20.5.11」というIPアドレスに対応する逆引き名(FQDN名)は「11.5.20.10.in-addr.arpa」となる。この文字列は、「5.20.10.in-addr.arpa」というゾーンにおける「11」という名前のホスト、という意味である。10.20.5.11は数字が4つつながったものに見えるが、DNSサーバから見ると、正引きのFQDN名と同じく、「10」や「20」「5」「11」という「文字列」が「.」で連結されたもの、と解釈されている。
逆引きゾーンを定義する場合は、このように、DNSサーバのIPアドレスの上位3bytesをゾーン名として指定する。最下位の1byteの値は、このゾーン内におけるレコード名として使用されるため、指定する必要はない*。
*このようなケースでは、「10.in-addr.arpa」という逆引きドメインの下に、「20」というサブドメインを定義し、さらにその下に「11」というサブドメインを定義する方法もある。具体的な方法や、ここで解説している方法との違いについては、TIPS「DNSの逆引きゾーンを定義する(イントラネットサブドメイン編)」を参照していただきたい。
次は動的更新を許可するかどうかを指定する。Windows OSではDHCPによってIPアドレスが動的に決まることが多いため、どのIPアドレスが、現在どのコンピュータに割り当てられているかを知るためには、DNSサーバに対する動的更新を許可しておくのがよい。
以上で設定は終わりである。ウィザードを進めて設定を終了すると、逆引きゾーンが新規作成されているはずである。以下は、逆引きゾーンが作成され、さらにDNSサーバ自身のレコードが作成された直後の状態である。ただしゾーン名は「10.20.5.x Subnet」というふうに分かりやすく表示されているが、これを実際の「5.20.10.in-addr.arpa」と表示させるためには、[表示]メニューの[詳細設定]をオンにする。
以上の例では、「10.20.5.*」というIPアドレスに対する逆引きレコードを登録した。だが実際には、ネットワーク上にはそれ以外のネットワークアドレスも多数使われているだろう。例えば、「10.20.1.0/24」や「192.168.0.0/16」「172.16.0.0/20」などだ(「/」を使ったアドレスの表記方法については、基礎から学ぶWindowsネットワーク「IPアドレスとネットマスク」参照)。
このような場合は、さらに別の逆引きゾーンを定義しておく必要がある。例えば「10.20.1.1」というIPアドレスを利用しているなら「1.20.10.in-addr.arpa」という逆引きゾーンが必要だし、「192.168.2.3」なら「2.168.192.in-addr.arpa」というゾーンが必要だ。
サブネットマスクの値(bit幅)は関係ない。IPアドレスを10進数4組で表した場合、その上位3組に相当するゾーン名が必ず必要になる。例えば「192.168.0.0/16」を全て使用しているならば「0.168.192.in-addr.arpa」〜「255.168.192.in-addr.arpa」の256個のゾーン定義が必要である。
というわけで、次の画面に示すように、使用しているIPアドレス(ネットワークアドレス)に相当する分だけ、全ての逆引きゾーンを定義していただきたい。作成には少々手間がかかるかもしれないが(多数のサブネットを使っている場合)、1度作ってしまえば特にメンテナンスする必要もないので、作っておくとよいだろう。
■更新履歴
【2006/05/13】サブドメインを使って逆引きゾーンを定義するTIPS記事へのリンクを追加しました。
【2006/04/22】初版公開。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.