diff --git a/draft-ietf-core-dns-over-coap.html b/draft-ietf-core-dns-over-coap.html index a38d0ef..f6c6fae 100644 --- a/draft-ietf-core-dns-over-coap.html +++ b/draft-ietf-core-dns-over-coap.html @@ -17,22 +17,22 @@ Environments (OSCORE) to provide encrypted DNS message exchange for constrained devices in the Internet of Things (IoT). " name="description"> - + @@ -1033,11 +1033,11 @@ Internet-Draft DoC -March 2024 +June 2024 Lenders, et al. -Expires 23 September 2024 +Expires 22 December 2024 [Page] @@ -1050,12 +1050,12 @@
draft-ietf-core-dns-over-coap-latest
Published:
- +
Intended Status:
Standards Track
Expires:
-
+
Authors:
@@ -1119,7 +1119,7 @@

time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

- This Internet-Draft will expire on 23 September 2024.

+ This Internet-Draft will expire on 22 December 2024.

-
+

3. Selection of a DoC Server @@ -1443,14 +1451,58 @@

[RFC9176], DHCP or Router Advertisement options [RFC9463] or discovery of designated resolvers [RFC9462]. Automatic configuration SHOULD only be done from a trusted source.

-

Support for SVCB Resource Records [RFC9460], [RFC9461] or DNR Service Parameters [RFC9463] -are not specified in this document. -[I-D.lenders-core-dnr] explores solutions for CoAP for these mechanisms.

-

When discovering the DNS resource through a link mechanism that allows describing a resource type +

When discovering the DNS resource through a link mechanism that allows describing a resource type (e.g., the Resource Type Attribute in [RFC6690]), the resource type "core.dns" can be -used to identify a generic DNS resolver that is available to the client.

-

While there is no path specified it is RECOMMENDED to use the root path "/" for the DNS resource to -keep the CoAP requests small.

+used to identify a generic DNS resolver that is available to the client.

+

While there is no path specified for the DoC resource, it is RECOMMENDED to use the root path "/" +to keep the CoAP requests small.

+
+
+

+3.1. Discovery using SVCB Resource Records or DNR +

+

A DoC server can also be discovered using SVCB Resource Records (RR) [RFC9460], [RFC9461] or DNR +Service Parameters [RFC9463]. +[TBD: draft-lenders-core-coap-dtls-svcb] provides solutions +to discover CoAP over (D)TLS servers using the "alpn" SvcParam. +[I-D.lenders-core-dnr] provides a problem statement for service bindings discovery for OSCORE and EDHOC. +This document specifies "docpath" as +a single-valued SvcParamKey whose value MUST be a CBOR sequence of 0 or more text strings (see +[RFC8949]), delimited by length (in total octets) for the the SvcParamValue field. If the +SvcParamValue ends within a CBOR text string, the SVCB RR MUST be considered as malformed. +As a text format, e.g., in DNS zone files, the CBOR diagnostic notation (see Section 8 of [RFC8949]) +of that CBOR sequence can be used.

+

Note, that this specifically does not surround the text string sequence with a CBOR array or similar +CBOR data item. This path format was chosen to coincide with the path representation in CRIs +([I-D.ietf-core-href]). Furthermore, it is easily transferable into a sequence of CoAP Uri-Path options by +mapping the initial byte of any present CBOR text string (see [RFC8949], Section 3) into the Option +Delta and Option Length of the CoAP option, provided these CBOR text strings are all of a length +between 0 and 12 octets (see [RFC7252], Section 3.1). Likewise, it can be transfered into a URI +path-abempty form (see [RFC3986], Section 3.3) by replacing the initial byte of any present CBOR text +string with the "/" character, provided these CBOR text strings are all of a length lesser than 24 +octets and do not contain bytes that need escaping.

+

To use the service binding from a SVCB RR, the DoC client MUST send any DoC request to the CoAP +resource identifier constructed from the SvcParams including "docpath". A rough construction +algorithm could be as follows, going through the provided records in order of their priority. +- If the "alpn" SvcParam value for the service is "coap", construct a CoAP request for CoAP over TCP, + if it is "co", construct one for CoAP over DTLS. +- The destination address for the request should be taken from additional information about the + target, e.g. from an AAAA record associated to the target or from am "ipv6hint" SvcParam value, + or, as a fallback, by querying an address for the queried host name of the SVCB record. +- The destination port for the address is taken from the "port" SvcParam value, if present. + Otherwise, take the default port of the CoAP transport. +- Set the queried host name of SVCB record in the URI-Host option. +- For each element in the CBOR sequence of the "docpath" SvcParam value, add a Uri-Path option to + the request. +- If a "port" SvcParam value is provided or if a port was queried, and if either differs from either + the default port of the transport or the destination port selected above, set that port in the + URI-Port option. +- If this request receives a response, use that for future DoC queries, until it becomes + unreachable. If not, or if it becomes unreachable, repeat with the SVCB record with the next + highest priority.

+

A more generalized construction algorithm can be found in [I-D.ietf-core-transport-indication].

+
+

@@ -1801,24 +1853,53 @@

IANA is requested to assign CoAP Content-Format ID for the DNS message media type in the "CoAP Content-Formats" sub-registry, within the "CoRE Parameters" registry [RFC7252], corresponding to the "application/dns-message" media -type from the "Media Types" registry (see [RFC8484])

-

Content Type: application/dns-message

-

Content Coding: -

+type from the "Media Types" registry:

+

Media-Type: application/dns-message

+

Encoding: -

Id: 553 (suggested)

-

Reference: [RFC8484][TBD-this-spec]

+

Reference: [TBD-this-spec]

-
+
+

+9.2. New "docpath" SVCB Service Parameter +

+

This document adds the following entry to the SVCB Service Parameters +registry ([RFC9460]). The definition of this parameter can be found in Section 3.

+ + + + + + + + + + + + + + + + + + +
Table 1
NumberNameMeaningReference
9 (suggested)docpathDNS over CoAP resource path[TBD-this-spec] Section 3 +
+
+
+
+

-9.2. New "core.dns" Resource Type +9.3. New "core.dns" Resource Type

-

IANA is requested to assign a new Resource Type (rt=) Link Target Attribute, "core.dns" in the +

IANA is requested to assign a new Resource Type (rt=) Link Target Attribute, "core.dns" in the "Resource Type (rt=) Link Target Attribute Values" sub-registry, within the "CoRE Parameters" -register [RFC6690].

-

Attribute Value: core.dns

-

Description: DNS over CoAP resource.

-

Reference: [TBD-this-spec] Section 3

+register [RFC6690].

+

Attribute Value: core.dns

+

Description: DNS over CoAP resource.

+

Reference: [TBD-this-spec] Section 3

@@ -1869,6 +1950,10 @@

Selander, G., Mattsson, J., Palombini, F., and L. Seitz, "Object Security for Constrained RESTful Environments (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, , <https://www.rfc-editor.org/rfc/rfc8613>.
+
[RFC8949]
+
+Bormann, C. and P. Hoffman, "Concise Binary Object Representation (CBOR)", STD 94, RFC 8949, DOI 10.17487/RFC8949, , <https://www.rfc-editor.org/rfc/rfc8949>.
+
[RFC9147]
Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", RFC 9147, DOI 10.17487/RFC9147, , <https://www.rfc-editor.org/rfc/rfc9147>.
@@ -1892,7 +1977,11 @@

[I-D.ietf-core-href]
-Bormann, C. and H. Birkholz, "Constrained Resource Identifiers", Work in Progress, Internet-Draft, draft-ietf-core-href-14, , <https://datatracker.ietf.org/doc/html/draft-ietf-core-href-14>.
+Bormann, C. and H. Birkholz, "Constrained Resource Identifiers", Work in Progress, Internet-Draft, draft-ietf-core-href-15, , <https://datatracker.ietf.org/doc/html/draft-ietf-core-href-15>.

+
+
[I-D.ietf-core-transport-indication]
+
+Amsüss, C. and M. S. Lenders, "CoAP Transport Indication", Work in Progress, Internet-Draft, draft-ietf-core-transport-indication-05, , <https://datatracker.ietf.org/doc/html/draft-ietf-core-transport-indication-05>.
[I-D.lenders-core-dnr]
diff --git a/draft-ietf-core-dns-over-coap.txt b/draft-ietf-core-dns-over-coap.txt index 8c34a73..da3b262 100644 --- a/draft-ietf-core-dns-over-coap.txt +++ b/draft-ietf-core-dns-over-coap.txt @@ -5,14 +5,14 @@ CoRE M. S. Lenders Internet-Draft TU Dresden Intended status: Standards Track C. Amsüss -Expires: 23 September 2024 +Expires: 22 December 2024 C. Gündoğan Huawei Technologies T. C. Schmidt HAW Hamburg M. Wählisch TU Dresden & Barkhausen Institut - 22 March 2024 + 20 June 2024 DNS over CoAP (DoC) @@ -53,7 +53,7 @@ Status of This Memo time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." - This Internet-Draft will expire on 23 September 2024. + This Internet-Draft will expire on 22 December 2024. Copyright Notice @@ -74,6 +74,7 @@ Table of Contents 1. Introduction 2. Terminology 3. Selection of a DoC Server + 3.1. Discovery using SVCB Resource Records or DNR 4. Basic Message Exchange 4.1. The "application/dns-message" Content-Format 4.2. DNS Queries in CoAP Requests @@ -95,7 +96,8 @@ Table of Contents 8. Security Considerations 9. IANA Considerations 9.1. New "application/dns-message" Content-Format - 9.2. New "core.dns" Resource Type + 9.2. New "docpath" SVCB Service Parameter + 9.3. New "core.dns" Resource Type 10. References 10.1. Normative References 10.2. Informative References @@ -209,18 +211,69 @@ Table of Contents [RFC9463] or discovery of designated resolvers [RFC9462]. Automatic configuration SHOULD only be done from a trusted source. - Support for SVCB Resource Records [RFC9460], [RFC9461] or DNR Service - Parameters [RFC9463] are not specified in this document. - [I-D.lenders-core-dnr] explores solutions for CoAP for these - mechanisms. - When discovering the DNS resource through a link mechanism that allows describing a resource type (e.g., the Resource Type Attribute in [RFC6690]), the resource type "core.dns" can be used to identify a generic DNS resolver that is available to the client. - While there is no path specified it is RECOMMENDED to use the root - path "/" for the DNS resource to keep the CoAP requests small. + While there is no path specified for the DoC resource, it is + RECOMMENDED to use the root path "/" to keep the CoAP requests small. + +3.1. Discovery using SVCB Resource Records or DNR + + A DoC server can also be discovered using SVCB Resource Records (RR) + [RFC9460], [RFC9461] or DNR Service Parameters [RFC9463]. [TBD: + draft-lenders-core-coap-dtls-svcb] provides solutions to discover + CoAP over (D)TLS servers using the "alpn" SvcParam. + [I-D.lenders-core-dnr] provides a problem statement for service + bindings discovery for OSCORE and EDHOC. This document specifies + "docpath" as a single-valued SvcParamKey whose value MUST be a CBOR + sequence of 0 or more text strings (see [RFC8949]), delimited by + length (in total octets) for the the SvcParamValue field. If the + SvcParamValue ends within a CBOR text string, the SVCB RR MUST be + considered as malformed. As a text format, e.g., in DNS zone files, + the CBOR diagnostic notation (see Section 8 of [RFC8949]) of that + CBOR sequence can be used. + + Note, that this specifically does not surround the text string + sequence with a CBOR array or similar CBOR data item. This path + format was chosen to coincide with the path representation in CRIs + ([I-D.ietf-core-href]). Furthermore, it is easily transferable into + a sequence of CoAP Uri-Path options by mapping the initial byte of + any present CBOR text string (see [RFC8949], Section 3) into the + Option Delta and Option Length of the CoAP option, provided these + CBOR text strings are all of a length between 0 and 12 octets (see + [RFC7252], Section 3.1). Likewise, it can be transfered into a URI + path-abempty form (see [RFC3986], Section 3.3) by replacing the + initial byte of any present CBOR text string with the "/" character, + provided these CBOR text strings are all of a length lesser than 24 + octets and do not contain bytes that need escaping. + + To use the service binding from a SVCB RR, the DoC client MUST send + any DoC request to the CoAP resource identifier constructed from the + SvcParams including "docpath". A rough construction algorithm could + be as follows, going through the provided records in order of their + priority. - If the "alpn" SvcParam value for the service is "coap", + construct a CoAP request for CoAP over TCP, if it is "co", construct + one for CoAP over DTLS. - The destination address for the request + should be taken from additional information about the target, e.g. + from an AAAA record associated to the target or from am "ipv6hint" + SvcParam value, or, as a fallback, by querying an address for the + queried host name of the SVCB record. - The destination port for the + address is taken from the "port" SvcParam value, if present. + Otherwise, take the default port of the CoAP transport. - Set the + queried host name of SVCB record in the URI-Host option. - For each + element in the CBOR sequence of the "docpath" SvcParam value, add a + Uri-Path option to the request. - If a "port" SvcParam value is + provided or if a port was queried, and if either differs from either + the default port of the transport or the destination port selected + above, set that port in the URI-Port option. - If this request + receives a response, use that for future DoC queries, until it + becomes unreachable. If not, or if it becomes unreachable, repeat + with the SVCB record with the next highest priority. + + A more generalized construction algorithm can be found in + [I-D.ietf-core-transport-indication]. 4. Basic Message Exchange @@ -500,18 +553,32 @@ Table of Contents IANA is requested to assign CoAP Content-Format ID for the DNS message media type in the "CoAP Content-Formats" sub-registry, within the "CoRE Parameters" registry [RFC7252], corresponding to the - "application/dns-message" media type from the "Media Types" registry - (see [RFC8484]) + "application/dns-message" media type from the "Media Types" registry: - Content Type: application/dns-message + Media-Type: application/dns-message - Content Coding: - + Encoding: - Id: 553 (suggested) - Reference: [RFC8484][TBD-this-spec] + Reference: [TBD-this-spec] + +9.2. New "docpath" SVCB Service Parameter + + This document adds the following entry to the SVCB Service Parameters + registry ([RFC9460]). The definition of this parameter can be found + in Section 3. + + +===============+=========+===============+=================+ + | Number | Name | Meaning | Reference | + +===============+=========+===============+=================+ + | 9 (suggested) | docpath | DNS over CoAP | [TBD-this-spec] | + | | | resource path | Section 3 | + +---------------+---------+---------------+-----------------+ -9.2. New "core.dns" Resource Type + Table 1 + +9.3. New "core.dns" Resource Type IANA is requested to assign a new Resource Type (rt=) Link Target Attribute, "core.dns" in the "Resource Type (rt=) Link Target @@ -571,6 +638,11 @@ Table of Contents (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, . + [RFC8949] Bormann, C. and P. Hoffman, "Concise Binary Object + Representation (CBOR)", STD 94, RFC 8949, + DOI 10.17487/RFC8949, December 2020, + . + [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, @@ -596,9 +668,16 @@ Table of Contents [I-D.ietf-core-href] Bormann, C. and H. Birkholz, "Constrained Resource Identifiers", Work in Progress, Internet-Draft, draft- - ietf-core-href-14, 9 January 2024, + ietf-core-href-15, 21 April 2024, + . + + [I-D.ietf-core-transport-indication] + Amsüss, C. and M. S. Lenders, "CoAP Transport Indication", + Work in Progress, Internet-Draft, draft-ietf-core- + transport-indication-05, 18 March 2024, . + transport-indication-05>. [I-D.lenders-core-dnr] Lenders, M. S., Amsüss, C., Schmidt, T. C., and M. diff --git a/index.html b/index.html index c0ebbb2..160973a 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@

Preview for branch svcb-docpath

DoC plain text - diff with main + same as main