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.
ドメイン名空間は木構造をしている。 木の節点(node)と葉(末端、leaf)はそれぞれ資源集合(空も可)に対応する。 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 オクテットである。 兄弟節点は同じラベルを持てないが、兄弟ではない節点は同じラベルを持てる。 事前に予約されていラベルがひとつあり、 それは空(つまり長さがゼロ)のラベルであって 根(root)を表わすのに使われる。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."
- 完全ドメイン名を表す文字列(よく「絶対名」と呼ばれる)。 例えば、"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.
- ドメイン名の始まり部分のラベル列を表現する文字列、 ドメイン名としては不完全であり、ローカルドメインについての知識を使って ローカルソフトウェアが補完する必要がある(しばしば「相対名」と呼ばれる)。 例えば、ISI.EDUドメイン内で使われた"poneria"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と " "のサブドメインである。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.
先々、複数のゾーンに分割されることが予想される下位ドメインは 分解されるときに名前を変更しなくてよいように トップのドメインで分けておくべきである。 特殊文字を使っていたり、数字で始まっていたりする節点ラベルは より制約のある条件に依存している古いソフトウェアでは動作しない可能性がある。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 accessed.
- オブジェクト名とドメイン名の間の対応の便法。 これはオブジェクト情報にアクセスする方法を記述する。- RR types and data formats for describing the object.
- RR タイプとオブジェクトを記述するデータ形式。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- 974].
メールボックスのための変換はもう少し複雑である。 通常のメールアドレス <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を使う方法は DNS 固有の制限に よるよりもしばしばより困難である。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 という名前のただひとつの直接の サブドメインを持つ。全ての枝(リーフ)はドメインである。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 (大文字)AからZと(小文字)aからzの52文字のうちのどれか <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:
例えば、次の文字列はインターネットのホストを特定している:A.ISI.EDU XX.LCS.MIT.EDU SRI-NIC.ARPA
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. 16ビット値であり、プロトコルファミリーあるいはプロトコルの インスタンスを識別する。 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ビット の8進数カオスアドレス 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 domain. 16ビットの優先値(小さいほど優先)と、 ドメインのメール交換ホスト名 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. VENERA.ISI.EDU. A 128.9.0.32 A 10.1.0.52 VAXA.ISI.EDU. A 10.2.0.27 A 128.9.0.33
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 10.0.0.44 CH A MIT.EDU. 2420
This example shows two addresses for XX.LCS.MIT.EDU, each of a different class.
この例は 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 records:
例えば、USC-ISIC.ARPAのタイプ A 情報の問合せを処理しているときに、 次の資源レコードがあったとせよ:USC-ISIC.ARPA IN CNAME C.ISI.EDU C.ISI.EDU IN A 10.0.0.52
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 は 以下のようにするべきであり:52.0.0.10.IN-ADDR.ARPA 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ループはエラー報告すべきである。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 RRs.
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 により変わることに注意せよ。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:
QTYPEフィールドに表われてよいもの:<any type> matches just that type. (e.g., A, PTR). 指定されたタイプそのものに一致する(AやPTRなど) AXFR special zone transfer QTYPE. 特別なゾーン転送 QTYPE MAILB matches all mail box related RRs (e.g. MB and MG). 全てのメールボックス関係のRR(MBやMGなど) * matches all RR types. 全てのRRタイプに一致
The QCLASS field may contain:
QCLASSフィールドに表われてよいもの:<any class> matches just that class (e.g., IN, CH). 指定されたクラスそのものに一致(INやCHなど) * matches aLL RR classes. 全てのRRクラスに一致
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:
一方、付加節はこうだろう:VAXA.ISI.EDU. A 10.2.0.27 A 128.9.0.33 VENERA.ISI.EDU. A 10.1.0.52 A 128.9.0.32
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 name.
ネームサーバは資源から資源もつドメイン名(複数可)へ変換するような 逆問合せをサポートするかもしれない。 例えば、標準的問合せでドメイン名を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].
逆問い合わせの詳細な論議は[RFC-1035]にある。To be defined.
まだ定義されていない。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が他の目的のために回収される可能性がある。