@@ -70,7 +70,8 @@ The specification described herein is applicable both for queries from a
7070stub resolver to recursive servers, and from recursive resolvers to
7171authoritative servers. It does not apply to Multicast DNS queries
7272{{?RFC6762}}, which are already designed to allow requesting multiple
73- records in a single query.
73+ records in a single query, but is applicable to DNS-Based Service
74+ Discovery (DNS-SD) {{?RFC6763}}.
7475
7576# Terminology used in this document
7677
@@ -117,7 +118,7 @@ A list of 2-octet fields in network order (MSB first) each specifying a
117118DNS RRTYPE that must be for a data RRTYPE as described in Section 3.1 of
118119{{!RFC6895}}.
119120
120- # # Client Request Processing
121+ # # Client Request Generation
121122
122123DNS clients implementing this specification MUST generate packets that
123124conform to the server request parsing rules described immediately below.
@@ -172,7 +173,7 @@ processed.
172173After the initial response is prepared, the server MUST attempt to
173174combine the responses for individual (QNAME, QCLASS, QTx) combinations
174175into the response for the first query. If a recursive server does
175- not yet have those responses available it MUST first make appropriate
176+ not yet have those responses available it MAY first make appropriate
176177outbound queries to populate its caches.
177178
178179For each individual combination the server MUST evaluate the resulting
@@ -200,7 +201,7 @@ duplicated in different sections, e.g. for the (SOA, TYPE12345)
200201combination on apex where TYPE12345 is not present.
201202
202203Handling of an MQTYPE-Query option MUST NOT itself trigger a truncated
203- response. If message size (or other) limits do not allow all of the
204+ response. If response size (or other) limits do not allow all of the
204205data obtained by querying for an additional QTx to be included in the
205206final response in their entirety (i.e. as complete RRsets) then the
206207server MUST NOT include the respective QTx in the MQTYPE-Response
@@ -234,9 +235,9 @@ MUST treat the answer as invalid (equivalent to FORMERR).
234235
235236The Question section and the list of types present in the
236237MQTYPE-Response option indicates the list of (QNAME, QCLASS, qtypes)
237- combinations which are completely contained within the received
238- response. The answers to all query combinations share the same RCODE
239- and all other flags.
238+ combinations which are completely answered and contained within the
239+ received response. The answers to all query combinations share the same
240+ RCODE and all other flags.
240241
241242All RRs required by existing DNS specifications are expected to be
242243present in the respective sections of the DNS message, including proofs
@@ -254,13 +255,16 @@ produced by different signers.
254255Absence of QTx values which were requested by client but are not present
255256in the MQTYPE-Response option indicates that :
256257
257- - the server was unwilling to process the request (e.g. because a limit
258- was exceeded) , and/or
258+ - (for responses from recursive servers) that the server does not have
259+ any records for that QTx value in cache , and/or
259260
260261- the individual responses could not be combined into one message
261262because of RCODE or other flag mismatches, and/or
262263
263- - the message size limit would be exceeded
264+ - the server was unwilling to process the request (e.g. because a limit
265+ was exceeded), and/or
266+
267+ - the response size limit would be exceeded
264268
265269The client MUST subsequently initiate separate standalone queries for
266270all QTx values for which an answer is still required.
@@ -272,10 +276,15 @@ properties of the DNS protocol itself.
272276
273277It should however be noted that this method does increase the potential
274278amplification factor when the DNS protocol is used as a vector for a
275- denial of service attack.
276-
277- Implementors SHOULD allow operators to configure limits on the number of
278- QTx values specified and/or the resulting response size.
279+ denial of service attack. A further risk is being able to maliciously
280+ cause recursive servers to perform large amounts of additional work.
281+
282+ Implementors SHOULD therefore allow operators to configure limits on the
283+ number of QTx values specified and/or the resulting response size. The
284+ recommended values of those limits will depend on the environment in
285+ which this specification is used. In public DNS it is expected that a
286+ limit of four QTx values would be appropriate, but when used with DNS-SD
287+ or within private networks higher limits would be acceptable.
279288
280289# IANA Considerations
281290
0 commit comments