Root Servers and Forwaders ?

Kevin Darcy kcd at
Wed Mar 1 05:12:12 UTC 2000

Rahul Parasnis wrote:

> Hello
> I am asking a very basic question Here?
> In the Example described on Page 28 DNS and BIND 3rd Edition
> Resolver query for
> The query first goes to  "." then to "au." then "" and then to
> "".

Yup, that's the normal "iterative" query-resolution process.

> First Question : How does that First query goes to "." ?

The root servers are listed in the hints file.

> What if I have specified "Forwarders" in my named.conf file ?

Is it "forward only" or "forward first"? If it's "forward only", then you are
issuing a *recursive* -- rather than an iterative -- query to some other server
and asking it to do all of the iterative work on your behalf, just like a stub
resolver would, except that you are caching the answers. If it's "forward
first", then that just puts the forwarder(s) at the top of the list of servers
that are queried, presumably for efficiency reasons.

> How does the query work , if it is given from the host
>   where and are same level zones

Where you issue the query from doesn't matter. The Internet DNS database is one
big, distributed hierarchical database. You should be able to get the same
answers from anywhere.

> Second Question : What should or server have in the
> db.cache file ?

The hints information for the root servers.

> Should these servers also have the file downloaded from ?
> How does these root Serers work for the subdomains like ?

They should all have the Internet root hints file, if they are resolving
Internet names iteratively.

> Simmilarly on Page 31 ,
> 1.Nameserver A receives query from the resolver
> 2. A queries B ( How this works ? Which line in the Named.conf does this?
> does "forwarders" is doing this function ? )

No, that diagram doesn't apply to forwarders (more correctly, it doesn't apply
to "forwarders only"; it *could* apply to "forwarders first"). It shows a
nameserver *iteratively* resolving a query, like on page 28. A queries B because
either 1) B is the "first" forwarder to try with a "forward
first" configuration, 2) A has some cached information (probably an old
referral) which indicates that B is authoritative for a domain/zone which
contains the name it is trying to resolve, or 3) A has no other way to resolve
the query and B is listed as a root server in A's hints file. Once it gets the
referral back from B, it queries the other nameservers (C and D), to get
"closer" to the answer and eventually to get the answer. That's why they call it
"iterative" -- because your nameserver is issuing queries and following
referrals over and over again until it gets the answer it is looking for. This
is in contrast to "recursive" querying where you just send a query, the other
server does all of the work, and then gives you the result.

> I am really confused about the concepts of "forwarders" and "root Server"
> functions.
> How does they work for subdomains like and ?

The database is hierarchical. In the absence of any cached information or
special forwarding configuration, you have to start at the root servers and work
your way down the hierarchy. That's why the root server information is loaded
from the hints file -- you have to at least get *that* information from
somewhere besides other nameservers, because there's nothing "above" the root
zone in the hierarchy.

- Kevin

More information about the bind-users mailing list