DNSの名前解決方法には、「再帰問い合わせ」と「反復問い合わせ」の2種類がある。
再帰問い合わせ
クライアントのリゾルバから、DNSサーバに対して問い合わせをする。再帰的という言葉は、「再び帰ってくる」。結果が分かるにしろ分からないにしろ、問い合わせをした結果の答えが帰ってくる。
ポイントは、最終的な回答をすること。

反復問い合わせ ※過去問(H22SC春午後玉1)では、「非再帰的な問合せ」という表現が使われました。
ルートネームサーバから順に問い合わせる。図にあるように、何度も「反復」している。
たとえば、y-sya.example.co.jpの場合
\こΔ13台あるルートネームサーバに問い合わせ。ルートネームサーバは.jpドメインのサーバを教える。
jpドメインのサーバに問い合わせ。ルートネームサーバはco.jpドメインのサーバを教える。
F瑛佑example.co.jp
て瑛佑y-sya.example.co.jp
イ海里茲Δ砲靴y-sya.example.co.jpのDNSサーバに到達し、DNS名前解決をしてもらう。
過去問ではDNSのこの動作に関して、「インターネット上のDNSサーバは階層化されており、ある名前に対して情報がない場合には、上位のDNSサーバに問い合わせる」とある。(H21NW午前問9)

)フォワーダへの転送
フォワーダにて、他のDNSサーバに依頼する。設定は、DNSゾーンファイルの forwardersに指定する。たとえば、社内のDNSサーバが大手プロバイダのDNSサーバをフォワーダとして設定する。DNSの問い合わせはフォワーダに任せる。問い合わせ結果は、フォワーダからPCに直接返すのではなく、自分が知っていたかのように返す。


dns
再帰問い合わせの場合は、最終的な回答(y-sya.example.co.jpに対するIPアドレス)をする。一方、反復問い合わせは、最終的な回答とは限らず、次に参照すべきDNSサーバを紹介している。
1 
でも、図の社内DNSサーバからルートネームサーバには、
.jpのネームサーバのIPアドレスを問い合わせしていますよね。
そして、.jpのネームサーバのIPを返しているので、それ自体は最終的な回答ではないのですか?
いや。毎回「y-sya.example.co.jp」は?という問い合わせをしている。可能性は低いが、キャッシュを持っていて解答してくれる場合もあるからね。
5
では、フォワーダはどちらに分類されますか?
反復問い合わせではないので、再帰問い合わせですかね?
いや、どちらでもない。フォワードは単にDNS問い合わせを転送しているだけだ。

◆フォワーダの補足:フォワーダを利用するメリット
たとえば、社内DNSサーバにて、フォワーダとしてプロバイダのDNSサーバを設定します。こうすれば、プロバイダのDNSサーバが名前解決をしてくれます。これにより、社内DNSサーバの負荷が軽減できます。
sef1 

フォワーダを使っても、内部DNSサーバの負荷はそれほど減らないのでは?
そんなことありません。キャッシュが無い状態で社内DNS サーバに問い合わせが来ると、反復問い合わせを何度か行います。一方、外部フォワーダへの問い合わせは一回だけです。また、多くの場合、大規模なフォワーダはキャッシュを持っているので、応答時間も短縮されます。

参考
WindowsのDNSサーバの設定で「再帰を無効にする(フォワーダも無効になります)」というチェックボックスがある。再帰問い合わせをしないので、フォワーダによる問い合わせもしないということだろう。

■再帰問合せを拒否している場合とそうでない場合の結果の違い
ゝ馮櫃靴討い訃豺
Query refused

拒否していない場合
結果を答えるか、Non-existent domain(見つけられない)を返す。

以下、やってみた。
ゝ馮櫃靴討い訃豺
IPAのNSを指定する。おそらくコンテンツサーバ。

> server ipa-ns.ipa.go.jp
既定のサーバー:  ipa-ns.ipa.go.jp
Address:  192.218.88.1
> www.yahoo.co.jp
サーバー:  ipa-ns.ipa.go.jp
Address:  192.218.88.1
*** ipa-ns.ipa.go.jp が www.yahoo.co.jp を見つけられません: Query refused

→コンテンツサーバなので再帰問合せは拒否されている(はず)。だから、このように、refuseされる。

拒否していない場合
GoogleのDNSサーバを指定する。

> server 8.8.8.8
既定のサーバー:  [8.8.8.8]
Address:  8.8.8.8
> www.ffffffffffffffffffff.xx.jp
サーバー:  [8.8.8.8]
Address:  8.8.8.8
*** [8.8.8.8] が www.ffffffffffffffffffff.xx.jp を見つけられません: Non-existent domain

→みつけられないと出る。

> www.yahoo.co.jp
サーバー:  [8.8.8.8]
Address:  8.8.8.8
権限のない回答:
www.yahoo.co.jp canonical name = edge12.g.yimg.jp

→答えてくれる

スポンサードリンク