[要約] RFC 2671は、DNSの拡張メカニズムであるEDNS0に関する規格です。EDNS0の目的は、DNSの機能を拡張し、大容量のデータやセキュリティ情報を効率的に転送することです。

Network Working Group                                            P. Vixie
Request for Comments: 2671                                            ISC
Category: Standards Track                                     August 1999
        

Extension Mechanisms for DNS (EDNS0)

DNSの拡張メカニズム(EDNS0)

Status of this Memo

本文書の位置付け

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

このドキュメントは、インターネットコミュニティのインターネット標準トラックプロトコルを指定し、改善のための議論と提案を要求します。このプロトコルの標準化状態とステータスについては、「インターネット公式プロトコル標準」(STD 1)の現在のエディションを参照してください。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (1999). All Rights Reserved.

Copyright(c)The Internet Society(1999)。無断転載を禁じます。

Abstract

概要

The Domain Name System's wire protocol includes a number of fixed fields whose range has been or soon will be exhausted and does not allow clients to advertise their capabilities to servers. This document describes backward compatible mechanisms for allowing the protocol to grow.

ドメイン名システムのワイヤプロトコルには、範囲が尽きるか、すぐに排出され、クライアントがサーバーに機能を宣伝することを許可しない多くの固定フィールドが含まれています。このドキュメントは、プロトコルの成長を許可するための後方互換メカニズムについて説明しています。

1 - Rationale and Scope

1-理論的根拠と範囲

1.1. DNS (see [RFC1035]) specifies a Message Format and within such messages there are standard formats for encoding options, errors, and name compression. The maximum allowable size of a DNS Message is fixed. Many of DNS's protocol limits are too small for uses which are or which are desired to become common. There is no way for implementations to advertise their capabilities.

1.1. DNS([RFC1035]を参照)はメッセージ形式を指定し、そのようなメッセージ内には、エンコードオプション、エラー、および名前圧縮の標準形式があります。DNSメッセージの最大許容サイズが修正されます。DNSのプロトコル制限の多くは、一般的になるために望まれる使用または望ましい用途には小さすぎます。実装が機能を宣伝する方法はありません。

1.2. Existing clients will not know how to interpret the protocol extensions detailed here. In practice, these clients will be upgraded when they have need of a new feature, and only new features will make use of the extensions. We must however take account of client behaviour in the face of extra fields, and design a fallback scheme for interoperability with these clients.

1.2. 既存のクライアントは、ここで詳述されているプロトコル拡張を解釈する方法を知りません。実際には、これらのクライアントは新しい機能が必要なときにアップグレードされ、新しい機能のみが拡張機能を利用します。ただし、余分な分野に直面したクライアントの動作を考慮し、これらのクライアントとの相互運用性のためのフォールバックスキームを設計する必要があります。

2 - Affected Protocol Elements

2-影響を受けるプロトコル要素

2.1. The DNS Message Header's (see [RFC1035 4.1.1]) second full 16-bit word is divided into a 4-bit OPCODE, a 4-bit RCODE, and a number of 1-bit flags. The original reserved Z bits have been allocated to various purposes, and most of the RCODE values are now in use. More flags and more possible RCODEs are needed.

2.1. DNSメッセージヘッダー([RFC1035 4.1.1]を参照)2番目の完全な16ビットワードは、4ビットオペコード、4ビットRcode、および多くの1ビットフラグに分割されます。元の予約済みZビットはさまざまな目的に割り当てられており、ほとんどのRCODE値が現在使用されています。より多くのフラグと可能なrcodeが必要です。

2.2. The first two bits of a wire format domain label are used to denote the type of the label. [RFC1035 4.1.4] allocates two of the four possible types and reserves the other two. Proposals for use of the remaining types far outnumber those available. More label types are needed.

2.2. ワイヤ形式ドメインラベルの最初の2ビットは、ラベルのタイプを示すために使用されます。[RFC1035 4.1.4]は、可能な4つのタイプのうち2つを割り当て、他の2つのタイプを予約します。残りのタイプを使用するための提案は、利用可能なものをはるかに上回っています。より多くのラベルタイプが必要です。

2.3. DNS Messages are limited to 512 octets in size when sent over UDP. While the minimum maximum reassembly buffer size still allows a limit of 512 octets of UDP payload, most of the hosts now connected to the Internet are able to reassemble larger datagrams. Some mechanism must be created to allow requestors to advertise larger buffer sizes to responders.

2.3. DNSメッセージは、UDPを介して送信されると512オクテットに制限されています。最小最大再組み立てバッファサイズは、512オクテットのUDPペイロードの制限を依然として許可しますが、現在インターネットに接続されているホストのほとんどは、より大きなデータグラムを再組み立てることができます。要求者がレスポンダーに大きなバッファサイズを宣伝できるようにするために、いくつかのメカニズムを作成する必要があります。

3 - Extended Label Types

3-拡張ラベルタイプ

3.1. The "0 1" label type will now indicate an extended label type, whose value is encoded in the lower six bits of the first octet of a label. All subsequently developed label types should be encoded using an extended label type.

3.1. 「0 1」のラベルタイプは、拡張ラベルタイプを示します。その値は、ラベルの最初のオクテットの下部6ビットでエンコードされています。その後、すべての開発されたラベルタイプは、拡張ラベルタイプを使用してエンコードする必要があります。

3.2. The "1 1 1 1 1 1" extended label type will be reserved for future expansion of the extended label type code space.

3.2. 「1 1 1 1 1 1 1」拡張ラベルタイプは、拡張ラベルタイプコードスペースの将来の拡張のために予約されます。

4 - OPT pseudo-RR

4 -Opt Pseudo -RR

4.1. One OPT pseudo-RR can be added to the additional data section of either a request or a response. An OPT is called a pseudo-RR because it pertains to a particular transport level message and not to any actual DNS data. OPT RRs shall never be cached, forwarded, or stored in or loaded from master files. The quantity of OPT pseudo-RRs per message shall be either zero or one, but not greater.

4.1. 1つのOPT擬似RRは、リクエストまたは応答のいずれかの追加データセクションに追加できます。OPTは、実際のDNSデータではなく、特定の輸送レベルメッセージに関係するため、擬似RRと呼ばれます。OPT RRSは、マスターファイルにキャッシュ、転送、または保存されたり、保管されたりすることはありません。メッセージあたりのOPT擬似RRの量は、ゼロまたは1つでなければなりませんが、大きくはありません。

4.2. An OPT RR has a fixed part and a variable set of options expressed as {attribute, value} pairs. The fixed part holds some DNS meta data and also a small collection of new protocol elements which we expect to be so popular that it would be a waste of wire space to encode them as {attribute, value} pairs.

4.2. OPT RRには固定部品があり、{属性、値}ペアとして表されるオプションの変数セットがあります。固定部品には、いくつかのDNSメタデータと、{属性、値}ペアとしてそれらをエンコードするのはワイヤースペースの無駄になると予想される新しいプロトコル要素の小さなコレクションを保持します。

4.3. The fixed part of an OPT RR is structured as follows:

4.3. OPT RRの固定部分は、次のように構成されています。

     Field Name   Field Type     Description
     ------------------------------------------------------
     NAME         domain name    empty (root domain)
     TYPE         u_int16_t      OPT
     CLASS        u_int16_t      sender's UDP payload size
     TTL          u_int32_t      extended RCODE and flags
     RDLEN        u_int16_t      describes RDATA
     RDATA        octet stream   {attribute,value} pairs
        

4.4. The variable part of an OPT RR is encoded in its RDATA and is structured as zero or more of the following:

4.4. OPT RRの可変部分はそのrdataにエンコードされており、次のゼロ以上として構成されています。

                +0 (MSB)                            +1 (LSB)
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
  0: |                          OPTION-CODE                          |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
  2: |                         OPTION-LENGTH                         |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
  4: |                                                               |
     /                          OPTION-DATA                          /
     /                                                               /
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
        

OPTION-CODE (Assigned by IANA.)

オプションコード(IANAによって割り当てられています。)

OPTION-LENGTH Size (in octets) of OPTION-DATA.

オプションデータのオプション長(オクテット)。

OPTION-DATA Varies per OPTION-CODE.

オプションデータはオプションコードごとに異なります。

4.5. The sender's UDP payload size (which OPT stores in the RR CLASS field) is the number of octets of the largest UDP payload that can be reassembled and delivered in the sender's network stack. Note that path MTU, with or without fragmentation, may be smaller than this.

4.5. 送信者のUDPペイロードサイズ(RRクラスフィールドのストアを選択)は、送信者のネットワークスタックで再組み立ておよび配信できる最大のUDPペイロードのオクテットの数です。断片化の有無にかかわらず、Path MTUはこれよりも小さくなる可能性があることに注意してください。

4.5.1. Note that a 512-octet UDP payload requires a 576-octet IP reassembly buffer. Choosing 1280 on an Ethernet connected requestor would be reasonable. The consequence of choosing too large a value may be an ICMP message from an intermediate gateway, or even a silent drop of the response message.

4.5.1. 512-OCTET UDPペイロードには576-OCTET IP再組み立てバッファが必要であることに注意してください。イーサネット接続要求因子で1280を選択するのは妥当です。大きすぎる値を選択する結果は、中間ゲートウェイからのICMPメッセージ、または応答メッセージのサイレントドロップでさえあります。

4.5.2. Both requestors and responders are advised to take account of the path's discovered MTU (if already known) when considering message sizes.

4.5.2. 要求者とレスポンダーの両方が、メッセージサイズを検討する際にパスの発見されたMTU(既に知られている場合)を考慮することをお勧めします。

4.5.3. The requestor's maximum payload size can change over time, and should therefore not be cached for use beyond the transaction in which it is advertised.

4.5.3. 要求者の最大ペイロードサイズは時間とともに変化する可能性があるため、宣伝されているトランザクションを超えて使用するためにキャッシュされるべきではありません。

4.5.4. The responder's maximum payload size can change over time, but can be reasonably expected to remain constant between two sequential transactions; for example, a meaningless QUERY to discover a responder's maximum UDP payload size, followed immediately by an UPDATE which takes advantage of this size. (This is considered preferrable to the outright use of TCP for oversized requests, if there is any reason to suspect that the responder implements EDNS, and if a request will not fit in the default 512 payload size limit.)

4.5.4. レスポンダーの最大ペイロードサイズは時間とともに変化する可能性がありますが、2つの連続したトランザクション間で一定のままであると合理的に期待できます。たとえば、レスポンダーの最大UDPペイロードサイズを発見するための意味のないクエリで、このサイズを利用するアップデートがすぐに続きます。(これは、応答者がEDNを実装すると疑う理由がある場合、およびリクエストがデフォルト512ペイロードサイズの制限に適合しない場合、特大のリクエストにTCPを完全に使用するよりも好ましいと見なされます。)

4.5.5. Due to transaction overhead, it is unwise to advertise an architectural limit as a maximum UDP payload size. Just because your stack can reassemble 64KB datagrams, don't assume that you want to spend more than about 4KB of state memory per ongoing transaction.

4.5.5. トランザクションオーバーヘッドのため、最大のUDPペイロードサイズとしてアーキテクチャの制限を宣伝することは賢明ではありません。スタックが64kbのデータグラムを再組み立てできるからといって、進行中のトランザクションごとに約4kb以上の状態メモリを使用したいと想定しないでください。

4.6. The extended RCODE and flags (which OPT stores in the RR TTL field) are structured as follows:

4.6. 拡張されたrcodeとフラグ(RR TTLフィールドのストアを選択)は、次のように構成されています。

                 +0 (MSB)                            +1 (LSB)
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
   0: |         EXTENDED-RCODE        |            VERSION            |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
   2: |                               Z                               |
      +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
        

EXTENDED-RCODE Forms upper 8 bits of extended 12-bit RCODE. Note that EXTENDED-RCODE value "0" indicates that an unextended RCODE is in use (values "0" through "15").

拡張ロードは、拡張された12ビットRcodeの上部8ビットを形成します。拡張ロード値「0」は、拡張されたrcodeが使用されていることを示していることに注意してください(値「0」から「15」)。

VERSION Indicates the implementation level of whoever sets it. Full conformance with this specification is indicated by version "0." Requestors are encouraged to set this to the lowest implemented level capable of expressing a transaction, to minimize the responder and network load of discovering the greatest common implementation level between requestor and responder. A requestor's version numbering strategy should ideally be a run time configuration option.

バージョンは、それを設定する人の実装レベルを示します。この仕様との完全な適合性は、バージョン「0」で示されています。要求者は、これをトランザクションを表現できる最低の実装レベルに設定し、リクエスターとレスポンダーの間の最大の共通実装レベルを発見するレスポンダーとネットワークの負荷を最小限に抑えることをお勧めします。リクエスターのバージョン番号付け戦略は、理想的には実行時間構成オプションである必要があります。

If a responder does not implement the VERSION level of the request, then it answers with RCODE=BADVERS. All responses will be limited in format to the VERSION level of the request, but the VERSION of each response will be the highest implementation level of the responder. In this way a requestor will learn the implementation level of a responder as a side effect of every response, including error responses, including RCODE=BADVERS.

レスポンダーがリクエストのバージョンレベルを実装しない場合、rcode = badversで回答します。すべての応答は、リクエストのバージョンレベルにわたって形式が制限されますが、各応答のバージョンはレスポンダーの最高の実装レベルになります。このようにして、要求者は、Rcode = badversを含むエラー応答を含むすべての応答の副作用として、レスポンダーの実装レベルを学習します。

Z Set to zero by senders and ignored by receivers, unless modified in a subsequent specification.

zは、送信者によってゼロに設定され、その後の仕様で変更されない限り、受信機によって無視されます。

5 - Transport Considerations

5-輸送上の考慮事項

5.1. The presence of an OPT pseudo-RR in a request should be taken as an indication that the requestor fully implements the given version of EDNS, and can correctly understand any response that conforms to that feature's specification.

5.1. リクエストにおけるOpt Pseudo-RRの存在は、要求者が特定のバージョンのEDNSを完全に実装し、その機能の仕様に準拠する応答を正しく理解できることを示すものとして取得する必要があります。

5.2. Lack of use of these features in a request must be taken as an indication that the requestor does not implement any part of this specification and that the responder may make no use of any protocol extension described here in its response.

5.2. リクエストでのこれらの機能の使用の欠如は、要求者がこの仕様の一部を実装せず、レスポンダーがこの応答でここで説明されているプロトコル拡張を使用しない可能性があることを示していると考えられなければなりません。

5.3. Responders who do not understand these protocol extensions are expected to send a response with RCODE NOTIMPL, FORMERR, or SERVFAIL. Therefore use of extensions should be "probed" such that a responder who isn't known to support them be allowed a retry with no extensions if it responds with such an RCODE. If a responder's capability level is cached by a requestor, a new probe should be sent periodically to test for changes to responder capability.

5.3. これらのプロトコル拡張機能を理解していないレスポンダーは、RCode NotIMPL、Formerr、またはServFailで応答を送信することが期待されています。したがって、拡張機能の使用は、それらをサポートすることが知られていないレスポンダーが、そのようなrcodeで応答した場合、拡張機能なしで再試行を許可されるように「調査」する必要があります。Responderの機能レベルが要求者によってキャッシュされている場合、レスポンダー機能の変更をテストするために、新しいプローブを定期的に送信する必要があります。

6 - Security Considerations

6-セキュリティ上の考慮事項

Requestor-side specification of the maximum buffer size may open a new DNS denial of service attack if responders can be made to send messages which are too large for intermediate gateways to forward, thus leading to potential ICMP storms between gateways and responders.

最大バッファサイズのリクエスター側の仕様は、中間ゲートウェイが大きすぎるメッセージを送信するためにレスポンダーを作成すると、新しいDNS拒否攻撃を開く可能性があり、ゲートウェイとレスポンダーの間の潜在的なICMPストームにつながります。

7 - IANA Considerations

7 -IANAの考慮事項

The IANA has assigned RR type code 41 for OPT.

IANAは、OPTにRRタイプコード41を割り当てました。

It is the recommendation of this document and its working group that IANA create a registry for EDNS Extended Label Types, for EDNS Option Codes, and for EDNS Version Numbers.

IANAがこのドキュメントとそのワーキンググループの推奨であり、EDNS拡張ラベルタイプ、EDNSオプションコード、およびEDNSバージョン番号のレジストリを作成します。

This document assigns label type 0b01xxxxxx as "EDNS Extended Label Type." We request that IANA record this assignment.

このドキュメントは、ラベルタイプ0B01XXXXXXを「EDNS拡張ラベルタイプ」として割り当てます。IANAがこの割り当てを記録することを要求します。

This document assigns extended label type 0bxx111111 as "Reserved for future extended label types." We request that IANA record this assignment.

このドキュメントは、拡張ラベルタイプ0BXX111111を「将来の拡張ラベルタイプのために予約されている」と割り当てます。IANAがこの割り当てを記録することを要求します。

This document assigns option code 65535 to "Reserved for future expansion."

このドキュメントは、オプションコード65535を「将来の拡張のために予約した」に割り当てます。

This document expands the RCODE space from 4 bits to 12 bits. This will allow IANA to assign more than the 16 distinct RCODE values allowed in [RFC1035].

このドキュメントは、Rcodeスペースを4ビットから12ビットに拡張します。これにより、IANAは[RFC1035]で許可されている16の異なるRcode値を割り当てることができます。

This document assigns EDNS Extended RCODE "16" to "BADVERS".

このドキュメントは、EDNS拡張Rcode "16"に「Badvers」に割り当てます。

IESG approval should be required to create new entries in the EDNS Extended Label Type or EDNS Version Number registries, while any published RFC (including Informational, Experimental, or BCP) should be grounds for allocation of an EDNS Option Code.

EDNS拡張ラベルタイプまたはEDNSバージョン番号レジストリに新しいエントリを作成するには、IESGの承認が必要であり、公開されたRFC(情報、実験、またはBCPを含む)は、EDNSオプションコードの割り当ての根拠である必要があります。

8 - Acknowledgements

8-謝辞

Paul Mockapetris, Mark Andrews, Robert Elz, Don Lewis, Bob Halley, Donald Eastlake, Rob Austein, Matt Crawford, Randy Bush, and Thomas Narten were each instrumental in creating and refining this specification.

ポール・モカペトリス、マーク・アンドリュース、ロバート・エルツ、ドン・ルイス、ボブ・ハレー、ドナルド・イーストレイク、ロブ・オーストイン、マット・クロフォード、ランディ・ブッシュ、トーマス・ナルテンは、この仕様を作成して改良するのに役立ちました。

9 - References

9-参照

[RFC1035] Mockapetris, P., "Domain Names - Implementation and Specification", STD 13, RFC 1035, November 1987.

[RFC1035] Mockapetris、P。、「ドメイン名 - 実装と仕様」、STD 13、RFC 1035、1987年11月。

10 - Author's Address

10-著者の住所

Paul Vixie Internet Software Consortium 950 Charter Street Redwood City, CA 94063

Paul Vixie Internet Software Consortium 950 Charter Street Redwood City、CA 94063

   Phone: +1 650 779 7001
   EMail: vixie@isc.org
        

11 - Full Copyright Statement

11-完全な著作権ステートメント

Copyright (C) The Internet Society (1999). All Rights Reserved.

Copyright(c)The Internet Society(1999)。無断転載を禁じます。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

このドキュメントと翻訳は他の人にコピーされて提供される場合があります。また、それについてコメントまたは説明する派生作品、またはその実装を支援することは、いかなる種類の制限なしに、準備、コピー、公開、および部分的に配布される場合があります。、上記の著作権通知とこの段落がそのようなすべてのコピーとデリバティブ作品に含まれている場合。ただし、このドキュメント自体は、インターネット協会や他のインターネット組織への著作権通知や参照を削除するなど、いかなる方法でも変更できない場合があります。インターネット標準プロセスに従うか、英語以外の言語に翻訳するために必要な場合に従う必要があります。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上記の限られた許可は永続的であり、インターネット社会またはその後継者または譲受人によって取り消されることはありません。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書と本書に含まれる情報は、「現状」に基づいて提供されており、インターネット社会とインターネットエンジニアリングタスクフォースは、ここにある情報の使用が行われないという保証を含むがこれらに限定されないすべての保証を否認します。特定の目的に対する商品性または適合性の権利または黙示的な保証を侵害します。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFCエディター機能の資金は現在、インターネット協会によって提供されています。