Alexander Clouter wrote:
-- nameserver 127.0.0.1 + !inet6 --
1> [{domain,"wormnet.eu"},
{nameserver,{127,0,0,1}},
{search,["wormnet.eu"]},
{lookup,[native]}]
[...]
-- nameserver ::1 + !inet6 --
1> [{domain,"wormnet.eu"},
{search,["wormnet.eu"]},
{lookup,[native]}]
[...]
-- nameserver 127.0.0.1 + inet6 --
1> [{domain,"wormnet.eu"},
{nameserver,{127,0,0,1}},
{search,["wormnet.eu"]},
{inet6,true},
{lookup,[native]}]
[...]
-- nameserver ::1 + inet6 --
1> [{domain,"wormnet.eu"},
{search,["wormnet.eu"]},
{inet6,true},
{lookup,[native]}]
I think the pattern here is that whenever you have "nameserver" set to
"::1", the Erlang inet code fails to parse it from /etc/resolv.conf, and
the Erlang DNS reslover ends up being left without a usable nameserver.
In the next posting[1] in the 'inet6' thread I see:
----
inet_db:add_ns({A,B,C,D}). %% Name server must be IPv4, there is a fixme in
inet_db.
----
Looking at inet_db.erl I see "Fix IPv6 nameservers" all over the place,
so it's a bug in upstream erlang it seems?
Yes, it seems like a bug upstream -- while the inets module itself seems
not to have any problems using ipv6 addresses, the DNS code seems
to lag behind the rest in this respect.
Now we have to figure out whether it is fixed in Erlang R13B which is
already in Squeeze.
It is interesting that an A record lookup is made by ejabberd though in
this situation, is there some fallback code being involked? Should it
be?
Yes and no: the fallback to the A-record resolution is specified in the
spec (see the fourth paragraph of [1]), but the spec seems to only talk
about the case of a failed SRV query, in the sense of the query returned
the NXDOMAIN (or a similar) error, as I understand this.
So what's the correct behaviour in the presense of a misconfigured DNS
resolver is not clear to me.
1. http://xmpp.org/rfcs/rfc3920.html#rfc.section.14.4
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]