<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY filename "draft-eastlake-dnsop-rfc6895bis-iana-02">
  <!ENTITY nbsp   "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY zwnbsp "&#8288;">
]>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     docName="&filename;"
     ipr="trust200902"
     submissionType="IETF"
     category="bcp" consensus="true"
     obsoletes="6895"
     updates="1183, 2930, 3597, 8945"
     tocInclude="true"
     sortRefs="true"
     symRefs="true"
     version="3">
  <!-- category values: std, bcp, info, exp, and historic ipr values:
      trust200902, noModificationTrust200902,
      noDerivativesTrust200902, or pre5378Trust200902 you can add the
      attributes updates="NNNN" and obsoletes="NNNN" they will
      automatically be output with "(if approved)" -->

<!-- ***** FRONT MATTER ***** -->

<front>
  <title abbrev="DNS IANA Considerations">
    Domain Name System (DNS) IANA Considerations</title>
  
<seriesInfo name="Internet-Draft"
                value="&filename;"/>

<author fullname="Donald Eastlake" initials="D." surname="Eastlake">
  <organization>Independent</organization>
  <address>
    <postal>
      <street>2386 Panoramic Circle</street>
      <city>Apopka</city>
      <region>FL</region>
      <code>32703</code>
      <country>US</country>
    </postal>
    <phone>+1-508-333-2270</phone>
    <email>d3e3e3@gmail.com</email>
  </address>
</author>

<date year="2025" month="12" day="9"/>

  <!-- Meta-data Declarations -->

  <area/>
<workgroup>DNSOP</workgroup>
    <!-- WG name at the upperleft corner of the doc, IETF is fine for
       individual submissions.  If this element is not present, the
       default is "Network Working Group", which is used by the RFC
       Editor as a nod to the history of the IETF. -->

  <abstract>
    <t>This document specifies Internet Assigned Numbers Authority
    (IANA) parameter assignment considerations for the allocation of
    Domain Name System (DNS) resource record (RR) types, CLASSes,
    operation codes, error codes (RCODEs), DNS protocol message header
    bits, and AFSDB resource record subtypes.  It obsoletes RFC 6895
    and updates RFCs 1183, 2930, 3597, and 8945.</t>
  </abstract>
  
</front>

<!-- ***** MIDDLE MATTER ***** -->

<middle>

  
    <section anchor="Introduction">  <!-- 1. -->
      <name>Introduction</name>
      
<t>The Domain Name System (DNS) provides replicated distributed securable
hierarchical databases that store "resource records" (RRs) under
domain names.  DNS data is structured into CLASSes and zones that can
be independently maintained.  Familiarity with <xref
target="RFC1034"/>, <xref target="RFC1035"/>, <xref
target="RFC2136"/>, <xref target="RFC2181"/>, <xref
target="RFC4033"/>, and DNS terminology <xref target="RFC9499"/> is
assumed.</t>

<t>This document provides, either directly or by reference, the
general IANA parameter assignment considerations that apply across DNS
request and response headers and all RRs.  There may be additional IANA
considerations that apply to only a particular RRTYPE or
request/response OpCode.  See the specific RFC defining that RRTYPE or
request/response OpCode for such considerations if they have been
defined, except for AFSDB RR considerations <xref target="RFC1183"/>,
which are included herein. This document also covers IANA
considerations for CLASSes, error codes (RCODEs), and DNS protocol
message header bits. This RFC obsoletes <xref target="RFC6895"/> and
updates RFCs <xref target="RFC1183"/>, <xref target="RFC8945"/>, <xref
target="RFC2930"/>, and <xref target="RFC3597"/>.</t>

<t>IANA currently maintains a web page of DNS parameters available
from <xref target="IANADNS"/>.</t>

<t>"Standards Action", "IETF Review", "Specification Required",
"Reserved",  and "Private Use" are as defined in <xref
target="RFC8126"/>.</t>

    </section>

    <section>  <!-- 2. -->
      <name>DNS Request/Response Headers</name>

<t>The header for DNS requests and responses contains field/bits as
shown in the following diagrams taken from <xref target="RFC1035"/> and
<xref target="RFC2136"/>:</t>

<figure>
  <name>DNS Message Header For Non-Update Messages</name>
  <artwork align="center">
                               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!=5 |AA|TC|RD|RA| Z|AD|CD|   RCODE   |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    QDCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ANCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    NSCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ARCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  </artwork>
</figure>

<figure>
  <name>DNS Message Header For Update Messages</name>
  <artwork align="center">
                               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=5  |         Z          |   RCODE   |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ZOCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    PRCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    UPCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|                    ARCOUNT                    |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  </artwork>
</figure>

<t>The ID field identifies the request and is echoed in the response
so they can be matched.</t>

<t>The QR (Query/Response) bit indicates whether the header is for a
request (QR=0) or a response (QR=1).</t>

<t>See <xref target="opcodes"/> for the OpCode field.</t>

<t>The AA (Authoritative Answer), TC (TrunCation), RD (Recursion
Desired), RA (Recursion Available), and CD (Checking Disabled) bits
are each specified as meaningful only in requests or only in
responses, depending on the bit. All except the CD bit are specified
in <xref target="RFC1035"/> while the CD bit is specified in <xref
target="RFC4035"/>. The AD bit was only meaningful in responses but is
expected to have a separate but related meaning in queries (see
Section 5.7 of <xref target="RFC6840"/>).  Only the RD and CD bits are
expected to be copied from the request to the response; however, some
DNS implementations copy all the request header as the initial value
of the response header.  Thus, any attempt to use a "request" bit with
a different meaning in a response or to define a request meaning for a
"response" bit may be dangerous, given the existing implementation.
Meanings for these bits may only be assigned by a Standards
Action.</t>

<t>The unsigned integer fields query/request 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 <xref target="RFC2136"/>.  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.</t>

<t>The Z bits are sent as zero and ignored on receipt.</t>

<aside><t>There have been ancient DNS implementations for which the Z
bit being on in a Query message meant that only a response from the
primary server for a zone is acceptable.  It is believed that all
current DNS implementations ignore this bit.</t></aside>

<t>Assigning a meaning to a Z bit requires a Standards Action.</t>

    <section anchor="opcodes">  <!-- 2.1 -->
      <name>OpCode Assignments</name>

<t>Currently, DNS OpCodes are assigned as follows:</t>

<table>
  <name>DNS Op Codes</name>
  <thead>
    <tr><th>OpCode</th><th>Name</th><th>Reference</th></tr>
  </thead>
  <tbody>
    <tr><td>0</td><td>Query</td><td><xref target="RFC1035"/></td></tr>
    
    <tr><td>1</td><td>IQuery (Inverse Query,
        OBSOLETE)</td><td><xref target="RFC3425"/></td></tr>
    
    <tr><td>2</td><td>Status</td><td><xref
        target="RFC1035"/></td></tr>
     
    <tr><td>3</td><td>Unassigned</td><td></td></tr>
    
    <tr><td>4</td><td>Notify</td><td> <xref
        target="RFC1996"/></td></tr>
    
    <tr><td>5</td><td>Update</td><td><xref
        target="RFC2136"/></td></tr>
    
    <tr><td>6</td><td>DSO (DNS Stateful Operations)</td><td><xref
        target="RFC8490"/></td></tr>
    
    <tr><td>7-15</td><td>Unassigned</td><td></td></tr>
  </tbody>
</table>

<t>Although the Status OpCode is reserved in <xref target="RFC1035"/>,
its behavior has not been specified.  New OpCode assignments require a
Standards Action with early allocation permitted as specified in <xref
target="RFC7120"/>.</t>

</section>

<section>  <!-- 2.3 -->
  <name>RCODE Assignment</name>

<t>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
TSIG RRs <xref target="RFC8945"/>, TKEY RRs <xref target="RFC2930"/>,
and extended by OPT RRs <xref target="RFC6891"/>.  The OPT RR provides
an 8-bit extension to the 4 header bits, resulting in a 12-bit RCODE
field, and the TSIG and TKEY RRs have a separate 16-bit field
designated in their RFCs as the "Error" field.</t>

<t>Error codes appearing in the DNS header and in these other RR types
all refer to the same error code space with the exception of error
code 16, which has a different meaning in the OPT RR than in the TSIG
RR, and error code 9, whose variations are described after the table
below.  The duplicate assignment of 16 was accidental.  To the extent
that any prior RFCs imply any sort of different error number space for
the OPT, TSIG, or TKEY RRs, they are superseded by this unified DNS
error number space.  (This paragraph is the reason this document
updates <xref target="RFC8945"/> and <xref target="RFC2930"/>.)  With
the existing exceptions of error numbers 9 and 16, the same error
number must not be assigned for different errors even if they would
only occur in different RR types.  See table below.</t>

<table>
  <name>DNS Error Codes</name>
  <thead>
    <tr><th>RCODE</th><th>Name</th><th>Description</th><th>References</th></tr>
    <tr><td colspan="2">Decimal<br/>Hexadecimal</td><td
    colspan="2"></td></tr>
  </thead>
  <tbody>
    <tr><td> 0</td><td>NoError </td><td> No Error </td><td><xref
    target="RFC1035"/></td></tr>
    
    <tr><td> 1</td><td>FormErr </td><td> Format Error</td><td><xref
    target="RFC1035"/></td></tr>
    
    <tr><td> 2</td><td>ServFail </td><td> Server Failure</td><td><xref
    target="RFC1035"/></td></tr>
    
    <tr><td> 3</td><td>NXDomain </td><td> Non-Existent
    Domain</td><td><xref target="RFC1035"/></td></tr>
    
    <tr><td> 4</td><td>NotImp </td><td> Not Implemented</td><td><xref
    target="RFC1035"/></td></tr>
    
    <tr><td> 5</td><td>Refused </td><td>Request Refused</td><td><xref
    target="RFC1035"/></td></tr>
    
    <tr><td> 6</td><td>YXDomain </td><td> Name Exists when it should
    not</td><td><xref target="RFC2136"/> <xref
    target="RFC6672"/></td></tr>
    
    <tr><td> 7</td><td>YXRRSet </td><td> RR Set Exists when it should
    not </td><td><xref target="RFC2136"/></td></tr>
    
    <tr><td> 8</td><td>NXRRSet </td><td> RR Set that should exist does
    not </td><td><xref target="RFC2136"/></td></tr>
    
    <tr><td> 9</td><td>NotAuth </td><td> Server Not Authoritative for
    zone </td><td><xref target="RFC2136"/></td></tr>
    
    <tr><td> 9</td><td>NotAuth </td><td> Not Authorized</td><td><xref
    target="RFC8945"/></td></tr>
    
    <tr><td>10</td><td>NotZone </td><td> Name not contained in
    zone</td><td><xref target="RFC2136"/></td></tr>
    
    <tr><td>11</td><td>DSOTYPENI</td><td> DSO TYPE Not
    Implemented</td><td><xref target="RFC8490"/></td></tr>

    <tr><td colspan="2">12-15<br/>0xB-0xF</td><td colspan="2">
    Unassigned </td></tr>

    <tr><td>16</td><td>BADVERS </td><td> Bad OPT Version</td><td><xref
    target="RFC6891"/></td></tr>
    
    <tr><td>16</td><td>BADSIG</td><td>TSIG Signature
    Failure</td><td><xref target="RFC8945"/></td></tr>
    
    <tr><td>17</td><td>BADKEY</td><td>Key not recognized</td><td><xref
    target="RFC8945"/></td></tr>
    
    <tr><td>18</td><td>BADTIME </td><td> Signature out of time
    window</td><td><xref target="RFC8945"/></td></tr>
    
    <tr><td>19</td><td>BADMODE </td><td> Bad TKEY Mode</td><td><xref
    target="RFC2930"/></td></tr>
    
    <tr><td>20</td><td>BADNAME </td><td> Duplicate key
    name</td><td><xref target="RFC2930"/></td></tr>
    
    <tr><td>21</td><td>BADALG</td><td>Algorithm not
    supported</td><td><xref target="RFC2930"/></td></tr>
    
    <tr><td>22</td><td>BADTRUNC </td><td> Bad Truncation</td><td><xref
    target="RFC8945"/></td></tr>
    
    <tr><td>23</td><td>BADCOOKE</td><td> Bad/Missing Server
    Cookie</td><td><xref target="RFC7873"/></td></tr>

    <tr><td colspan="2">24-3,840<br/>0x0017-0x0F00</td><td
    colspan="2"> Unassigned </td></tr>

    <tr><td colspan="2">3,841-4,095<br/>0x0F01-0x0FFF</td><td
    colspan="2">Private Use </td></tr>

    <tr><td colspan="2">4,096-65,534<br/>0x1000-0xFFFE</td><td
    colspan="2">Unassigned </td></tr>

    <tr><td colspan="2">65,535<br/>0xFFFF</td><td
    colspan="2">Reserved</td></tr>
  </tbody>
</table>
                        
  <blockquote>Note on error number 9 (NotAuth): This error number means
  either "Not Authoritative" <xref target="RFC2136"/> or "Not
  Authorized" <xref target="RFC8945"/>.  If 9 appears as the RCODE in
  the header of a DNS response without a TSIG RR or with a TSIG RR
  having a zero error field, then it means "Not Authoritative".  If 9
  appears as the RCODE in the header of a DNS response that includes a
  TSIG RR with a non-zero error field, then it means "Not
  Authorized".</blockquote>

<t>Since it is important that RCODEs be understood for
interoperability, assignment of a new RCODE in the ranges listed above
as "Unassigned" requires IETF Review.</t>

  </section>
</section>

<section>  <!-- 3. -->
  <name>DNS Resource Records (RRs)</name>

<t>All RRs have the same top-level format, shown in the figure below
taken from <xref target="RFC1035"/>.</t>

<figure>
  <name>DNS Resource Record (RR) Format</name>
  <artwork align="center">
                                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                     /
/                                               /
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  </artwork>
</figure>

<dl>

  <dt>NAME:</dt><dd>An owner name, i.e., the name of the node to which
  this RR pertains.  NAMEs are specific to a CLASS as described in
  <xref target="CLASS"/>.  NAMEs consist of an ordered sequence of one
  or more labels, each of which has a label type <xref
  target="RFC1035"/> <xref target="RFC6891"/>.</dd>

  <dt>TYPE:</dt><dd>A 2-octet unsigned integer containing one of the
  RRTYPE codes.  See <xref target="RRTYPEiana"/>.</dd>

  <dt>CLASS:</dt><dd>A 2-octet unsigned integer containing one of the
  RR CLASS codes.  See <xref target="CLASS"/>.</dd>

  <dt>TTL:</dt><dd>A 4-octet (32-bit) unsigned integer that specifies,
  for data TYPEs, 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.</dd>

  <dt>RDLENGTH:</dt><dd>An unsigned 16-bit integer that specifies the
  length in octets of the RDATA field.</dd>

  <dt>RDATA:</dt><dd>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.</dd>
  
</dl>

<section anchor="RRTYPEiana">  <!-- 3.1 -->
  <name>RRTYPE IANA Considerations</name>

<t>There are three subcategories of RRTYPE numbers: data TYPEs,
QTYPEs, and Meta-TYPEs.</t>

<dl>

  <dt>Data TYPEs:</dt><dd>The means of storing data. These are the RRs
  that are stored in zones.</dd>
  
  <dt>QTYPEs:</dt><dd>These can only be used in queries or other
  requests. They are not stored in zones.</dd>

  <dt>Meta-TYPEs:</dt><dd>These designate transient data associated
  with a particular DNS message and, in some cases, can also be used
  in requests. They are not stored in zones. However, the special case
  of RRTYPE 128 can only validly "appear" as the corresponding bit in
  an NSEC type bit map <xref target="RFC4034"/>.</dd>

</dl>

<t>Thus far, data TYPEs have been assigned from the ranges 1 - 127 and
256 - 61,439, while Q and Meta-TYPEs have been assigned from 255
downward except for the OPT Meta-RR, which is assigned TYPE 41. There
is also a range of TYPES from 129 to 144 reserved for Private Use Q or Meta-RRs.
There have been DNS implementations that made caching decisions based
on the top bit of the bottom byte of the RRTYPE.</t>

<t>There are currently four Meta-TYPEs and five QTYPEs assigned and a
range of TYPES assigned for Private Use as listed in the table
below.</t>

<table>
  <name>Currently Assigned QTYPE and Meta-TYPE RRs</name>
  <thead>
    <tr><th>Value</th><th>Mnemonic</th>
        <th>Description</th><th>Reference</th></tr>
  </thead>
  <tbody>
    <tr><td>41</td><td>OPT</td><td>Meta-TYPE: Extension Mechanisms</td>
        <td><xref target="RFC6891"/></td></tr>
    <tr><td>128</td><td>NXNAME</td><td>Meta-TYPE: Compact Denial of
        Existence NXDOMAIN indicator</td><td><xref
        target="RFC9824"/></td></tr>
    <tr><td colspan="2">129-144</td><td>Private Use Q or
        Meta-TYPEs</td><td>[this document]</td></tr>
    <tr><td>249</td><td>TKEY</td><td>Meta-TYPE: Transaction Key</td>
        <td><xref target="RFC2930"/></td></tr>
    <tr><td>250</td><td>TSIG</td><td>Meta-TYPE: Transaction Signature</td>
        <td><xref target="RFC8945"/></td></tr>
    <tr><td>251</td><td>IXFR</td><td>QTYPE: Incremental Zone Transfer</td>
        <td><xref target="RFC1995"/></td></tr>
    <tr><td>252</td><td>AXFR</td><td>QTYPE: Entire Zone Transfer</td>
        <td><xref target="RFC1035"/> <xref target="RFC5936"/></td></tr>
    <tr><td>253</td><td>MAILB</td><td>QTYPE: Mailbox-related RRs</td>
        <td><xref target="RFC1035"/></td></tr>
    <tr><td>254</td><td>MAILA</td><td>QTYPE: Mail agent RRs (Obsolete
        - see the MX RR)</td> <td><xref target="RFC1035"/></td></tr>
        <tr><td>255</td><td>*</td><td>QTYPE: ANY/ALL</td> <td><xref
    target="RFC1035"/> <xref target="RFC8482"/></td></tr>
  </tbody>
</table>

<t>Assigned RRTYPEs have mnemonics that must be completely disjoint
from the mnemonics used for CLASSes and that must match the regular
expression below.  In addition, the generic CLASS and RRTYPE names
specified in Section 5 of <xref target="RFC3597"/> cannot be assigned
as RRTYPE mnemonics.</t>

<artwork align="center">
[A-Z][A-Z0-9\-]*[A-Z0-9]
        but not
   (TYPE|CLASS)[0-9]*
</artwork>

<t>Considerations for the assignment of new RRTYPEs are as follows:</t>

<table>
  <name>DNS Resource Record Type Codes</name>
  <thead>
    <tr><th>Decimal<br/>Hexadecimal</th><th>Assignment Policy</th></tr>
  </thead>
  <tbody>
    <tr><td>0<br/>0x0000</td><td><t>RRTYPE zero is used as a special
    indicator for the SIG(0) RR <xref target="RFC2931"/> <xref
    target="RFC4034"/> and in other circumstances. It must never be
    assigned for ordinary use.</t></td></tr>

    <tr><td>1-127<br/>0x0001-0x007F</td><td><t>Unassigned RRTYPEs in
    this range are assigned for data TYPEs by the DNS RRTYPE
    Assignment Policy as specified in Section 3.1.1.</t></td></tr>

    <tr><td>128-255<br/>0x0080-0x00FF</td><td><t>Unassigned
    RRTYPEs in this range are assigned for QTYPEs and Meta-TYPEs by
    the DNS RRTYPE Assignment Policy as specified in Section
    3.1.1.</t></td></tr>

    <tr><td>256-61,439<br/>0x0100-0xEFFF</td><td><t>Unassigned
    RRTYPEs in this range are assigned for data RRTYPEs by the DNS
    RRTYPE Assignment Policy as specified in Section 3.1.1.  (32,768
    and 32,769 (0x8000 and 0x8001) have been assigned.)</t></td></tr>

    <tr><td>61,440-65,279<br/>0xF000-0xFEFF</td><td><t>Reserved for
    future use.  IETF Review required to define use</t></td></tr>

    <tr><td>65,280-65,534<br/>0xFF00-0xFFFE</td><td><t>Reserved for
    Private Use data RRs.</t></td></tr>

    <tr><td>65,535<br/>0xFFFF</td><td><t>Reserved (Standards Action)
    </t></td></tr>
  </tbody>
</table>

    <section>  <!-- 3.1.1 -->
      <name>DNS RRTYPE Assignment Policy</name>

<t>Parameter values specified in Section 3.1 above, as assigned based
on DNS RRTYPE Assignment Policy, are allocated by Expert Review if
they meet the two requirements listed below.  There will be a pool of
a small number of Experts appointed by the IESG.  Each application
will be judged by an Expert selected by IANA.  In any case where the
selected Expert is unavailable or states they have a conflict of
interest, IANA may select another Expert from the pool.  Some
guidelines for the Experts are given in Section 3.1.2.</t>

<t>RRTYPEs that do not meet the requirements below may nonetheless be
assignment by a Standards Action with early allocation permitted as
specified in <xref target="RFC7120"/>.</t>

<ol>
  <li>
    <t>A complete template as specified in Appendix A has been posted
    to the dns-rrtype-applications@ietf.org mailing list and received
    by the Expert.</t>

    <t>Note that the posting of partially completed, draft, or
    formally submitted templates to dnsop@ietf.org by the applicant
    or Expert for comment and discussion is highly encouraged.  Before
    formal submission of an RRTYPE template, we recommend submitting
    it for community review and considering the responses in order to
    reduce the probability of initial rejection and the need for
    modification and resubmission.</t>
  </li>

  <li>
    <t>The RR for which an RRTYPE code is being requested is either
    (a) a data TYPE that can be handled as an Unknown RR as described
    in <xref target="RFC3597"/> or (b) a Meta-TYPE whose processing is
    optional, i.e., it is safe to simply discard RRs with that
    Meta-TYPE in queries or responses.</t>

    <t>Note that such RRs may include additional section processing,
    provided such processing is optional.</t>
  </li>
</ol>

<t>After the applicant submits their formal application to IANA by
sending the completed template specified in Appendix A to the
dns-rrtype-applications@ietf.org mailing list, IANA appoints an Expert
and sends the completed template to the Expert, copying the applicant.
No more than two weeks after receiving the application, the Expert
shall explicitly approve or reject the application, informing IANA,
the applicant, and the dnsop@ietf.org mailing list.  A rejection
should include the reason for rejection and may include suggestions
for improvement.  The Expert should consult with other technical
experts and the dnsop@ietf.org mailing list as necessary.  If the
Expert does not approve the application within this period, it is
considered rejected.  IANA should report non-responsive Experts to the
IESG.</t>

<t>IANA shall maintain a public archive of approved templates.  In
addition, if the required description of the RRTYPE applied for is
referenced by URL, a copy of the document so referenced should be
included in the archive.</t>

</section>
<section>  <!-- 3.1.2 -->
  <name>DNS RRTYPE Expert Guidelines</name>

<t>The Designated Expert should normally be lenient, preferring to
approve most requests.  However, the Expert should usually reject any
RRTYPE assignment request that meets one or more of the following
criteria:</t>

<ol>
  <li>The request was documented in a manner that was not sufficiently
  clear or complete to evaluate or implement.  (Additional
  documentation can be provided during the Expert Review period.)
  </li>
  <li>The proposed RRTYPE or RRTYPEs affect DNS processing and do not
  meet the criteria in point 2 of Section 3.1.1 above.
  </li>
  <li>Application use as documented makes incorrect assumptions about
  DNS protocol behavior, such as wildcards, CNAME, DNAME, etc.
  </li>
  <li>An excessive number of RRTYPE values is being requested when
  the purpose could be met with a smaller number of values or with
  Private Use values.
  </li>
</ol>

</section>
<section>  <!-- 3.1.3 -->
  <name>Special Note on the OPT RR</name>

<t>The OPT (OPTion) RR (RRTYPE 41) and its IANA considerations are
specified in <xref target="RFC6891"/>.  Its primary purpose is to extend the
effective field size of various DNS fields, including RCODE, label
type, OpCode, flag bits, and RDATA size.  In particular, for resolvers
and servers that recognize it, it extends the RCODE field from 4 to 12
bits.</t>

</section>
<section>  <!-- 3.1.4 -->
  <name>The AFSDB RR Subtype Field</name>

<t>The AFSDB RR <xref target="RFC1183"/> is a CLASS-insensitive RR
that has the same RDATA field structure as the MX RR <xref
target="RFC1035"/>, but the 16-bit unsigned integer field at the
beginning of the RDATA is interpreted as a subtype as shown below.
Use of the AFSDB RR to locate AFS cell database servers was deprecated
by <xref target="RFC5864"/>.  This subtype registry is closed,
and assignment of new subtypes is not permitted.</t>

<table>
  <name>AFSDB Subtype Codes</name>
  <thead>
    <tr><th>Decimal<br/>Hexadecimal</th><th>Assignment Policy</th></tr>
  </thead>
  <tbody>
    <tr><td>0<br/>0x0000</td><td><t>Reserved; registry closed</t></td></tr>

    <tr><td>1<br/>0x0001</td><td><t>AFS v3.0 Location Service <xref
    target="RFC1183"/></t></td></tr>

    <tr><td>2<br/>0x0002</td><td><t>DCE/NCA root cell directory node
    <xref target="RFC1183"/></t></td></tr>

    <tr><td>3-65,279<br/>0x0003-0xFEFF</td><td><t>Not assigned;
    registry closed</t></td></tr>

    <tr><td>65,280-65,534<br/>0xFF00-0xFFFE</td><td><t>Private
    Use</t></td></tr>

    <tr><td>65,535<br/>0xFFFF</td><td><t>Reserved; registry closed
    </t></td></tr>
  </tbody>
</table>

</section>
</section>
<section anchor="CLASS">  <!-- 3.2 -->
  <name>RR CLASS IANA Considerations</name>

<t>There are currently two subcategories of DNS CLASSes: normal, data-
containing classes; and QCLASSes that are only meaningful in queries
or updates.</t>

<t>DNS CLASSes have been little used but constitute another dimension
of the DNS distributed database.  In particular, there is no necessary
relationship between the namespace or root servers for one data CLASS
and those for another data CLASS.  The same DNS NAME can have
completely different meanings in different CLASSes.  The label types
are the same, and the null label is usable only as root in every
CLASS.  As global networking and DNS have evolved, the IN, or
Internet, CLASS has dominated DNS use.</t>

<t>As yet, there has not been a requirement for "Meta-CLASSes".  That
would be a CLASS to designate transient data associated with a
particular DNS message, which might be usable in queries.  However, it
is possible that there might be a future requirement for one or more
"Meta-CLASSes".</t>

<t>Assigned CLASSes have mnemonics that must be completely disjoint
from the mnemonics used for RRTYPEs and that must match the regular
expression below.  In addition, the generic CLASS and RRTYPE names
specified in Section 5 of <xref target="RFC3597"/> cannot be assigned
as new CLASS mnemonics.</t>

<artwork align="center">
[A-Z][A-Z0-9\-]*[A-Z0-9]
        but not
   (CLASS|TYPE)[0-9]*
</artwork>

<t>The current CLASS assignments and considerations for future
assignments are as follows:</t>

<table>
  <name>DNs CLASS Codes</name>
  <thead>
    <tr><th>Decimal<br/>Hexadecimal</th><th>Assignment Policy</th></tr>
  </thead>
  <tbody>
    <tr><td>0<br/>0x0000</td><td><t>Reserved; assignment requires a
    Standards Action.</t></td></tr>

    <tr><td>1<br/>0x0001</td><td><t>Internet (IN) <xref
    target="RFC1035"/></t></td></tr>

    <tr><td>2<br/>0x0002</td><td><t>Available for assignment by IETF
    Review as a data CLASS.</t></td></tr>

    <tr><td>3<br/>0x0003</td><td><t>Chaos (CH) <xref
    target="Moon1981"/></t></td></tr>

    <tr><td>4<br/>0x0004</td><td><t>Hesiod (HS) <xref
    target="Dyer1987"/></t></td></tr>

    <tr><td>5-127<br/>0x0005-0x007F</td><td><t>Available for
    assignment by IETF Review for data CLASSes only.</t></td></tr>

    <tr><td>128-253<br/>0x0080-0x00FD</td><td><t>Available for
    assignment by IETF Review for QCLASSes and Meta-CLASSes
    only.</t></td></tr>

    <tr><td>254<br/>0x00FE</td><td><t>QCLASS NONE <xref
    target="RFC2136"/></t></td></tr>

    <tr><td>255<br/>0x00FF</td><td><t>QCLASS * (ANY) <xref
    target="RFC1035"/></t></td></tr>

    <tr><td>256-32,767<br/>0x0100-0x7FFF</td><td><t>Available for
    assignment by IETF Review.</t></td></tr>

    <tr><td>32,768-57,343<br/>0x8000-0xDFFF</td><td><t>Available
    for assignment to data CLASSes only; Specification
    Required.</t></td></tr>

    <tr><td>57,344-65,279<br/>0xE000-0xFEFF</td><td><t>Available
    for assignment to QCLASSes and Meta-CLASSes only; Specification
    Required.</t></td></tr>

    <tr><td>65,280-65,534<br/>0xFF00-0xFFFE</td><td><t>Private
    Use</t></td></tr>

    <tr><td>65,535<br/>0xFFFF</td><td><t>Reserved; can only be assigned
    by a Standards Action.</t></td></tr>
  </tbody>
</table>

</section>
<section>  <!-- 3.3 -->
  <name>Label Considerations</name>

<t>DNS NAMEs are sequences of labels <xref target="RFC1035"/>.</t>

<section>  <!-- 3.3.1 -->
  <name>Label Types</name>

<t>At the present time, there are two categories of label types: data
labels and compression labels.  Compression labels are pointers to
data labels elsewhere within an RR or DNS message and are intended to
shorten the wire encoding of NAMEs.</t>

<t>The two existing data label types are sometimes referred to as Text
and Binary.  Text labels can, in fact, include any octet value
including zero-value octets, but many current uses involve only
printing ASCII characters <xref target="RFC0020"/>.  For retrieval,
Text labels are defined to treat ASCII uppercase and lowercase letter
codes as matching <xref target="RFC4343"/>.  Binary labels were bit
sequences; they have been declared Historic <xref
target="RFC6891"/>.</t>

</section>
<section>  <!-- 3.3.2 -->
  <name>Label Contents and Use</name>

<t>The last label in each NAME is "ROOT", which is the zero-length
label.  By definition, the null or ROOT label cannot be used for any
other NAME purpose.</t>

<t>NAMEs are local to a CLASS.  The Hesiod [Dyer1987] and Chaos
[Moon1981] CLASSes are for essentially local use.  The IN, or
Internet, CLASS is thus the only DNS CLASS in global use on the
Internet at this time.</t>

<t>A somewhat out-of-date description of name assignment in the IN
CLASS is given in <xref target="RFC1591"/>.  Some information on
reserved top-level domain names is in BCP 32 <xref
target="RFC2606"/>.</t>

    </section>
  </section>
</section>

<section>  <!-- 4. -->
  <name>Security Considerations</name>

<t>This document addresses IANA considerations in the assignment of
general DNS parameters, not security.  See <xref target="RFC4033"/>,
<xref target="RFC4034"/>, and <xref target="RFC4035"/> for secure DNS
considerations.</t>

</section>
<section>  <!-- 5. -->
  <name>IANA Considerations</name>

<t>This document consists of DNS IANA considerations.</t>

<t>IANA has established a process for accepting Appendix A templates
and selecting an Expert from those appointed to review such template
form applications.  IANA forwards the template to the Expert, copying
the applicant.  IANA archives and makes available all approved RRTYPE
assignment templates and referred documentation (unless it is readily
available at a stable URI).  It is the duty of the applicant to post
the formal application template to the
dns-rrtype-applications@ietf.org mailing list, which IANA will
monitor.  The dnsop@ietf.org mailing list is for community discussion
and comment.  See <xref target="RRTYPEiana"/> and <xref
target="RRtemplate"/> for more details.</t>

<t>IANA is requested to replace all occurrences of <xref
target="RFC6895"/> as a reference in IANA registries are updated to
refer to [this document].</t>

</section>
    
  </middle>
  
  <!-- *****BACK MATTER ***** -->

<back>
    <!-- References split into informative and normative -->

  <!-- There are 2 ways to insert reference entries from the citation
       libraries: 1. define an ENTITY at the top, and use "ampersand
       character"RFC2629; here (as shown) 2. simply use a PI "less
       than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds:
       include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

  Both are cited textually in the same manner: by using xref elements.
  If you use the PI option, xml2rfc will, by default, try to find
  included files in the same directory as the including file. You can
  also define the XML_LIBRARY environment variable with a value
  containing a set of directories to search.  These can be either in
  the local filing system or remote ones accessed by http
  (http://domain/dir/... ).-->

  <references>
    <name>References</name>
    
    <references>
      <name>Normative References</name>

<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.0020.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1034.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1035.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1995.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1996.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2136.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2181.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2930.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3425.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.3597.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4033.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4034.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4035.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5936.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6672.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6840.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6891.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7120.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.7873.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8126.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8482.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8490.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.8945.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9824.xml"/>

    </references>
    
    <references>
      <name>Informative References</name>

<reference anchor="Dyer1987">
  <front>
    <title>Hesiod</title>
    <author initials="S." surname="Dyer" fullname="S. Dyer"/>
    <author initials="F." surname="Hsu" fullname="F. Hsu"/>
    <date year="1987" month="April"/>
  </front>
  <seriesInfo name="Project Athena Technical Plan" value="Name Service"/>
</reference>

<reference anchor="IANADNS"
    target="https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml">
  <front>
    <title>DNS Parameters</title>
    <author fullname="IANA"/>
  </front>
</reference>

<reference anchor="Moon1981">
  <front>
    <title>Chaosnet</title>
    <author initials="D." surname="Moon" fullname="D. Moon">
      <organization/>
    </author>
    <date year="1981" month="June"/>
  </front>
  <seriesInfo name="Massachusetts Institute of Technology,
      Artificial Intelligence Laboratory, A. I. Memo" value="628"/>
</reference>

<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1183.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.1591.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2606.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.2931.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.4343.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.5864.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.6895.xml"/>
<xi:include
    href="https://www.rfc-editor.org/refs/bibxml/reference.RFC.9499.xml"/>

    </references>
  </references>

<section anchor="RRtemplate">  <!-- A -->
  <name>RRTYPE Assignment Template</name>

<!-- Evey reasonable effort should be made to keep the following
     template on one page. -->
<artwork>                 DNS RRTYPE PARAMETER ASSIGNMENT TEMPLATE

   When ready for formal consideration, this template is to be submitted
   to IANA for processing by emailing the template to dns-rrtype-
   applications@ietf.org.

   A. Submission Date:

   B.1 Submission Type:  [ ] New RRTYPE  [ ] Modification to RRTYPE
   B.2 Kind of RR:  [ ] Data RR  [ ] Meta-RR

   C. Contact Information for submitter (will be publicly posted):
      Name:                            Email Address:
      International telephone number:
      Other contact handles:

   D. Motivation for the new RRTYPE application.
      Please keep this part at a high level to inform the Expert and
      reviewers about uses of the RRTYPE.  Most reviewers will be DNS
      experts that may have limited knowledge of your application space.

   E. Description of the proposed RR type.
      This description can be provided in-line in the template, as an
      attachment, or with a publicly available URL.

   F. What existing RRTYPE or RRTYPEs come closest to filling that need
      and why are they unsatisfactory?

   G. What mnemonic is requested for the new RRTYPE (optional)?

      Note: If a mnemonic is not supplied, not allowed, or duplicates an
      existing RRTYPE or CLASS mnemonic, the Expert will assign a
      mnemonic.
      
   H. Does the requested RRTYPE make use of any existing IANA registry
      or require the creation of a new IANA subregistry in DNS
      Parameters?  If so, please indicate which registry is to be used
      or created.  If a new subregistry is needed, specify the
      assignment policy for it and its initial contents.  Also include
      what the modification procedures will be.

   I. Does the proposal require/expect any changes in DNS
      servers/resolvers that prevent the new type from being processed
      as an unknown RRTYPE (see RFC 3597)?

   J. Comments:
</artwork>

</section>
<section>  <!-- B -->
  <name>Changes from <xref target="RFC6895"/></name>

<ol>
    
  <li>Reserve RR types 129-144 for Private Use Q and Meta-Types as
    contributed by Shumon Huque. Add a Table of Q and
    Meta-Types.</li>
  <li>Update references to dnsext@ietf.org to dnsop@ietf.org.</li>
  <li>Drop list of updates from RFC 6195 as those were already
    incorporated into <xref target="RFC6895"/>. Add this list of
    changes from <xref target="RFC6895"/>.</li>
  <li>Convert source to XMLv3.</li>
  <li>Update numerous references to point to the latest RFCs.</li>
  <li>Update Introduction to list all RFC Updates and to cover
    all topics covered in the Abstract and to not have a
    subsection.</li>
  <li>Add reference to DNS Terminology <xref
    target="RFC9499"/>.</li>
  <li>Generally, replace most uses of "query" to be "request".</li>
  <li>Add captions to all Figures and Tables.</li>
  <li>Update DNS Op Codes Table and DNS Error Codes Table to list
    additional values assigned.</li>
  <li>Numerous editorial changes.</li>
  
</ol>

</section>

<section anchor="Acknowledgements" numbered="false">
  <name>Acknowledgements</name>

  <t>TBD</t>
  
  <t><xref target="RFC6895"/> acknowledgements: Alfred Hoenes'
  contributions are gratefully acknowledged as are those by Mark
  Andrews, Dick Franks, and Michael Sheldon.</t>

  <t>Yet earlier versions acknowledgements: Eric Brunner-Williams and
  Bill Manning.</t>
      
</section>

    <section anchor="Contributors" numbered="false">

      <name>Contributors</name>

      <contact fullname="Shumon Huque" initials="S." surname="Huque">
        <organization>Salesforce</organization>
        <address>
          <email>shuque@gmail.com</email>
        </address>
      </contact>
      
    </section>

</back>
  
</rfc>
