How the DHCP Server Updates the DNS
It is important to know something about how the DHCP server actually figures out
how to update the DNS. Without that knowledge, it can be difficult to debug prob-
lems. First, you must understand that the DNS namespace is broken up into zones
on the basis of authority records (usually referred to as SOA records). SOA records
define which DNS server is responsible for the information in a given namespace.
The definitive version of the information in a namespace has to reside on a single
server, known as the primary server. There are two other kinds of name servers—
secondary and caching servers. Secondary servers mirror data that is on primaries,
and some secondary servers can accept DNS updates, but only the primary server for
a zone can make changes to it. Name servers that act as primary or secondary servers
for certain zones are said to be authoritative name servers for those zones. Caching
servers remember names that they have looked up in the past and keep information
about those names in their cache. When the same name is looked up repeatedly, the
caching name server answers each subsequent query itself rather than consulting an
authoritative name server.
In order for the DHCP server to update the DNS, it has to identify the zone it needs
to update, and then it has to send the update to the primary server for that zone. A
zone is a portion of the DNS hierarchy. DNS starts with a root zone, which is at the
top of the tree. Within the root zone are all the top-level domains, which are all
separate zones—for example,
.com. is a top-level domain. Underneath the top-level
domains are organizational domains, such as
fugue.com., which is my home
domain. Organizational domains are run by the organizations that own them, or by
DNS service providers. It is a safe bet that the top three levels of the domain hierar-
chy are all separate zones. However, it is not required that each label be in its own
zone. It is possible for
manhattan.fugue.com. and bisbee.fugue.com. to both be part
of the
fugue.com. zone. It is also possible for them to be separate zones.
The DHCP server figures out the primary server for a given name by asking DNS,
using the DNS resolver, which is an operating system service for looking up records
in the DNS. For example, if the server needs to update
samten.bisbee.fugue.com., it
first checks to see if
samten.bisbee.fugue.com. is a zone, by asking DNS for an SOA
record for the domain. If there is an SOA record for
samten.bisbee.fugue.com., then
the DHCP server sends the update to the DNS server named in that SOA record. If
there is not, the DHCP server tries to find an SOA record for
bisbee.fugue.com., and
then
fugue.com., and then com., and then .. Of course, it won’t have to traverse all
the way up to
., but in an organization with a deep hierarchy, it might have to try a
few times before it gets the SOA record it needs.
One consequence of this is that it is difficult to short-circuit the process for testing
purposes. Because the structure of the DNS is contained within the DNS, if you want
to set up a test server but don’t want to publish it, you have to somehow tell the
DHCP server to send updates to the test server and not to the IP address that it
CHAPTER 11 DHCP–DNS Interaction188
014 3273 CH11 10/3/02 4:56 PM Page 188