Windows Server 2016 DNSの管理

どうも、Miyaです。

前回は、名前解決について詳しく解説していきましたが、今回は、管理というところにフォーカスを当てて解説したいと思います。
Windows ServerのDNSって基本的にゴリゴリ設定をいじるってことは無いんですが、例えば、企業での合併時などに名前解決のポリシーを決定して、それに沿ったDNSの設定を行わなければなりません。
ナンジャコリャみたいな単語も多いので、DNSの実際の画面を参考にご紹介していこうと思います。

スポンサーリンク:

DNS 名前解決のための各コンポーネント

まずは、DNSで名前解決するために登場する各コンポーネントをご紹介します。
DNSコンポーネント

ここで登場する各コンポーネントの名前と機能ですが、
① DNSリゾルバー
DNSリゾルバーとは、問い合わせを行ったクライアントのこと指します。
例えば、私たちがコンピューターを立ち上げて、IEからGoogle.comへアクセスした際にDNSに問い合わせ(クエリ)した場合、そのコンピューターがDNSリゾルバーとなります。
つまり、DNSに対してクエリを生成するコンピューターのことになります。
ここで注意なのですが、②のDNSサーバが、③のインターネットDNSにクエリを生成した場合は、②のDNSサーバはDNSリゾルバーを兼ねることになります。

② DNSサーバー
DNSサーバは、これまで説明してきた通り、①のDNSリゾルバーが生成したクエリに対して、応答するサーバのことを指します。
DNSサーバには特定の1つ以上のドメインのゾーンをホストしており、さまざなリソースレコードが記述されています。
また、DNSには参照情報をキャッシュする機能を持つため、クエリに対する応答時間を短縮することが可能となっています。

③ インターネットDNS
その名の通り、インターネット上に公開されているDNSサーバのことを指します。
そのため、匿名のクライアントからアクセスが可能となっており、パブリックドメインに関する情報をホストしています。
例えばcomやjpなどのドメインをホストしているDNSサーバがそれにあたります。

クエリとは?

先ほどから、「クエリ」を連発しておりますが、そもそもクエリってなに?と疑問を持つ方がいると思います。
一言で説明すると、クエリというのは「問い合わせ」です。
ただし、クエリは以下の二つに分類することができます。

  • 再帰クエリ
  • 反復クエリ

再帰クエリとは?

再帰クエリとは、DNSリゾルバーがDNSサーバーに対して、要求されたリソースのIPアドレスを完全に解決してから、応答をDNSリゾルバーに返すように要求します。
再帰クエリを受け付けたDNSサーバーは、完全な解決を求めるために、複数回クエリを実行しなければなりません。うーん、鬼畜。
再帰クエリ

反復クエリとは?

反復クエリとは、DNSシステム全体に存在するドメイン名情報にアクセスします。つまりこの部分です。

>>再帰クエリを受け付けたDNSサーバーは、完全な解決を求めるために、複数回クエリを実行しなければなりません。うーん、鬼畜。

再帰クエリを受け取ったDNSサーバは、完全な名前解決をするために、ローカルキャッシュされた参照情報を使用し、応答できない場合は、反復クエリを使用して、他のDNSサーバに同一の要求を作成します。
一方、反復クエリを受け取ったDNSサーバは、要求の解答がわかっている場合はそのアドレスを返し、わからない場合は照会されたドメインに対して権限のあるDNSサーバの情報を返します。再帰クエリを受け取ったDNSサーバはこれを繰り返し、要求のドメインに対して権限のあるDNSサーバを探し続けます。
反復クエリ

つまり、再帰クエリを受け取ったDNSサーバが反復クエリで権限のあるDNSサーバを探す、ということを覚えておいて下さい。

クエリに対する応答

DNSサーバはクエリに対して、何らかの応答をDNSリゾルバーに返さなければいけません。
その応答も以下の二つに分類することができます。

  • 権限のある応答
  • 権限のない応答

権限のある応答とは?

権限のある応答とは、DNSリゾルバーで生成されたクエリのドメインを管理するDNSサーバに直接送られ、サーバが正確であるとわかっている応答を返すことを指します。
ですので、権限のある応答では、クエリのドメインのゾーンをプライマリまたはセカンダリとしてホストしている必要があります。
例えば、contoso.comゾーンをホストしているDNSサーバに対して、contoso.comドメインのクエリを送信した場合、DNSサーバからは権限のある応答が返ってきます。
contoso.comゾーンをプライマリゾーンとしてホストしているため、「サーバーが正確である」という意味を示します。
権限のある応答

権限のない応答とは?

権限のない応答とは逆に、DNSサーバがクエリのドメインのゾーンをホストしていないために、他DNSサーバへクエリ投げて、DNSリゾルバーに応答すること指します。
例えば、contoso.comゾーンをホストしているDNSサーバに対して、google.comゾーンのレコードを引いた場合、クエリは以下のようになります。
権限のない応答
DNSリゾルバーは、初めにcontoso.comゾーンをホストしているDNSにクエリを生成していますが、DNSはgoogle.comゾーンなんて知らないので、インターネットDNSにクエリを生成する必要があるわけです。
最終的にDNSリゾルバーからクエリを受け付けたDNSがgoogle.comのレコードを返すわけですが、返す情報が自身でホストしているゾーンではないので、正確ではない可能性があるわけです。
権限のない応答

DNSサーバからDNSサーバへのクエリ

次に、DNSサーバがクエリに対してのIPアドレスを解決できない場合、他DNSサーバにクエリを投げつけるわけですが、それらの設定はDNS管理コンソールから可能です。
ただ、単にクエリを投げるだけでも様々なパターンがありますので、用語と設定方法をご紹介したいと思います。

フォワーダーとは?

フォワーダーとは、DNS自身が管理するゾーン以外の要求を受け取った場合に、特定のDNSサーバにクエリを転送する機能です。
例えば、contoso.comゾーンをホストするDNSサーバがcontoso.com以外のドメイン名の要求を受け取った場合、フォワーダーとして登録したDNSサーバに転送することができます。
DNS管理コンソールから[<ホスト名>]を右クリック→[プロパティ]→[フォワーダー]タブをクリックします。
フォワーダー

[編集]から、フォワーダーとして要求を転送したいDNSサーバのIPアドレスを入力し、[OK]で閉じます。
フォワーダーの追加

この状態でnslookupコマンドで名前解決してみると、、、
※フォワーダーが解決できるクエリを投げましょう。
フォワーダー

条件付きフォワーダーとは?

条件付きフォワーダーとは、要求されたDNSドメイン名に従って、DNSクエリを転送します。
例えば、contoso.comゾーンをホストするDNSサーバがadatum.comドメイン名のクエリを受け取った場合は、特定のDNSサーバに要求を転送するよう設定ができます。
また、条件付きフォワーダーは、フォワーダーとは異なり、特定のクエリを特定のDNSサーバに転送するため、処理が高速化されます。

DNS管理コンソールから、[条件付きフォワーダ]を右クリック→[新規条件付きフォワーダ]をクリックします
特定のドメイン名と、転送先DNSのIPアドレスを入力します。
設定するDNSがAD統合ゾーンであれば、条件付きフォワーダーのレプリケートの可否と範囲が設定可能です。。
条件付きフォワーダー

ルートヒントとは?

ルートヒントとは、インターネット上の世界に13台配置されるルートDNSサーバのリストのことです。
DNSサーバはクエリに対して、キャッシュ情報、フォワーダーから解決を試みますが、それでも解決ができない場合にルートヒントからルートDNSサーバに対してクエリを生成します。
DNSを構成した時点でデフォルトで13台のリストが生成されます。

DNS管理コンソールから、[<ホスト名>]を右クリック→[プロパティ]→[ルートヒント]タブをクリックします。
以下のように13台のルートヒントのリストが確認できます。
ルートヒント

DNSサーバがルートヒントへクエリを生成する際は、反復クエリになります。
ルートヒントへのクエリですが、[再帰を無効にする]にチェックをつけると、ルートヒントに対してクエリを生成しなくなります。
つまり、インターネットへの名前解決をしないということです。
再帰の無効

ここで、違和感を感じる方はスーパーマンですね。
「んん?ルートヒントには反復クエリを生成するのだから、再帰を無効にしてもルートヒントに名前解決するんじゃね?」
実はですね、これ非常にややこしいんですが、再帰クエリと再帰は別の意味になります。
ここでいう再帰とは、ルートヒントのサーバを使用して名前解決することを指します。ややこしいわMicrosoft…( ̄▽ ̄;)

この状態で、www.yahoo.co.jpを名前解決してみます。
再帰の無効

このように「Query refused」と表示され、クエリが拒否されているのが確認できますね。

名前解決の仕組みも掘ってみれば、さまざまな種類がありますね。
企業の名前解決のポリシーに沿って、クエリを制御する必要がありますので、しっかりと理解しておきましょう( ..)φメモメモ
それでは、良いWindows Serverライフをっ♪

スポンサーリンク