Parts Of Domain Name Continue.. |
For querying purposes, software interprets the name segment by segment, from
right to left, using an iterative search procedure. At each step along the way,
the program queries a corresponding DNS server to provide a pointer to the next
server which it should consult.
As originally envisaged, the process was as simple as:
- the local system is pre-configured with the known addresses of the
root servers in a file of root hints, which need to be updated
periodically by the local administrator from a reliable source to be kept up
to date with the changes which occur over time.
- query one of the root servers to find the server authoritative for the
next level down (so in the case of our simple hostname, a root server would
be asked for the address of a server with detailed knowledge of the
example top level domain).
- querying this second server for the address of a DNS server with
detailed knowledge of the second-level domain inadomain.example in
our example).
- repeating the previous step to progress down the name, until the final
step which would, rather than generating the address of the next DNS server,
return the final address sought.
The diagram illustrates this process for the real host www.wikipedia.org.
The mechanism in this simple form has a difficulty: it places a huge
operating burden on the root servers, with each and every search for an address
starting by querying one of them. Being as critical as they are to the overall
function of the system such heavy use would create an insurmountable bottleneck
for trillions of queries placed every day. The section DNS in practice describes
how this is addressed.
Circular dependencies and glue records
Name servers in delegations appear listed by name, rather than by IP address.
This means that a resolving name server must issue another DNS request to find
out the IP address of the server to which it has been referred. Since this can
introduce a circular dependency if the nameserver referred to is under the
domain that it is authoritative of, it is occasionally necessary for the
nameserver providing the delegation to also provide the IP address of the next
nameserver. This record is called a glue record.
For example, assume that the sub-domain en.wikipedia.org contains further
sub-domains (such as something.en.wikipedia.org) and that the
authoritative nameserver for these lives at ns1.something.en.wikipedia.org.
A computer trying to resolve something.en.wikipedia.org will thus first
have to resolve ns1.something.en.wikipedia.org. Since ns1 is
also under the something.en.wikipedia.org subdomain, resolving
something.en.wikipedia.org requires resolving
ns1.something.en.wikipedia.org which is exactly the circular dependency
mentioned above. The dependency is broken by the glue record in the nameserver
of en.wikipedia.org that provides the IP address of
ns1.something.en.wikipedia.org directly to the requestor, enabling it to
bootstrap the process by figuring out where ns1.something.en.wikipedia.org
is located.
|