• ベストアンサー
  • 暇なときにでも

NSレコードは必須?

馬鹿げた質問かもしれませんが… 上位DNSのNSレコードに指定されたDNSサーバー、すなわちリソースデータを持っているDNSサーバーでは、そのドメインのNSレコードは自分自身を指すわけですが、この記述は何のためにあるのでしょう? うまく伝わるか解りませんが、たとえば、ドメインを取得したレジストラのほうにはNSを指定するのは当然です。たとえばns.domain.netと指定します。では、ns.domain.netのほうには、NSを指定する意味がないのでは?と思ったのです。 単なるルールに過ぎないのでしょうか。あるいは何か技術的に理由があるのでしょうか?

共感・応援の気持ちを伝えよう!

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

  • ベストアンサー
  • 回答No.4
  • taseki
  • ベストアンサー率66% (155/233)

平たく言えば、おっしゃっている >Aレコードの存在うんぬんより前にまずは「ここがゴールである」 >ことを確認するためのもの という、これがズバリ答えです。 DNSそのものは分散システムですから、ある特定のサーバーが持っているAレコードなどは重要ではなく、極端な言い方をすればAレコードが存在していなくても良いわけです。 と言ったら語弊がありますが…、あくまで分散システムとしては、ルーティングを構成できさえすれば、クエリは次の段階の話で、Aレコードがなくても(もちろんエラーにはなりますが)分散システムの構成としてはNSレコードが参照されればOK、という意味です。 おそらく、まずAレコードありき、で考えてしまったのが今回の疑問の要因だったのではないでしょうか。 Aレコードがある⇒正引きできる⇒NSをたどる必要がない というように。 実際には、ほとんどの実装でAレコードをチェックして判別することはありません。まずNSレコードありき、で、ゴール地点のAレコードが参照される、ということになります。 これは書くべきか迷ったのですが… ANo.1さんの投稿は、引用なさった記事が今回の件とはちょっとずれていることと、少々その記事は古いようです…。 指摘するようで大変失礼だとは思いますが、質問者さんや見ている皆さんが誤解してもいけませんので。 どうぞご理解ください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 おかげでスッキリしました! まさしくおっしゃるとおり、Aレコードを重視しすぎていました。 挙動というかフロー自体を私は誤解してたようですね… 考えてみれば、スレーブにAがあれば子リソースを参照しなくなってしまいますね。なるほどです。 記事の件も、ありがとうございます。 http://www.atmarkit.co.jp/fnetwork/dnstips/030.html これですよね… もちろん、foitecさんが、全文ここからコピーなさった(口調だけ変えて)のは始めから知っていました。 だって、いくらなんでも、検索で1番に出てくるサイトを、質問者の私が見ないはずがないです(苦笑)ここに来る前に読んだ記事です。 「digをやれば解りますよ」とおっしゃりながら、御自分ではやってないことも、すぐに分かりました… だってそのドメインは現在存在しませんから…(苦笑) Windowsサーバーの権限プロパティ設定に関する話は、かなり違う話でしたが… でも、文句を言うつもりはありません。調べていただいたようだし、その点は感謝しております。お手数をお掛けしました。 それでは、皆様ありがとうございました。

その他の回答 (3)

  • 回答No.3
  • foitec
  • ベストアンサー率43% (1079/2453)

SV576 さんの考え方にも一理あります。 確かに原理的には、上位ゾーンに保持されているNSレコードが参照され、名前解決処理に使われるサーバが選択されるわけなので 自ゾーンファイルに記載されているNSレコードがこの処理で使われることはなく、NSレコードは2重に登録されていることになるわけですからね。 ただし、前にも書いたとおり自ゾーンファイルに登録されているNSレコードが権限のある正規のNSレコードとして扱われるので 自ゾーンのNSレコードを設定せずに、bindを動作させることはできないのです。 >言ってみれば、他のサーバーに「委任しない」ことを示すため、と。 上手いこと言いますね・・・ DNSは、適切に設定された NS レコードによって、ルートサーバーから連なる巨大なツリーを形成してここが終点ですよ。 それが自ゾーンのNSレコードです・・ということでしょう。 回答しながら疑問に思われていることがなるほどなと思いました。 って回答になってませんでした。

共感・感謝の気持ちを伝えよう!

質問者からの補足

いえいえ、いろいろ調べていただいたようで、お手数お掛けしました。 私の解釈も、単なる推測に過ぎません。明確なところは解りませんよね…。 調べていくうち、単なるルールではなく挙動に関わっているようだ、というのは解ってきたのですが。 どなたか詳しい方、よろしくお願いいたします。

  • 回答No.2
  • foitec
  • ベストアンサー率43% (1079/2453)

考えすぎかな・・・という感じです。 上位ネームサーバがns.domain.netを指し実際にdomain.netのネームサーバが ns.domain.net(NSレコードがns.domain.net)のときはいかにもNSレコードが無くても良いように感じますね。 でも上位ネームサーバの示すNSレコードは自身のドメインに対して示していません。 自身は自身のNSレコードを参照します。 同じものであって同じではないと考えてください。 >このNSレコードは事実上は使われることがない、ただのルールである いやいや使われます。 ここ参照 権限のレコードを管理する http://technet2.microsoft.com/WindowsServer/ja/library/63814203-5b11-4ec2-a45c-725bd24d3c411041.mspx?mfr=true

共感・感謝の気持ちを伝えよう!

質問者からのお礼

たびたびありがとうございます。 すみません…、「考えすぎ」だと言われてしまうと、そもそもこのスレッドが無意味だということになってしまい、このサイトの意義すら質問者に対して「考えるな」という回答で終わらせることになってしまうので、その点は、どうかご容赦願います。 で、ご紹介いただいたWinサーバーの説明を見ても、正直…、必須だとは書いてありますが、自身を指すNSが具体的に何に使われるのか見つかりませんでした…。 「ゾーン範囲外の名前を解決する」という点はよく解るんですけどね…、まさしく委任であるわけで。「委任しない」場合がよく解らないんですよね…。 BINDのマニュアルを見ても、そのあたりの情報が見つかりませんでした。 結局のところ、おっしゃっている > 自身は自身のNSレコードを参照します。 ということから解釈して、Aレコードの存在うんぬんより前にまずは「ここがゴールである」ことを確認するためのものなのかな、と考えれば良さそうな気もしてきました。言ってみれば、他のサーバーに「委任しない」ことを示すため、と。 先ほどの宝探しゲームで言えば、最後のメモには「これが本物の宝物だよ」と書いてある、という感じに考えればいいんですかね…(苦笑)

  • 回答No.1
  • foitec
  • ベストアンサー率43% (1079/2453)

ご承知のとおりNSレコードは、ドメインの委任を行うときに必要となるリソースレコードです。 NSレコードは、委任先のネームサーバをホスト名で指定しており、直接IPアドレスで指定するものではないことにはお気づきでしょう。 そして、指定するホスト名はAやAAAAレコードを持つものである必要があります。 お尋ねのように NSレコードは、委任元のゾーンファイルと委任先のゾーンファイルという2つのゾーンファイルの両方に記載される、珍しいレコードですね。 自身のドメインのNSレコードなんて無くても良いように確かに思えます。 ドメインのDNSサーバは何もひとつとは限りません。 2つもあれば6の場合もあります。 つまりあるドメイン名に対して、NSレコードはコンテンツサーバの数だけ指定します。 名前解決はルートサーバから順にたどっていくため、上位の委任元ゾーンが委任先のネームサーバの情報を持つ必要があります。 ここまでは当然ですよね。 さて上位ネームサーバから委任を受けた、NSレコードのオーソリティは委任先(自身のドメイン)にあるため、委任先のゾーンに記載されているNSレコードが、「信頼できる」情報となります。 つまり上位が ns.domain.netを指定してきたとしてもdomain.netのNSレコードが ns5.domain.net だとすれば其のドメインでは ns5 を信頼して名前解決を図るのです。 従って上位からns.domain.netを委任されてもdomain.netにNSレコードが存在しないまたは存在しないホストを指定したNSレコードが書かれていると domain.netドメイン内では名前の解決ができないことになります。 実際に委任元、委任先のネームサーバに NS の情報を問い合わせてみると、挙動の違いが確認できますよ。 % dig @a.dns.jp jprs.jp ns (jp ゾーンのネームサーバに jprs.jp の NS レコードを問い合わせる) % dig @ns1.jprs.co.jp jprs.jp ns (jprs.jp ゾーンのネームサーバに jprs.jp の NS レコードを問い合わせる)

参考URL:
http://itpro.nikkeibp.co.jp/article/COLUMN/20070701/276350/?ST=data

共感・感謝の気持ちを伝えよう!

質問者からのお礼

とても丁寧なご説明ありがとうございます。 恐れ入りますが、もう少しお付き合いいただけないでしょうか…。 名前解決はルートサーバから順にたどっていくというのは解ります。最終的に求める情報を得るために、複数のサーバーを経由して、やがてたどり着く、ということですね。 そこで、 > つまり上位が ns.domain.netを指定してきたとしてもdomain.netのNSレコードが ns5.domain.net だとすれば其のドメインでは ns5 を信頼して名前解決を図るのです。 おっしゃることは解るのですが、では、上記が「ns5.domain.net」ではなく「ns.domain.net」だった場合、つまりns.domain.netが目的のドメインのAレコードなど情報を持っていれば、NSレコードに「ns.domain.net」と書いてある意味がないように思えるのです。 上位DNSから得られた情報で、すでに最終DNSにたどりついた、digコマンドで上位から問い合わせていったとき、最後とその前の問い合わせで同じものを返す、という状態の場合です。 たとえるなら、宝物探しゲームで、宝物のありかを示したいくつものメモを手に入れながらたどっていき、ついに宝物を手に入れた!しかし宝物と一緒に、またしてもメモがあり「宝物はココにあるよ」と意味のないことが書いてある、というような、そんなイメージです。 このNSレコードは事実上は使われることがない、ただのルールである。ということなら解らなくもないんですが…。 たとえば、おっしゃっているように「委任元と委任先で異なる場合のために、常に書いておくべし。たとえ同一でも(技術的には無意味だが)ルールなので書いておくべし」ということなのでしょうか。

関連するQ&A

  • BINDのNSレコードに指定するDNSサーバについて

    お世話になります。 現在運用しているDNSサーバ(BIND9)で、新たなドメインを管理する予定なのですが、 そのドメインのゾーンファイルに記載するNSレコードについて質問です。 なお、レジストラにてそのドメインは取得済みで、DNSの登録はまだの状態です。 ゾーンファイルのNSレコードに記載したDNSサーバと同じものを登録するべきかと 考えていますので…。  DNSサーバ:ns.example.co.jp   (example.co.jpは自社で既に運用しているドメインです)  新たに管理するドメイン:newdomain.com とした場合、newdomain.comのゾーンファイルには、NSレコードとして      IN   NS   ns.example.co.jp.  (方法Aとします) と記載するものと考えていました。 しかし他の人から、「この書き方の方が、newdomain.comを管理するDNSサーバは どこか問い合わせがきた場合、回答が効率良く行われる」 と言われ以下の書き方を進められました。      IN   NS   ns.newdomain.com   ns  IN   A    [ns.example.co.jpのIPアドレス]  (方法Bとします) ここで質問なのですが、方法A,Bでnewdomain.comを管理するDNSサーバを回答するまでの 流れが変わるのでしょうか。 レジストラにDNSを登録するので、どちらの方法でルートサーバから辿っていっても、 最終的にレジストラに登録したDNSサーバが回答されると思うのですが、方法Bのほうが 効率が良いというのが理解できません。 NSレコードでDNSサーバを指定する場合、管理するドメインと同じドメインのホストで あるほうが良いものなのでしょうか。 ご存知の方が居られましたら、ご教示いただけますでしょうか。 よろしくお願いいたします。

  • セカンダリDNSのNSレコードの動作がわからなくて困ってます。

    DNSサーバについての質問です。或るドメインに対して、以下の設定がされている状態で、プライマリDNSサーバが障害にあった場合、名前解決について何か支障がでるのでしょうか?また、支障が出るとすればどういった症状になるのでしょうか。  ・レジストラにはプライマリ、セカンダリDNSサーバをそれぞれ登録しています。  ・プライマリDNSサーバの、ゾーンファイルのNSレコードには、セカンダリDNSサーバの記述がありません。  ・セカンダリDNSサーバのnamed.confには、プライマリDNSサーバのIPアドレスが記述されています。 つまり、セカンダリDNSサーバには、プライマリDNSサーバからのゾーンファイル転送によって、自身のNSレコードを含まないゾーンファイルが存在しています。 レジストラには登録されているので、問題なく名前解決ができるのではと思っているのですが・・・。 すみません、いまいちNSレコードの役割がわかっていません。 ご教授よろしくお願いします。

  • DNSレコードを編集できるレジストラ

    某レジストラ(?)でドメインを取得しました。 ネームサーバーの設定はできるのですが、DNSレコード(Aレコードなど)を編集できず、ドメインの移管を考えています。 DNSレコードを編集できるレジストラ(?)をご存知ありませんか? また、移管せずに、無料DNSなどで対応できるのでしょうか?その場合、その提供業者を教えてください。

  • bind9のNSレコードを返す設定について

    DNSサーバ(bind9)のNSレコードを返す設定について質問させて下さいませ。 DNSサーバ#0と、DNSサーバ#1の、2つのDNSサーバがあったとします。 DNSクライアントが、DNSサーバ#0にexample.comのAレコードを問い合わせたとき、DNSサーバ#0がDNSサーバ#1のNSレコード(ns.dnsserver1.com)を返す設定をご教示願います。 現在、DNSサーバ#0に下記のようにzone設定を入れたところ、DNSサーバ#0はNSレコードを返さずに standard query respnse, No such nameを返してしまいます。 //named.conf.default.zone zone "." { type master; file "/etc/bind/all.zone"; }; //"/etc/bind/all.zone" $TTL 3600 @ IN SOA ns.dnsserver0.com. root.dnsserver0.com. ( 2000091801 ; Serial 3600 ; Refresh 900 ; Retry 3600000 ; Expire 3600 ) ; Minimum IN NS ns.dnsserver1.com. ns.dnsserver1.com IN A aaa.aaa.aaa.aaa(IPアドレス) 宜しくお願い致します。

  • ルートサーバにNSレコードが反映されない

    外部向け権威DNSを構築しましたが、ルートサーバにNSレコードが反映されません。 ドメインを「hoge.org」、ネームサーバ名を「ns.hoge.org」とします。 ルートサーバに問い合わせますが、SOAしかアンサーにないです。 dig hoge.org ns @a0.org.afilias-nst.info 権威DNSのAレコードが返ります。 dig ns.hoge.org @a0.org.afilias-nst.info DNSを指定すると、ゾーンは引けます。 dig @ns.hoge.org hoge.org any レジストリには、ホスト登録は済みで1週間以上前です。 whoisのNSも2日前に変更済みです。 レジストリに問い合わせたところ ホスト登録は問題なく、完了していると回答され 権威DNS側の問題ではないですかと回答されました。 ルートサーバにNSレコードが反映されない理由は、何が考えられますでしょうか。

  • ドメインのネームサーバとNSレコードの違いについて。

    ドメインのネームサーバとNSレコードの違いについて。 其のままですが、ドメインのネームサーバとNSレコードは 何が違うのでしょうか。 それとも同じものなのでしょうか。 ネームサーバに設定したことをNSレコードに設定する事では 同じ動作が期待できるのでしょうか。 如何しても分からなかったので教えて下さい。

  • DNSサーバー

    DNSサーバーについて質問します。 1.プライマリNSからセカンダリNSにゾーン転送するリソースレコードは、Aレコードを含みますか? 2・上位DNSに、公開DNSのFQDN,GグローバルIP、ドメイン名を登録した後、 公開DNSのプライマリNSからISP側のNSにゾーン転送しない設定の場合、 Internet側から、公開DNSのメールサーバやWWWを名前解決できますか? 宜しくお願いします。

  • レンタルサーバーへのドメインの設定

    ムームードメインでレンタルサーバーを取得して、さくらインターネットでそのドメインを使おうと思っていますが、 指定されたドメインもしくはその上位のドメインにはゾーンが設定され、且つネームサーバが ns1.dns.ne.jp / ns2.dns.ne.jp になっているためセキュリティ上の観点より登録を受付することができません。 マニュアルどおりに、ムームーでは初期のネームサーバーのままにしています。どこを調べたら良いでしょうか?

  • 国内レジストラ

    .comドメインを2つほど持っているのですが、もうすぐ契約更改時期。 海外のレジストラ、日本の(小さな)代理店で取得したので、不安な面や不便な面もあり、これを機にレジストラ変更をしようと思っています。 そこで、いくつか教えてください。 1.レジストリとレジストラ? ちょっと混乱してるのですが、レジストラが登録業者でレジストリはその上位の管理組織でしたっけ?レジストラより上の期間で登録というのはあるのでしょうか?例えば、お名前.comよりも上位の組織で、ということ。 2.国内公認レジストラ お名前.com以外に日本国内に公認レジストラがあれば教えてください。(ICANN公認、以外でもあるのかな…) 3.レジストラ変更による… 現在ドメインは取得したところとは別のところのレンタルサーバのDNSを指定して使用しています。レジストラ変更にあたって、サイトの閲覧が出来ない期間は生じるのでしょうか?(DNS変更を行ったときみたいに) 以上です、わかるものだけでも結構ですので、 よろしくお願いします。

  • WEBとメールを別業者にする

    現在レンタルサーバにて独自ドメインのWebサイトとメールを運用しています。 (ドメイン管理業者は別、レンタルサーバのDNSを指定) このたびメールのみをGoogle Appsで運用しようと考えており、 調べたところ、ドメイン業者提供のDNSサーバを使い、 MXレコードをGoogle指定のものに、 NSレコードをレンタルサーバのDNSサーバに指定すれば良いと分かりました。 ここで1つ疑問が生じたのですが、 WebサーバのCGI・PHPでSendmail等を使って自ドメイン宛にメールを送る場合、 このWebサーバはレンタルサーバ業者の内側のDNS情報を見て内側のメールサーバに送るのか、 あるいは上位にあたる?ドメイン業者提供のDNSを見てGoogleに送るのか・・・。 サーバ業者のDNSは勝手に書き換えられるのでしょうか、 あるいはサーバ業者に変更を依頼する必要があるのでしょうか。 長文になりましたがよろしくお願いします。