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 サーバがいくつかあります。
- 中核のひとつのroot サーバ (Virginia の Internet HQ にあるもの)は 以下のデータをディスクファイルに保持しています:
.:198.41.0.4 &to:198.6.1.82
この root サーバの IP アドレスは 198.41.0.4 であり、 あなたのコンピュータもこのアドレスをディスクファイルに保持しています。
- あなたのコンピュータはこの root サーバに問合せを送り、 root サーバのデータからの返答を受け取ります。
+--------+ network-surveys.cr.yp.to? +-----------+ | Your | --------------------------> |198.41.0.4 | |computer| <--------------- |root server| +--------+ &to:198.6.1.82 +-----------+
返事である &to:198.6.1.82 は 委譲(delegation) を示します。
- 「.toについての情報は IP アドレス 198.6.1.82 のDNS サーバに問い合せよ。」 という意味です。
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 という返答が 元来の問合せに対しての最終的返事となります:
- つまり、network-surveys.cr.yp.to の IP アドレスは 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 サーバに問い合せ ていきます。
- root サーバは以下の情報を持っています:
&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 訳:前野年紀