Catching up on this thread, I agree with Ben Schwartz, Tommy Pauly, and Eric Orth that the current behavior makes sense and that no fundamental technical change is needed. No matter what we do, odd faults and misconfigurations will happen and Postel's law applies. Client implementers will try and be liberal with what they accept (as long as doing so doesn't introduce security issues, such as if you know you have bad data), and even then some client implementers may ignore this and still try to be robust.
On the "how to sell this behavior", beyond giving client implementers the ability to be robust, there will be clients not implementing SVCB/HTTPS RRs behavior for a long time to come, so fallbacks will be needed for a long time. HTTPS RR in particular is specified as SVCB-optional. I think some confusion keeps coming from a desire to think of AliasMode SVCB RRs as "CNAMEs that can live at the apex" which they are not, even if they can help solve that problem. Brian, if I understand it right your 301 redirect approach seems like a reasonable way to address the fallback and legacy client case (and as clients pick this up the need for those redirects should decrease). On paths forward on the draft as it stands to clarify without making significant technical changes (which I don't think are necessary): * Are there particular clarifications we can/should add to help make the current behavior more clear to readers? For example, would having some examples of the failure cases (without changing the semantics) help? Note that since the fallback behavior is a SHOULD not a MUST for clients, it can't necessarily be relied upon. * This might be too much of a technical change at this point, but would it make sense to change the SHOULD to a MAY on client fallback behavior? Clients implementations may choose to ignore the SHOULD so this doesn't change the contract. * For the rfc1123 section 2 topic, it may make sense to clarify the text to say "domain name" rather than "hostname": > An "alternative endpoint" is a hostname, port number, and other > associated instructions to the client on how to reach an instance > of service. Everywhere else in the normative sections such as 1.2 and 2.1 we say that the TargetName is a "domain name" (aligned with the clarification in rfc8499 on the difference between host and domain names). On the rfc1123s2 front. a corner-case that might be encountered is that Proxies might be confused by "When connecting using a SVCB record, clients MUST provide the final TargetName and port to the proxy" in the case where proxies don't expect a domain name (eg, with an underscore prefix). I don't know if there is any warning we should provide about this corner-case, or cover that in the future if it turns out to be a problem? For the future, there are subsequent drafts that could be introduced: * We could add an optional "nofallback" SvcParam to AliasMode as Brian suggests, but in a future draft. (This would be the first SvcParam on AliasMode, but they are allowed and introducing them might help prevent ossification of this extension point.) * Introducing an optional "Alt-Used" equivalent (eg, "Service-Used") that provides information about the SVCB/HTTPS RR path followed would be very useful to service operators. We got stuck on not finding the right content vs privacy balance here, and experience with Alt-Used is that not all clients will implement it regardless. But if we had this and got enough clients to implement then it could help address some of Brian's concerns about getting better visibility in the fallback case. (eg, "Service-Used: type=fallback" as an HTTP header) Erik
_______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop