アプリ版:「スタンプのみでお礼する」機能のリリースについて

DNSサーバのIPアドレスが上位のDNSに登録されているかを確認したい

お世話になります.
2点ほど質問があります.

[1]
例えば以下のような場合を想定します.

IPアドレス(グローバル):xxx.xxx.xxx.xxx
自ドメイン:foo.bar.jp

DNSサーバは構築済みです.

この場合,上位(bar.jp)のDNSサーバに対してこちらのIPアドレス(xxx.xxx.xxx.xxx)を指すAレコードが登録されているか問い合わせを行う方法はありますでしょうか.


[2]
nslookupを用いて以下の手順で上位DNSサーバに問い合わせをしてみました.
使用したOSはMacOS X Serverです.

% nslookup
> set querytype=A # Aレコードを検索対象にセット
> server bar.jp # 上位DNSサーバを指定
> xxx.xxx.xxx.xxx # 実行

Server:bar.jp
Address:xxx.xxx.xxx.xxx#53

** server can't find xxx.xxx.xxx.xxx: NXDOMAIN


このような結果が帰ってきた場合「登録されていない」と判断してもよろしいのでしょうか.


以上2点です.
直接解答につながる意見でなくてもかまいませんので,思いついたことがあればよろしくお願いします.

A 回答 (2件)

どうも、DNSによる名前解決の仕組みを誤解されているように見受けられます。


「DNSサーバのIPアドレスが上位のDNSに登録されているかを確認したい」とありますが、
基本的に、上位のDNSサーバに登録するのは、DNSサーバのホスト名であって、IPアドレスではありません。
(ただし、後述のように例外はあります)


・bar.jp のネームサーバは、○○.bar.jp というホスト名から、そのホストのIPアドレスを返すデータベースを管理します。
・foo.bar.jp のネームサーバは、○○.foo.bar.jp というホスト名から、そのホストのIPアドレスを返すデータベースを管理します。

・bar.jp のネームサーバを運用するためには、jp のネームサーバに、bar.jp のネームサーバを登録する必要があります。
 (jpのネームサーバに、bar.jp のNSレコードを登録します)
・foo.bar.jp のネームサーバを運用するためには、bar.jp のネームサーバに、foo.bar.jp のネームサーバを登録する必要があります。
 (bar.jpのネームサーバに、foo.bar.jp のNSレコードを登録します)

・ネームサーバの登録は、基本的にホスト名で行われます。ただし、以下のように、IPアドレスの登録が必要になる場合があります。
 a)・bar.jp のネームサーバのホスト名が、ns.baz.jp のように、bar.jp のドメイン下にない場合
   →このときは、上位の jp のサーバには、「○○.bar.jp を管理しているサーバはns.baz.jp です」ホスト名だけを登録します。IPアドレスの登録は要りません。

 b)・bar.jp のネームサーバのホスト名が、ns.bar.jp のように、bar.jp のドメイン下にある場合
   →このとき、上位の jp のサーバから、「○○.bar.jp を管理しているサーバはns.bar.jp です」とホスト名だけ返すとns.bar.jp のIPアドレスを調べる手段がなくなります。
    そこで、例外的に、ns.bar.jp のIPアドレスも、jp のネームサーバに登録します。

> [2]
「DNSサーバが上位のDNSに登録されているか」は、NSレコードで調べます。
また、server に指定するのはドメイン名ではなく、そのドメインを管理している「ネームサーバのホスト名」です。
例えば、bar.jp のネームサーバがns.bar.jp であれば、
---
% nslookup
> set querytype=NS
> server ns.bar.jp
> foo.bar.jp
---
もしくは
---
% nslookup -query=NS foo.bar.jp ns.bar.jp
---
を実行します。すると、DNSサーバが正しく登録されている場合は、
---
foo.bar.jp nameserver = ns.hoge.jp
---
のように、ネームサーバのホスト名が返って来ます。NXDOMAINの場合は、登録できていません。

さらに、
上述の(b)のパターンで、例えば「foo.bar.jp のネームサーバのホスト名が ns.foo.bar.jp である」場合は、
---
foo.bar.jp nameserver = ns.foo.bar.jp
---
と返って来ても、この情報だけでは ns.foo.bar.jp のIPアドレスを調べる手段なないので、さらに
ns.foo.bar.jp のIPアドレスを ns.bar.jp に登録する必要があります。それが登録されているかどうかは、
---
% nslookup -query=A ns.foo.bar.jp ns.bar.jp
---
を実行します。これで Address: が返ってくれば、IPアドレスは登録されていることになります。
    • good
    • 0
この回答へのお礼

詳しい解説までいただきありがとうございました。
なるほど、勘違いしていました。
2)の方法で問い合わせてみたところやはりNXDOMAINが返ってくるので登録できていないようです。

管理者に問い合わせてみます。
これですっきりしました。ありがとうございます。

お礼日時:2010/11/02 11:43

nslookupは古いアプリケーションで使用は非推奨です。


digコマンドを利用しましょう。


dig bar.jp. NS

で引いた答えが、ns.nar.jpだとしたら

dig www.foo.bar.jp. @ns.bar.jp

を実行します。


ここまで書いて微妙に思った事が・・・・

知りたいのは

dig foo.bar.jp. NS @ns.bar.jp

なのでは?
    • good
    • 1
この回答へのお礼

ありがとうございます。
digでも試してみましたが駄目でした。

管理者に問い合わせようと思います。

お礼日時:2010/11/02 11:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!