DNS/RFC1034/3 改行を適当に挟んで、読みやすくしてみよう。-- ToshinoriMaeno 2017-03-13 01:54:35


3.1. 名前空間の定義と用語 Name space specifications and terminology

The domain name space is a tree structure.
Each node and leaf on the tree corresponds to a resource set (which may be empty).
The domain system makes no distinctions between the uses of the interior nodes and leaves,
and this memo uses the term 'node' to refer to both.


DNS では内部節点と葉との使い方は区別しない。そして、この文書では両者を指すのに用語「節点」を使う。

Each node has a label, which is zero to 63 octets in length.
Brother nodes may not have the same label, although the same label can be used
for nodes which are not brothers.

One label is reserved, and that is the null (i.e., zero length) label used for the root.

各節点はラベルを持ち、その長さは 0 から63 オクテットである。



The domain name of a node is the list of the labels on the path from the
node to the root of the tree. 
 By convention, the labels that compose a domain name are printed or read left to right,
 from the most specific (lowest, farthest from the root) to the least specific (highest, closest to the root).


Internally, programs that manipulate domain names should represent them
as sequences of labels, where each label is a length octet followed by an octet string.
  Because all domain names end at the root, which has a null string for a label,
  these internal representations can use a length byte of zero to terminate a domain name.


すべてのドメイン名は根で終るので、そして根が持つラベルは空であるので、 内部表現としてはドメイン名の終端に長さバイト 0 を使うことができる。

By convention, domain names can be stored with arbitrary case, but
domain name comparisons for all present domain functions are done in a
case-insensitive manner, assuming an ASCII character set, and a high
order zero bit.  This means that you are free to create a node with
label 'A' or a node with label 'a', but not both as brothers;
you could refer to either using 'a' or 'A'.

When you receive a domain name or label, you should preserve its case.
  The rationale for this choice is that we may someday need to add full binary domain names for new services;
existing services would not be changed.

ドメイン名には大文字も小文字も使用できることになっているが、 現在のドメイン機能ではドメイン名の比較には ASCII文字であって、最上位ビットがゼロという仮定のもとで、 大文字小文字の区別をせずに比較している。

この事は'A'というラベルを持つ節点や'a'というラベルを持つ節点を作ってよいが、 これら両方を作って、兄弟としてはならない; これらはどちらも 'A'や'a'として参照してよい、ということを意味する。

ドメイン名やラベルを受け取る時には、大文字小文字の区別を守るべきである。 そうする理由は新サービスのために任意の文字が使えるドメイン名を加えることになるかもしれず、 それでも既存のサービスを変えずに済ませるためである。

When a user needs to type a domain name, the length of each label is
omitted and the labels are separated by dots ('.').  Since a complete
domain name ends with the root label, this leads to a printed form which
ends in a dot.  We use this property to distinguish between:



   - a character string which represents a complete domain name
     (often called 'absolute').  For example, 'poneria.ISI.EDU.'

   - a character string that represents the starting labels of a
     domain name which is incomplete, and should be completed by
     local software using knowledge of the local domain (often
     called 'relative').  For example, 'poneria' used in the ISI.EDU domain.

Relative names are either taken relative to a well known origin, or to a
list of domains used as a search list.  Relative names appear mostly at
the user interface, where their interpretation varies from
implementation to implementation, and in master files, where they are
relative to a single origin domain name.  The most common interpretation
uses the root '.' as either the single origin or as one of the members
of the search list, so a multi-label relative name is often one where
the trailing dot has been omitted to save typing.

相対名の基点としては、既知の起点もしくは検索リストに使われるドメインリストが採用される。 相対名はほとんどの場合ユーザインタフェースで現れ、解釈は実装ごとに異っている。 マスターファイルで使われる場合には起点ドメイン名相対となる。 最もよく使われる解釈ではルート('.')を唯一の基点として、 もしくは検索リストのメンバーにふくめて使うものである。 これにより、多段ラベルをもつ相対名は タイプの手間を省くために末尾のドットを省略されたものとなることがよくある。

To simplify implementations, the total number of octets that represent a
domain name (i.e., the sum of all label octets and label lengths) is
limited to 255.

実装の単純化のために、ドメイン名を表すオクテットの総数 (すべてのラベルオクテットとラベル長の合計)は255に制限される。

A domain is identified by a domain name, and consists of that part of
the domain name space that is at or below the domain name which
specifies the domain.  A domain is a subdomain of another domain if it
is contained within that domain.  This relationship can be tested by
seeing if the subdomain's name ends with the containing domain's name.
For example, A.B.C.D is a subdomain of B.C.D, C.D, D, and ' '.

ドメインはドメイン名で識別される。 そして、ドメイン名空間のうち、ドメインを示すドメイン名の部分と その下の部分から成り立っている。

ドメインが他のドメインに含まれているとき、他のドメインのサブドメインで あるという。 この関係はサブドメインの名前の後部が「含む側のドメイン」の名前に一致するかを 調べればわかる。 例えば、A.B.C.DはB.C.DとC.DとDと " "のサブドメインである。

3.2. 利用上の管理ガイドライン Administrative guidelines on use

As a matter of policy, the DNS technical specifications do not mandate a
particular tree structure or rules for selecting labels; its goal is to
be as general as possible, so that it can be used to build arbitrary
applications.  In particular, the system was designed so that the name
space did not have to be organized along the lines of network
boundaries, name servers, etc.  The rationale for this is not that the
name space should have no implied semantics, but rather that the choice
of implied semantics should be left open to be used for the problem at
hand, and that different parts of the tree can have different implied
semantics.  For example, the IN-ADDR.ARPA domain is organized and
distributed by network and host address because its role is to translate
from network or host numbers to names; NetBIOS domains [RFC-1001, RFC-
1002] are flat because that is appropriate for that application.

ポリシーの問題として、 DNS技術仕様書では特定の木構造や特定のラベル選択規 則を強要しない; その目的をできるだけ一般的にしておくことで、 任意のアプリケーションを構築するときに使えるようにするためである。 特に、名前空間がネットワーク境界やネームサーバなどに従属する構成を とる必要がないように DNS は設計された。 こうしたのは 名前空間はきまった意味を持つべきものではなく、 意味の選択は対象とする問題分野で自由に決められるようにしておくためであり、 木の異なる部分ごとに異なった意味をもてるようにするためでもある。 例えば、IN-ADDR.ARPAドメインはネットワークやホストアドレスにしたがって 組織化され分散される。なぜなら、ネットワークやホスト番号を 名前へ変換することがその役割だから; NetBIOSドメイン[RFC-1001, RFC- 1002]はアプリケーションにとって適切なので、 フラットな構造になっている。

However, there are some guidelines that apply to the 'normal' parts of
the name space used for hosts, mailboxes, etc., that will make the name
space more uniform, provide for growth, and minimize problems as
software is converted from the older host table.  The political
decisions about the top levels of the tree originated in RFC-920.
Current policy for the top levels is discussed in [RFC-1032].  MILNET
conversion issues are covered in [RFC-1031].

しかしながら、 ホストやメールボックス等に使われる名前空間の通常部分に適用される ガイドラインは存在しており、 名前空間をより一様にし、発展に備え、古いホストテーブルを使った ソフトウェアを変換する際の問題を最小にするようにしている。 木のトップレベルについての政治的決定はRFC920から始まる。 トップレベルに関するポリシーの現状は[RFC-1032]にある。 MILNET変換問題は[RFC-1031]で触れられている。

Lower domains which will eventually be broken into multiple zones should
provide branching at the top of the domain so that the eventual
decomposition can be done without renaming.  Node labels which use
special characters, leading digits, etc., are likely to break older
software which depends on more restrictive choices.

先々、複数のゾーンに分割されることが予想される下位ドメインは 分解されるときに名前を変更しなくてよいように トップのドメインで分けておくべきである。 特殊文字を使っていたり、数字で始まっていたりする節点ラベルは より制約のある条件に依存している古いソフトウェアでは動作しない可能性がある。

3.3. 利用上の技術的ガイドライン Technical guidelines on use

Before the DNS can be used to hold naming information for some kind of
object, two needs must be met:

DNS になんらかのオブジェクトの名前情報を持たせる前に、 次の二つの条件を満たすべきである:

   - A convention for mapping between object names and domain
     names.  This describes how information about an object is

   - RR types and data formats for describing the object.

These rules can be quite simple or fairly complex.  Very often, the
designer must take into account existing formats and plan for upward
compatibility for existing usage.  Multiple mappings or levels of
mapping may be required.

これらの規則は非常に単純であるか、あるいはかなり複雑である。 よくあることだが、設計者は既存の形式も考慮に入れて、 既存の使い方の上位互換性を計画しなければならい。 多数の変換や多段の変換が必要となるかもしれない。

For hosts, the mapping depends on the existing syntax for host names
which is a subset of the usual text representation for domain names,
together with RR formats for describing host addresses, etc.  Because we
need a reliable inverse mapping from address to host name, a special
mapping for addresses into the IN-ADDR.ARPA domain is also defined.

ホストに関しては、 ドメイン名の通常のテキスト表現の部分集合である既存のホスト名の構文や ホストアドレスを表現する RR 形式などに依存した 変換となる。

アドレスからホスト名への信頼できる逆変換が必要なため、 アドレスをIN-ADDR.ARPAドメインに変換する特別な規則も定義した。

For mailboxes, the mapping is slightly more complex.  The usual mail
address <local-part>@<mail-domain> is mapped into a domain name by
converting <local-part> into a single label (regardles of dots it
contains), converting <mail-domain> into a domain name using the usual
text format for domain names (dots denote label breaks), and
concatenating the two to form a single domain name.  Thus the mailbox
HOSTMASTER@SRI-NIC.ARPA is represented as a domain name by
HOSTMASTER.SRI-NIC.ARPA.  An appreciation for the reasons behind this
design also must take into account the scheme for mail exchanges [RFC-

メールボックスのための変換はもう少し複雑である。 通常のメールアドレス <local-part>@<mail-domain>は 次のようにしてドメイン名に変換される。 <local-part> を1つのラベルに変換し(ドットが含まれていてもよい)、 <mail-domain>をドメイン名のために通常のテキスト形式を使った ドメイン名(ドットをラベルの区切りとするもの)に変換して、 これらをつないだものをドメイン名とする。

それで、メールボックス HOSTMASTER@SRI-NIC.ARPA はドメイン名では HOSTMASTER.SRI-NIC.ARPA. と表現される。 こう設計したことの背景にはメール交換 [RFC-974]のスキームを考慮したことがある。

The typical user is not concerned with defining these rules, but should
understand that they usually are the result of numerous compromises
between desires for upward compatibility with old usage, interactions
between different object definitions, and the inevitable urge to add new
features when defining the rules.  The way the DNS is used to support
some object is often more crucial than the restrictions inherent in the

通常の利用者はこれらの規則の定義には関わっていないが、 これらは次のようなことについての多くの妥協の結果であることを理解してほしい。

古い使い方の上位互換性、オブジェクトの異なる定義の間の干渉、 新しい規則を定義する時に新しい機能を追加しようとする避けがたい衝動。

ある種のオブジェクトをサポートするために DNSを使う方法は DNS 固有の制限に よるよりもしばしばより困難である。

3.4. 例に使う名前空間 Example name space

The following figure shows a part of the current domain name space, and
is used in many examples in this RFC.  Note that the tree is a very
small subset of the actual name space.

次の図は現在のドメイン名空間の一部を示している。 そして、このRFCの多くの例で使われる。 木は現実の名前空間の非常に小さい部分であることに注意せよ。

             |                     |                  |
            MIL                   EDU                ARPA
             |                     |                  |
             |                     |                  |
       +-----+-----+               |     +------+-----+-----+
       |     |     |               |     |      |           |
      BRL  NOSC  DARPA             |  IN-ADDR  SRI-NIC     ACC
       |        |                  |               |        |
      UCI      MIT                 |              UDEL     YALE
                |                 ISI
                |                  |
            +---+---+              |
            |       |              |
           LCS  ACHILLES  +--+-----+-----+--------+
            |             |  |     |     |        |
            XX            A  C   VAXA  VENERA Mockapetris

In this example, the root domain has three immediate subdomains: MIL,
EDU, and ARPA.  The LCS.MIT.EDU domain has one immediate subdomain named
XX.LCS.MIT.EDU.  All of the leaves are also domains.

この例では、ルートドメインは 3つの直下のサブドメインを持つ: MIL, EDU, ARPA である。 LCS.MIT.EDUドメインはXX.LCS.MIT.EDU という名前のただひとつの直接の サブドメインを持つ。全ての枝(リーフ)はドメインである。

3.5. 名前のよりよい構文 Preferred name syntax

The DNS specifications attempt to be as general as possible in the rules
for constructing domain names.  The idea is that the name of any
existing object can be expressed as a domain name with minimal changes.
However, when assigning a domain name for an object, the prudent user
will select a name which satisfies both the rules of the domain system
and any existing rules for the object, whether these rules are published
or implied by existing programs.

DNS の仕様はドメイン名を構成する規則を可能な限り一般的にしようとしている。 存在するものならなんでもその名前をドメイン名として最小限の変更で 表現できるようにしようという考えである。

しかしながら、オブジェクトにドメイン名をつける時、 慎重なユーザーなら DNS の規則に従うと同時に オブジェクトに対しての既存のどんな規則にも従うような名前を 選ぶだろう。 それらの規則が公開されているものか、 既存プログラムにより意味づけされているものであるかにかかわらず。

For example, when naming a mail domain, the user should satisfy both the
rules of this memo and those in RFC-822.  When creating a new host name,
the old rules for HOSTS.TXT should be followed.  This avoids problems
when old software is converted to use domain names.

例えば、メールドメインに名前を付ける時、 このメモにある規則と RFC 822との両方を満たすようにすべきである。 新しいホスト名を作る時、HOST.TXTの古い規則も守るべきである。 これならドメイン名を使うように古いソフトウェアを書き直す時に 発生するトラブルを避けられる。

The following syntax will result in fewer problems with many
applications that use domain names (e.g., mail, TELNET).

以下の構文なら、ドメイン名を使うアプリケーション(例えば、メール、TELNET) の多くで、問題発生が少なくなるだろう。

<domain> ::= <subdomain> | ' '

<subdomain> ::= <label> | <subdomain> '.' <label>

<label> ::= <letter> [ [ <ldh-str> ] <let-dig> ]

<ldh-str> ::= <let-dig-hyp> | <let-dig-hyp> <ldh-str>

<let-dig-hyp> ::= <let-dig> | '-'

<let-dig> ::= <letter> | <digit>

<letter> ::= any one of the 52 alphabetic characters A through Z in
             upper case and a through z in lower case

<digit> ::=  any one of the ten digits 0 through 9

Note that while upper and lower case letters are allowed in domain
names, no significance is attached to the case.  That is, two names with
the same spelling but different case are to be treated as if identical.

大文字小文字どちらでもドメイン名に許されるが、 ケースの区別はされない事に注意せよ。 つまり、大文字小文字が異なるだけの同じつづりの名前は 同一であるものとして扱われる。

The labels must follow the rules for ARPANET host names.  They must
start with a letter, end with a letter or digit, and have as interior
characters only letters, digits, and hyphen.  There are also some
restrictions on the length.  Labels must be 63 characters or less.

ラベルは ARPANET ホスト名規則に従わなければならない。 英字で始めて、英字か数字で終えること。 途中は英字か数字かハイフンでなければならない。 長さにも制限がある。ラベルは 63文字以下でなければならない。

For example, the following strings identify hosts in the Internet:



3.6. 資源レコード Resource Records

A domain name identifies a node.  Each node has a set of resource
information, which may be empty.  The set of resource information
associated with a particular name is composed of separate resource
records (RRs).  The order of RRs in a set is not significant, and need
not be preserved by name servers, resolvers, or other parts of the DNS.

ドメイン名は(ドメイン木の)節点を特定する。 各節点は資源情報集合をもっている。それは空でもよい。 ある名前に対応する資源情報の集合は別々の資源レコード(RRs)から構成される。 集合中での RRs の順序は問題ではなく、 ネームサーバ、リゾルバ、DNSの他の部分などでは保持する必要はない。

When we talk about a specific RR, we assume it has the following:

特定の RR の話をする時には、次の項目を持つことを仮定する:

owner           which is the domain name where the RR is found.
                RR のラベル (定義されるドメイン名)

type            which is an encoded 16 bit value that specifies the type
                of the resource in this resource record.  Types refer to
                abstract resources.
                RR の種類を示す16ビットの値。タイプは抽象

                This memo uses the following types:

                A               a host address

                CNAME           identifies the canonical name of an alias

                HINFO           identifies the CPU and OS used by a host
                                ホストで使われるCPU と OS の情報

                MX              identifies a mail exchange for the
                                domain.  See [RFC-974 for details.
                                詳細は [RFC-974] を参照。
                NS              the authoritative name server for the domain

                PTR             a pointer to another part of the domain name space

                SOA             identifies the start of a zone of authority

class           which is an encoded 16 bit value which identifies a
                protocol family or instance of a protocol.

                This memo uses the following classes:

                IN              the Internet system
                CH              the Chaos system

TTL             which is the time to live of the RR.  This field is a 32
                bit integer in units of seconds, and is primarily used by
                resolvers when they cache RRs.  The TTL describes how
                long a RR can be cached before it should be discarded.
                RR の有効時間。このフィールドは秒単位の 32ビッの整数である、
                主にリゾルバが RRsをキャッシュする時に使われる。
                TTL は RR がキャッシュから捨てられる前に、
                どれだけ長く RR をキャッシュしておいてよいかを記述する。

RDATA           which is the type and sometimes class dependent data
                which describes the resource:

                A               For the IN class, a 32 bit IP address
                                IN クラスでは 32ビットの IPアドレス

                                For the CH class, a domain name followed
                                by a 16 bit octal Chaos address.
                                CH クラスではドメイン名とそれに続く16ビット

                CNAME           a domain name.

                MX              a 16 bit preference value (lower is
                                better) followed by a host name willing
                                to act as a mail exchange for the owner

                NS              a host name.

                PTR             a domain name.

                SOA             several fields.

The owner name is often implicit, rather than forming an integral part
of the RR.  For example, many name servers internally form tree or hash
structures for the name space, and chain RRs off nodes.  The remaining
RR parts are the fixed header (type, class, TTL) which is consistent for
all RRs, and a variable part (RDATA) that fits the needs of the resource
being described.

ラベルは RR の中心的部分をなすというよりも暗黙指定されていることが多い。 例えば、多くのネームサーバは内部的には 名前空間を木やハッシュ構造で表現している。 そして、RRs をノードから解き離す。 残る RR 部分はすべての RR に共通の固定ヘッダ(タイプ、クラス、TTL)と 記述されるリソース毎の要求に適した可変部(RDATA)から成る。

The meaning of the TTL field is a time limit on how long an RR can be
kept in a cache.  This limit does not apply to authoritative data in
zones; it is also timed out, but by the refreshing policies for the
zone.  The TTL is assigned by the administrator for the zone where the
data originates.  While short TTLs can be used to minimize caching, and
a zero TTL prohibits caching, the realities of Internet performance
suggest that these times should be on the order of days for the typical
host.  If a change can be anticipated, the TTL can be reduced prior to
the change to minimize inconsistency during the change, and then
increased back to its former value following the change.

TTL フィールドは RRをキャッシュに保持してよい期間を意味する。 この制限はゾーン内の権威あるデータには適用されない; 権威あるデータにも期限はあるが、それはゾーンの更新ポリシーに従う。 TTL はゾーンのデータを作成する管理者がきめるものである。 短い TTL だとキャッシュされる期間を小さくし、 ゼロ TTL はキャッシュを禁止するが、 インターネットの性能を考慮すべき現実では 通常ホストの場合、これらの値は数「日」程度にすべきことを示唆している。 変更が予定されているなら、変更にさきだって、TTL を小さくしてよい。 変更が行われている間の食違いを少なくするためである。 変更後には元の値に戻していくのである。

The data in the RDATA section of RRs is carried as a combination of
binary strings and domain names.  The domain names are frequently used
as 'pointers' to other data in the DNS.

RRsの RDATA節にあるデータはバイナリ列とドメイン名の組み合わせとして 運ばれる。 ドメイン名はしばしばDNS 中の他のデータへの「ポインタ」として 使われる。

3.6.1. 資源レコードのテキスト表現 Textual expression of RRs

RRs are represented in binary form in the packets of the DNS protocol,
and are usually represented in highly encoded form when stored in a name
server or resolver.  In this memo, we adopt a style similar to that used
in master files in order to show the contents of RRs.  In this format,
most RRs are shown on a single line, although continuation lines are
possible using parentheses.

RRs は DNSプロトコルのパケット中ではバイナリ形式で表わされる。 そしてネームサーバやリゾルバ中に保持される時には 通常は高度にコード化された形で表現される。 このメモでは、RRs の内容を表わすのにマスターファイルで使われる形式に 似た表現を使う。 この形式ではほとんどの RRs は 1行で表現される。 ただし、カッコを使えば、継続行も可能になる。

The start of the line gives the owner of the RR.  If a line begins with
a blank, then the owner is assumed to be the same as that of the
previous RR.  Blank lines are often included for readability.

行の最初に RR のラベル(持主)を置く。空白で始まっている場合、 直前の RR と同じとなる。読みやすさのために空白行を使える。

Following the owner, we list the TTL, type, and class of the RR.  Class
and type use the mnemonics defined above, and TTL is an integer before
the type field.  In order to avoid ambiguity in parsing, type and class
mnemonics are disjoint, TTLs are integers, and the type mnemonic is
always last. The IN class and TTL values are often omitted from examples
in the interests of clarity.

ラベルの次には RR の TTL,タイプ,クラスがくる。 クラスとタイプには上に定義された名称を用いる。 そして、TTL はタイプ欄の前にある整数である。 構文解析するときのあいまい性を避けるために、 タイプとクラスの名称が重なることはない。 さらに TTLは整数で、タイプ名は常に最後に置く。 例題中では、論点を明かにするために、IN クラスとTTL値はしばしば省略される。

The resource data or RDATA section of the RR are given using knowledge
of the typical representation for the data.

リソースデータや RR の RDATA節はデータの典型的表現 の知識を使って、記述される。

For example, we might show the RRs carried in a message as:

例えば、メッセージ中の RRs を次のように表現することがある:

    ISI.EDU.        MX      10 VENERA.ISI.EDU.
                    MX      10 VAXA.ISI.EDU.

The MX RRs have an RDATA section which consists of a 16 bit number
followed by a domain name.  The address RRs use a standard IP address
format to contain a 32 bit internet address.

MX RRs は 16ビット数とそれに続くドメイン名から成る RDATA 節を持つ。 アドレス RRs は32ビットインターネットアドレスを示す 標準的 IP アドレス形式を使う。

This example shows six RRs, with two RRs at each of three domain names.

上の例では三つのドメイン名に対してそれぞれ 2 つのRR があり、 計 6 つの RRs が使われている

Similarly we might see:


    XX.LCS.MIT.EDU. IN      A
                    CH      A       MIT.EDU. 2420

This example shows two addresses for XX.LCS.MIT.EDU, each of a different

この例は XX.LCS.MIT.EDU の 2つの異なるクラスのアドレスを表わしている。

3.6.2. 別名と正規名 Aliases and canonical names

In existing systems, hosts and other resources often have several names
that identify the same resource.  For example, the names C.ISI.EDU and
USC-ISIC.ARPA both identify the same host.  Similarly, in the case of
mailboxes, many organizations provide many names that actually go to the
same mailbox; for example Mockapetris@C.ISI.EDU, Mockapetris@B.ISI.EDU,
and PVM@ISI.EDU all go to the same mailbox (although the mechanism
behind this is somewhat complicated).

既存のシステムにおいては、ホストやその他の資源は 同じ資源を指すいくつかの名前を持つことがよくある。 例えば、C.ISI.EDU と USC-ISIC.ARPA という名前は共に同じホストを 指している。 同様に、メールボックスの場合には多くの組織で 結果として同じメールボックスに転送されることになる多くの名前を使っている; 例えば、Mockapetris@C.ISI.EDU, Mockapetris@B.ISI.EDU, PVM@ISI.EDU はどれも同じメイルボックスを指す。(そのための機構はだいぶ複雑だが)

Most of these systems have a notion that one of the equivalent set of
names is the canonical or primary name and all others are aliases.

多くのシステムには等価な名前の集合のうちのひとつが正規名 あるいは本名であり、その他は別名であるという考えがある。

The domain system provides such a feature using the canonical name
(CNAME) RR.  A CNAME RR identifies its owner name as an alias, and
specifies the corresponding canonical name in the RDATA section of the
RR.  If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different.  This rule also insures that a cached CNAME can be
used without checking with an authoritative server for other RR types.

DNS は正規名(CNAME) RRを使ってこういう機能を実現する。 CNAME RR はラベルが別名であることを示し、 RR の RDATA 節にある正規名が本名であることを指定している。 CNAME RR が存在する節点中には、他のデータは存在させられない; これにより、正規名と別名に対するデータに違いがでないことが保証される。 また、この規則により、キャッシュされた CNAMEを 権威あるサーバへ他のRRタイプについて問合わせることなく、 使えることを保証する。

CNAME RRs cause special action in DNS software.  When a name server
fails to find a desired RR in the resource set associated with the
domain name, it checks to see if the resource set consists of a CNAME
record with a matching class.  If so, the name server includes the CNAME
record in the response and restarts the query at the domain name
specified in the data field of the CNAME record.  The one exception to
this rule is that queries which match the CNAME type are not restarted.

CNAME RRsは DNSソフトウェアにおいて特別な振舞いをおこさせる。

ドメイン名に付属する RR の中に希望するRRを見つけられなかった時、 ネームサーバは同じクラスの CNAME レコード であるかをチェックする。 もし、CNAME レコードだった場合には、 返答に CNAME レコードを含めるとともに、 CNAMEレコードのデータ欄で指定されたドメイン名を使って、再度問合せを行う。 ただし、このルールにはひとつ例外があって、 CNAME タイプが問合せられたときには問合せは再開されない。

For example, suppose a name server was processing a query with for USC-
ISIC.ARPA, asking for type A information, and had the following resource

例えば、USC-ISIC.ARPAのタイプ A 情報の問合せを処理しているときに、 次の資源レコードがあったとせよ:


    C.ISI.EDU       IN      A

Both of these RRs would be returned in the response to the type A query,
while a type CNAME or * query should return just the CNAME.

タイプ A の問合せには両方の RRが返答として返されるが、 CNAME や * 問合せでは CNAME だけが返されるはずだ。

Domain names in RRs which point at another name should always point at
the primary name and not the alias.  This avoids extra indirections in
accessing information.  For example, the address to name RR for the
above host should be:

他の名前を指す RRs 中のドメイン名は別名ではなく、常に正規名を 指さねばならない。 これにより情報アクセスにおいて、余分の間接参照を回避できる。 例えば、上記のホストのアドレスを名前に変換する RR は 以下のようにするべきであり:  IN      PTR     C.ISI.EDU

rather than pointing at USC-ISIC.ARPA.  Of course, by the robustness
principle, domain software should not fail when presented with CNAME
chains or loops; CNAME chains should be followed and CNAME loops
signalled as an error.

USC-ISIC.ARPA.を指すべきではない。 もちろん、頑健性原理によって、 ドメインソフトウェアは CNAME 連鎖やループにであっても、 動作しつづけるべきである; CNAME 連鎖はたどられ、CNAMEループはエラー報告すべきである。

3.7. 問合せ Queries

Queries are messages which may be sent to a name server to provoke a
response.  In the Internet, queries are carried in UDP datagrams or over
TCP connections.  The response by the name server either answers the
question posed in the query, refers the requester to another set of name
servers, or signals some error condition.

問合せとは返事を得るためにネームサーバに送られるメッセージである。 インターネットでは問合せには UDPデータグラムか、TCP接続が使われる。 ネームサーバからの返答は問合せられた質問にたいする返答であるか、 別のネームサーバ群への参照であるか、エラー発生の通知のどれかである。

In general, the user does not generate queries directly, but instead
makes a request to a resolver which in turn sends one or more queries to
name servers and deals with the error conditions and referrals that may
result.  Of course, the possible questions which can be asked in a query
does shape the kind of service a resolver can provide.

一般に、利用者は問合せを直接生成せず、代わりにリゾルバに問い合わせる。 リゾルバがネームサーバーに問合せて、発生したエラーや参照を処理する。 もちろん、問合せとして出来る質問の範囲によって、 リゾルバのサービスする種類がきまる。

DNS queries and responses are carried in a standard message format.  The
message format has a header containing a number of fixed fields which
are always present, and four sections which carry query parameters and

DNSの問合せと返答は標準的なメッセージ形式をしている。 メッセージ形式はヘッダ(常に存在している複数の固定フィールドをもつ)と 問合せパラメータと RR のための 4つの節(section)を持つ。

The most important field in the header is a four bit field called an
opcode which separates different queries.  Of the possible 16 values,
one (standard query) is part of the official protocol, two (inverse
query and status query) are options, one (completion) is obsolete, and
the rest are unassigned.

ヘッダのうち最も重要なフィールドは問合せを分離するための opcode と呼 ばれる 4 ビットのフィールドである。 16 の可能な値のうち、ひとつ(標準的問合せ)は公式プロトコルの一部であり、 ふたつ (逆問合せと状態問合せ)は任意実装であり、 また、別のひとつ(補完)は廃止されており、残りは割り当てられていない。

The four sections are:


Question        Carries the query name and other query parameters.
質問            問合せ名と問合せパラメータ

Answer          Carries RRs which directly answer the query.
返答            問合せの直接の答えであるRR

Authority       Carries RRs which describe other authoritative servers.
                May optionally carry the SOA RR for the authoritative
                data in the answer section.
権威            他の権威あるサーバについて記述する RR
                返答節にある権威あるデータの SOA RRを含めてもよい。

Additional      Carries RRs which may be helpful in using the RRs in the
                other sections.
付加            他の節のRR を使うことを補助するRR

Note that the content, but not the format, of these sections varies with
header opcode.

これらの節の内容(形式ではなく)はヘッダの opcode により変わることに注意せよ。

3.7.1. 標準問合せ Standard queries
A standard query specifies a target domain name (QNAME), query type
(QTYPE), and query class (QCLASS) and asks for RRs which match.  This
type of query makes up such a vast majority of DNS queries that we use
the term 'query' to mean standard query unless otherwise specified.
The QTYPE and QCLASS fields are each 16 bits long, and are a superset of
defined types and classes.

標準的な問合せは目標ドメイン名(QNAME)、問合せタイプ(QTYPE)、問合せク ラス(QCLASS)を指定して一致する RR を求る。 この種の問合せが DNS 問合せの大部分であるので、 特に断わりなく単に「問合せ」と言った場合、標準の問合せを意味する。 QTYPEとQCLASSフィールドは長さ 16ビットで、 定義されているタイプとクラスの上位集合である。

The QTYPE field may contain:


<any type>      matches just that type. (e.g., A, PTR).

AXFR            special zone transfer QTYPE.
                特別なゾーン転送 QTYPE

MAILB           matches all mail box related RRs (e.g. MB and MG).

*               matches all RR types.

The QCLASS field may contain:


<any class>     matches just that class (e.g., IN, CH).

*               matches aLL RR classes.

Using the query domain name, QTYPE, and QCLASS, the name server looks
for matching RRs.  In addition to relevant records, the name server may
return RRs that point toward a name server that has the desired
information or RRs that are expected to be useful in interpreting the
relevant RRs.  For example, a name server that doesn't have the
requested information may know a name server that does; a name server
that returns a domain name in a relevant RR may also return the RR that
binds that domain name to an address.

問合せドメイン名、QTYPEとQCLASSを使って、 ネームサーバーは該当する RRs を探す。

ネームサーバは返答としてのレコードのほかに、 期待される情報を持つネームサーバをポイントするRRや、 RRを解釈するのに有用と思われる RR を返すことがある。 例えば、求められた情報を持たないネームサーバでも、 持っているネームサーバは知っているかもしれない;

RR中にドメイン名を返すネームサーバは ドメイン名をアドレスに結合する RR を一緒に返す ことがある。

For example, a mailer tying to send mail to Mockapetris@ISI.EDU might
ask the resolver for mail information about ISI.EDU, resulting in a
query for QNAME=ISI.EDU, QTYPE=MX, QCLASS=IN.  The response's answer
section would be:

例えば、Mockapetris@ISI.EDUにメールを送ろうとしているメイラは リゾルバに ISI.EDU のメール情報を問い合わせる。 その結果、QNAME=ISI.EDU, QTYPE=MX, QCLASS=INの問合せが発生する。 返事の返答節はこうなる:

    ISI.EDU.        MX      10 VENERA.ISI.EDU.
                    MX      10 VAXA.ISI.EDU.

while the additional section might be:



Because the server assumes that if the requester wants mail exchange
information, it will probably want the addresses of the mail exchanges
soon afterward.

要求者がメール交換ホスト情報を必要とするなら、すぐにメール交換ホストの アドレスも必要になるものとネームサーバは想定するからだ。

Note that the QCLASS=* construct requires special interpretation
regarding authority.  Since a particular name server may not know all of
the classes available in the domain system, it can never know if it is
authoritative for all classes.  Hence responses to QCLASS=* queries can
never be authoritative.

QCLASS=* 構成は権威に関して特別な解釈を要することに注意せよ。 ネームサーバは DNS で利用可能なクラスのすべてを知っているとは限らないので、 すべてのクラスに対して権威があるかどうかは知るはずもない。 そのため、QCLASS=* の質問に対する返答は決して権威あるものにはならない。

3.7.2. 逆問合せ(任意)Inverse queries (Optional)

Name servers may also support inverse queries that map a particular
resource to a domain name or domain names that have that resource.  For
example, while a standard query might map a domain name to a SOA RR, the
corresponding inverse query might map the SOA RR back to the domain

ネームサーバは資源から資源もつドメイン名(複数可)へ変換するような 逆問合せをサポートするかもしれない。 例えば、標準的問合せでドメイン名をSOA RRに変換するものがあるが、 対応する逆問合せは SOA RR をドメイン名に戻す。

Implementation of this service is optional in a name server, but all
name servers must at least be able to understand an inverse query
message and return a not-implemented error response.

このサービスの実装はネームサーバには任意であるが、 ネームサーバは少なくとも逆問合せメッセージを理解して、 「実装していない」エラー返答を返す必要がある。

The domain system cannot guarantee the completeness or uniqueness of
inverse queries because the domain system is organized by domain name
rather than by host address or any other resource type.  Inverse queries
are primarily useful for debugging and database maintenance activities.

DNS はドメイン名をもとに構成されており、 ホストアドレスやほかの資源タイプをもとにしていないので、 逆問合せの完全性やユニーク性を保証できない。 逆問合せは主としてデバッグやデータベース管理作業に有用である。

Inverse queries may not return the proper TTL, and do not indicate cases
where the identified RR is one of a set (for example, one address for a
host having multiple addresses).  Therefore, the RRs returned in inverse
queries should never be cached.

逆問い合わせは適切なTTLを返さないかもしれず、 識別された RR が集合のうちのひとつである場合、 そのことを示さない。 (例えば、複数アドレスをもつホストのアドレスのうちの1つ)。 そのため逆問い合わせに対して返された RRs は決してキャッシュすべきではない。

Inverse queries are NOT an acceptable method for mapping host addresses
to host names; use the IN-ADDR.ARPA domain instead.

逆問合せはホストアドレスをホスト名に変換する方法としては 受入れられる方法ではない; 代わりにIN-ADDR.ARPAドメインを使うべきだ。

A detailed discussion of inverse queries is contained in [RFC-1035].


3.8. 状態問合せ(実験的) Status queries (Experimental)

To be defined.


3.9. 補完の質問(廃止) Completion queries (Obsolete)

The optional completion services described in RFCs 882 and 883 have been
deleted.  Redesigned services may become available in the future, or the
opcodes may be reclaimed for other use.

RFC882とRFC883にあった実装任意の補完サービスは削除された。 将来、設計しなおされたサービスが利用可能になったり、 opcodesが他の目的のために回収される可能性がある。

2002-08-08 訳 前野年紀