MoinQ:

10. 名前付について (Naming issues)

It has sometimes been inferred from some sections of the DNS specification [, ]
that a host, or perhaps an interface of a host,
is permitted exactly one authoritative, or official, name, called the canonical name.
There is no such requirement in the DNS.

DNS の仕様のどこかの節からか、 「ホストやおそらくホストのあるインターフェースは 正規名と呼ばれる権威ある(正式の)名前はひとつだけしか持てない」 というような推測がなされてきた。 そのようなことは DNS の世界では要求されていない。

10.1. CNAME 資源レコード

The DNS CNAME ("canonical name") record exists to provide the
canonical name associated with an alias name.  There may be only one
such canonical name for any one alias.  That name should generally be
a name that exists elsewhere in the DNS, though there are some rare
applications for aliases with the accompanying canonical name
undefined in the DNS.

An alias name (label of a CNAME record) may,
if DNSSEC is in use, have SIG, NXT, and KEY RRs, but may have no other data.

That is, for any label in the DNS (any domain name) exactly one of the following is true:
 * one CNAME record exists, optionally accompanied by SIG, NXT, and KEY RRs,
 * one or more records exist, none being CNAME records,
 * the name exists, but has no associated RRs of any type,
 * the name does not exist at all.

CNAME(正規名 "canonical name") レコードは正規名に別名を与えるために存在している。

正規名は DNS の世界のどこか別の場所にある名前である。

別名に対応する正規名が DNS 中では未定義であるような アプリケーションもまれにはあるが。

CNAME レコードの識別子である別名は DNSSEC が使われているときに限りSIG, NXT, KEY レコードを伴ってよいが、 他の値を持つことはできない。

つまり、DNSではどの識別子についても以下のうちのただひとつが成立する:

DNS/1/返答

<a name="sub1sub1"></a>

10.1.1. CNAME の用語法

It has been traditional to refer to the label of a CNAME record as "a CNAME".

This is unfortunate, as "CNAME" is an abbreviation of "canonical name",
and the label of a CNAME record is most certainly not a canonical name.
It is, however, an entrenched usage.

Care must therefore be taken to be very clear whether the label, or the
value (the canonical name) of a CNAME resource record is intended.
In this document, the label of a CNAME resource record will always be referred to as an alias.

CNAME 資源レコードの識別子を CNAME として参照することが慣例になっている。 これは不幸な間違いである。なぜなら、"CNAME" とは 正規名 ("canonical name") の省略形であり、CNAME 資源レコードの識別子が正規名でないことは確実で あるからだ。しかしながら、使い方として定着しまった。 そこで、CNAME レコードの識別子を指しているのか、それとも値 (正規名)を指すのかを はっきり区別するように注意が必要である。 この文書ではCNAME 資源レコードの識別子のことは常に別名(alias)として呼ぶことに している。

10.2. PTR レコード

         Confusion about canonical names has lead to a belief that a PTR
         record should have exactly one RR in its RRSet.  This is incorrect,
         the relevant section of RFC 1034 std13 (section 3.6.2) indicates that the
         value of a PTR record should be a canonical name.  That is, it should
         not be an alias.  There is no implication in that section that only
         one PTR record is permitted for a name.  No such restriction should
         be inferred.

正規名に対する誤解から PTR レコードは そのRRSetにはひとつだけの資源レコードを 持つべきであると信じられることが生じた。 これは間違いである。 RFC 1034 std13 の関連する 節 (section 3.6.2) には PTR レコードの値は 正規名でなければならないとある(だけである)。つまり、それは別名であってはならない。 この節は名前に対して、たったひとつだけの PTR レコードしかあっては ならないというようなことは意味していない。 そのような制約は導くべきではない。

         Note that while the value of a PTR record must not be an alias, there
         is no requirement that the process of resolving a PTR record not
         encounter any aliases.  The label that is being looked up for a PTR
         value might have a CNAME record.  That is, it might be an alias.  The
         value of that CNAME RR, if not another alias, which it should not be,
         will give the location where the PTR record is found.  That record
         gives the result of the PTR type lookup.  This final result, the
         value of the PTR RR, is the label which must not be an alias.

PTR レコードの値は別名であってはならないが、 PTR レコードの名前解決の過程で別名が現われることは構わないことに注意せよ。 PTR 値を検索すべきラベルが CNAME レコードを持ってもよい。 つまり、別名であってもよい。 CNAME レコードの値は別名であってはならないが、 その値が PTR レコードの所在を示すのである。 そのレコードが PTR タイプ検索の結果である。 この最終結果、PTR RR の 値、はラベルであり、別名であってはならない。

10.3. MX と NS レコード

         The domain name used as the value of a NS resource record, or part of
         the value of a MX resource record must not be an alias.  Not only is
         the specification clear on this point, but using an alias in either
         of these positions neither works as well as might be hoped, nor well
         fulfills the ambition that may have led to this approach.  This
         domain name must have as its value one or more address records.
         Currently those will be A records, however in the future other record
         types giving addressing information may be acceptable.  It can also
         have other RRs, but never a CNAME RR.

NS 資源レコードの値として使われたドメイン名、 MX 資源レコードの値の一部に使われたドメイン名は別名であってはならない。 仕様がこの点について明かであることは言うにおよばずだが、 別名が上記の位置に使われた場合でも期待した動作をすることはないし、 こういう方法をとることになった大志を実現することもない。

ここのドメイン名はひとつ以上のアドレスレコードを値としてもたねば ならない 現在はこれらは A レコードであるが、将来は アドレス情報を示す他のレコードタイプも 認められるだろう。このドメイン名は別の資源レコードを持つことがあるが、 CNAME 資源レコードを持つことはけしてない。

         Searching for either NS or MX records causes "additional section
         processing" in which address records associated with the value of the
         record sought are appended to the answer.  This helps avoid needless
         extra queries that are easily anticipated when the first was made.

NS レコードや MX レコードの検索では、これらの値に付随するアドレスレコードが 付加節(additional section)処理として検索されて、返事に付け加えられる。 これにより最初の問い合わせから容易に予見できる次の問い合わせを省く効果がある。

         Additional section processing does not include CNAME records, let
         alone the address records that may be associated with the canonical
         name derived from the alias.  Thus, if an alias is used as the value
         of an NS or MX record, no address will be returned with the NS or MX
         value.  This can cause extra queries, and extra network burden, on
         every query.  It is trivial for the DNS administrator to avoid this
         by resolving the alias and placing the canonical name directly in the
         affected record just once when it is updated or installed.  In some
         particular hard cases the lack of the additional section address
         records in the results of a NS lookup can cause the request to fail.

付加節処理は CNAME レコードを含まない。 当然ながら別名が指す正規名に付随するアドレスレコードも含まない。 そのため、もし別名が NS レコードや MX レコードの値として使われたなら、 NS や MX の値が指す名前のアドレスは返らない。 これは問い合わせの度に 余分の問い合わせを引きおこし、余分のネットワーク負荷となる。 DNS管理者にとってこれを避ける方法は自明である。 つまり、更新やインストールがあるときに、 関係するレコードの別名のところを正規名で置きかえればいいだけだ。 特別に困難な場合には NS 検索の結果としてアドレスレコードが付加節についてこないなら 検索要求は失敗することがありうる。


2002-10-08 訳 前野年紀