rfc2929.txt

来自「RFC 的详细文档!」· 文本 代码 · 共 676 行 · 第 1/2 页

TXT
676
字号






Network Working Group                                   D. Eastlake, 3rd
Request for Comments: 2929                                      Motorola
BCP: 42                                              E. Brunner-Williams
Category: Best Current Practice                                   Engage
                                                              B. Manning
                                                                     ISI
                                                          September 2000

              Domain Name System (DNS) IANA Considerations

Status of this Memo

   This document specifies an Internet Best Current Practices for the
   Internet Community, and requests discussion and suggestions for
   improvements.  Distribution of this memo is unlimited.

Copyright Notice

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

Abstract

   Internet Assigned Number Authority (IANA) parameter assignment
   considerations are given for the allocation of Domain Name System
   (DNS) classes, Resource Record (RR) types, operation codes, error
   codes, etc.

Table of Contents

   1. Introduction.................................................  2
   2. DNS Query/Response Headers...................................  2
   2.1 One Spare Bit?..............................................  3
   2.2 Opcode Assignment...........................................  3
   2.3 RCODE Assignment............................................  4
   3. DNS Resource Records.........................................  5
   3.1 RR TYPE IANA Considerations.................................  6
   3.1.1 Special Note on the OPT RR................................  7
   3.2 RR CLASS IANA Considerations................................  7
   3.3 RR NAME Considerations......................................  8
   4. Security Considerations......................................  9
   References......................................................  9
   Authors' Addresses.............................................. 11
   Full Copyright Statement........................................ 12








Eastlake, et al.         Best Current Practice                  [Page 1]

RFC 2929                DNS IANA Considerations           September 2000


1. Introduction

   The Domain Name System (DNS) provides replicated distributed secure
   hierarchical databases which hierarchically store "resource records"
   (RRs) under domain names.

   This data is structured into CLASSes and zones which can be
   independently maintained.  See [RFC 1034, 1035, 2136, 2181, 2535]
   familiarity with which is assumed.

   This document covers, either directly or by reference, general IANA
   parameter assignment considerations applying across DNS query and
   response headers and all RRs.  There may be additional IANA
   considerations that apply to only a particular RR type or
   query/response opcode.  See the specific RFC defining that RR type or
   query/response opcode for such considerations if they have been
   defined.

   IANA currently maintains a web page of DNS parameters.  See
   <http://www.iana.org/numbers.htm>.

   "IETF Standards Action", "IETF Consensus", "Specification Required",
   and "Private Use" are as defined in [RFC 2434].

2. DNS Query/Response Headers

   The header for DNS queries and responses contains field/bits in the
   following diagram taken from [RFC 2136, 2535]:

                                           1  1  1  1  1  1
             0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                      ID                       |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |QR|   Opcode  |AA|TC|RD|RA| Z|AD|CD|   RCODE   |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                QDCOUNT/ZOCOUNT                |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                ANCOUNT/PRCOUNT                |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                NSCOUNT/UPCOUNT                |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                    ARCOUNT                    |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

   The ID field identifies the query and is echoed in the response so
   they can be matched.




Eastlake, et al.         Best Current Practice                  [Page 2]

RFC 2929                DNS IANA Considerations           September 2000


   The QR bit indicates whether the header is for a query or a response.

   The AA, TC, RD, RA, AD, and CD bits are each theoretically meaningful
   only in queries or only in responses, depending on the bit.  However,
   many DNS implementations copy the query header as the initial value
   of the response header without clearing bits.  Thus any attempt to
   use a "query" bit with a different meaning in a response or to define
   a query meaning for a "response" bit is dangerous given existing
   implementation.  Such meanings may only be assigned by an IETF
   Standards Action.

   The unsigned fields query count (QDCOUNT), answer count (ANCOUNT),
   authority count (NSCOUNT), and additional information count (ARCOUNT)
   express the number of records in each section for all opcodes except
   Update.  These fields have the same structure and data type for
   Update but are instead the counts for the zone (ZOCOUNT),
   prerequisite (PRCOUNT), update (UPCOUNT), and additional information
   (ARCOUNT) sections.

2.1 One Spare Bit?

   There have been ancient DNS implementations for which the Z bit being
   on in a query meant that only a response from the primary server for
   a zone is acceptable.  It is believed that current DNS
   implementations ignore this bit.

   Assigning a meaning to the Z bit requires an IETF Standards Action.

2.2 Opcode Assignment

   New OpCode assignments require an IETF Standards Action.

   Currently DNS OpCodes are assigned as follows:

       OpCode Name                      Reference

        0     Query                     [RFC 1035]
        1     IQuery  (Inverse Query)   [RFC 1035]
        2     Status                    [RFC 1035]
        3     available for assignment
        4     Notify                    [RFC 1996]
        5     Update                    [RFC 2136]
       6-15   available for assignment








Eastlake, et al.         Best Current Practice                  [Page 3]

RFC 2929                DNS IANA Considerations           September 2000


2.3 RCODE Assignment

   It would appear from the DNS header above that only four bits of
   RCODE, or response/error code are available.  However, RCODEs can
   appear not only at the top level of a DNS response but also inside
   OPT RRs [RFC 2671], TSIG RRs [RFC 2845], and TKEY RRs [RFC 2930].
   The OPT RR provides an eight bit extension resulting in a 12 bit
   RCODE field and the TSIG and TKEY RRs have a 16 bit RCODE field.

   Error codes appearing in the DNS header and in these three RR types
   all refer to the same error code space with the single exception of
   error code 16 which has a different meaning in the OPT RR from its
   meaning in other contexts.  See table below.

   RCODE   Name    Description                        Reference
   Decimal
     Hexadecimal
    0    NoError   No Error                           [RFC 1035]
    1    FormErr   Format Error                       [RFC 1035]
    2    ServFail  Server Failure                     [RFC 1035]
    3    NXDomain  Non-Existent Domain                [RFC 1035]
    4    NotImp    Not Implemented                    [RFC 1035]
    5    Refused   Query Refused                      [RFC 1035]
    6    YXDomain  Name Exists when it should not     [RFC 2136]
    7    YXRRSet   RR Set Exists when it should not   [RFC 2136]
    8    NXRRSet   RR Set that should exist does not  [RFC 2136]
    9    NotAuth   Server Not Authoritative for zone  [RFC 2136]
   10    NotZone   Name not contained in zone         [RFC 2136]
   11-15           available for assignment
   16    BADVERS   Bad OPT Version                    [RFC 2671]
   16    BADSIG    TSIG Signature Failure             [RFC 2845]
   17    BADKEY    Key not recognized                 [RFC 2845]
   18    BADTIME   Signature out of time window       [RFC 2845]
   19    BADMODE   Bad TKEY Mode                      [RFC 2930]
   20    BADNAME   Duplicate key name                 [RFC 2930]
   21    BADALG    Algorithm not supported            [RFC 2930]
   22-3840         available for assignment
     0x0016-0x0F00
   3841-4095       Private Use
     0x0F01-0x0FFF
   4096-65535      available for assignment
     0x1000-0xFFFF

   Since it is important that RCODEs be understood for interoperability,
   assignment of new RCODE listed above as "available for assignment"
   requires an IETF Consensus.





Eastlake, et al.         Best Current Practice                  [Page 4]

RFC 2929                DNS IANA Considerations           September 2000


3. DNS Resource Records

   All RRs have the same top level format shown in the figure below
   taken from [RFC 1035]:

                                         1  1  1  1  1  1
           0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
         |                                               |
         /                                               /
         /                      NAME                     /
         |                                               |
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
         |                      TYPE                     |
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
         |                     CLASS                     |
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
         |                      TTL                      |
         |                                               |
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
         |                   RDLENGTH                    |
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
         /                     RDATA                     /
         /                                               /
         +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

   NAME is an owner name, i.e., the name of the node to which this
   resource record pertains.  NAMEs are specific to a CLASS as described
   in section 3.2.  NAMEs consist of an ordered sequence of one or more
   labels each of which has a label type [RFC 1035, 2671].

   TYPE is a two octet unsigned integer containing one of the RR TYPE
   codes.  See section 3.1.

   CLASS is a two octet unsigned integer containing one of the RR CLASS
   codes.  See section 3.2.

   TTL is a four octet (32 bit) bit unsigned integer that specifies the
   number of seconds that the resource record may be cached before the
   source of the information should again be consulted.  Zero is
   interpreted to mean that the RR can only be used for the transaction
   in progress.

   RDLENGTH is an unsigned 16 bit integer that specifies the length in
   octets of the RDATA field.






Eastlake, et al.         Best Current Practice                  [Page 5]

RFC 2929                DNS IANA Considerations           September 2000


   RDATA is a variable length string of octets that constitutes the
   resource.  The format of this information varies according to the
   TYPE and in some cases the CLASS of the resource record.

3.1 RR TYPE IANA Considerations

   There are three subcategories of RR TYPE numbers: data TYPEs, QTYPEs,
   and MetaTYPEs.

   Data TYPEs are the primary means of storing data.  QTYPES can only be
   used in queries.  Meta-TYPEs designate transient data associated with
   an particular DNS message and in some cases can also be used in
   queries.  Thus far, data TYPEs have been assigned from 1 upwards plus
   the block from 100 through 103 while Q and Meta Types have been
   assigned from 255 downwards (except for the OPT Meta-RR which is
   assigned TYPE 41).  There have been DNS implementations which made
   caching decisions based on the top bit of the bottom byte of the RR
   TYPE.

   There are currently three Meta-TYPEs assigned: OPT [RFC 2671], TSIG
   [RFC 2845], and TKEY [RFC 2930].

   There are currently five QTYPEs assigned: * (all), MAILA, MAILB,
   AXFR, and IXFR.

   Considerations for the allocation of new RR TYPEs are as follows:

     Decimal
   Hexadecimal

     0
   0x0000 - TYPE zero is used as a special indicator for the SIG RR [RFC
          2535] and in other circumstances and must never be allocated
          for ordinary use.

     1 - 127
   0x0001 - 0x007F - remaining TYPEs in this range are assigned for data
          TYPEs by IETF Consensus.

     128 - 255
   0x0080 - 0x00FF - remaining TYPEs in this rage are assigned for Q and
          Meta TYPEs by IETF Consensus.

     256 - 32767
   0x0100 - 0x7FFF - assigned for data, Q, or Meta TYPE use by IETF
          Consensus.





Eastlake, et al.         Best Current Practice                  [Page 6]

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?