Ted,
        Those clarifications look good.

Thanks,
Tom


> On Aug 2, 2018, at 10:53 AM, Ted Lemon <mel...@fugue.com> wrote:
> 
> On Thu, Aug 2, 2018 at 9:54 AM, Benjamin Kaduk <ka...@mit.edu 
> <mailto:ka...@mit.edu>> wrote:
> > We specifically didn’t want to reference DoH since HTTP is unsuitable for 
> > long lived connections and DSO wouldn’t apply here. We didn’t want to imply 
> > that DoH was suitable by referencing it.
> 
> Hmm.  I think DoH is clearly a non-UDP transport for DNS, and it is hard to
> argue that it is not being specified.  My parenthetical suggestion was
> probably a bit unclear -- I was proposing to add DNS over HTTP to the list
> in the first sentence, and change the second sentence to start as "Some
> such transports can offer persistent[...]".  Does that still seem like it
> runs the risk of implying that DoH is suitable, to you?
> 
> Rr.   Okay, I agree with you and when I went to do this, it occurred to me 
> that we are being silly here—this document has no applicability section.   
> Adding one will really clean this up a lot.   So I've done that:
> 
> @@ -106,9 +106,11 @@ This document updates RFC 1035 by adding a new DNS 
> header opcode and result code
>  
>  # Introduction
>  
> -The use of transports for DNS other than UDP is being increasingly specified,
> -for example, DNS over TCP {{!RFC1035}} {{!RFC7766}} and DNS over TLS 
> {{?RFC7858}}.
> -Such transports can offer persistent, long-lived sessions and therefore when
> +This document specifies a mechanism for managing stateful DNS connections.
> +DNS most commonly operates over a UDP transport, but can also operate over
> +streaming transports; the original DNS RFC specifies DNS over TCP 
> {{!RFC1035}}
> +and a profile for DNS over TLS {{?RFC7858}} has been specified.
> +These transports can offer persistent, long-lived sessions and therefore when
>  using them for transporting DNS messages it is of benefit to have a mechanism
>  that can establish parameters associated with those sessions, such as 
> timeouts.
>  In such situations it is also advantageous to support server-initiated 
> messages
> @@ -399,43 +401,40 @@ and to assure client and server that they still have 
> connectivity to each other.
>  
>  ***
>  
> +# Applicability {#applicability}
> +
> +DNS Stateful Operations are applicable in cases where it is useful to 
> maintain an open session
> +between a DNS client and server, where the transport allows such a session 
> to be maintained, and
> +where the transport guarantees in-order delivery of messages, on which DSO 
> depends.  Examples of
> +transports that can support session signaling are DNS-over-TCP {{?RFC1035}} 
> {{?RFC7766}} and
> +DNS-over-TLS {{?RFC7858}}.
> +
> +Note that in the case of DNS over TLS, there is no mechanism for upgrading 
> from DNS-over-TCP
> +to DNS-over-TLS (see {{?RFC7858}} section 7).
> +
> +DNS Stateful Operations are not applicable for transports that cannot 
> support clean session
> +semantics, or that do not guarantee in-order delivery.   While in principle 
> such a transport
> +could be constructed over UDP, the current DNS specification over UDP 
> transport {{RFC1035}}
> +does not provide in-order delivery or session semantics, and hence cannot be 
> used..  Similarly,
> +DNS-over-HTTP {{?I-D.ietf-doh-dns-over-https}} cannot be used because HTTP 
> has its own
> +mechanism for managing sessions, and this is incompatible with the mechanism 
> specified here.
> +
> +No other transports are currently defined for use with DNS Stateful 
> Operations.  Such transports
> +can be added in the future, if they meet the requirements set out in the 
> first paragraph of this
> +section.
> +
>  # Protocol Details {#details}
>  
>  ## DSO Session Establishment {#establishment}
>  
> -DSO messages MUST NOT be carried in protocols and
> -environments where a session can't be established.   For example,
> -DNS over plain UDP {{?RFC0768}} is not appropriate since it does not provide
> -in-order message delivery, and, in the presence of NAT gateways and firewalls
> -with short UDP timeouts, it cannot provide a persistent bi-directional
> -communication channel unless an excessive amount of DSO keepalive traffic is 
> used.
> -UDP also doesn't provide a way to mark the start of a session and the end
> -of a session.
> -
> -At the time of publication, DSO is specified only
> -for DNS over TCP {{!RFC1035}} {{!RFC7766}}, and
> -for DNS over TLS over TCP {{?RFC7858}}.
> -Any use of DSO over some other connection technology needs to be
> -specified in an appropriate future document.
> -
> -Determining whether a given connection is using DNS over TCP, or DNS
> -over TLS over TCP, is outside the scope of this specification, and
> -must be determined using some out-of-band configuration information.
> -There is no provision within the DSO specification to
> -turn TLS on or off during the lifetime of a connection.
> -For service types where the service instance is discovered
> -using a DNS SRV record {{?RFC2782}},
> -the specification for that service type SRV name {{?RFC6335}}
> -will state whether the connection uses plain TCP, or TLS over TCP.
> -For example, the specification for the
> -"_dns‑push‑tls._tcp" service {{?I-D.ietf-dnssd-push}},
> -states that it uses TLS.
> -It is a common convention that protocols specified to run over TLS
> -are given IANA service type names ending in "‑tls" {{IANA-SRVNAMES}}.
> +In order for a session to be established between a client and a server, the 
> client must first
> +establish a connection to the server, using an applicable transport (see 
> {{applicability}}).
>  
>  In some environments it may be known in advance by external means
>  that both client and server support DSO, and in these cases either
> -client or server may initiate DSO messages at any time.
> +client or server may initiate DSO messages at any time.  In this
> +case, the session is established as soon as the connection is established;
> +this is referred to as implicit session establishment.
>  
>  However, in the typical case a server will not know in advance whether a
>  client supports DSO, so in general, unless it is known in advance by other 
> means
> @@ -443,10 +442,11 @@ that a client does support DSO, a server MUST NOT 
> initiate DSO request messages
>  or DSO unacknowledged messages
>  until a DSO Session has been mutually established
>  by at least one successful DSO request/response exchange
> -initiated by the client, as described below.
> -Similarly, unless it is known in advance by other means that a server
> -does support DSO, a client MUST NOT initiate
> -DSO unacknowledged messages until after a DSO Session has been mutually 
> established.
> +initiated by the client, as described below.   This is referred to as 
> explicit
> +session establishment.
> +
> +Until a DSO session has been implicitly or explicitly established, a client 
> MUST NOT initiate
> +DSO unacknowledged messages.
>  
>  A DSO Session is established over a connection by the client
>  sending a DSO request message, such as a DSO Keepalive request message 
> ({{keepalive}}),
>  
> > How about:
> > 
> > When a new TLV is defined, the specification MUST include whether the 
> > DSO-TYPE can be used as the Primary TLV, used as an Additional TLV, or used 
> > in either context for both requests and responses.
> 
> That's probably better (but maybe another comma before "for both requests
> and responses"?  OTOH, the RFC Editor has a consistent style book to
> apply...)
> 
> I updated the text to make it more generally imperative, and to be really 
> explicit about the point you're making rather than just hoping the comma will 
> be enough.  :)
> 
> Specifications that define new TLVs must specify whether the DSO-TYPE
> can be used as the Primary TLV, used as an Additional TLV, or used in either
> context, both in the case of requests and of responses.
> The specification for a TLV must also state whether,
> when used as the Primary (i.e., first) TLV in a DNS request message (i.e., 
> QR=0),
> that DSO message is to be acknowledged.
> If the DSO message is to be acknowledged, the specification
> must also state which TLVs, if any, are to be included in the response.
> The Primary TLV may or may not be contained in the response,
> depending on what is specified for that TLV.
> 
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to