目次より

4. ネームサーバ NAME SERVERS

4. ネームサーバ

4.1. はじめに Introduction

Name servers are the repositories of information that make up the domain
database.  The database is divided up into sections called zones, which
are distributed among the name servers.  While name servers can have
several optional functions and sources of data, the essential task of a
name server is to answer queries using data in its zones.  By design,
name servers can answer queries in a simple manner; the response can
always be generated using only local data, and either contains the
answer to the question or a referral to other name servers ';closer'; to
the desired information.

ネームサーバはドメインデータベースを構成する情報の保管所である。 データベースはゾーンと呼ばれる部分に分割されていて、 ゾーンはネームサーバ間に分散されている。

ネームサーバは実装任意の機能とデータ源を持てるが、 本来の仕事はそのゾーン内にあるデータを使って問合せに答える事である。

設計として、 ネームサーバは単純な方法で問合せに答えることができる; 返答はローカルデータだけを使って常に生成できる。 そして、返答は問合せに対する答か、 求めている情報に「より近い」ネームサーバへの参照を含んでいる。

A given zone will be available from several name servers to insure its
availability in spite of host or communication link failure.  By
administrative fiat, we require every zone to be available on at least
two servers, and many zones have more redundancy than that.

ホストや通信リンクに障害があっても利用可能となるように ゾーンは複数のネームサーバから利用可能とすべきである。 管理上の命令として、ゾーンは 2つ以上のサーバで利用可能であることを要求している。 そして、多くのゾーンはより多くの冗長性を持っている。

A given name server will typically support one or more zones, but this
gives it authoritative information about only a small section of the
domain tree.  It may also have some cached non-authoritative data about
other parts of the tree.  The name server marks its responses to queries
so that the requester can tell whether the response comes from
authoritative data or not.

ネームサーバはゾーン群をサポートするが、 これにより、ドメイン木のほんの一部だけに権威ある情報を持つ。 木の他の部分についてはキャッシュされた権威のないデータを持つことがある。

返答が権威あるデータから来るものかどうか、問合せ側で判定できるように ネームサーバは返答に印を付ける。

4.2. データベースをゾーンに分ける方法 How the database is divided into zones

The domain database is partitioned in two ways: by class, and by ';cuts';
made in the name space between nodes.

ドメインデータベースの分割法は二つある:クラスによる方法と名前空間を ノードの間で「切る」という方法と。

The class partition is simple.  The database for any class is organized,
delegated, and maintained separately from all other classes.  Since, by
convention, the name spaces are the same for all classes, the separate
classes can be thought of as an array of parallel namespace trees.  Note
that the data attached to nodes will be different for these different
parallel classes.  The most common reasons for creating a new class are
the necessity for a new data format for existing types or a desire for a
separately managed version of the existing name space.

クラスによる分割は単純だ。 [以下、翻訳は省略]

Within a class, ';cuts'; in the name space can be made between any two
adjacent nodes.  After all cuts are made, each group of connected name
space is a separate zone.  The zone is said to be authoritative for all
names in the connected region.  Note that the ';cuts'; 
in the name space
may be in different places for different classes, the name servers may
be different, etc.

ひとつのクラスの中では名前空間の「切断」は任意の隣接したノードの間で行ってよい。

切断が行われた後に、連結されている名前空間のグループはそれぞれがひとつのゾーンとなる。

ゾーンは連結されている領域に対しての権威をもつと言われる。

名前空間での「切断」は異なるクラスでは異なる場所にあるかもしれない。 また、ネームサーバも異なることがある、など。

These rules mean that every zone has at least one node, and hence domain
name, for which it is authoritative, and all of the nodes in a
particular zone are connected.  Given, the tree structure, every zone
has a highest node which is closer to the root than any other node in
the zone.  The name of this node is often used to identify the zone.

これらの規則が意味するのは、 各ゾーンはドメイン名となるノードを含むひとつ以上のノードをもつこと、 ゾーンはそれらのドメイン名に対して権威をもつこと、 そして、ゾーン中のすべてのノードは連結されているということである。

従って、ツリー構造をしているおのおののゾーンではゾーン中の他のノードよりも ルートにより近い最上位ノードが存在する。 このノードの名前がゾーンそのものを指すためによく使われる。

It would be possible, though not particularly useful, to partition the
name space so that each domain name was in a separate zone or so that
all nodes were in a single zone.  Instead, the database is partitioned
at points where a particular organization wants to take over control of
a subtree.  Once an organization controls its own zone it can
unilaterally change the data in the zone, grow new tree sections
connected to the zone, delete existing nodes, or delegate new subzones
under its zone.

特に役だつものではないが、名前空間を分割して 各ドメイン名が全て別のゾーンとすることも、 全てのノードを含むひとつのゾーンとすることも可能である。 それよりも、データベースは 組織が制御をひきとりたいような部分木に分れるように分割される。 組織がそれ自身のゾーンを制御しはじめれば、 ゾーン内のデータを独自に変更したり、 ゾーンに新しい木を増やしたり、既存のノードを削除したり、 自分の中に新しいサブゾーンを作って委譲したりすることができる。

If the organization has substructure, it may want to make further
internal partitions to achieve nested delegations of name space control.
In some cases, such divisions are made purely to make database
maintenance more convenient.

組織が下部構造を持つなら、 名前空間の制御を委譲するということを多段に行い、 さらに分割を行いたいであろう。

データベース管理がより簡単になるという 理由だけでこのような分割が行われることがある。

4.2.1. 技術的な考慮 Technical considerations

The data that describes a zone has four major parts:

ゾーンを記述するデータは大きく四つに分けられる:

   - Authoritative data for all nodes within the zone.

   - Data that defines the top node of the zone (can be thought of
     as part of the authoritative data).

   - Data that describes delegated subzones, i.e., cuts around the
     bottom of the zone.

   - Data that allows access to name servers for subzones
     (sometimes called ';glue'; data).

All of this data is expressed in the form of RRs, so a zone can be
completely described in terms of a set of RRs.  Whole zones can be
transferred between name servers by transferring the RRs, either carried
in a series of messages or by FTPing a master file which is a textual
representation.

ここのすべてのデータは RR という形で表現される。 そのためゾーンは RRs の集合を使って完全に記述できる。 ネームサーバ間のゾーン全体を転送の転送は RRs の転送によって、あるいは メッセージ列としての転送、 もしくはテキスト表現であるマスターファイルの FTP などで可能である。

The authoritative data for a zone is simply all of the RRs attached to
all of the nodes from the top node of the zone down to leaf nodes or
nodes above cuts around the bottom edge of the zone.

ゾーンの権威あるデータとは ゾーンのトップノードからリーフかゾーン下端の切断のすぐ上のノードまでの 全てのノードに付属する全ての RRs のことにすぎない。

Though logically part of the authoritative data, the RRs that describe
the top node of the zone are especially important to the zone's
management.  These RRs are of two types: name server RRs that list, one
per RR, all of the servers for the zone, and a single SOA RR that
describes zone management parameters.

論理的に言えば、権威あるデータの一部ではあるが、 ゾーンの最上位ノードを記述する RRs はゾーンの管理にとって特に重要である。

この資源レコードとは以下の二つのタイプである: ネームサーバ RRs (ゾーンのすべてのネームサーバを数えあげたもので、 ゾーンネームサーバ毎にひとつずつ)と、 ゾーン管理のパラメタを記述するSOA RR ひとつとである。

The RRs that describe cuts around the bottom of the zone are NS RRs that
name the servers for the subzones.  Since the cuts are between nodes,
these RRs are NOT part of the authoritative data of the zone, and should
be exactly the same as the corresponding RRs in the top node of the
subzone.  Since name servers are always associated with zone boundaries,
NS RRs are only found at nodes which are the top node of some zone.  In
the data that makes up a zone, NS RRs are found at the top node of the
zone (and are authoritative) and at cuts around the bottom of the zone
(where they are not authoritative), but never in between.

ゾーンの下部にあって、ゾーンカットを記述している RRs は サブゾーンのネームサーバ名を指す NS RRs である。 切断はノード間でおきるので、 これらの RRs は当該ゾーンの権威あるデータの一部では「ない」。

そして、RRs はサブゾーンの最上位にある対応する RRs と 一致させなければならない。 ネームサーバというもの常にゾーン境界線と結び付いてるので、 NS RRs はゾーンの最上位ノードにだけつけるべきものである。

ゾーンを構成しているデータ中では、NS RRs は ゾーンの最上位ノードについている(権威がある)か、 ゾーンの底部のカットにある(権威はない)かであり、 中間にはあらわれない。

One of the goals of the zone structure is that any zone have all the
data required to set up communications with the name servers for any
subzones.  That is, parent zones have all the information needed to
access servers for their children zones.  The NS RRs that name the
servers for subzones are often not enough for this task since they name
the servers, but do not give their addresses.  In particular, if the
name of the name server is itself in the subzone, we could be faced with
the situation where the NS RRs tell us that in order to learn a name
server's address, we should contact the server using the address we wish
to learn.  To fix this problem, a zone contains ';glue'; RRs
which are not
part of the authoritative data, and are address RRs for the servers.
These RRs are only necessary if the name server's name is ';below'; the
cut, and are only used as part of a referral response.

ゾーン構造の目標のひとつとして、 どのゾーンもそのサブゾーンのネームサーバとの交信に必要なすべてデータを 持つということがある。 すなわち、親ゾーンはその子ゾーンのサーバにアクセスするのに 必要な全ての情報を持つことである。 サブゾーンのサーバの名前を指す NS RRs はこの用途には不十分である。 それはサーバの名前は分ってもアドレスを示さないからである。 とりわけ、ネームサーバの名前がサブゾーンのものである場合には 「ネームサーバのアドレスを知るために、 知りたいところのアドレスを使ってそのネームサーバにアクセスしなければならない」 ということを NS RRs が示すという状況になってしまう。 この問題を解決するため、ゾーンは グルー RRs を持つ。 (グルーは権威あるデータの一部ではなくて、ネームサーバのアドレス RRs である。) これらの RRs はネームサーバの名前がカットより「下」にある時にだけ 必要であり、参照返答(referral)の一部としてだけ用いられる。

4.2.2. 管理上の考慮 Administrative considerations

When some organization wants to control its own domain, the first step
is to identify the proper parent zone, and get the parent zone's owners
to agree to the delegation of control.  While there are no particular
technical constraints dealing with where in the tree this can be done,
there are some administrative groupings discussed in [RFC-1032] which
deal with top level organization, and middle level zones are free to
create their own rules.  For example, one university might choose to use
a single zone, while another might choose to organize by subzones
dedicated to individual departments or schools.  [RFC-1033] catalogs
available DNS software an discusses administration procedures.

組織が自身のドメインを管理しようとするときの最初の一歩は 正しく親ゾーンを知り、親ゾーンの所有者に管理を委譲してもらうよう 同意をとることである。 ドメイン木のどこで委譲してよいかに関しては特別な技術的制約はないが、 最上位組織を扱う[RFC-1032]で論じられている管理グループ分けは存在している。 さらに、中間レベルのゾーンは自身の規則を自由に作ってよい。 例えば、ある大学はゾーンをひとつだけ使うことを選ぶかもしれないし、 また別の大学は部門や各学校にサブゾーン専用に設けるやりかたを選ぶ かもしれない。 [RFC-1033]には利用可能なDNS ソフトウェアの一覧があり、 管理手順を論じている。

Once the proper name for the new subzone is selected, the new owners
should be required to demonstrate redundant name server support.  Note
that there is no requirement that the servers for a zone reside in a
host which has a name in that domain.  In many cases, a zone will be
more accessible to the internet at large if its servers are widely
distributed rather than being within the physical facilities controlled
by the same organization that manages the zone.  For example, in the
current DNS, one of the name servers for the United Kingdom, or UK
domain, is found in the US.  This allows US hosts to get UK data without
using limited transatlantic bandwidth.

新しいサブゾーンにふさわしい名前が選ばれたら、 新しい(ゾーン)所有者は複数のネームサーバを用意できることを 示すべきである。

ゾーンのためのサーバがそのドメインの名前を持ったホスト上にある 必要はないということに注意せよ。 多くの場合、ゾーンを維持する組織が管理する施設内にサーバがあるより、 広く分散されている方がインターネット一般からアクセスしやすいだろう。 例えば、現在の DNSではイギリス、つまり UK ドメインのための ネームサーバのひとつは US 内にある。 これにより、US のホストは 帯域の限定された太西洋横断回線を使わなくとも、 UK のデータを得られる。

As the last installation step, the delegation NS RRs and glue RRs
necessary to make the delegation effective should be added to the parent
zone.  The administrators of both zones should insure that the NS and
glue RRs which mark both sides of the cut are consistent and remain so.

インストールの最後のステップとして、親ゾーンには 委譲が効果をもつのに必要な委譲のための NS RRs と グルー RRs を 加えなければならない。 両方のゾーンの管理者は カットの両面を表わす NS と グルー RRs が一致していて、 いつまでもそうあり続けることを保証しなければならない。

4.3. ネームサーバの内部動作 Name server internals

4.3.1. 問合せと返答 Queries and responses

The principal activity of name servers is to answer standard queries.
Both the query and its response are carried in a standard message format
which is described in [RFC-1035].  The query contains a QTYPE, QCLASS,
and QNAME, which describe the types and classes of desired information
and the name of interest.

ネームサーバの主たる動作は標準問合せに答える事である。 問合せとその返答の両者は[RFC-1035]に記述された標準メッセージ形式に従う。 質問はQTYPE、QCLASS、QNAMEひとつずつを含み、 これらは求める情報のタイプ、クラスと興味がある名前を記述する。

The way that the name server answers the query depends upon whether it
is operating in recursive mode or not:

ネームサーバが問合せに答える方法は 再帰モードで動作しているかどうかによる:

   - The simplest mode for the server is non-recursive, since it
     can answer queries using only local information: the response
     contains an error, the answer, or a referral to some other
     server ';closer'; to the answer.  All name servers must
     implement non-recursive queries.

   - The simplest mode for the client is recursive, since in this
     mode the name server acts in the role of a resolver and
     returns either an error or the answer, but never referrals.
     This service is optional in a name server, and the name server
     may also choose to restrict the clients which can use
     recursive mode.

Recursive service is helpful in several situations:

再帰サービスが役立ついくつかの状況は:

   - a relatively simple requester that lacks the ability to use
     anything other than a direct answer to the question.

   - a request that needs to cross protocol or other boundaries and
     can be sent to a server which can act as intermediary.

   - a network where we want to concentrate the cache rather than
     having a separate cache for each client.

Non-recursive service is appropriate if the requester is capable of
pursuing referrals and interested in information which will aid future
requests.

非再帰サービスが適切なのは参照(referral) を利用することができて、 将来のリクエストの助けになる情報に興味がある要求者の場合である。

The use of recursive mode is limited to cases where both the client and
the name server agree to its use.  The agreement is negotiated through
the use of two bits in query and response messages:

再帰モードを使用するのは クライアントとネームサーバの両方が使用に同意することが条件になる。 合意の交渉には問合せと返答メッセージ中の 2ビットが使用される。

   - The recursion available, or RA bit, is set or cleared by a
     name server in all responses.  The bit is true if the name
     server is willing to provide recursive service for the client,
     regardless of whether the client requested recursive service.
     That is, RA signals availability rather than use.

   - Queries contain a bit called recursion desired or RD.  This
     bit specifies specifies whether the requester wants recursive
     service for this query.  Clients may request recursive service
     from any name server, though they should depend upon receiving
     it only from servers which have previously sent an RA, or
     servers which have agreed to provide service through private
     agreement or some other means outside of the DNS protocol.

The recursive mode occurs when a query with RD set arrives at a server
which is willing to provide recursive service; the client can verify
that recursive mode was used by checking that both RA and RD are set in
the reply.  Note that the name server should never perform recursive
service unless asked via RD, since this interferes with trouble shooting
of name servers and their databases.

RD が設定された問合せがサーバに届き、 サーバが再帰サービスを提供している場合に再帰モードが有効になる; クライアントは返答で RAとRDの両方のビットが設定されていることを調べて、 再帰モードが使われたことを確認できる。 ネームサーバは RD により要請がない場合には再帰サービスを実行すべきではない ことに注意せよ。 再帰はネームサーバやそのデータベースの障害検出の邪魔になるからである。

If recursive service is requested and available, the recursive response
to a query will be one of the following:

再帰サービスが要請され、利用できる場合、再帰の返答は以下ようなものだ:

   - The answer to the query, possibly preface by one or more CNAME
     RRs that specify aliases encountered on the way to an answer.

   - A name error indicating that the name does not exist.  This
     may include CNAME RRs that indicate that the original query
     name was an alias for a name which does not exist.

   - A temporary error indication.

If recursive service is not requested or is not available, the non-
recursive response will be one of the following:

再帰サービスが要請されていないか、利用可能でない場合、非再帰の応答は 以下のどれかになる:

   - An authoritative name error indicating that the name does not
     exist.

   - A temporary error indication.

   - Some combination of:

     RRs that answer the question, together with an indication
     whether the data comes from a zone or is cached.

     A referral to name servers which have zones which are closer
     ancestors to the name than the server sending the reply.

   - RRs that the name server thinks will prove useful to the
     requester.

4.3.2. アルゴリズム Algorithm

The actual algorithm used by the name server will depend on the local OS
and data structures used to store RRs.  The following algorithm assumes
that the RRs are organized in several tree structures, one for each
zone, and another for the cache:

ネームサーバが実際に使うアルゴリズムは ローカルOSと資源レコードを保持するデータ構造に依存するだろう。 以下のアルゴリズムでは RRs は複数の木構造、 各ゾーン毎のものと、キャッシュに対応したもの、 として構成されていることを仮定している:

   1. Set or clear the value of recursion available in the response
      depending on whether the name server is willing to provide
      recursive service.  If recursive service is available and
      requested via the RD bit in the query, go to step 5,
      otherwise step 2.

   2. Search the available zones for the zone which is the nearest
      ancestor to QNAME.  If such a zone is found, go to step 3,
      otherwise step 4.

   3. Start matching down, label by label, in the zone.  The
      matching process can terminate several ways:

         a. If the whole of QNAME is matched, we have found the node.
  1. QNAME全体が一致したら、目的のノードを見つけた。

            If the data at the node is a CNAME, and QTYPE doesn't
            match CNAME, copy the CNAME RR into the answer section
            of the response, change QNAME to the canonical name in
            the CNAME RR, and go back to step 1.

            Otherwise, copy all RRs which match QTYPE into the
            answer section and go to step 6.

         b. If a match would take us out of the authoritative data,
            we have a referral.  This happens when we encounter a
            node with NS RRs marking cuts along the bottom of a
            zone.

            Copy the NS RRs for the subzone into the authority
            section of the reply.  Put whatever addresses are
            available into the additional section, using glue RRs
            if the addresses are not available from authoritative
            data or the cache.  Go to step 4.

         c. If at some label, a match is impossible (i.e., the
            corresponding label does not exist), look to see if a
            the ';*'; label exists.

            If the ';*'; label does not exist, check whether the name
            we are looking for is the original QNAME in the query
            or a name we have followed due to a CNAME.  If the name
            is original, set an authoritative name error in the
            response and exit.  Otherwise just exit.

            If the ';*'; label does exist, match RRs at that node
            against QTYPE.  If any match, copy them into the answer
            section, but set the owner of the RR to be QNAME, and
            not the node with the ';*'; label.  Go to step 6.

   4. Start matching down in the cache.  If QNAME is found in the
      cache, copy all RRs attached to it that match QTYPE into the
      answer section.  If there was no delegation from
      authoritative data, look for the best one from the cache, and
      put it in the authority section.  Go to step 6.

   5. Using the local resolver or a copy of its algorithm (see
      resolver section of this memo) to answer the query.  Store
      the results, including any intermediate CNAMEs, in the answer
      section of the response.

   6. Using local data only, attempt to add other RRs which may be
      useful to the additional section of the query.  Exit.

4.3.3. ワイルドカード Wildcards

In the previous algorithm, special treatment was given to RRs with owner
names starting with the label ';*';.  Such RRs are called wildcards.
Wildcard RRs can be thought of as instructions for synthesizing RRs.
When the appropriate conditions are met, the name server creates RRs
with an owner name equal to the query name and contents taken from the
wildcard RRs.

前節のアルゴリズムで ';*'; ラベルで始まる所有者名をもつRRsには 特別な処置がなされた。 このような RRs はワイルドカードと呼ばれる。 ワイルドカード RRs は RRs を合成するための指示と考えらる。 適切な条件を満たす時、ネームサーバは問合せの名前と一致した所有者名をもち ワイルドカード RRs の内容をもつ RRs を生成する。

This facility is most often used to create a zone which will be used to
forward mail from the Internet to some other mail system.  The general
idea is that any name in that zone which is presented to server in a
query will be assumed to exist, with certain properties, unless explicit
evidence exists to the contrary.  Note that the use of the term zone
here, instead of domain, is intentional; such defaults do not propagate
across zone boundaries, although a subzone may choose to achieve that
appearance by setting up similar defaults.

この機能はインターネットから別種のメールシステム(訳注:UUCP など)へ メールを転送するために使うゾーンを生成するのによく使われる。 そのゾーンに属する名前の問合せがサーバにやってきたら、 反対の指定がされているのでないかぎり、 どういう名前であろうとある属性をもって存在するというのが 一般的な考えである。 ここで、ドメインではなく、 ゾーンという言葉を使ったのは意図的であることに注意せよ; このようなデフォルトはゾーン境界を越えて伝わることはない。 ただし、サブゾーンは類似のデフォルトを設定することで、 そのように見えるようにするかもしれない。

The contents of the wildcard RRs follows the usual rules and formats for
RRs.  The wildcards in the zone have an owner name that controls the
query names they will match.  The owner name of the wildcard RRs is of
the form ';*.<anydomain>';, where <anydomain> is any domain name.
<anydomain> should not contain other * labels, and should be in the
authoritative data of the zone.  The wildcards potentially apply to
descendants of <anydomain>, but not to <anydomain> itself.  Another way
to look at this is that the ';*'; label always matches at least one whole
label and sometimes more, but always whole labels.

ワイルドカードRRsの中身は通常の RRs の規則と形式に従う。 ゾーン中のワイルドカードは適合する問合せ名を操作する所有者名を持つ。 ワイルドカード RRs の所有者名は ';*.<anydomain>';という形式であり、 ここで <anydomain> は任意のドメイン名である。 <anydomain> は他の * ラベルを含んではならず、 ゾーンの権威あるデータのものでなければならない。 ワイルドカードは<anydomain>の子孫にも適用される可能性があるが、 <anydomain>自身には適用されない。 別の見方をすると、 ';*';ラベルは 1つ以上のラベル(全体)に一致し、 ラベルの一部分には一致はしないということになる。

Wildcard RRs do not apply:

ワイルドカード RR は以下のものにはあてはまらない:

   - When the query is in another zone.  That is, delegation cancels
     the wildcard defaults.

   - When the query name or a name between the wildcard domain and
     the query name is know to exist.  For example, if a wildcard
     RR has an owner name of ';*.X';, and the zone also contains RRs
     attached to B.X, the wildcards would apply to queries for name
     Z.X (presuming there is no explicit information for Z.X), but
     not to B.X, A.B.X, or X.

A * label appearing in a query name has no special effect, but can be
used to test for wildcards in an authoritative zone; such a query is the
only way to get a response containing RRs with an owner name with * in
it.  The result of such a query should not be cached.

問合せ名中に現われる * ラベルは特別な効果を持たないが、 権威あるなゾーン中でワイルドカードのテストをするときに使える; このような問合せは所有者名に * を含む RRs の返答を得る唯一の方法である。 このような問合せの結果はキャッシュしてはならない。

Note that the contents of the wildcard RRs are not modified when used to
synthesize RRs.

RRsを生成するために使われるとき、ワイルドカード RRs の中身は 修正されないことに注意せよ。

To illustrate the use of wildcard RRs, suppose a large company with a
large, non-IP/TCP, network wanted to create a mail gateway.  If the
company was called X.COM, and IP/TCP capable gateway machine was called
A.X.COM, the following RRs might be entered into the COM zone:

ワイルドカード RRs の使用例を示すために、 大きな非IP/TCP網を持つ大きな会社がメールゲートウェイを作ろうとしているとする。 会社は X.COM と呼ばれていて、 TP/TCPを持つゲートウェイマシンは A.X.COMと呼ばれるとしたら、以下のRRs を COMゾーンに登録するだろう:

    X.COM           MX      10      A.X.COM

    *.X.COM         MX      10      A.X.COM

    A.X.COM         A       1.2.3.4
    A.X.COM         MX      10      A.X.COM

    *.A.X.COM       MX      10      A.X.COM

This would cause any MX query for any domain name ending in X.COM to
return an MX RR pointing at A.X.COM.  Two wildcard RRs are required
since the effect of the wildcard at *.X.COM is inhibited in the A.X.COM
subtree by the explicit data for A.X.COM.  Note also that the explicit
MX data at X.COM and A.X.COM is required, and that none of the RRs above
would match a query name of XX.COM.

この指定により、 X.COMで終わるドメイン名についの MX 問合せをすれば、いつでも、 A.X.COM を指す MX RRs が返ってくることになる。 A.X.COMに対する明示的データがあるので A.X.COM の部分木には *.X.COMの効果が及ばないため、ワイルドカード RRs は二つ必要になる。 X.COMとA.X.COMについても明示的なMXデータが必要であることと 上記のどの RRs も XX.COM の問合せには一致しないことに注意せよ。

4.3.4. 否定応答のキャッシュ(任意) Negative response caching (Optional)

The DNS provides an optional service which allows name servers to
distribute, and resolvers to cache, negative results with TTLs.  For
example, a name server can distribute a TTL along with a name error
indication, and a resolver receiving such information is allowed to
assume that the name does not exist during the TTL period without
consulting authoritative data.  Similarly, a resolver can make a query
with a QTYPE which matches multiple types, and cache the fact that some
of the types are not present.

DNS には ネームサーバが TTL 付きの否定返答を送り、リゾルバがキャッシュすることを 認めるという任意実装のサービスがある。 例えば、ネームサーバは名前エラー表示とともにTTLを送ることができる。 そして、この情報を受け取ったリゾルバは TTL時間の間、 権威あるデータを調べることなく、その名前が存在しないと判定することが許される。 同様に、リゾルバは複数のタイプと一致するQTYPEを持つ問い合わせをして、 いくつかのタイプが存在しないという事実をキャッシュしてよい。

This feature can be particularly important in a system which implements
naming shorthands that use search lists beacuse a popular shorthand,
which happens to require a suffix toward the end of the search list,
will generate multiple name errors whenever it is used.

この機能は検索リストで使って名前短縮を実装するようなシステムで 特に重要でありえる。 そのわけはよく使われる名前の 短縮法では、捜索リストの末尾にむかっての接尾辞を必要としていて、 使用時に複数の名前エラーを生じるからである。

The method is that a name server may add an SOA RR to the additional
section of a response when that response is authoritative.  The SOA must
be that of the zone which was the source of the authoritative data in
the answer section, or name error if applicable.  The MINIMUM field of
the SOA controls the length of time that the negative result may be
cached.

実現の方法はネームサーバが 権威ある返答をするときに返事の付加節に SOA RRs を付け加えてもよい というものである。 このSOA は返答節中の権威あるデータやネームエラーの生成源であるゾーンのもの でなければならない。 SOAの MINUMUM フィールドが否定の結果をキャッシュしてよい時間の長さを決める。

Note that in some circumstances, the answer section may contain multiple
owner names.  In this case, the SOA mechanism should only be used for
the data which matches QNAME, which is the only authoritative data in
this section.

返答節が複数の所有者名を持つ状況があることに注意せよ。 この場合、SOA メカニズムは QNAME に適合するデータだけに使われるべきである。 それはこの節中の唯一の権威あるデータである。

Name servers and resolvers should never attempt to add SOAs to the
additional section of a non-authoritative response, or attempt to infer
results which are not directly stated in an authoritative response.
There are several reasons for this, including: cached information isn't
usually enough to match up RRs and their zone names, SOA RRs may be
cached due to direct SOA queries, and name servers are not required to
output the SOAs in the authority section.

ネームサーバとリゾルバは権威のない返答の付加節にSOAを加えたり、 権威のある返答で直接言われていない結果を導いたりしてはならない。

これにはいくつか理由がある: キャッシュされた情報は RRs とそのゾーン名をマッチさせるのに十分でない、 SOA RRs は SOA を直接問い合わせることでキャッシュされる、 ネームサーバは権威節に SOA を答ることを要求されてない。 など。

This feature is optional, although a refined version is expected to
become part of the standard protocol in the future.  Name servers are
not required to add the SOA RRs in all authoritative responses, nor are
resolvers required to cache negative results.  Both are recommended.
All resolvers and recursive name servers are required to at least be
able to ignore the SOA RR when it is present in a response.

この機能は実装任意であるが、 将来、改訂されたバージョンでは 標準プロトコルの一部になると期待される。

ネームサーバは権威ある返答に SOA RRs を加えるように要求されていないし、 リゾルバは否定的結果をキャッシュすることを要求されていない。

両方とも推奨されている。

リゾルバと再帰ネームサーバは 返答に SOA RRs が存在している時、 それを無視できることが必要である。

Some experiments have also been proposed which will use this feature.
The idea is that if cached data is known to come from a particular zone,
and if an authoritative copy of the zone's SOA is obtained, and if the
zone's SERIAL has not changed since the data was cached, then the TTL of
the cached data can be reset to the zone MINIMUM value if it is smaller.
This usage is mentioned for planning purposes only, and is not
recommended as yet.

この機能を使う実験も提案されている。 考え方は次のようなものである。 キャッシュされたデータが来たゾーンがわかっていて、 そのゾーンのSOAの権威あるコピーが得られ、 ゾーンのシリアル番号がデータがキャッシュされて以来変更されていなければ、 キャッシュデータのTTLはゾーンのMINIMUM 値より小さければ、 MINIMUM値で置き換えてよい。

この使用法は計画が目的で触れられていて、まだ推奨できるものではない。

4.3.5. ゾーンの保守管理と転送 Zone maintenance and transfers

Part of the job of a zone administrator is to maintain the zones at all of
the name servers which are authoritative for the zone. When the inevitable
changes are made, they must be distributed to all of the name servers. While
this distribution can be accomplished using FTP or some other ad hoc
procedure, the preferred method is the zone transfer part of the DNS protocol.

ゾーン管理者の仕事の一つは ゾーンの権威あるネームサーバのすべてにおいて、 ゾーンを維持管理することである。 必要な変更が行われたときに、 それを全てのネームサーバに配らなくてはならない。

配布は FTP やその他のアドホックな方法で可能だが、 DNS プロトコルのゾーン転送を使う方が望ましい。

 The general model of automatic zone transfer or refreshing is that one of the
name servers is the master or primary for the zone. Changes are coordinated at
the primary, typically by editing a master file for the zone. After editing,
the administrator signals the master server to load the new zone. The other
non-master or secondary servers for the zone periodically check for changes
(at a selectable interval) and obtain new zone copies when changes have been
made.

自動的なゾーン転送や更新の一般モデルでは ネームサーバのうちのひとつがゾーンのマスターあるいはプライマリである。 変更はゾーンのマスターファイルを編集するなどプライマリに集約される。 編集の後、マスターサーバに新しいゾーンを読み込むよう指示する。 ゾーンの他の非マスターあるいはセカンダリサーバは定期的に変更の有無を調べ、 (選択可能な間隔で)、変更されているときは新しいゾーンのコピーを得る。

To detect changes, secondaries just check the SERIAL field of the SOA for
the zone. In addition to whatever other changes are made, the SERIAL field in
the SOA of the zone is always advanced whenever any change is made to the
zone. The advancing can be a simple increment, or could be based on the write
date and time of the master file, etc. The purpose is to make it possible to
determine which of two copies of a zone is more recent by comparing serial
numbers. Serial number advances and comparisons use sequence space arithmetic,
so there is a theoretic limit on how fast a zone can be updated, basically
that old copies must die out before the serial number covers half of its 32
bit range. In practice, the only concern is that the compare operation deals
properly with comparisons around the boundary between the most positive and
most negative 32 bit numbers.

変更を検出するにはセカンダリはゾーンの SOA シリアルフィールドを調べるだけだ。 何かゾーンを変更した場合にはかならずゾーンのSOAのシリアル番号を増加させる。 増加は単純な増分であったり、マスターファイルの書き込み日時を使ったもの ゾーンのシリアル番号を比較することで、どちらが最近であるかを決定 できるようにすることが目的である。 シリアル番号の増加と比較には順序空間算術を使うので、 ゾーンを更新する速度には理論的な上限がある。 基本的に、古いコピーはシリアル番号が 32 ビットで表わされる範囲の半分を過ぎる 前に消滅していなければならない。

実際には、唯一の関心時は32 ビット数において、正の最大値と負の最小値付近での 比較操作が正しく行われる事である。

 The periodic polling of the secondary servers is controlled by parameters in
the SOA RR for the zone, which set the minimum acceptable polling intervals.
The parameters are called REFRESH, RETRY, and EXPIRE. Whenever a new zone is
loaded in a secondary, the secondary waits REFRESH seconds before checking
with the primary for a new serial. If this check cannot be completed, new
checks are started every RETRY seconds. The check is a simple query to the
primary for the SOA RR of the zone. If the serial field in the secondary's
zone copy is equal to the serial returned by the primary, then no changes have
occurred, and the REFRESH interval wait is restarted. If the secondary finds
it impossible to perform a serial check for the EXPIRE interval, it must
assume that its copy of the zone is obsolete an discard it.

セカンダリサーバが行う周期的確認はゾーンの SOA RRs のパラメータで制御される。 SOA RRs では問い合わせる間隔を設定する。 パラメータは更新(REFRESH)、再試(RETRY)、満期(EXPIRE)と呼ばれる。 新しいゾーンがセカンダリにロードされたらいつでも、 セカンダリは REFRESH 秒以上待ってから、プライマリのシリアル 番号があたらしくなっているか、調べる。 この確認が完了しなかったときには、RETRY秒後に再度確認操作を行う。 確認操作はゾーンのプライマリに SOA RR を問い合わせるだけである。 セカンダリにあるゾーンのコピーのシリアルフィールドが プライマリからのものと等しければ、変更はなかったことになり、 REFRESH 秒待つことが再開される。 EXPIRE 秒の間、シリアルチェックできなかった場合には、 ゾーンのコピーは有効期限ぎれとして、廃棄しなければならない。

When the poll shows that the zone has changed, then the secondary server
must request a zone transfer via an AXFR request for the zone.  The AXFR
may cause an error, such as refused, but normally is answered by a
sequence of response messages.  The first and last messages must contain
the data for the top authoritative node of the zone.  Intermediate
messages carry all of the other RRs from the zone, including both
authoritative and non-authoritative RRs.  The stream of messages allows
the secondary to construct a copy of the zone.  Because accuracy is
essential, TCP or some other reliable protocol must be used for AXFR
requests.

ゾーンが変更されたことが分ったら、 セカンダリサーバはAXFRでゾーン転送を要求しなければならない。 AXFR は拒否されるなど、エラーを起こすかもしれないが、 通常は連続した返答メッセージが返ってきます。 最初と最後のメッセージにはゾーンの権威あるトップノードのデータが 含まれているはずだ。 途中のメッセージにはゾーンのすべての RRs が含まれていて、 それには権威のあるものもないものもある。 メッセージの集合によって、 セカンダリはゾーンの複製を作ることができる。 正確さが重要なので、AXFR要求では TCPなどの信頼性の高いプロトコル を使わなくてはならない。

Each secondary server is required to perform the following operations
against the master, but may also optionally perform these operations
against other secondary servers.  This strategy can improve the transfer
process when the primary is unavailable due to host downtime or network
problems, or when a secondary server has better network access to an
';intermediate'; secondary than to the primary.

各セカンダリサーバはあとに続く操作はマスターに対して行わなければならない。 ただし、他のセカンダリサーバに対してこれらの操作を行ってもよい。 この戦略はホストダウンやネットワークの問題でプライマリが利用できない時や、 プライマリよりも中間セカンダリの方がアクセスしやすい場合に 転送プロセスを改善することができる。


2002-10-16 訳 前野年紀