djbdns入門/intro-dnsについて、ここに記述してください。

D. J. Bernstein [Translated into Japanese by MAENO Toshinori] Internet publication djbdns

1. DNS の動作

network-surveys.cr.yp.toなどの IP アドレスを 知りたいとしましょう。 コンピュータはインタネット上の一連のDNS サーバを調べていきます。

network-surveys.cr.yp.toについての情報を持った DNS サーバがいくつかあります。

     .:198.41.0.4
     &to:198.6.1.82

この root サーバの IP アドレスは 198.41.0.4 であり、 あなたのコンピュータもこのアドレスをディスクファイルに保持しています。

     +--------+  network-surveys.cr.yp.to?  +-----------+
     |  Your  | --------------------------> |198.41.0.4 |
     |computer|      <---------------       |root server|
     +--------+       &to:198.6.1.82        +-----------+

返事である &to:198.6.1.82 は 委譲(delegation) を示します。

198.6.1.82 の DNS サーバ (これも Virginia にあります) は 以下のデータをディスクファイルに保持しています:

     .to:198.6.1.82
     &yp.to:131.193.178.160

あなたのコンピュータは その DNS サーバに問合せを送り、 返答を受け取ります:

     +--------+  network-surveys.cr.yp.to?  +----------+
     |  Your  | --------------------------> |198.6.1.82|
     |computer|  <------------------------  |.to server|
     +--------+    &yp.to:131.193.178.160   +----------+

返答である &yp.to:131.193.178.160 も委譲です。 「.yp.toについての情報は IP アドレス 131.193.178.160 のDNS サーバに問い合せよ。」という意味です。

131.193.178.160 の DNS サーバ (Chicago の私のオフィスにあります) は 以下のデータをディスクファイルに保持しています:

     .yp.to:131.193.178.160
     =network-surveys.cr.yp.to:131.193.178.100

あなたのコンピュータは その DNS サーバに問合せを送り、 返答を受け取ります:

     +--------+           network-surveys.cr.yp.to?         +---------------+
     |  Your  | ------------------------------------------> |131.193.178.160|
     |computer| <------------------------------------------ | .yp.to server |
     +--------+  =network-surveys.cr.yp.to:131.193.178.100  +---------------+

=network-surveys.cr.yp.to:131.193.178.100 という返答が 元来の問合せに対しての最終的返事となります:

あなたのコンピュータ上の DNS キャッシュがこれらの仕事を 行います。 あなたのコンピュータは分ったことをすべて保持しています。 (一定の期間です;情報は変化しますから!) 代わりに、あなたの ISP が運用する外部の DNS キャッシュを使う方法もあります; 外部 DNS キャッシュがすべての仕事をやって、答を報告してくれるでしょう。

複数のサーバ コンピュータが故障しても大丈夫なように、 実際には複数のroot サーバや.to サーバがあります。 yp.to サーバは 2 台あります。 各 root サーバは以下の情報を持っています:

     .:198.41.0.4:a
     .:128.9.0.107:b
     .:192.33.4.12:c
     .:128.8.10.90:d
     .:192.203.230.10:e
     .:192.5.5.241:f
     .:192.112.36.4:g
     .:128.63.2.53:h
     .:192.36.148.17:i
     .:192.58.128.30:j
     .:193.0.14.129:k
     .:198.32.64.12:l
     .:202.12.27.33:m
     &to:128.250.1.21:a
     &to:193.0.0.193:b
     &to:196.7.0.139:c
     &to:206.184.59.10:d
     &to:198.6.1.82:e
     &to:206.86.247.253:f
     &to:148.59.19.11:g

また、各 .to サーバは以下の情報を持っています:

     .to:128.250.1.21:a
     .to:193.0.0.193:b
     .to:196.7.0.139:c
     .to:206.184.59.10:d
     .to:198.6.1.82:e
     .to:206.86.247.253:f
     .to:148.59.19.11:g
     &yp.to:131.193.178.181:a
     &yp.to:131.193.178.160:b
     # or, in BIND master zone-file format:
     # yp.to IN NS a.ns.yp.to
     # yp.to IN NS b.ns.yp.to
     # a.ns.yp.to IN A 131.193.178.181
     # b.ns.yp.to IN A 131.193.178.160

あなたのコンピュータは root サーバ群に(ランダムの順で)照会します。 どれかの root サーバからひとつでも返答を受け取ると、 .to サーバ 群にランダムの順で照会する段階へ進みます。 いずれは 2 台の yp.to サーバのどちらかから 返事を受け取ることになります。

2. DNS 逆引きの動作

IP アドレス 208.33.217.122 など出会って、 対応するホスト名を知りたいと思ったとしましょう。

あなたのコンピュータは 122.217.33.208.in-addr.arpaについて一連のDNS サーバに問い合せ ていきます。

     &33.208.in-addr.arpa:206.228.179.10:c
     &33.208.in-addr.arpa:144.228.254.10:b
     &33.208.in-addr.arpa:144.228.255.10:a

IP アドレス 144.228.254.10 の DNS サーバサーバは以下の情報を持っています:

     .33.208.in-addr.arpa:144.228.255.10:a
     .33.208.in-addr.arpa:206.228.179.10:c
     .33.208.in-addr.arpa:144.228.254.10:b
     &217.33.208.in-addr.arpa:209.191.164.20:a
     &217.33.208.in-addr.arpa:206.253.194.65:b

IP アドレス 209.191.164.20 の DNS サーバサーバは以下の情報を持っています:

     .217.33.208.in-addr.arpa:209.191.164.20:a
     .217.33.208.in-addr.arpa:206.253.194.65:b
     =mm-outgoing.amazon.com:208.33.217.122

答は mm-outgoing.amazon.comです。

名前に対応するアドレスを探して、 つぎにそのアドレスに対応するコンピュータ名を探すとき、 かならずしも元の名前が得られるとは限りません。

2003-08-08 訳:前野年紀