> On 17 Apr 2020, at 20:19, Alessandro Ghedini <alessan...@ghedini.me> wrote: > > Hello, > > First off, I have started implementing support for SVCB and HTTPSSVC as part > of > the dnspython library [0] and I'd be interested in doing some interop testing > with other people's implementations. > > I also have a few comments/questions about the draft, apologies if they have > already been discussed in the past (haven't been following the draft from the > start). > > 1. For interop testing purposes it would be very helpful if the draft listed > commonly agreed upon code-points for the new RR types. Ideally in the form of > an > official early assignment from IANA,
Lets wait until we are certain that the format will not change. Every time I’ve updated the branch there has been a non backwards compatible change. > but if that's not possible picking a couple > of codepoints at random from the "private use" range would also be helpful. In > my implementation I'm currently using "65481" for SVCB and "65482" for > HTTPSSVC. BIND’s implementation is available at: https://gitlab.isc.org/isc-projects/bind9/-/merge_requests/2135 > 2. The structure of the draft is a bit odd, as it lists a bunch of examples > before introducing any of the records. This was a bit confusing to me, so I'd > suggest moving sections 1.5 and 1.6 _before_ the examples (that is, > immediately > after the introduction). It might also be a good idea to just move the > examples > to an Appendix instead. > > 3. Would it make sense to move the ESNI/ECHO config paramenter to the > ESNI/ECHO > draft instead? This way the DNS draft wouldn't need to depend on the ESNI > draft > (so e.g. if ESNI ends up taking longer, this draft could be published without > having to wait for it). > > 4. What is the point of differentiating between AliasForm and ServiceForm? > Like, > couldn't the draft just say that the SvcFieldValue is an optional field and be > done with that? It seems like not having to explicitly differentiate the two > cases would simplify the draft a bit without sacrificing much, though I might > be missing something. > > 5. Section 2.1.1 says > > The presentation format for SvcFieldValue is a whitespace-separated > list of elements representing a key-value pair, with an absent value > or "=" indicating an empty value. > > It took me longer than I'd like to admit to understand the "with an absent > value > or "=" indicating an empty value" part. I'd suggest rewording that paragraph > to > something like: > > The presentation format for SvcFieldValue is a whitespace-separated list of > key=value pairs (e.g. "key123=value1 keys456=value2"). When the value, or > both the value and the "=" are omitted, the value should be interpreted as > being empty. > > Or something better :) > > 6. In Section 2.2 it says (in reference to param field values): > > o an octet string of the length defined by the previous field. > > It might be good to say here that the format of this octet string is defined > according to the corresponding SvcParamKey, and then reference section 6 for > ths currently defined keys. The same applies for section 2.1.1 for the > presentation format. > > 7. Section 4.3 says: > > All DNS servers SHOULD treat the SvcParam portion of the SVCB RR... > > Should it be SvcFieldValue instead of SvcParam? "SvcParam" is not mentioned > anywhere else. > > 8. Maybe I'm missing something, but the following sentence in Section 6.4 > seems > wrong: > > When SvcDomainName is ".", server operators SHOULD NOT include these hints, > because they are unlikely to convey any performance benefit. > > My understanding is that ipv4hint and ipv6hint are the way to solve the ESNI > multi-CDN problem, so let's say I have "www.example.net" that CNAMEs to both > "cname.cdn-a.example" and "cname.cdn-b.example". A client queries both A and > HTTPSVC concurrently for "www.example.net", and receives two answers (the > answer > to the A query points to CDN A, while the answer to HTTPSSVC points to CDN B): > > www.xample.net 3600 IN CNAME cname.cdn-a.example > cname.cdn-a.example 3600 IN A 192.0.2.1 > > and > > www.xample.net 3600 IN CNAME cname.cdn-b.example > cname.cdn-b.example 3600 IN HTTPSSVC 1 . alpn=h3 esniconfig="..." > > My understanding is that in this case the client could end up connecting to > 192.0.2.1 (CDN A) with CDN B's ESNI config (or e.g. with the wrong ALPN). So > if > the server doesn't provide IP hints there would indeed be impact on > performance > because the client would just straight up fail to connect initially (e.g. > maybe > CDN A doesn't support HTTP/3, but CDN B's HTTPSSVC says the client can use it, > or just because of the wrong ESNI config). > > Long story short, I don't think the text should discourage setting ipv4hint > and > ipv6hint here. I get that it's SHOULD NOT and not MUST NOT, but it's pretty > confusing nevertheless. > > 9. Speaking of multi-CDN, AFAICT the problem is mentioned only once in the > whole > draft and only in relation to ESNI. However this is not ESNI-specific and also > affects e.g. HTTP/3 as per the example above. So I think it would be useful to > go into a little more detail on this. > > 10. Section B.2: s/pther/other/ > > Cheers > > [0] https://github.com/rthalley/dnspython/pull/452 > > _______________________________________________ > DNSOP mailing list > DNSOP@ietf.org > https://www.ietf.org/mailman/listinfo/dnsop -- Mark Andrews, ISC 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: ma...@isc.org _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop