On 21-sep-2007, at 20:33, Stephen Sprunk wrote:
Obviously this should be fixed. But: you may ask yourself: why
is your system doing AAAA lookups when you obviously don't
have IPv6 connectivity?
Anyone from Microsoft listening?
I suppose, in theory, a DNS query over v4 might return an AAAA
record that _is_ accessible via one of my link-local addresses or
the loopback address.
Yeah right. Try again.
As long as v6 is _enabled_ on a Windows box, it does AAAA queries,
even if it has to send them via v4.
Looks like you're right, and it also seems to be a system-wide thing,
because Safari on Windows also first generates a query for a AAAA
record and then for a A record on XP with IPv6 enabled but with no
local IPv6 router and a private address = no 6to4.
On the Mac it's A first and then AAAA but only when there's actual
IPv6 connectivity. This won't trigger AAAA related bugs too badly
even when IPv6 is enabled.
I'm told WinXP isn't even capable of doing DNS over v6.
You can't set up an IPv6 address for a DNS resolver, no.
Whether I can live with that in a particular case depends on what
percentage of the userbase will see "some problems" if that
brokenness is exposed.
Ah yes, the "if enough people do something wrong it becomes
right" doctrine. So here in Holland we have "alcohol free" beer
that contains 0.5% alcohol, and megabytes are now 1000000
That complaint doesn't resonate so well when you're writing in a
language whose "rules" are defined by whatever people do and if
enough people do something "wrong" it gets reclassified as "right".
I don't think these redefinitions can be classified as a language issue.
I'll be happy to repeat my statements in a language that has a
committee that gets to decide what's officially correct in the
language, but I don't think that helps for a variety of reasons, one
being that the committees don't get it right much of the time either.
There's a difference between de jure and de facto standards.
That's not to say that de jure standards are not needed -- they
obviously are -- but when the majority of people are ignoring them,
you can't just stick your head in the sand and ignore the de facto
reality. That _should_ be a sign that the de jure standards need
rewriting after one reviews _why_ the de facto standard has diverged.
Within the context of what we're doing in the IETF, that's extremely
simple: programmers are lazy. And if they're not lazy themselves,
their bosses don't give them enough time to do non-lazy work. I know
a programmer who is held in very high regard who will write two extra
pages of code just to do bounds checking for possible a buffer
overflow that can't even happen in the first place, but he never
checks for overflow conditions. If he'd written a TCP implementation,
sessions would break after transmitting (at most) 4 GB of data
because after 4294967295 the TCP sequence number becomes 0 again but
his code doesn't check for this transition.
Why bother with details like that if you can simply make the field
bigger and let the support people clean up the mess a few years down
the road when you run out of the extra bits? Which brings us back to
the topic of the discussion: why do things the hard way if it's so
easy to put an IP address in a configuration file?
Ietf mailing list