I have reviewed the document. In general, it is well written and ready to be 
advanced, though there are some nits that the authors should review and 

Section 1: Not sure why Stateful is capitalized in the following line:
transport protocol.  Each Stateful operation is communicated in its

Section 2: You probably should update this to the text in 
https://tools.ietf.org/html/rfc8174 and update the references accordingly.

Section 3: Do you want to add anything about Section 6 (and perhaps later 

Section (and perhaps other places similar text exists): When a 
connection is aborted because of an invalid message, is there any 
recommendation to be added about retrying? If the client terminates the 
connection, it would likely not be wise for it to immediately retry and repeat 
the operation as that can lead to an endless loop? Should some recommended 
backoff technique be provided? Or some other connection rate limiting warning?

Section 4.2.3, last paragraph: What should happen if a EDNS(0) TCP Keepalive 
option does appear? Should the connection be terminated? The message ignored?

Section 4.3: first paragraph: This text kind of conflicts with the text in 
4.2.1 which says that whether a message is acknowledge or unacknowledged is 
determined only by the specification for the Primary TLV. I understand this may 
not be worth addressing, but perhaps a reference to 4.2.1 is worth considering?

Section 6.1: INACTIVITY TIMEOUT and KEEPALIVE INTERVAL. Is mention 0xffffffff 
(infinite) worth adding to this text?


The Keepalive TLV is not used as a request message Additional TLV.
Would “MUST NOT be used” be better?


A Keepalive TLV MUST NOT be added as to other responses a Response
I think “as” should be removed.

Section 6.2: I would assume 0xfffffff would not mean infinite.

Section 6.2.1: If a client were to receive a new RCODE but does not understand 
it (older version), should there be a statement as to how the client should 
react? Should it treat the unknown error code as if NOERROR were sent?

Section 9: Seems a bit light, but OK if it ends up being acceptable. For 
example, while it probably means you have bigger problems, but large timer 
values (such as in the Retry Delay TLV) could be a denial of service vector. 
Though if the server does that, it probably isn’t who you wanted to be talking 
to anyway and you should have used TLS.

Perhaps also saying that if DNS over TLS isn’t used (just plan TCP), then it 
may be possible for a man-in-the-middle to inject messages (such as with a 
large Retry Delay TLV)?

Again, nothing that likely MUST be fixed.

  *   Bernie
DNSOP mailing list

Reply via email to