web-dev-qa-db-ja.com

NSレコードはどのように解決されますか?

注:グルーレコードを認識しており、DNSサーバーは、nsサーバードメインがクエリを送信したドメインと同じである場合にのみそれらを使用します。

さて、私の質問は次のとおりです。NSレコードとしてns1.example.orgexample.comとは異なるドメイン)を持つexample.comがあるとします。ある時点で、リゾルバーはns1.example.orgのIPアドレスも解決して見つける必要があります。私の質問は、(接着剤レコードなしで)それをどのように行うのかということです。

私の推測では、最初にルートDNSに移動し、次に.org DNSに移動し、次にexample.org ...のネームサーバーに到達するというプロセスを最初からやり直します。しかし、待ってください。ネームサーバーにはネームサーバーがありますか?はいの場合、これは大きなエンドレスループになります。これは、example.orgのNSレコードを見つけて、そこに移動する必要があるためです。

私のポイントは、ネームサーバーのこれらのIPアドレスはどこかに保存する必要があるということです。グルーレコードは、example.comがあり、そのNSサーバーはns1.example.com、同じドメインである場合にのみ使用されると言われています。別のドメインの場合は、それから私はIPを見つけるためにそのドメインの解決策があることを読みました...しかしこれはns1.example.orgのようなネームサーバーが本当に意味をなさない独自のネームサーバーを持っていることを意味します。

1
daremkd

別のドメインのネームサーバーへの委任は、実際にはあまり変わりません。リゾルバーにさらに多くの作業を行わせるだけです。

提供する例では、example.orgドメインが正常に解決するには、example.comドメインが機能している必要があります。独自の機能するネームサーバー、つまりグルーレコードがないのはなぜですか。

想像しているように見える無限ループ障害シナリオは、ns1.example.orgexample.comの下のネームサーバーに委任しようとした場合のように、不可能な委任ループを作成した場合にのみ機能します。

3
Shane Madden
  • リゾルバーはwww.example.comのIPを必要としています(クエリ「Awww.example.com。」)
  • キャッシュされていないため、example.comなどの権限のあるDNSサーバーに問い合わせる必要があります。
  • 事前に構成されたルートサーバーの1つに尋ねるより良いアイデアがありません
  • 最終的な返信の代わりに、a.gtld-servers.netなどのcom。の自動サーバーについて通知されます。これらはcomの下にありませんが、ルートサーバーはグルーレコードを追加します。したがって、a.gtld-servers.netのIPがわかります。
  • そこで、a.gtld-servers.netに「Awww.example.com」という質問をします。
  • 繰り返しになりますが、a.gtld-serversは答えを知っていますが、ns.example.orgが責任を負っていることを示しています。通常、この時点でwouldのグルーレコードがありますが、これは当てはまらないと仮定しましょう。
  • サブクエリ「Ans.example.org」を開始します
  • 上記のように、ルートサーバーはa0.org.afilieas-nst.infoなどの組織のDNSサーバーにつながります。悪い世界では、この男を見つけるためにゲームを最初からやり直す必要がありますが、このレベルでは、doは接着剤の記録を取得します
  • したがって、ns.example.orgについてはa0.org.afilieas-nst.infoに問い合わせることができます。
  • Example.orgについてa.iana-servers.netに問い合わせる必要があることを学びましたが、残念ながら接着剤はありません
  • そこで、ルートサーバーに質問します(その間、com。とorg。については学習しましたが、netについてはまだ学習していません)。
  • 返信は、例えばa.gtld-servers-netはnetを担当します。接着剤も入手しますが、a.gtld-servers.netのIPはすでに知っていました。
  • A.gtld-servers.netに「Aa.inana-servers.net」と質問し、NS iana-servers.netのレコード。そのうちの3つはiana-servers.net内にあります。 (そして接着剤が付属しています)そして4番目のサーバーはns.icann.orgです
  • 一部の愚かな理由では、グルーレコードを無視するため(またはこのネームサーバーにアクセスできない場合)、ns.icann.orgを解決する必要があります。 「Ans.icann.org」についてa0.org.afilieas-nst.infoにクエリを実行する必要があることはすでにわかっています。
  • 興味深いことに、返されるネームサーバーは上記と同じです。3つはicann-servers.netからのもので、ns.icann.org自体からのものです。今回はns.icann.orgに接着剤が付属しています
  • これで、ns.icann.orgのIPを認識し、「A a.iana-servers.net」と尋ねて、そのアドレスを取得できます。
  • これで、ついにa.iana-servers.netに「Ans.example.org」を要求して、IPを取得できるようになりました(まあ、実際には、またはもちろんではありません)
  • そのIPの下のns.example.orgに「Awww.example.com」を要求し、最終的に元の問題を解決することができます

この過程で、com、net、orgなどのいくつかの重要なゾーンについて多くのことを学びました。この情報をキャッシュすることで、次のクエリの迂回が大幅に減ります...

1

ネームサーバーのIPアドレスがどこかに保存されていることは間違いありません。DNSがないとFQDNを解決できません。そのため、ネットワーク構成には名前ではなくIPアドレスが含まれています。

ルートDNSサーバーは、各DNSサーバーで構成されたIPアドレスによって参照されます。したがって、DNSサーバーが知らないドメイン名のクエリを取得すると、

  1. 構成されたDNSを照会します
  2. ルートDNSにクエリを実行します。ルートDNSは、それぞれのIPには応答しませんが、ルートドメイン名(たとえば、.com)を処理するネームサーバーはどれですか。次に、そのネームサーバーは、特定のドメイン(たとえば、nasa.com)を処理するネームサーバーに応答できます。 )

次のコマンドを使用して、トレースリクエストを実行して探索を行うことができます。

Dig +trace www.google.com
0
niglesias