Subject: [core] Feedback on DNS over CoAP - draft-lenders-dns-over-coap

From: Martine Sophie Lenders <[email-masked]>
Date: Wed, 1 Sep 2021 13:52:31 +0200

Dear CoRE-WG,

we would like to present our proposal for DNS over CoAP (DoC):

https://datatracker.ietf.org/doc/draft-lenders-dns-over-coap/

DoC allows for the sending of DNS messages over CoAP, using GET, POST,
and FETCH methods. Similar to DoH in the wider Internet, DoC aims for
providing encrypted DNS message exchange but for constrained IoT
devices, utilizing DTLS or OSCORE,

Comments on our proposal are very welcome! Specifically, we would like
to discuss the following items:

1. How should caching hints in DNS (TTL) relate to CoAP (Max-Age) and
vice versa? How should relative times be handled in general when using
caching [1]? Christian Amsüss previously kicked this discussion off on
the CoRE mailing list [2].

2. Should we only specify the usage of FETCH and abandon GET and POST in
DoC [3]?

   (a) GET introduces the disadvantage that all requested data (such as a
DNS query) needs to be carried within the URI, so block-wise transfer is
not possible. Additional overhead occurs since the data needs to be
converted into a URI format.

   (b) POST, on the other hand, does not allow for en-route caching of
successful responses. In contrast to HTTP, however, CoAP provides the
FETCH method, which allows for both adding data to the body of a request
and caching of successful responses.

   (c) There is one concern regarding FETCH. Various CoAP implementations
do not support FETCH [4] (maybe because FETCH was added later to CoAP).
This could hinder deployment of DoC or could lead DoC implementations
that are not spec-compliant, because implementers just use GET or POST
when FETCH is not available.

Looking forward to your feedback!

Thanks,
Martine
on behalf of the co-authors of draft-lenders-dns-over-coap

[1]https://github.com/anr-bmbf-pivot/draft-dns-over-coap/issues/5
[2]https://mailarchive.ietf.org/arch/msg/core/CzRQTARwPgIwJN0s_kmlLRCNMKY
[3]https://github.com/anr-bmbf-pivot/draft-dns-over-coap/pull/8
[4]https://coap.technology/impls.html

---

From: Carsten Bormann <[email-masked]>
Date: Wed, 1 Sep 2021 15:19:57 +0200

Hi Martine,

I’ll look at more details later, but have an immediate opinion on this one:

> On 1. Sep 2021, at 13:52, Martine Sophie Lenders <[email-masked]> wrote:
> 

CoAP implementations that do not support FETCH need to be fixed.
If applications were to wait until everyone has implemented FETCH, there never would be an application that uses FETCH, so there would be no need to implement it.

Since implementing FETCH is near trivial if you already have implemented POST, maybe getting a list of CoAP implementations that still don’t do FETCH and generating fixes for them would be a good parallel activity to standardising DoC.

Grüße, Carsten

---

From: Martine Sophie Lenders <[email-masked]>
Date: Wed, 1 Sep 2021 15:37:55 +0200

Hi Carsten,

Am 01.09.21 um 15:19 schrieb Carsten Bormann:
> [...]

I came prepared [1] (but did not want to include this table initially to 
not overwhelm everyone with the info dump ;-))! Our preliminary 
judgement call was that there are for the most part 2 types of CoAP 
implementations that are in that state: (1) who have a stale development 
status anyways (last change >1 year ago) or (2) where it is not needed 
fort the use-case anyways (e.g. wakaama). Of the one remaining, I agree 
with your proposal to generate fixes for FETCH support down the line.

Best Regards,
Martine

> Grüße, Carsten
[1] https://gist.github.com/miri64/48d83316afd1d5e600ed2ec0bbab3624