@@ -42,16 +42,16 @@ specified in the question section of a DNS QUERY (OpCode=0).
4242
4343# Introduction
4444
45- A commonly requested DNS {{!RFC1035 }} feature is the ability to receive
45+ A commonly requested DNS {{!STD13 }} feature is the ability to receive
4646multiple related resource records (RRs) in a single DNS response.
4747
4848For example, it may be desirable to receive the A, AAAA and HTTPS
4949records for a domain name together, rather than having to issue
5050multiple queries.
5151
5252The DNS wire protocol in theory supported having multiple questions in a
53- single packet, but in practise this does not work. In {{!RFC9619}},
54- {{! RFC1035}} is updated to only permit a single question in a QUERY
53+ single packet, but in practice this does not work. In {{!RFC9619}},
54+ {{RFC1035}} is updated to only permit a single question in a QUERY
5555(OpCode=0) request.
5656
5757Sending QTYPE=ANY does not guarantee that all RRsets will be returned.
@@ -61,10 +61,10 @@ their choosing.
6161This document provides a solution for those cases where only the QTYPE
6262varies by specifying a new option for the Extension Mechanisms for DNS
6363(EDNS {{!RFC6891}}) that contains an additional list of QTYPE values
64- that the client wishes to receive in addition to the single QTYPE
65- appearing in the question section. A different EDNS option is used in
66- response packets as protection against DNS middleboxes that echo EDNS
67- options verbatim.
64+ that the client wishes to receive in addition to the single
65+ QTYPE appearing in the question section. A different EDNS option is
66+ used in response packets as protection against DNS middleboxes that echo
67+ EDNS options verbatim.
6868
6969The specification described herein is applicable both for queries from a
7070stub resolver to recursive servers, and from recursive resolvers to
@@ -76,41 +76,44 @@ records in a single query.
7676
7777{::boilerplate bcp14-tagged}
7878
79- # Description
79+ # Specification
8080
8181# # Multiple QTYPE EDNS Options Format
8282
8383The overall format of an EDNS option is shown for reference below,
8484per {{!RFC6891}}, followed by the option specific data :
8585
86+ ~~~ aasvg
8687 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
8788 0 : | OPTION-CODE |
8889 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
8990 2: | OPTION-LENGTH |
9091 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
91- 4: | |
92+ 4: / /
9293 / OPTION-DATA /
9394 / /
9495 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
96+ ~~~
9597
9698OPTION-CODE : MQTYPE-Query (20) in queries and MQTYPE-Response (21) in responses.
9799
98100OPTION-LENGTH : Size (in octets) of OPTION-DATA.
99101
100102OPTION-DATA : Option specific, as below:
101103
102- +0 (MSB) +1 (LSB)
104+ ~~~ aasvg
103105 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
104- 0 : | QT1 (MSB) | QT1 (LSB) |
106+ 0 : | QT1 |
105107 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
106- 2: / ... | ... /
107- +---+---+---+---+---+---+---+---+ ---+---+---+---+---+---+---+---+
108- / QTn (MSB) | QTn (LSB) |
108+ 2: / ... /
109+ +---+---+---+---+---+---+---+---- ---+---+---+---+---+---+---+---+
110+ / QTn |
109111 +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
112+ ~~~
110113
111- QT : a (potentially empty) list of 2 byte fields (QTx) in network order
112- (MSB first) each specifying a DNS RRTYPE that must be for a data RRTYPE
113- as described in Section 3.1 of {{!RFC6895}}.
114+ A (potentially empty) list of 2-octet fields in network order (MSB
115+ first) each specifying a DNS RRTYPE that must be for a data RRTYPE as
116+ described in Section 3.1 of {{!RFC6895}}.
114117
115118# # Server Handling
116119
@@ -174,7 +177,7 @@ both requested at the parent side of a zone cut.
174177The server MUST attempt to combine the remaining individual RRs into the
175178same sections in which they would have appeared in a standalone query,
176179i.e. as if each combination had been "the question" per section 4.1 of
177- {{! RFC1035}}.
180+ {{RFC1035}}.
178181
179182The server MUST detect duplicate RRs and keep only a single copy of each
180183RR in its respective section. Duplicates can occur e.g. in the Answer
@@ -183,7 +186,7 @@ multiple QTYPEs don't exist, etc. Note that RRs can be legitimately
183186duplicated in different sections, e.g. for the (SOA, TYPE12345)
184187combination on apex where TYPE12345 is not present.
185188
186- Handling of an MQTYE -Query option MUST NOT itself trigger a truncated
189+ Handling of an MQTYPE -Query option MUST NOT itself trigger a truncated
187190response. If message size (or other) limits do not allow all of the
188191data obtained by querying for an additional QTx to be included in the
189192final response in their entirety (i.e. as complete RRsets) then the
@@ -255,12 +258,17 @@ QTx values specified and/or the resulting response size.
255258
256259# IANA Considerations
257260
258- IANA has assigned the following in the "DNS EDNS0 Option Codes (OPT)" registry :
261+ IANA has assigned the following in the "DNS EDNS0 Option Codes (OPT)"
262+ registry :
259263
260- | Value | Name | Status | Reference |
261- |-------+-----------------+----------+-----------|
264+ ~~~ aasvg
265+ +-------+-----------------+----------+-----------+
266+ | Value | Name | Status | Reference |
267+ +-------+-----------------+----------+-----------+
262268| 20 | MQTYPE-Query | Optional | RFC TBD |
263269| 21 | MQTYPE-Response | Optional | RFC TBD |
270+ +-------+-----------------+----------+-----------+
271+ ~~~
264272
265273# Acknowledgements
266274{:numbered="false"}
0 commit comments