[UNsolved] was: what does dig +trace do?

Mark Andrews marka at isc.org
Thu Sep 1 23:57:06 UTC 2011


In message <4E5FB1AB.4040005 at data.pl>, Torinthiel writes:
> On 09/01/11 17:56, Tom Schmitt wrote:
> >=20
> > I found the cause of my problem (and a solution):
> >=20
> > dig +trace actually has another behaviour than doing the trace manually=
>  step by step with dig.
> >=20
> >=20
> > For a trace, dig is asking for the NS-records, then for the IP-address =
> of the nameserver found and then go on asking this nameserver. Till the d=
> estination is reached.
> >=20
> > In my case, dig is asking for the nameservers of the root-zone and is g=
> etting the answer:
> > . IN NS root1
> > . IN NS root2=20
> > etc
> >=20
> > Next dig is asking for the A-record of root1. And here is the differren=
> ce:
> >=20
> > If I do "dig root1" dig is asking exactly this, it is asking for the A-=
> record of root1. And of course I get the correct answer from named.
> >=20
> > The +trace option does not do this!
> > Instead, the +trace-option is using the searchsuffix in the resolv.conf=
>  and is asking for root1.my.search.suffix. and NOT for root1.
> > This is why the +trace option fails every time.
> >=20
> > After deleting the searchsuffix in resolv.conf, dig +trace is working f=
> ine without any error.
> >=20
> > In my oppinion it's a bug that dig +trace behave in a differrent way th=
> an doing the queries with dig one by one.
> 
> No, IMHO, it's a bug in your root zone.
> Names without dot at end are relative. Change your root zone to say
> =2E IN NS root1.
> =2E IN NS root2.
> 
> (with dots appended) and you should be home.

"dig +trace" calls getaddrinfo() and that needs to be able to resolve
the hostname (without dots at the end).  getaddrinfo() is called
so that we don't have to have a full blown iterative resolver in
dig.

The Internet moved from being a flat namespace (names without dots)
for hostnames to a heirachical namespace (names with *internal*
dots) a 1/4 century ago.  http://tools.ietf.org/html/rfc921

Hostnames without dots are now local (e.g. localhost) or need to
be qualified (resolv.conf: search).

Mark
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: marka at isc.org



More information about the bind-users mailing list