インターネット上のすべての DNS サーバーに DNS レコードがどのように更新されるのでしょうか?

インターネット上のすべての DNS サーバーに DNS レコードがどのように更新されるのでしょうか?

GoDaddy、OpenDNS などでホスト名/Web サイト名をホストしている場合、新しく追加されたホスト名について、世界中の DNS サーバーのレコードをどのように更新するのでしょうか? インターネット上には多数の DNS サーバーが存在し、各 ISP はクライアントに異なる DNS サーバーを提供しています。

答え1

そうではありません。(少しだけ単純化すると) DNS は階層構造です。DNS サーバーは、親 DNS サーバーを見つける方法、または「ルート」サーバーのリストを見つける方法のいずれかを知っています。

親 DNS サーバーが見つかった場合は、そのサーバーに問い合わせるだけで、信頼できる回答が得られるまでそのサーバーもその親に問い合わせを続けます。

ただし、ほとんどの場合、ネームサーバーはルート ネームサーバーを認識しており、ルート ネームサーバーはドメインの適切なサーバーを指します (場合によっては、ドメインの最初の部分の適切なサーバーを指します。このプロセスは、ドメイン名が解決されるまで繰り返されます)。

以下は、システムがどのようにしてIPアドレスを権威的に解決できるかを示す「トレース」の例です。グーグル(署名は無視):

Linux コマンド「dig +trace www.google.com」の出力を削減する

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> +trace www.google.com
;; global options: +cmd
.           514683  IN  NS  a.root-servers.net.
.           514683  IN  NS  b.root-servers.net.
.           514683  IN  NS  c.root-servers.net.
.           514683  IN  NS  d.root-servers.net.
.           514683  IN  NS  e.root-servers.net.
.           514683  IN  NS  f.root-servers.net.
.           514683  IN  NS  g.root-servers.net.
.           514683  IN  NS  h.root-servers.net.
.           514683  IN  NS  i.root-servers.net.
.           514683  IN  NS  j.root-servers.net.
.           514683  IN  NS  k.root-servers.net.
.           514683  IN  NS  l.root-servers.net.
.           514683  IN  NS  m.root-servers.net.
;; Received 525 bytes from 10.0.3.254#53(10.0.3.254) in 13 ms

com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.


google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
;; Received 840 bytes from 192.33.14.30#53(b.gtld-servers.net) in 35 ms

www.google.com.     300 IN  A   172.217.25.36
;; Received 59 bytes from 216.239.36.10#53(ns3.google.com) in 178 ms
  1. 最初のクエリはルートサーバー(*.root-servers.net)を検索します。
  2. 次に、ルートサーバーはドメインの一番右の部分「.com」がどこにあるかを教えてくれます。
  3. 3番目のクエリはgoogle.comのネームサーバーを返します。
  4. 最後にGoogleのネームサーバーが答えを教えてくれますグーグル

上記の例では、クエリ結果を手動で必要最低限​​のものに絞り込んでいることに留意してください。実際には、ネームサーバーはこれらのクエリをすべて実行することは通常ありません。なぜなら、ネームサーバーはクエリの一部を記憶しているからです。つまり、誰かが初めて .com ドメイン名を検索するとき、使用している DNS サーバーはネームサーバーを記憶しています (この場合は 172800 秒間)。そのため、別の検索を行う必要はありません。検索のより具体的な部分についても同様です。

したがって、誰かが GoDaddy (または任意のレジストラ) 経由で example.com を登録する場合、GoDaddy は (プログラムによって) example.com のネームサーバーを ".com" ネームサーバーに入力する必要があります。同様に、オーストラリアにいる場合、"example.com.au" を登録するには、その情報を ".com.au" スペースに入力する必要があります。これには、".com.au" スペースのネームサーバーを管理する人々との合意が必要です。これが、すべてのレジストラがすべてのドメインを登録できるわけではない理由であり、新しいトップレベルドメインを取得するのが大変なプロセスである理由です。TLD をルートネームサーバーに登録するために、多額の費用を支払う必要があります。

関連情報