- ベストアンサー
nslookupのNon-autoritative answerとは?
Windows2000上のコマンドプロンプトで nslookup www.google.com などとしたときに、応答の一番最初の行に Non-autoritative answer と表示されますが、これはどういう意味なのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
DNSサーバは、DNSクライアントに対して返す情報を制限することがあります。例えば・・・ OCNに属するホスト名 p2046-ipbf210hodogaya.kanagawa.ocn.ne.jp [222.144.79.46] (1) に関してnslookupで調べると p2046-ipbf210hodogaya.kanagawa.ocn.ne.jp internet address = 222.144.79.46 kanagawa.ocn.ne.jp nameserver = ns-os041.ocn.ad.jp kanagawa.ocn.ne.jp nameserver = ns-tk041.ocn.ad.jp ns-os041.ocn.ad.jp internet address = 210.145.255.80 ns-tk041.ocn.ad.jp internet address = 203.139.160.230 と出てきます。そこで、(1)を管理するDNSサーバのホスト名 ns-tk041.ocn.ad.jp [203.139.160.230] (2) と、 http://ocnfaq.ocn.ne.jp/EokpControl?event=ZE0002&tid=17441 にある「OCNダイヤルアップユーザ向けDNSサーバ」のホスト名 nv-td501.ocn.ad.jp [202.234.232.6] (3) に対して(1)と www.goo.ne.jp [210.150.25.37] (4) の問い合わせを行い、どういう反応を返すか調べてみると、以下のようになります。 【DNS:ns-tk041.ocn.ad.jp (2)の場合】 Default Server: ns-tk041.ocn.ad.jp Address: 203.139.160.230 > set type=any > p2046-ipbf210hodogaya.kanagawa.ocn.ne.jp. Server: ns-tk041.ocn.ad.jp Address: 203.139.160.230 p2046-ipbf210hodogaya.kanagawa.ocn.ne.jp internet address = 222.144.79.46 kanagawa.ocn.ne.jp nameserver = ns-os041.ocn.ad.jp kanagawa.ocn.ne.jp nameserver = ns-tk041.ocn.ad.jp ns-os041.ocn.ad.jp internet address = 210.145.255.80 ns-tk041.ocn.ad.jp internet address = 203.139.160.230 > www.goo.ne.jp. Server: ns-tk041.ocn.ad.jp Address: 203.139.160.230 Non-authoritative answer: www.goo.ne.jp internet address = 210.150.25.37 goo.ne.jp nameserver = ns2.sphere.ad.jp goo.ne.jp nameserver = goo201.goo.ne.jp goo.ne.jp nameserver = goo202.goo.ne.jp > exit 【DNS:nv-td501.ocn.ad.jp (3)の場合】 Default Server: nv-td501.ocn.ad.jp Address: 202.234.232.6 > set type=any > p2046-ipbf210hodogaya.kanagawa.ocn.ne.jp. Server: nv-td501.ocn.ad.jp Address: 202.234.232.6 Non-authoritative answer: p2046-ipbf210hodogaya.kanagawa.ocn.ne.jp internet address = 222.144.79.46 > www.goo.ne.jp. Server: nv-td501.ocn.ad.jp Address: 202.234.232.6 Non-authoritative answer: www.goo.ne.jp internet address = 210.150.25.37 > exit このように、「OCNが管理するホスト名(1)」が登録されているDNSサーバ(2)は全情報を返しているのに対して、OCNユーザに対して使用するよう指定されているDNSサーバ(3)はホスト名に対応するIPアドレスのみを返しています。 なぜOCNがこのような違い(制限)を導入しているのかについては分かりません。管理が楽になるのかもしれませんし、それとも他の用途になるべく使われたくないということなのかもしれません。 ※以上、1つ目の疑問の回答です。 次に2つ目の疑問への回答ですが、もう一度上の2組のDNSサーバへの問い合わせの回答を見てください。(1)のホスト名はOCNに属するものですが、ユーザが(2)のDNSサーバを使用しない限り(例えば(3)のDNSサーバを使用しているような場合)、そのホスト名を引いてもNon-authoritative answerが返ります。 「使用を勧められたDNSサーバが、割り当てられたホスト名を管理している」という必要性は全くないので、このようなことは起こり得ます。
その他の回答 (3)
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
そのとおりで、ほとんどの場合はNon-authoritative answerになります。Non-authoritative answerにならない条件は「自分(DNSサーバ)自身が管理している情報であること」のみです。(キャッシュしているか否かは関係ありません。自身が管理しているか否かによります。) たとえばwww.goo.ne.jpを例に挙げると、nslookupを行うと www.goo.ne.jp internet address = 210.150.25.37 goo.ne.jp nameserver = goo201.goo.ne.jp goo.ne.jp nameserver = goo202.goo.ne.jp goo.ne.jp nameserver = ns2.sphere.ad.jp goo201.goo.ne.jp internet address = 210.150.25.11 goo202.goo.ne.jp internet address = 210.150.25.12 ns2.sphere.ad.jp internet address = 202.239.113.26 と返ってきます。 このとき、この中のnameserver = に記述された各DNSサーバに問い合わせ(nslookup)を行うとNon-authoritative answerは表示されません。それ以外のDNSサーバに問い合わせを行うと、その「問い合わせを受けたDNSサーバ」はwww.goo.ne.jpの情報を管理していないのでNon-authoritative answerと表示されます。
補足
どうもありがとうございました! nslookupを対話モードで起動して、 server goo201.goo.ne.jp としてデフォルトDNSサーバーをgooのものに切り替え、 www.goo.ne.jp や goo201.goo.ne.jp(DNSサーバー自身) を問い合わせてみると、確かにNon-authoritativeはつきませんでした。 ただ、気になる点が2箇所あります。(本当にすみません) まず、デフォルトDNSサーバーをgooのものに変更しないで(初期状態ではプロバイダから指定されたプロバイダのDNSサーバーです) www.goo.ne.jpに対してnslookupしても xcrOSgS2wYさんが提示して下さったnameserverなどの情報までは得られないのです。 nslookupを対話モードにして、 set type=any として再度問い合わせてみても同じ状況です。 www.goo.ne.jp internet address = 210.150.25.37 までしか情報が得られないのです。 しかし、デフォルトDNSサーバーにgoo201.goo.ne.jpを指定すると、 今度はきちんとnameserverまで情報が得られます。 これはどうしてなのでしょうか? 最後に、私はプロバイダにOCNを利用していて、OCNのDNSサーバーを利用しています。 ですので、このDNSサーバーに対してサーバー自身のホスト名に対して、 もしくはwww.ocn.ne.jpなどのocnのホストについて、 DNS問い合わせをすれば、Non-authoritativeがつかない返答が得られると考えたのですが、 しかし予想に反してそうはなりませんでした。 これはどうしてなのでしょうか? 私が利用しているOCNのDNSサーバーは、ごく一部の顧客向けのものでwww.ocn.ne.jpなどのホストは管理していないのかな、 とも考えたのですが、それにしてもDNSサーバー自身のホスト名に対する 返答にまでNon-authoritativeがついてきてしまいます。 何か特殊な事情でもあるのでしょうか?
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
問い合わせを受けたDNSサーバは、自身が知らない情報であれば 1. 「私は知らない」という回答を返す。 2. 上位のDNSサーバに問い合わせを行い、その結果を返す。 3. 以前に同じ問い合わせに対して2.を行っており、その結果を覚えている(キャッシュしている)場合は、そのキャッシュした結果を返す。 このうち2.や3.の場合で、上位DNSサーバからの回答が「私は知らない」以外のものであった場合、その結果はNon-authoritativeなものとして返されます。
補足
ありがとうございます。 まだわかりきっていない部分がありますので、よろしければ追加質問にお付き合い下さい。 よろしくお願いします。 ・ほとんどのnslookupにおいてはNon-authoritative answerが返ってくるということになるのでしょうか? ・Non-authoritativeがついてこない返答があるというケースは、どんな場合に起こるのでしょうか? 確か記憶では、DNSサーバー群の構成する階層は上位のものが下位のものも内包するという形ではなくて、 それぞれがそれぞれの担当範囲のみを管理する、という形態だったと思うのですが、 つまり、Aを仮ルートとして(上)A→B→C(下)というような階層だったとき、 AはBやCの上位サーバーだからといってBやCの管理内容までは関知していないということだったと思います。 ということは大抵のDNSサーバーは自分のごく狭い管理範囲のIPしか把握していないということになります。 例えばプロバイダのDNSサーバーを利用している場合は、 そのサーバーに問い合わせてそのサーバーが「知っていて」Non-authoritativeをつけずに回答してくるケースというのは、 そのサーバー自身について問い合わせたケースか、 そのサーバーが管理している顧客に割り当てているホスト名の範囲のみということになると考えました。 私はプロバイダのDNSサーバーを利用しているので、試しにそのホスト名をnslookupしてみたのですが、期待に反してNon-authoritative answerが返って来ました。 考えてみればこれはあたりまえで、DNSサーバーは自分が管理しているホスト名やIPについてはとっくにキャッシュしているんですよね。 ということは、一体どんなケースならNon-authoritativeなしの返答がありえるのでしょうか?
- ballville
- ベストアンサー率47% (233/487)
hが抜けてますね。 Non-authoritative answer DNSから返って来た応答ではなくて、クライアントPCなんかに、 キャッシュされていたアドレスです、という意味です。
補足
回答、どうもありがとうございます。 すみません。h抜けていました。 クライアントPCにキャッシュされていたアドレスということなのですが、 まだ疑問が残ります。 このキャッシュはどこにキャッシュされているのでしょうか? たとえばコマンドプロンプトから、 ipconfig /flushdns としてキャッシュをクリアしてみるのですが、その後に、 nslookup www.google.com としてもやはりNon-authoritative answer がついて応答が来ます。
お礼
本当に、本当にありがとうございました! ここまで丁寧に詳細に教えていただき、もう泣きそうです。