Broken DNS client resolvers (Was: Dealing with filtered 6to4 clients)

Phil Pennock ipv6-ops+phil at spodhuis.org
Wed Oct 28 04:45:06 CET 2009


On 2009-10-27 at 17:37 +0100, Rémi Denis-Courmont wrote:
> 
> On Tue, 27 Oct 2009 17:02:23 +0100, Jeroen Massar <jeroen at unfix.org> wrote:
> > Yes, I can see that the ADDRCONF flag can be useful for this, as it
> > avoids querying AAAA records in the first place, but that should not be
> > done on a per-application level. That is a decision to be made by the
> > resolver library which should be smart about that, link-local addresses
> > can't be stuffed in a AAAA address anyway and if you don't have
> > connectivity then there is not much to be done.
> 
> I guess glibc does standard lawyering. There are cases where an application
> wantd to query AAAA regardless of the system configuration. Those cases are
> corner cases. glibc follows the standard to the letter and resolves
> everything by default.
> 
> And so, glibc adds a (non-standard) flag if you want to use getaddrinfo for
> policy. In other words, even though this is the most common case, it is not
> the default. I am not going to get into a fight with Ulrich Drepper on
> this, as it would most likely get us nowhere.
> 
> Ubuntu can force AI_ADDRCONFIG into their glibc if they see fit.

Non-standard?  Really?

Well, it's true that the RFC for "Basic Socket Interface Extensions for
IPv6" is non-standard, it's "Informational", but that's because it's a
host API and more of a guideline of how to implement things.  But
AI_ADDRCONFIG is in RFC 3493 (from 2003).

It was even in RFC 2553, from 1999.  It was not in RFC 2133, from 1997.

So AI_ADDRCONFIG was only introduced ten years ago, in an Informational
RFC.

Fortunately, we have the Single Unix Specification.  SUSv3 includes
AI_ADDRCONFIG.  That makes it standard.  SUSv2 did not include
getaddrinfo(), AFAICT.

So please, stop being rude about people who aren't here to defend
themselves from such false statements.

-Phil


More information about the ipv6-ops mailing list