On Sunday, December 27, 2015 10:31:52 PM Paul Wouters wrote:
> The section in question of the draft under discussion talks about the
> specific case where a load balancer is returning REFUSED because it
> did not implement NS queries, and that such behaviour is a violation
> of the RFC.

strictly speaking, rfc's are guidelines, not to be violated or not, but only 
sometimes to be 
followed. an rfc guides sender behaviour and receiver interpretation. sometimes 
the 
receivers don't follow the interpretation guidelines, and so it is with 
REFUSED. REFUSED is 
considered by initiators to pertain to the specific 
<qname,qtype,qclass,clientIP,serverIP> and 
are not therefore dispositive toward the originating application. "not 
dispositive" means the 
iteration will continue, trying other serverIP's if any are known, and 
eventually returning 
SERVFAIL to the originating application if all servers known for this closest 
encloser refuse or 
fail or time out. in that sense REFUSED is underspecified since these semantics 
are the same 
as if the server returned SERVFAIL, except the time domain. that is, SERVFAIL 
pertains to the 
<qname,qtype,qclass,clientIP,serverIP,$now> and as such, a SERVFAIL response 
should only 
be cached for a limited period. REFUSED is "forever".

> Not implementing NS queries on an authoritative nameserver
> results in a DNS implementation that indeed violates the RFC. The question
> was, which part of which RFC is the best reference to point to.

"violates" is the wrong rubric. the signal is ambiguous as specified and even 
more ambiguous 
as widely implemented. so, first mover advantage was abused, and you fight now 
as and 
where and when you are, not as and where and when you might wish to have been. 
in today's 
world, the safest interpretation is not "what the framers intended" but "how 
the world 
actually works." and that means treating REFUSED as a synonym for SERVFAIL but 
with longer 
cache retention.

do not, therefore, treat the REFUSED coming out of these load balancers as 
dispositive, and 
regard it as being specific to <qname, qtype, qclass, clientIP, serverIP> such 
that varying any 
member of that tuple could be expected to produce a non-REFUSED answer.

"DNS: You will never find a more wretched hive of slop and ambiguity. We must 
be cautious." 
(Obi-Wan Mockapetris)

see also:

http://www.circleid.com/posts/20120111_refusing_refused_for_sopa_pipa/

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

Reply via email to