Skip to content

Commit e003409

Browse files
author
Ray Bellis
committed
first changes following AD review
1 parent 89e7c1d commit e003409

1 file changed

Lines changed: 30 additions & 22 deletions

File tree

‎draft-ietf-dnssd-multi-qtypes.md‎

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -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
4646
multiple related resource records (RRs) in a single DNS response.
4747

4848
For example, it may be desirable to receive the A, AAAA and HTTPS
4949
records for a domain name together, rather than having to issue
5050
multiple queries.
5151

5252
The 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

5757
Sending QTYPE=ANY does not guarantee that all RRsets will be returned.
@@ -61,10 +61,10 @@ their choosing.
6161
This document provides a solution for those cases where only the QTYPE
6262
varies 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

6969
The specification described herein is applicable both for queries from a
7070
stub 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

8383
The overall format of an EDNS option is shown for reference below,
8484
per {{!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

9698
OPTION-CODE: MQTYPE-Query (20) in queries and MQTYPE-Response (21) in responses.
9799

98100
OPTION-LENGTH: Size (in octets) of OPTION-DATA.
99101

100102
OPTION-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.
174177
The server MUST attempt to combine the remaining individual RRs into the
175178
same sections in which they would have appeared in a standalone query,
176179
i.e. as if each combination had been "the question" per section 4.1 of
177-
{{!RFC1035}}.
180+
{{RFC1035}}.
178181

179182
The server MUST detect duplicate RRs and keep only a single copy of each
180183
RR 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
183186
duplicated in different sections, e.g. for the (SOA, TYPE12345)
184187
combination 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
187190
response. If message size (or other) limits do not allow all of the
188191
data obtained by querying for an additional QTx to be included in the
189192
final 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

Comments
 (0)