【Active Directory】DNSに逆引きゾーンを追加する~解説編~

Windows

前回の記事ではDNSに逆引きゾーンを追加しました。

今回は手順の中の一部を切り取って、逆引きゾーンの構成について解説します。

ゾーンの種類

ゾーンを作成するときに以下のようなポップアップが表示されました。

このポップアップは前方参照ゾーンの作成でも同様の選択肢があります。

プライマリゾーンとセカンダリゾーン

まず一般的に、DNSサーバにゾーンを作成する場合は、こちらのゾーンを使用します。Active Directoryではなく例えばBINDなどでDNSサーバを構築し、さらに冗長構成のため複数台で構成する場合などは、プライマリゾーンとセカンダリゾーンを作ることになります。

プライマリゾーンでは、レコードの追加や削除などの管理操作が行えますが、セカンダリゾーンはプライマリゾーンの情報をもらってくるだけで、それを書き換えることはできません。

スタブゾーン

ポップアップの説明にもありますが、SOAレコードとNSレコードのみを保持します。SOA(Start of Authority)レコードとは、ゾーンの情報(所有者や連絡先など)が記載されているレコードで、どのゾーンでも必ず書かなければいけない情報です。

NSレコードとはDNSサーバの場所を示すレコードです。

例えば

a.localというドメインはns1.a.localというサーバがDNSだよ

ということを示してあげます。

これにより、「a.localに関する名前解決要求がきたらns1.a.localに聞けばいいな」ということがわかります。このような方法を権限の委任といったりします。

a.localというドメインの子ドメインとして、child.a.localというドメインがあったとします。

今b.child.a.localというコンピュータの名前解決を行わせるために、ns2.child.a.local(DNSサーバ)にb.child.a.localのレコードを追加しました。

ではa.local(親ドメイン)に所属するサーバがこれを名前解決するためにはどうすればよいでしょう。

a.localのサーバはDNSの向き先がns1.a.localであるとします。

・・・と、こういった場合に、ns1.a.localにchild.a.localのスタブゾーンを作成し、NSレコードとしてns2.child.a.localを指定してあげます。

Active Directoryにゾーンを格納する

このチェック項目はActive Directory特有のものです。(なんとなくわかりますが)

ゾーン情報をActive Directoryのレプリケーション対象である、SYSVOLの中に格納します。つまり、同じドメインのActive Directoryすべてにレプリケーションされます。

このようなゾーンのことを「Active Directory統合ゾーン」といいます。

Active Directory統合ゾーンはプライマリーゾーンしか作れません。(マルチマスターのため)

基本的にActive Directory環境ではこのAD統合ゾーンが推奨されています。

また、Active Directory統合ゾーンの場合は、次のポップアップが表示されます。

レプリケーションの範囲を指定できます。フォレスト内には普通別ドメインを配置しますので、ドメイン内を選択します。

逆引きゾーンの名前指定

逆引きゾーンの場合は、名前を指定できます。

一般的な話となりますが、逆引きゾーンはネットワークアドレスをオクテット毎に逆にしたもの+.in-addr.arpa が名前となります。(BINDなどでも同じ)

10.20.0.0/24のネットワークの逆引きゾーンは「0.20.10.in-addr.arpa」

192.168.2.0/24の逆引きゾーンは「2.168.192.in-addr.arpa」

172.10.0.0/16の逆引きゾーンは「10.172.in-addr.arpa」

です。

逆引き参照ゾーンのサブネット

ここで少し疑問に思った方もいるのではないでしょうか。

そうです、この表記方法だと、サブネットは/8、/16、/24の3種類しか指定できないことになります。

現在のネットワーク設計ではCIDRといって/27や/28など、クラスの考えを捨てて自由に振り分けるのが一般的となっています。(もちろん/24でも切れます)

ではこのような場合はどのように指定するかというと、先ほどのスタブゾーンのような指定の仕方をします。

例えば、192.168.2.64/26のサブネットの逆引きゾーンを作りたいとします。

そうした場合、2.168.192.in-addr.arpaの中に、今度はCNAMEレコードという種類で、64.2.168.192.in-addr.arpaを作成してあげます。(ゾーンの作成ウィザードでは名前を直接入力します)

そうやって指定してあげることによって、8,16,24以外のサブネットの場合でも逆引き参照ゾーンを作ることができます。

でも実はそんなことしなくてもいい

このようにして、/26などの場合でも逆引き参照ゾーンを作成する方法がわかりましたが、実はそのようなことをしなくても名前解決はできてしまいます。

IP通信を行う際のルーティングにおいて、複数のアドレスがある場合、通常はプレフィックス長が長い方のネットワークアドレスが優先的に選択されます。

このようなルールのことをロンゲストマッチといいます。

そして、WindowsのDNSサーバは動的更新や名前解決でレコードを探すとき、このロンゲストマッチというルールに従って、検索します。

2.168.192.in-addr.arpaと168.192.in-addr.arpaのゾーンがあって、192.168.2.3の逆引きを見たいとき、必ず2.168.192.in-addr.arpaを参照します。

逆に考えると、2.168.192.in-addr.arpaがなく、168.192.in-addr.arpaしかない場合は、ちゃんと168.192.in-addr.arpaを見に行ってくれます。

要するに、/8、/16、/24の逆引き参照ゾーンだけ作っておき、ロンゲストマッチのルールに従ってIPを振り分けておけば、問題ない ということになります。

まとめ

Active Directoryを構成する際にはDNSサーバは必須要素となっていきます。

今回は逆引き参照ゾーンを例にとり、ゾーンの種類などを紹介しましたが、このほかにも他のドメインと連携させる(信頼関係を結ぶ)際や、Azureとの連携などを行う場合などに、DNSの構成は重要になってきます。

コメント

タイトルとURLをコピーしました