<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.8 (Ruby 2.6.10) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dnssd-multi-qtypes-05" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.20.1 -->
  <front>
    <title>DNS Multiple QTYPEs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-multi-qtypes-05"/>
    <author initials="R." surname="Bellis" fullname="Ray Bellis">
      <organization abbrev="ISC">Internet Systems Consortium, Inc.</organization>
      <address>
        <postal>
          <street>PO Box 360</street>
          <city>Newmarket</city>
          <code>NH 03857</code>
          <country>USA</country>
        </postal>
        <phone>+1 650 423 1300</phone>
        <email>ray@isc.org</email>
      </address>
    </author>
    <date year="2024" month="November" day="07"/>
    <area>Internet</area>
    <workgroup>DNSSD</workgroup>
    <keyword>DNS</keyword>
    <keyword>resource record</keyword>
    <abstract>
      <?line 35?>

<t>This document specifies a method for a DNS client to request additional
DNS record types to be delivered alongside the primary record type
specified in the question section of a DNS query (OpCode=0).</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://dnssd-wg.github.io/draft-ietf-dnssd-multi-qtypes/draft-ietf-dnssd-multi-qtypes.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-dnssd-multi-qtypes/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        DNSSD Working Group mailing list (<eref target="mailto:dnssd@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/dnssd/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/dnssd/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/dnssd-wg/draft-ietf-dnssd-multi-qtypes"/>.</t>
    </note>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>A commonly requested DNS <xref target="RFC1035"/> feature is the ability to receive
multiple related resource records (RRs) in a single DNS response.</t>
      <t>For example, it may be desirable to receive the A, AAAA and HTTPS
records for a domain name together, rather than having to issue
multiple queries.</t>
      <t>The DNS wire protocol in theory supported having multiple questions in a
single packet, but in practise this does not work.  In <xref target="RFC9619"/>,
<xref target="RFC1035"/> is updated to only permit a single question in a QUERY
(OpCode=0) request.</t>
      <t>Sending QTYPE=ANY does not guarantee that all RRsets will be returned.
<xref target="RFC8482"/> specifies that responders may return a single RRset of
their choosing.</t>
      <t>This document provides a solution for those cases where only the QTYPE
varies by specifying a new option for the Extension Mechanisms for DNS
(EDNS <xref target="RFC6891"/>) that contains an additional list of QTYPE values
that the client wishes to receive in addition to the single QTYPE
appearing in the question section.  A different EDNS option is used in
response packets as protection against DNS middleboxes that echo EDNS
options verbatim.</t>
      <t>The specification described herein is applicable both for queries from a
stub resolver to recursive servers, and from recursive resolvers to
authoritative servers. It does not apply to Multicast DNS queries
<xref target="RFC6762"/>, which are already designed to allow requesting multiple
records in a single query.</t>
    </section>
    <section anchor="terminology-used-in-this-document">
      <name>Terminology used in this document</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="description">
      <name>Description</name>
      <section anchor="multiple-qtype-edns-options-format">
        <name>Multiple QTYPE EDNS Options Format</name>
        <t>The overall format of an EDNS option is shown for reference below,
per <xref target="RFC6891"/>, followed by the option specific data:</t>
        <artwork><![CDATA[
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0: |                          OPTION-CODE                          |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2: |                         OPTION-LENGTH                         |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
4: |                                                               |
   /                          OPTION-DATA                          /
   /                                                               /
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
]]></artwork>
        <t>OPTION-CODE: MQTYPE-Query (TBD1) in queries and MQTYPE-Response (TBD2) in responses.</t>
        <t>OPTION-LENGTH: Size (in octets) of OPTION-DATA.</t>
        <t>OPTION-DATA: Option specific, as below:</t>
        <artwork><![CDATA[
                +0 (MSB)                            +1 (LSB)
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
0: |           QT1 (MSB)           |           QT1 (LSB)           |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
2: /              ...              |              ...              /
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
   /           QTn (MSB)           |           QTn (LSB)           |
   +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
]]></artwork>
        <t>QT: a (potentially empty) list of 2 byte fields (QTx) in network order
(MSB first) each specifying a DNS RRTYPE.  The RRTYPEs <bcp14>MUST</bcp14> be for
real resource records, and <bcp14>MUST NOT</bcp14> refer to Meta RRTYPEs such as
"OPT" and those from the reserved range 128 - 255, e.g. "IXFR", "TSIG",
"*", etc.</t>
      </section>
      <section anchor="server-handling">
        <name>Server Handling</name>
        <section anchor="request-parsing">
          <name>Request Parsing</name>
          <t>If MQTYPE-Query is received in any inbound DNS message with an OpCode
other than QUERY (0) the server <bcp14>MUST</bcp14> return a FORMERR response.</t>
          <t>A server that receives an MQTYPE-Response option in any inbound DNS
message <bcp14>MUST</bcp14> return a FORMERR response.</t>
          <t>A server that receives more than one MQTYPE-Query option in a query <bcp14>MUST</bcp14>
return a FORMERR response.</t>
          <t>If MQTYPE-Query is received in a query that contains no primary question
(i.e. QDCOUNT=0) the server <bcp14>MUST</bcp14> return a FORMERR response.</t>
          <t>If any duplicate QTx (or one duplicating the primary QTYPE field) is
contained in a query the server <bcp14>MUST</bcp14> return a FORMERR response.</t>
          <t>If any invalid QTx is received in the query (e.g. one corresponding to a
Meta RRTYPE) the server <bcp14>MUST</bcp14> return a FORMERR response.</t>
        </section>
        <section anchor="response-generation">
          <name>Response Generation</name>
          <t>A conforming server that receives an MQTYPE-Query option in a query <bcp14>MUST</bcp14>
return an MQTYPE-Response option in its response, even if that response
is truncated (TC=1).</t>
          <t>The server <bcp14>MUST</bcp14> first start constructing a response for the primary
(QNAME, QCLASS, QTYPE) tuple specified in the Question section per
the existing DNS sections.  The RCODE and all other flags (e.g. AA,
AD, etc) <bcp14>MUST</bcp14> be determined at this time.</t>
          <t>If this initial response results in truncation (TC=1) then the
additional queries specified in MQTYPE-Query <bcp14>MUST NOT</bcp14> be processed.</t>
          <t>After the initial response is prepared, the server <bcp14>MUST</bcp14> attempt to
combine the responses for individual (QNAME, QCLASS, QTx) combinations
into the response for the first query.</t>
          <t>For each individual combination the server <bcp14>MUST</bcp14> evaluate the resulting
RCODE and other flags and check that they all match the values generated
from the primary query.</t>
          <t>If any mismatch is detected the mismatching additional response <bcp14>MUST NOT</bcp14>
be included in the final combined response and its QTx value <bcp14>MUST NOT</bcp14> be
included in the MQTYPE-Response list.  This might happen, for example,
if the primary query resulted in a NOERROR response but a QTx query
resulted in a SERVFAIL, or if the primary response has AA=0 but a QTx
response has AA=1, such as might happen if the NS and DS records were
both requested at the parent side of a zone cut.</t>
          <t>If no mismatches are detected the server <bcp14>MUST</bcp14> attempt to combine the
individual RRs into their respective sections. The server <bcp14>MUST</bcp14> detect
duplicate RRs and keep only a single copy of each RR in its respective
section.  Duplicates can occur e.g. in Answer section if a CNAME chain
is involved, or e.g. Authority section if multiple QTYPEs don't exist
etc.  Note that RRs can be legitimately duplicated in different
sections, e.g. for (SOA, TYPE12345) combination on apex where TYPE12345
is not present.</t>
          <t>If message size (or other) limits do not allow all of the data obtained
by querying for an additional QTx to be included in the final response
then the server <bcp14>MUST NOT</bcp14> include the respective QTx in the
MQTYPE-Response list and <bcp14>MAY</bcp14> stop processing further QTx combinations.</t>
          <t>If all RRs for a single QTx combination fit into the message then the
server <bcp14>MUST</bcp14> include the respective QTx in the MQTYPE-Response list to
indicate that the given query type was completely processed.</t>
        </section>
      </section>
      <section anchor="client-response-processing">
        <name>Client Response Processing</name>
        <t>Recursive resolvers <bcp14>MAY</bcp14> use this method to obtain multiple records from
an authoritative server.  For the purposes of Section 5.4.1 of
<xref target="RFC2181"/> any authoritative answers received <bcp14>MUST</bcp14> be ranked the same
as the answer for the primary question.</t>
        <t>If the response to a query containing an MQTYPE-Query option does not
contain an MQTYPE-Response option, or if it erroneously contains an
MQTYPE-Query option, the client <bcp14>MUST</bcp14> treat the response as if this
option is unsupported by the server and <bcp14>SHOULD</bcp14> process the response as
if the MQTYPE-Query option had not been used.</t>
        <t>If the MQTYPE-Response option is present more than once or if a QTx
value is duplicated (or duplicates the primary QTYPE field) the client
<bcp14>MUST</bcp14> treat the answer as invalid (equivalent to FORMERR)</t>
        <t>The Question section and the list of types present in the
MQTYPE-Response option indicates the list of (QNAME, QCLASS, qtypes)
combinations which are completely contained within the received
response.  The answers to all query combinations share the same RCODE
and all other flags.</t>
        <t>All RRs required by existing DNS specifications are expected to be
present in the respective sections of the DNS message, including proofs
of nonexistence where required. The client <bcp14>MUST NOT</bcp14> rely on any
particular order of RRs in the message sections.</t>
        <t>Clients <bcp14>MUST</bcp14> take into account that individual RRs might originate from
different DNS zones and that proofs of non-existence might have been
produced by different signers.</t>
        <t>Absence of QTx values which were requested by client but are not present
in MQTYPE-Response option indicates that:</t>
        <ul spacing="normal">
          <li>
            <t>the server was unwilling to process the request (e.g. because a limit
was exceeded), and/or</t>
          </li>
          <li>
            <t>the individual responses could not be combined into one message
because of RCODE or other flag mismatches, and/or</t>
          </li>
          <li>
            <t>the message size limit would be exceeded</t>
          </li>
        </ul>
        <t>The client <bcp14>SHOULD</bcp14> subsequently initiate standalone queries (e.g. without
using the MQTYPE-Query option) for any QTx value which was requested but
is missing in the response.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The method documented here does not change any of the security
properties of the DNS protocol itself.</t>
      <t>It should however be noted that this method does increase the potential
amplification factor when the DNS protocol is used as a vector for a
denial of service attack.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>NB: to be rewritten once assignments have been made.</t>
      <t>IANA is requested to assign two new values (TBD1 and TBD2) in the DNS
EDNS0 Option Codes registry for MQTYPE-Query and MQTYPE-Response.  They
should be consecutive, with the -Query option being an even number.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1035">
          <front>
            <title>Domain names - implementation and specification</title>
            <author fullname="P. Mockapetris" initials="P." surname="Mockapetris"/>
            <date month="November" year="1987"/>
            <abstract>
              <t>This RFC is the revised specification of the protocol and format used in the implementation of the Domain Name System. It obsoletes RFC-883. This memo documents the details of the domain name client - server communication.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="13"/>
          <seriesInfo name="RFC" value="1035"/>
          <seriesInfo name="DOI" value="10.17487/RFC1035"/>
        </reference>
        <reference anchor="RFC9619">
          <front>
            <title>In the DNS, QDCOUNT Is (Usually) One</title>
            <author fullname="R. Bellis" initials="R." surname="Bellis"/>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>This document updates RFC 1035 by constraining the allowed value of the QDCOUNT parameter in DNS messages with OPCODE = 0 (QUERY) to a maximum of one, and it specifies the required behavior when values that are not allowed are encountered.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9619"/>
          <seriesInfo name="DOI" value="10.17487/RFC9619"/>
        </reference>
        <reference anchor="RFC6891">
          <front>
            <title>Extension Mechanisms for DNS (EDNS(0))</title>
            <author fullname="J. Damas" initials="J." surname="Damas"/>
            <author fullname="M. Graff" initials="M." surname="Graff"/>
            <author fullname="P. Vixie" initials="P." surname="Vixie"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>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 requestors to advertise their capabilities to responders. This document describes backward-compatible mechanisms for allowing the protocol to grow.</t>
              <t>This document updates the Extension Mechanisms for DNS (EDNS(0)) specification (and obsoletes RFC 2671) based on feedback from deployment experience in several implementations. It also obsoletes RFC 2673 ("Binary Labels in the Domain Name System") and adds considerations on the use of extended labels in the DNS.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="75"/>
          <seriesInfo name="RFC" value="6891"/>
          <seriesInfo name="DOI" value="10.17487/RFC6891"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC2181">
          <front>
            <title>Clarifications to the DNS Specification</title>
            <author fullname="R. Elz" initials="R." surname="Elz"/>
            <author fullname="R. Bush" initials="R." surname="Bush"/>
            <date month="July" year="1997"/>
            <abstract>
              <t>This document considers some areas that have been identified as problems with the specification of the Domain Name System, and proposes remedies for the defects identified. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2181"/>
          <seriesInfo name="DOI" value="10.17487/RFC2181"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC8482">
          <front>
            <title>Providing Minimal-Sized Responses to DNS Queries That Have QTYPE=ANY</title>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="O. Gudmundsson" initials="O." surname="Gudmundsson"/>
            <author fullname="M. Majkowski" initials="M." surname="Majkowski"/>
            <author fullname="E. Hunt" initials="E." surname="Hunt"/>
            <date month="January" year="2019"/>
            <abstract>
              <t>The Domain Name System (DNS) specifies a query type (QTYPE) "ANY". The operator of an authoritative DNS server might choose not to respond to such queries for reasons of local policy, motivated by security, performance, or other reasons.</t>
              <t>The DNS specification does not include specific guidance for the behavior of DNS servers or clients in this situation. This document aims to provide such guidance.</t>
              <t>This document updates RFCs 1034 and 1035.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8482"/>
          <seriesInfo name="DOI" value="10.17487/RFC8482"/>
        </reference>
        <reference anchor="RFC6762">
          <front>
            <title>Multicast DNS</title>
            <author fullname="S. Cheshire" initials="S." surname="Cheshire"/>
            <author fullname="M. Krochmal" initials="M." surname="Krochmal"/>
            <date month="February" year="2013"/>
            <abstract>
              <t>As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful.</t>
              <t>Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server. In addition, Multicast DNS designates a portion of the DNS namespace to be free for local use, without the need to pay any annual fee, and without the need to set up delegations or otherwise configure a conventional DNS server to answer for those names.</t>
              <t>The primary benefits of Multicast DNS names are that (i) they require little or no administration or configuration to set them up, (ii) they work when no infrastructure is present, and (iii) they work during infrastructure failures.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6762"/>
          <seriesInfo name="DOI" value="10.17487/RFC6762"/>
        </reference>
      </references>
    </references>
    <?line 269?>

<section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The author wishes to thank the following for their feedback and reviews
during the initial development of this document: Michael Graff, Olafur
Gudmundsson, Matthijs Mekking, and Paul Vixie.</t>
      <t>In addition the author wishes to thank the following for subsequent
review during discussion in the DNSSD Working Group: Chris Box, Stuart
Cheshire, Esko Dijk, Ted Lemon, David Schinazi and Petr Spacek.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
ATQ7oB5KKwAA

-->

</rfc>
