From 9e24213999980e2a0981fd862211081cfddd11f8 Mon Sep 17 00:00:00 2001 From: Martine Lenders Date: Tue, 18 Jun 2024 17:44:49 +0200 Subject: [PATCH] fixup! Add "docpath" SVCB ParamKey definition --- draft-ietf-core-dns-over-coap.md | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/draft-ietf-core-dns-over-coap.md b/draft-ietf-core-dns-over-coap.md index f34f66a..48fbc9a 100644 --- a/draft-ietf-core-dns-over-coap.md +++ b/draft-ietf-core-dns-over-coap.md @@ -71,6 +71,7 @@ informative: RFC9462: ddr RFC9463: dnr I-D.ietf-core-href: cri + I-D.ietf-core-transport-indication: transport-indication I-D.amsuess-core-cachable-oscore: cachable-oscore DoC-paper: DOI.10.1145/3609423 @@ -186,6 +187,10 @@ When discovering the DNS resource through a link mechanism that allows describin (e.g., the Resource Type Attribute in {{-core-link-format}}), 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 for the DoC resource, it is RECOMMENDED to use the root path "/" +to keep the CoAP requests small. + +### Discovery using SVCB Resource Records or DNR A DoC server can also be discovered using SVCB Resource Records (RR) {{-svcb}}, {{-svcb-dns}} or DNR Service Parameters {{-dnr}}. \[TBD: draft-lenders-core-coap-dtls-svcb\] provides solutions @@ -207,11 +212,23 @@ string with the "/" character, provided these CBOR text strings are all of a len octets. 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" as described in \[TBD: -draft-lenders-core-coap-dtls-svcb\]. - -While there is no path specified for the DoC resource, it is RECOMMENDED to use the root path "/" -to keep the CoAP requests small. +resource identifier constructed from the SvcParams including "docpath". A rough construction +algorithm could be as follows. +- 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. + +A more generalized construction algorithm can be found in {{-transport-indication}}. Basic Message Exchange ======================