Martin Thomson wrote:
+1 to this.

And maybe there is an outcome that doesn't need this parameter.  I
probably misunderstood some of the expectations people have for the
parameter.  With the benefit of time and sleep, it's possible that I
now understand the disconnect.

My model of content-type - and by extension its parameters - is of a
description of the content.  However, it appears as though at least
some people had different uses for the parameter: for requests, it
would be an instruction/suggestion to the server to make a DNS request
using the identified transport; for responses, it would be a
description of where the DNS request came from.

my original design added an http header, which was seen as even worse. someone suggested adding to the content-type, and i went along with it even though there is no difference in actual type of actual content.

I never considered that interpretation, but - assuming that this is
what it was - and the intent was to provide a means for the client to
control how the server makes requests (and to see how they were made).
In that case, I have a possible alternative design for the use case in
the dnsop draft.

Right now, DOH doesn't really say how a DNS API Server gets its
responses.  It could be that the API server is part of a resolver, or
it could be that the DNS API Server makes a request to another
resolver.  But specific uses of the DOH protocol could come with
additional constraints that would enable the use cases in the dnsop
draft, at least as I understand them.

this all sounds good to me.

If the goal of the dnsop draft is to extend the reach of a DNS client
(note: not a DNS API client) across a network that is in some way less
hostile to HTTP than it is to DNS, then I think that it can still use
DOH.  A DNS API server could be configured to operate in a very simple
mode with no caching, just direct transposition of a request from HTTP
to a request on UDP or TCP.  A DNS client could be configured with two
DNS API clients.  Each client uses a different DNS API Server
endpoint.  Those endpoints would be specifically configured to use
only UDP or TCP.

For instance:
https://use.only/tcp{?dns} would cause the server to make a request using TCP.
https://use.only/udp{?dns} would cause the server to make a request using UDP.

At this point, this is simple DOH, but with extra contextual
information about server operation.

i am generally supportive of this approach; in fact i wish i'd thought of it. the specifics will be different, as in:


but i agree that encoding the original transport in the URI is better than either extending the content-type or adding another http header.


i object, as before, to "dns-udpwireformat" as a name. these are dns messages, which when carried by udp are raw, and when carried in tcp are preceded by a two-octet length indicator for framing of multiple messages sharing the same stream. so, the string to be registered should be "dns-message".

P Vixie

DNSOP mailing list

Reply via email to