## page was renamed from DNS/1/RFC/1034/4.3 ## page was renamed from DNS/基礎知識/RFC/1034/4.3 ## page was renamed from DNS/RFC/1034/4.3 ## page was renamed from DNS/RFC1034/4.3 ## page was copied from DNS/RFC1034/4.2 ## page was copied from DNS/RFC1034/4 #pragma section-numbers off <> DNS/RFC1034/4について、ここに記述してください。 [[../4.3#14|4.3. ネームサーバの内部構成]] Name server internals<
> [[../4.3#15|4.3.1. 問合せと返答]] Queries and responses<
> [[../4.3#16|4.3.2. アルゴリズム]] Algorithm<
> [[../4.3#17|4.3.3. ワイルドカード]] Wildcards<
> [[../4.3#18|4.3.4. 否定返答のキャッシュ(付加機能)]] Negative response caching (Optional)<
> [[../4.3#19|4.3.5. ゾーンの維持管理と転送]] Zone maintenance and transfers<
> = 4. ネームサーバ = == 4.1. はじめに Introduction == == 4.2 == <> == 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. }}} - 再帰可能(RAビット)はネームサーバの全ての返答で設定/クリアされる。 このビットはクライアントが再帰サービスを求めたかどうかに関わらず、 サーバがサービスを提供できるなら 1 である。つまり、RA は使うと いうより使えることを示す。 {{{ - 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. }}} - 問合せは再帰要望(RD)と呼ばれるビットを含む。 このビットは問合せが再帰サービスを望んでいるかを示す。 クライアントはサーバに再帰的サービスを求めるのはよいが、 過去に RAが設定された返答をもらったサーバか 別途 DNS プロトコル外の何らかの方法で合意したサーバだけから 再帰サービスの返事を受け取れると思うべきである。 {{{ 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. }}} - 問合せへの答、途中で遭遇したCNAME RRsが前についている 可能性がある。 {{{ - 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. }}} - 名前が存在しないことを示す名前エラー。これは元の問合せ名が CNAME RR であって、存在しない名前の別名だった場合もありうる。 {{{ - 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. }}} 答となる RRsと そのデータがゾーンからのものかキャッシュからのものかの区別 {{{ 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. }}} - 問合せ者に有用であろうとネームサーバが考えた RRs。 <> 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. }}} 再帰サービスを提供するかどうかによって、返答の再帰可能値を設定する。 再帰サービスが可能であって、問合せの RD ビットにより再帰が求められているなら、 ステップ 5 へ行く。そうでなければステップ 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. }}} 利用可能なゾーン内の QNAMEにもっとも近い祖先ゾーンを探せ。 このようなゾーンがあればステップ 3 へ、なければステップ 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. }}} a. 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. }}} ノードのデータがCNAMEであり QTYPEとCNAMEとが一致しないときは、 CNAME RR を返事の返答節にコピーし、 QNAMEを CNAME RR にある正規名で置き換えて、 ステップ1 に戻る。 {{{ Otherwise, copy all RRs which match QTYPE into the answer section and go to step 6. }}} そうでなければ、QTYPEと一致するすべての RRs を返答節にコピーし、 ステップ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. }}} b. 権威あるデータでないことが分かったら、参照を見つけたことになる。 ゾーンの下端でカットを示す NS RRs に遭遇した時に発生する。 {{{ 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. }}} サブゾーンの NS RRs を答の権威節へコピーせよ。 利用可能な全てのアドレスを付加節に置く。 権威のあるデータやキャッシュ中に必要なアドレスがないなら、 グルー RRs を使ってよい。 ステップ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. }}} c. どこかのラベルで不一致になった(つまり対応するラベルが 存在しない)なら、'*'ラベルがあるか調べる。 {{{ 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. }}} ';*';ラベルがないときには、探しているのが元々の問合 せのQNAMEであるのか、CNAMEをたどって得た名前なのかを調べよ。 名前が元々の名前であれば、返答には権威ある名前エラーを設定、 終了する。そうでなければ単に終了する。 {{{ 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. }}} '*'ラベルが存在していたら、そのノードのRRsがQTYPE であるか比較する。もしどれか一致するなら、それらを返答節 コピーする、ただし、RR のownerは '*'ラベルでのノードではなく       QNAMEにセットする。ステップ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. }}} キャッシュ内を探す。QNAMEがキャッシュで発見されたら、 それに付随する RRs のうち、QTYPEと一致するものを返答節へコピーする。 もし権威あるデータからの委譲がないときには、キャッシュの中から 最もいいものを探して、それを権威節に入れる。 ステップ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. }}} ローカルリゾルバを使うか、リゾルバのアルゴリズム(この文書のリゾル バの節を見よ)を使うかして問合せに答える。 途中に現われた CNAMEも含めて、結果を返事の返答節に置く。 {{{ 6. Using local data only, attempt to add other RRs which may be useful to the additional section of the query. Exit. }}} ローカルなデータだけを使って、有用そうなその他のRRsを 付加節に加える。終了する。 <> 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 ';*.';, where is any domain name. should not contain other * labels, and should be in the authoritative data of the zone. The wildcards potentially apply to descendants of , but not to 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 の所有者名は ';*.';という形式であり、 ここで は任意のドメイン名である。 は他の * ラベルを含んではならず、ゾーンの権威あるデータのものでなければならない。 ワイルドカードはの子孫にも適用してよいが、自身には適用されない。 別の見方をすると、 ';*';ラベルは 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. }}} - 問合せ名の存在がすでに分っていたり、 ワールドカードドメインと問合せ名の間の名前の存在が分っているとき。 例えば、ワイルドカード RRs の所有者名が ';*.X';であり、 ゾーン内に B.XのRRsがある場合、 ワイルドカードは Z.X には適用される(Z.X の明示的情報はないものとして)が B.X, A.B.X, 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 訳 前野年紀