DNSサーバでゾーンごとに異なるフォワーダを使う【Windows Server】Tech TIPS

DNSサーバがほかのDNSサーバに対して名前解決要求を転送または依頼することをフォワードするという。Windows Server 2003では、ドメインごとに異なるフォワードを定義できる。これを条件付きフォワード機能という。これを利用すると、組織内に存在する独立した複数のDNSドメインを統合することが可能になる。

» 2004年03月06日 05時00分 公開
「Tech TIPS」のインデックス

連載目次

DNSサーバでゾーンごとに異なるフォワーダを使う【Windows Server】

対象OS:Windows Server 2003


DNSの「リゾルバ」とは

 DNSサーバの提供する機能にはさまざまなものがある。DNSクライアント(DNSリゾルバ。DNSサーバに名前解決を依頼する機能)からの要求を受けて、FQDNからIPアドレスを求めたり、その逆を行ったりする機能(リゾルバ機能)もその1つである。特に、DNSサーバ1台で、再帰的検索を使ってFQDNの解決を行う機能を「フルサービスリゾルバ」と呼ぶことがある。DNSの機能や用語などについては、Master of IP Networkフォーラムの「DNSの仕組みの基本を理解しよう」や「DNSの設定は正しいか?」などを参照していただきたい。

 一般的には、組織内にこのようなフルサービスのリゾルバとして機能するDNSサーバを1台ないしは数台設置しておき、インターネット上のFQDNだけでなく、組織内部の各サブドメインのFQDNの解決も担当させる。そして各クライアントPCのTCP/IPのDNSサーバパラメータ欄には、このようなDNSサーバのIPアドレスをセットしておく。クライアントPCでFQDNの名前解決の必要性が生じると、それはDNSサーバへと送られ、そこからさらに再帰的な呼び出しを使って、名前の解決が行われる。

組織内に複数のドメインツリーが存在する場合の問題点

 このようなDNSサーバによる名前解決の仕組みは、組織内のドメインツリーが1つならば正しく機能するが、複数のドメインツリーが存在する場合には解決できないことがある。通常DNSサーバは自分自身が属するドメインを把握しており、問い合わせのFQDNがそのドメインの一部なら、組織内のDNSサーバに名前解決を依頼する。しかしまったく別のドメインツリーならば、ルートヒント情報を使ってインターネットの名前階層の最上位から順に名前解決を行ったり、もしくは利用しているプロバイダなどが提供するサーバへと名前解決を依頼または転送したりする(ルートヒントについてはTech TIPS「DNSサービスのルートヒントを変更する」を参照)。

 例えばある組織のドメイン名が「d-advantage.jp」だとすると、「www.d-advantage.jp」や「www.system.d-advantage.jp」というドメインは自組織内のドメインに属することが分かっているので、「d-advantage.jp」のDNSサーバへ問い合わせるだろう。だが「www.atmarkit.co.jp」というFQDNの場合は、「d-advantage.jp」の一部ではないので、これは外部の(インターネット上の)FQDNであると判断され、「.jp」「co.jp」「atmarkit.co.jp」の各DNSサーバへ順に問い合わせるか、プロバイダのDNSサーバへ名前解決をフォワードする(依頼または転送するという意味。以下フォワード)。

 だが、もし「d-advantage.jp」という組織内に、インターネット上のドメインとしては公開されていない(独立した)別のドメイン「eigyo.d-advantage.com」や「smallbusiness.local」「test.example.net」なども存在しているとすると、これらドメインに属するFQDNを解決することは難しい。公開されていないドメインなので、インターネット上でルートヒントからたどることはできないし、組織内でも独立しているので、これらのドメインに関する名前解決だけを該当ドメインのDNSサーバへフォワードすることができないからだ。組織の統廃合や合併、テスト目的、さらには各部署ごとの独自の裁量によるシステム(いわゆる「草の根ドメイン」)の導入などで、このような独立したドメインが作成される可能性がある。

Windows Server 2003以降なら解決可能

 Windows 2000 Server以前のDNSサーバでは、このような複数のドメインの名前解決を統合的に行うことは難しかったが、Windows Server 2003では機能が拡張され、複数のドメインの名前解決を統合できるようになった。具体的には、ドメイン(DNS用語では「ゾーン」という)ごとに異なるDNSサーバに対して名前解決要求をフォワードできるようになったのである。Windows 2000 Server以前のDNSサーバでは、フォワード先は1つに限定されており、ドメインごとにフォワード先を切り替えることはできなかった。Windows Server 2003ではこの機能を「条件付フォワード(conditional fowarding)」と呼んでいる。UNIX/Linux用のDNSサーバとして著名なBINDでは、すでにBIND 8から実装されていた機能である。

DNSサーバでゾーンごとに異なるフォワーダを使う

 条件付きフォワードを設定するには、まず[スタート]メニューから[管理ツール]−[DNS]でDNS管理ツールを起動する。そして左側ペインにあるDNSサーバ名を右クリックして、ポップアップメニューから[プロパティ]を選択する。

 次にプロパティダイアログで[フォワード]タブを選択する(DNS管理コンソールの右側ペインに表示されている[フォワーダ]メニューをクリックしてもよい)。

DNSプロパティの表示 DNSプロパティの表示
条件付きフォワードを設定するためには、まずDNSの管理コンソールでDNSサーバの[プロパティ]ダイアログを表示させる。
  (1)DNS管理コンソールでサーバ名を右クリックする。
  (2)DNSサーバ名を右クリックして、ポップアップメニューで[プロパティ]を選択する
条件付きフォワードの設定 条件付きフォワードの設定
Windows Server 2003のDNSサーバでは、条件付きフォワード機能が追加されている。この管理ツールでWindows 2000 Server以前のDNSサーバを管理しようとしても、ダイアログ上部には「このサーバーはダウンレベルのサーバであるため条件付フォワードは利用できません」というメッセージが表示され、デフォルトのフォワード機能しか利用できない。
  (3)条件付きフォワーダを設定するためには、このタブを選択する。
  (4)フォワード先のドメイン(ゾーン)のリスト。どれか1つを選択すると、(9)の部分に、このドメインに対するフォワード先が表示される。デフォルトでは一番上の項目しか存在しない。
  (5)デフォルトの項目。この項目に対するフォワード先は、デフォルトのフォワード先として扱われる。Windows 2000 Server以前のDNSサーバを管理しようとすると、この項目しか表示されない。
  (6)新しいドメインを定義する場合はこれをクリックする。するとドメイン名を入力するダイアログが表示されるので、追加したいドメイン名(DNSゾーン名)を入力して[OK]をクリックする。
  (7)フォワード先を定義する場合は、ここにフォワード先のDNSサーバのIPアドレスを入力し、(8)をクリックする。
  (8)(7)にDNSサーバのIPアドレスを入力してからこれをクリックすると、(9)のリストの最上位に追加される。
  (9)フォワード先のDNSサーバのIPアドレス一覧。最上部が一番優先度が高く、まずはそのサーバに対してクエリが送られる。タイムアウトするとリストの2番目のサーバに対してクエリが送られ、以下、順に優先度が下がる。
  (10)サーバの優先度を変更するには、(9)でIPアドレスを選択して、このボタンで上下させる。
  (11)タイムアウトと判定するまでの時間(秒単位)。この時間が経過しても応答が帰ってこない場合は、次の優先度のDNSサーバへクエリが送信される。どのサーバからも応答がなければ、クエリは失敗する。

 [DNSドメイン]リスト欄は、Windows Server 2003のDNS管理ツールから新設された項目である。従来のWindows 2000 Server以前では「フォワーダを有効にする」かどうかしか選べなかったが、Windows Server 2003では、デフォルトのフォワード先(「ほかのすべての DNS ドメイン」と表示されている)以外に、複数の異なるドメインを定義できる。リスト上でドメイン名(もしくは[ほかのすべての DNS ドメイン])を選択すると、そのドメインに対するフォワード先のDNSサーバを、それぞれ個別に定義できる。

 なおこの条件付きフォワードは、クエリするFQDNに対して最長一致するドメイン名の文字列を元に判断されるので、ドメイン名を付けない形式の名前解決をフォワードすることはできない。例えば「server1.d-advantage.jp」と「server1.test.local」という2つのFQDNをそれぞれ異なるDNSサーバへフォワードさせることはできるが、単に「server1」というホスト名部分だけの名前では、フォワード先を切り替えることはできない(デフォルトのフォワード先が利用される)。DNSサーバに要求を送信する側(クライアント側)では、正しくドメイン名部分を補うように、TCP/IPのパラメータの設定を行っておく必要がある(Tech TIPS「DNSの検索サフィックスリストを定義する」も参照)。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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