On Fri, Jan 26, 2018 at 06:02:00PM -0600, Ted Lemon wrote: > On Jan 26, 2018, at 5:03 PM, Viktor Dukhovni <ietf-d...@dukhovni.org> wrote: > > Multiple participants in this discussion have pointed out that such > > queries are rare. > > Sigh. Yes, such queries are rare. The things that make those queries > are the things that are vulnerable. That such queries are rare is further > evidence that responding to them when they come with NXDOMAIN is a safe > choice to make.
Protecting the residual cases is already covered by the draft's requirement on the platform's resolution library to short-circuit "localhost". There is no need to impose a mandate to break these cases on the recursive resolver. > > And, we must not forget that, absent local > > overrides, the iterative resolvers are *already* returning NXDomain, > > because the authoritative data from the root returns NXDomain. > > That's a good point, of course. However, I think we heard in the > discussion prior to adoption that this is not in fact the default behavior > for all recursive resolvers. Once more, *absent local overrides*, all resolvers are already returning NXDomain. Many resolvers don't have local overrides, some do. > > Yes. Keep the MUST for the platform library. Downgrade the MUST for > > the iterative resolver to a SHOULD (absent local data), and either > > exempt DNSSEC or explain why "bogus" local NXDomain is better than > > a cacheable validated NXDomain from the roots. > > How about if it says "SHOULD" but explains what the exception is, and > strongly advocates the position that only when that exception is applicable > should this be treated as optional behavior. Sure. The main exception is when the resolver is serving only loopback clients. And I am not opposed to text that discourages "shared" recursive resolvers from serving local data for "localhost". What remains then beyond recommending NXDomain for non-DNSSEC queries, is a well-reasoned recommendation for what to do with DNSSEC queries (DO bit). My recommendation, as mentioned a few times upthread, is to cache and serve the root zone's validated NXDomain. > I would say that the exception is "when answering queries for the local > host" or something, but I don't understand the intricacies of your use > case sufficiently to know what would satisfy it. I thought I understood > your use case to be the case where the stub resolver is on the same host > as the recursive resolver, but I may have misunderstood. "Whitelisting" loopback resolvers is largely sufficient, provided that the language is changed from MUST to SHOULD. On Sat, Jan 27, 2018 at 12:56:23PM -0500, Warren Kumari wrote: > > And, we must not forget that, absent local > > overrides, the iterative resolvers are *already* returning NXDomain, > > because the authoritative data from the root returns NXDomain. > > ... do they? Definitely, *absent local overrides"*. > Google Public DNS: > $ dig +dnssec localhost @8.8.8.8 > ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 62555 Google has no such overrides. And yet, localhost queries continue, so NXDomain responses are not proving to be an effective motivation to short-circuit the issue upstream. > Verisign Public DNS: > $ dig +dnssec localhost @64.6.64.6 > ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8025 > ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 > ;; ANSWER SECTION: > localhost. 10687 IN A 127.0.0.1 > > Quad9: > $ dig +dnssec localhost @9.9.9.9 > ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22677 > ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 > ;; ANSWER SECTION: > localhost. 86170 IN A 127.0.0.1 > > OpenDNS: > dig +dnssec localhost @208.67.222.222 > ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14156 > ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 > ;; ANSWER SECTION: > localhost. 604800 IN A 127.0.0.1 Verisign, Quad9 and OpenDNS do have the traditional "local overrides". Perhaps when they become aware of this draft, they'll drop the override zone, or perhaps they'll leave the short-circuit decision to the platform library maintainers. Time will tell. In summary I see the following actions to move this forward: - Encourage (SHOULD) recursive resolvers to not serve local data for localhost, except perhaps when the resolver is a loopback only resolver. - Encourage (SHOULD) recursive resolvers that don't have local data for localhost to short-circuit insecure (no DO bit) localhost A/AAAA queries with NXDomain without forwarding these upstream to the roots. - Suggest that rather than returning "bogus" NXDomain responses, secure (DO bit set) queries should get secure NXDomain responses (thus forwarded to the root servers and cached). -- Viktor. _______________________________________________ DNSOP mailing list DNSOP@ietf.org https://www.ietf.org/mailman/listinfo/dnsop