One document matched: draft-jabley-dnsop-ordered-answers-00.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc1034 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1034.xml'>
<!ENTITY rfc1035 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.1035.xml'>
<!ENTITY rfc2119 PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml'>
<!ENTITY I-D.ietf-dnsop-dns-terminology PUBLIC ''
'http://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-dnsop-dns-terminology.xml'>
]>
<rfc category="std" ipr="trust200902" updates="1034, 1035"
docName="draft-jabley-dnsop-ordered-answers-00">
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="no" ?>
<?rfc strict="yes" ?>
<front>
<title>Ordering of RRSets in DNS Messages</title>
<author initials='J.' surname="Abley" fullname='Joe Abley'>
<organization>Dyn, Inc.</organization>
<address>
<postal>
<street>103-186 Albert Street</street>
<city>London</city>
<region>ON</region>
<code>N6A 1M1</code>
<country>Canada</country>
</postal>
<phone>+1 519 670 9327</phone>
<email>jabley@dyn.com</email>
</address>
</author>
<date day="9" month="October" year="2015"/>
<abstract>
<t>The existing Domain Name System (DNS) specifications lack
some clarity in their description of the process by which
individual sections of a DNS message are constructed.</t>
<t>This document updates RFC 1034 and RFC 1035 to provide
a clearer specification, consistent with deployed
implementations.</t>
</abstract>
</front>
<middle>
<section title="Terminology">
<t>This document uses terminology specific to the Domain Name
System (DNS), descriptions of which can be found in
<xref target="I-D.ietf-dnsop-dns-terminology"/>.</t>
<t>In an exchange of DNS messages between two hosts, this document
refers to the host sending a DNS request as the initiator, and
the host sending a DNS response as the responder.</t>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL",
"SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY"
and "OPTIONAL" in this document are to be interpreted as
described in <xref target="RFC2119"/>.</t>
</section>
<section title="Introduction">
<t><xref target="RFC1034"/> specifies an algorithm for use
by responders when constructing response to a DNS QUERY.
This algorithm in some cases can result in multiple RRSets
being included in a single section of a DNS message, e.g.
when handling CNAME resource records.</t>
<t>Many responder implementations have interpreted the direction
to copy or store particular RRSets in the answer section
of a DNS response to mean "append", treating each section
as an ordered list of RRSets. Many initiators, in particular
stub resolvers, are known to rely upon that interpretation
when processing DNS responses received from responders.</t>
<t>Some DNS implementations employ algorithms in other sections
that aim to optimise processing of responses received by
initiators, e.g. NAPTR before SRV before A/AAAA in the
additional section of a response. This behaviour has not
been observed to cause any interoperability problems, and
is explicitly permitted by this document.</t>
<t>This document updates <xref target="RFC1035"/> to specify
that the answer section in a DNS message is an ordered list
of RRSets, but that other sections may be constructed
differently, and clarifies the directions provided in <xref
target="RFC1034"/> to match the observed behaviour and
expectations of deployed software.</t>
</section>
<section title="Updates to RFC 1034" anchor="algorithm">
<t><xref target="RFC1034"/> specifies the algorithms by which
sections of a DNS response are constructed by a responder.
For example, step 3 of the algorithm described in <xref
target="RFC1034"/> section 4.3.2 contains the direction
"copy all RRs which match QTYPE into answer section".</t>
<t>In this case, and in all other cases where <xref
target="RFC1034"/> specifies that particular RRSets be
included in the answer section of a DNS message, the section
MUST be treated as an ordered list of RRSets. When it is
necessary to include new RRSets in a section of a DNS message
that is under construction, those RRSets MUST be appended.
The receiver of a DNS message MAY refuse to process DNS
messages that have been constructed differently.</t>
<t>When constructing other sections of a DNS message, each
section MAY be treated as a non-ordered list, and a receiver
of a DNS message MUST NOT reject a DNS message on the basis
of the order of RRSets in those sections.</t>
</section>
<section title="Updates to RFC 1035">
<t>In a DNS message, the answer section MUST be considered to be
an ordered set of RRSets; all other sections MUST be considered
to be a non-ordered set.</t>
<t>DNS implementations MUST construct each section in a DNS response
according to the algorithms specified in <xref target="RFC1034"/>,
as clarified in <xref target="algorithm"/> of this document.</t>
</section>
<section title="Security Considerations">
<t>The recommendations contained in this document have no
known security implications.</t>
</section>
<section title="IANA Considerations">
<t>This document has no IANA actions.</t>
</section>
<section title="Acknowledgements">
<t>The contributions of Mark Andrews and Paul Vixie to this
document are acknowledged.</t>
</section>
</middle>
<back>
<references title="Normative References">
&rfc1034;
&rfc1035;
&rfc2119;
</references>
<references title="Informative References">
&I-D.ietf-dnsop-dns-terminology;
</references>
<section title="Editorial Notes">
<t>This section (and sub-sections) to be removed prior to
publication.</t>
<section title="Venue">
<t>An appropriate forum for discussion of this draft is
the dnsop working group.</t>
</section>
<section title="Change History">
<section title="draft-jabley-dnsop-ordered-answers-00">
<t>Initial draft circulated for comment.</t>
</section>
</section>
</section>
</back>
</rfc>
| PAFTECH AB 2003-2026 | 2026-04-24 04:22:47 |