D. J. Bernstein [Translated into Japanese by MAENO Toshinori] Internet publication djbdns
1. Domain Name Systemに関するノート
1.1. グルーなし(Gluelessness)
君が DNS キャッシュだとして、 www.espn.tvのアドレスを知りたいとしよう。 たまたま、.tvのネームサーバのアドレスを知っていたので、 そこにwww.espn.tvのアドレスを問合せてみた。 そしたら、「私は知らない。でも、 .espn.tv には二つのネームサーバがある。 ns-1.disney.corpとns-2.disney.corpだ。 そっちに尋ねてみたら。」という返事だった。
そこで、ns-1.disney.corpに尋ねることにする。 でも、ns-1.disney.corpのアドレスはしらないぞ。 ns-1.disney.corpのアドレスを調べる間は 元々の質問は棚上げしておくしかない。 たまたま.corpネームサーバのアドレスは知っていたので、 そこにns-1.disney.corpのアドレスを問合せた。 そしたら、「私は知らない。でも、 .disney.corpには二つのネームサーバがあることを知っている。 zone.espn.tv と night.espn.tvだ。 そっちに尋ねててみたら。」という返事だった。
最低線: espn.tvには到達できない。 そして、disney.corpにも到達できない。
もしzone.espn.tvが .espn.tvのネームサーバだったなら、 .tvサーバはzone.espn.tvのグルー(glue) つまり、zone.espn.tvのIPアドレスを教えてくれただろうに。 それなら、zone.espn.tvにコンタクトできたろうに。 RFC 1034 では ゾーン内のネームサーバ参照 (この場合に限ってglue という語を使う人々もいる。) には必ずグルーをつけることを要求している。 しかしながら、管理範囲外のネームサーバに対するレファラル(参照)に関しては、 RFC 1034 ではグルーは不要だとあり、 RFC 1537 も同様、 RFC 1912 も同様である。(訳注:RFC 1537 は1912によりobsoleteになった。) comp.protocols.tcp-ip.domainsの FAQには 「グルーレコードは不要である。また、事実、つけるのはとても悪い考えである。」 とある。(これは事故による毒入れを参照しているが、もう古い; 前出) DNS サーバ(訳注:クライアント)の実装には デフォルトでは管理範囲外グルーを無視するものもある。 それゆえ、グルーなしドメインである espn.tv と disney.corp は 規定には従っている。でも、どちらにも到達できないのだ。 ループがない場合でさえ、トラブルは起きうる。 次の状況で、BIND キャッシュがwww.espn.tvを解決しようと するものとせよ。 BIND は www.espn.tvがns-1.disney.corp へ グルーなしで委譲されているのをみて、 www.espn.tvの問合せは「無視(drop)」する。 そして、 www.espn.tvの問合せが再度来るまでに ns-1.disney.corpのアドレスがキャッシュされているように ns-1.disney.corpの 問い合わせ(sysquery)を開始する。 (BIND の開発者たちはこのバグのことを no query restart espn.tv NS ns-1.disney.corp
espn.tv NS ns-2.disney.corp
disney.corp NS ns-1.disney.corp
disney.corp NS ns-2.disney.corp
2000年には以下のように書いた。 「私の知る限りでは、インタネット全体としてはまだ グルーなしが理由でドメインは失なわれてはいない。」 しかし、 グルーなしドメインは『増えつつある』。 私は グルーなしネームサーバ(複数)を持ったグルーなしドメインを一つ見つけた。 キャッシュはどの程度のグルーなしを許容すべきだろうか。 現在、dnscache は 3 段までのグルーなしを許している。 現状ではこれでも十分だが、将来も十分なのだろうか。」と。
その後、www.monty.deについて知った。 それはあまりに多くの段数のグルーなしがあったため、 BIND キャッシュには解決不能だった:
monty.de NS ns.norplex.net monty.de NS ns2.norplex.net norplex.net NS vserver.neptun11.de norplex.net NS ns1.mars11.de neptun11.de NS ns.germany.net neptun11.de NS ns2.germany.net mars11.de NS ns1.neptun11.de mars11.de NS www.gilching.de gilching.de NS ecrc.de gilching.de NS name.muenchen.roses.de
dnscache は www.monty.deのアドレスを見つけられたが、 しかしそれには いくつものサーバに 14 回もの問い合わせをしなければならなかった。
すべてのネームサーバをグルーつきゾーン内ネームサーバとすることを推奨する。 外部名から内部名へ自動的にコピー(なんらかの安全な方法を使うことが望ましいが) したアドレスレコードをつけて、 外部ネームサーバには内部名を与えてやるべきだ。
NS レコードや MX レコードにおいては名前ではなく、アドレスを持つように DNS を設計すべきであった。 DNS応答の``additional section'' はなくすべきだった。
RFC 1035 の以下の観察は正しい。 NS の間接参照と MX の間接参照はアドレスの整合性を保つ; ``insure [sic] consistency'' でも、この間接参照はクライアントではなく、サーバで処理されるべきであった。
この観点から A6 と DNAMEについて論じたページを 別に作った。 2002-02-12 訳:前野年紀