• ベストアンサー

nslookupのNon-autoritative answerとは?

Windows2000上のコマンドプロンプトで nslookup www.google.com などとしたときに、応答の一番最初の行に Non-autoritative answer と表示されますが、これはどういう意味なのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.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サーバが、割り当てられたホスト名を管理している」という必要性は全くないので、このようなことは起こり得ます。

tochanx
質問者

お礼

本当に、本当にありがとうございました! ここまで丁寧に詳細に教えていただき、もう泣きそうです。

その他の回答 (3)

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.3

そのとおりで、ほとんどの場合は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と表示されます。

tochanx
質問者

補足

どうもありがとうございました! 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)
回答No.2

問い合わせを受けたDNSサーバは、自身が知らない情報であれば 1. 「私は知らない」という回答を返す。 2. 上位のDNSサーバに問い合わせを行い、その結果を返す。 3. 以前に同じ問い合わせに対して2.を行っており、その結果を覚えている(キャッシュしている)場合は、そのキャッシュした結果を返す。 このうち2.や3.の場合で、上位DNSサーバからの回答が「私は知らない」以外のものであった場合、その結果はNon-authoritativeなものとして返されます。

tochanx
質問者

補足

ありがとうございます。 まだわかりきっていない部分がありますので、よろしければ追加質問にお付き合い下さい。 よろしくお願いします。 ・ほとんどの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)
回答No.1

hが抜けてますね。 Non-authoritative answer DNSから返って来た応答ではなくて、クライアントPCなんかに、 キャッシュされていたアドレスです、という意味です。

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/592nslookupsoa/nslookupsoa.html
tochanx
質問者

補足

回答、どうもありがとうございます。 すみません。h抜けていました。 クライアントPCにキャッシュされていたアドレスということなのですが、 まだ疑問が残ります。 このキャッシュはどこにキャッシュされているのでしょうか? たとえばコマンドプロンプトから、 ipconfig /flushdns としてキャッシュをクリアしてみるのですが、その後に、 nslookup www.google.com としてもやはりNon-authoritative answer がついて応答が来ます。

関連するQ&A

  • nslookupのAliasって何

    コマンドプロンプトで、nslookupを使うとURLからIP(逆も?)を知ることができますよね。 さて、Aliasと表示されるものがあります。それは何ですか。 例えば、 nslookup kr.altavista.com と入力すると、 Non-authoritative answer: Name: avatw.search.yahoo2.akadns.net Address: 66.94.229.254 Aliases: kr.altavista.com と表示されます。 そのとき、 IEのアドレス欄に、 http://avatw.search.yahoo2.akadns.net/ と入力したものと http://66.94.229.254/ と入力したものは、表示されるものが同じです。 しかし、 http://kr.altavista.com/ と入力したものは違います。 それはなぜですか。

  • コマンドnslookupについて

    XPのマシンでコマンドプロンプト画面を使うことがあるのですが、 「nslookup」コマンドで、「nslookup www.yahoo~」などと入力しますと、その後ろのアドレスのグローバルアドレスを知ることが出来ると知りました。 もし「nslookup」の後ろにドメイン名などを入れないで「nslookup」だけを入力してエンターキーを押すと、どこのアドレスが出るのでしょうか。 この「nslookup」はどういったときに使いますか。

  • solarisでnslookupできない

    solaris初心者です。下記について教えてください。 nslookupを行なうとNon-existent domainとなり名前解決ができません。 windowsやlinuxであればNon-existent domainとなってもDNSサーバに接続されるようですが、solarisのnslookupではDNSサーバの逆引きポインタが定義されていないとDNSサーバに接続できないのでしょうか? digコマンドで確認する方法もあるようですが未確認です。

  • nslookupでIPが見つからない

    コマンドプロンプトで、nslookup ~と記入して、 ホスト名からIPを調べようとしました。 ですが、IPがあるはずなのに、 「見つけられません」と表示されます。 例えば、 jp57b.mixhost.jpというホスト名は、 IPが150.95.55.159です。 ですが、nslookup jp57b.mixhost.jpで調べてみても、IPが見つからないとなります。 これは、どうしてでしょうか? しっかりとホスト名からIPを調べるには、どのようにすれば良いですか? よろしくお願いいたします。

  • nslookupの課題

    nslookupの仕組みを勉強しています。まだよく分かりません。 どなたか力を貸してください。お願いします。 1.コマンドプロンプトで nslookup コマンドを使って, 普段見ている URL やメールアドレスを IP アドレスに変換せよ。 2.コマンドプロンプトで nslookup を使って逆引きを試せ. 「1.」 で正引きしたアドレスを逆引きした結果を示せ。 3.IPv6アドレスが引けるホスト名を探して,その結果を示せ。 <ヒント> 現在は,ほとんどのホスト名には IPv4 アドレスしか登録されておらず, IPv6 アドレスが登録されているホストを見付け出すのは大変である。 検索エンジンを利用して, IPv6 の研究をしたり普及活動をしているような組織を探し 出すとよい。 以上です。よろしくお願いします。

  • 「nslookup」というコマンドについて

    SMTP等のメールプロトコルを使ったプログラミングをしていてDNSからMXレコード(?)という物を探す時に「nslookup」というコマンドを使うのですが、Windows Meで「nslookup」を実行しても、どうやらコマンドが存在しないようで「コマンドまたはファイル名が正しくありません」と出ます。 WindowsMeでは、「nslookup」というコマンドはないのでしょうか。 またもし無いとしたら代わりのコマンドはないのでしょうか。

  • NSLOOKUPの見方

    もうひとつDNS関係で質問します。 W2K ActiveDirectoryドメインのもとですが DNSがうまく機能しているかわからず、 マニュアルとおりにクライアントからNSLOOKUPコマンドを打ってみましたらこんな結果がでました。 c:\>nslookup server2 *** Can't find server name for address 192.168.20.5:Non-existent domai *** Defaoult servers are not available Server: Unknown Address: 192.168.20.5 Name: server2.Pcompany.co.jp Adress:192.168.20.48,192.168.20.5 *Server2=DNSサーバー192.168.20.5  192.168.20.48=Server2に入っているRASサーバーのアドレス また、別にヘルプに従って c:\>nslookup 192.168.20.5 127.0.0.1を打ってみると(127.0.0.1の意味がわらず、ヘルプとおりに打ちましたが) *** Can't find server name for address 127.0.0.1:No response from server Server: Unknown Adress: 127.0.0.1 *** Unknown can't find 192.168.20.5:No response from server とでました。 これらの結果から何が悪いのか教えていただけませんでしょうか。

  • nslookupでgoogleのネームサーバを調べたい

    こんにちは。nslookupについての質問です。 Windows Vista home basicを利用しています。 OCNとNTT東日本Bフレッツマンションタイプ(VDSL)でインターネットに接続しています。 宅内では、無線LANルータ(IODATA製WNG54R3)に11gで接続しています。 学校の宿題で、google.co.jpのネームサーバとそのIPアドレスを調べなければなりません。 コマンドプロンプトを起動して nslookup www.google.co.jp とやると、 DNS request timed out. time out was 2 seconds. サーバー:Unknown Address:[****:****:****:****:~]:?? (*?には数字又は英字がはいる) Unknownへの要求がタイムアウトしました。 となってしまいます。 どうすればいいのでしょうか?よろしくお願いします。

  • nslookupで名前解決ができない

    NAS-01Gをdebian化してFTPサーバを構築しており、FTPサーバを構築しようとしております。 現状は、ddclientをインストールして「ddclient -daemon=0 -debug -verbose -noquiet」を実行するとSUCCESS(IPアドレスはルータのグローバルIPなので正常だと思います。)になっているのですが、nslookupをしても名前解決がされません。 <NAS-01Gからnslookupを実行> NAS-01G:/etc# nslookup *****.dyndns.org Server: 211.9.32.208 Address: 211.9.32.208#53 ** server can't find *****.dyndns.org: REFUSED <同じルーター配下のWindows XPからnslookupを実行> C:\Documents and Settings\aaa>nslookup *****.dyndns.org *** Can't find server name for address 192.168.3.1: Non-existent domain *** Default servers are not available Server: UnKnown Address: 192.168.3.1 Non-authoritative answer: Name: *****.dyndns.org Address: 126.69.***.***  ←■グローバルIP <NAS-01Gの/etc/resolv.conf> search cefemoon.net nameserver 211.9.32.208 nameserver 211.9.32.235 nameserver 192.168.3.1   ←■Windowsと同じDNSを追加した もしかしてルーターのNAT設定とかが必要なのでしょうか?

  • nslookupでネームサーバを調べる

    nslookupでネームサーバNSを調べるバッチを作りたいと考えております。 【実施内容】 C:\Users\test>nslookup 既定のサーバー: xxx.xxx Address: 192.168.1.1 > set type=NS > google.co.jp サーバー: xxx.xxx Address: 192.168.1.1 権限のない回答: google.co.jp nameserver = ns1.google.com google.co.jp nameserver = ns2.google.com google.co.jp nameserver = ns3.google.com google.co.jp nameserver = ns4.google.com ns1.google.com internet address = 216.239.32.10 ns2.google.com internet address = 216.239.34.10 ns3.google.com internet address = 216.239.36.10 ns4.google.com internet address = 216.239.38.10 と対話モードにして調べる方法を現在とっております。 対話モードにしないで、ワンライナーでns情報を取得できないでしょうか? ご教授お願いします。