<?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.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-dnssd-multi-qtypes-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title>DNS Multiple QTYPEs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-dnssd-multi-qtypes-04"/>
    <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="September" day="11"/>
    <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 RR type.  The RR types <bcp14>MUST</bcp14> be for
real resource records, and <bcp14>MUST NOT</bcp14> refer to pseudo RR types such as
"OPT", "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-RR) 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 respective QTx in the MQTYPE-Response list to
indicate that 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 anchor="sec-combined-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 268?>

<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:
H4sIAAAAAAAAA71a63IbtxX+j6dAnR+VGpKSbNlxOHVTWpJtzehikXJbT6c/
wF2QRLXcZRdYUUyid+mz9Mn6nQNgL5SsJG1azdgksbic+/nOwfb7feGMy/RQ
Hl9M5HmVObPKtLy6/vzxxIq0SHK1xMO0VDPXN9rN+mlubdpf0sz+P9xmpW1/
/1DYaro01poip6GhPD25fifyajnV5VCkyumhSIrc6txWdihdWWlxO5QvRIJH
86LcDKV1qVClVlibO13m2on1nMmaHItbnVfYQsp5WVSrOCqlP+zPRXlj8rl8
Tw8xulQmA81E6B+J5kFRzjGsymQxlAvnVna4t0eTaMTc6kGctEcDe9OyWFu9
x+v36EzjFtU0bNhfz/eelAYWZGDKuuaouHDgdxqY4uktnn46WLhlJm70Zl2U
KcmkT+Lgz1LboioTjS8JHgpVuUVR8hz8k9LkEP54IN/qLDOWh7x+x2rTHoQo
GjXIycY6vbTyCAosSmeqZQ8PkwFPVdNpqaHK08kR/7au1Bq8f7yUb4s7+eLV
Pg8nxkHHF3q9VOUNVMtjRYqjLz7I/RevX34ThqrckTV8mox4YLUockz6+kC+
erkvD5+/kAcv9v2W2qu5VJs/GpuwjkW/3wdFoEElTojrhbESNlwtde6kXenE
zIy2UsmlhmBSOStK/CDLTzJDc1wB0f2jgvakSlPjYM8qEzTBS5QNztK0qZap
zmA8pU6lyop8bk2qpVtouSoNuNy0l4h4eAod8CQ+BNtLqxP+LGaBFDzB4p3L
1RHk82Z/d+DZWpo0zbQQX5FiyiKteJkQIwhtuSzybBNJxyG0zw8//Gb87uhg
/8XL+3s508pVpZYQCJ2upiaDRjy/iQYbYhl9v9Rkv+m2MVm5Mx7bXaJfSQt3
w1QvGLsizwaZ7yBOfaeW2KUnjYMfbrycrCnVFPOb45iKUU+O8CdVnsoP19cf
JyIe5RWTFlBxziaKpXPoTJc9KJw+sYHK5ULdkuNjXwSfqsUECRGqHpAReDrX
piTVFK5IiixoAYFH2mq1glWD4bBZew9WkWWeReB5pRIYcE9OK0fjKzI1Y4kh
NjZYR144Cd+8GUioKqjh21cH397f90RHKVhQrVIWNjhgFa50uYTkagnXZsJi
v/p0Mv4sGtOIGgebE52nRD1H7jeji88NLfNKlQrOTDQq7J1lEprUzkIm+D4l
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

-->

</rfc>
