What's in a name?
From another place I take my name / An house of ancient fame.
Set down my name, sir.
Name System (DNS) is a complex subject, and the details of DNS administration
fill books of their own [Albitz&Liu 1997]. Beyond administration, however,
are the more subtle and leading-edge interactions of addressing mechanisms
This chapter is not intended to make you a DNS administrator. It is,
however, intended to give you the background to understand the interactions
of DNS with addressing, especially between emerging DNS technologies and addressing. Chapter 3, “Application Topology: Naming Endpoints,”
describes the architectural aspects of naming, and this chapter discusses
the details of DNS support for that architecture.
Special emphasis is given to the interaction between DNS services and
addressing, and the address structure among DNS servers themselves. Increasingly,
DNS is likely to have more and more of its data machine generated rather than
hand administered. DNS/DHCP interaction, for example, may lead to the generation
of DNS names not routinely seen by people.
It's worth reviewing the rules for
name syntax before going into name definition. The general form of a DNS name
is a sequence of label fields separated by periods. Fields go from most significant
on the right to least significant on the left, the opposite of IP addresses.
There is no strict limitation to the length of a label field, but practical
human readability suggests it be capped at 816 characters. The total
length of a domain name must not exceed 255 characters [RFC 1034], although
individual implementations may not support names this long. A name this long
would be almost impossible for a person to use, but plausibly could be generated
by an automatic name and address management system.
In principle, any eight-bit character other than a period can be used
in a label field, but this leads to problems. Although technically any 8-bit
character other than a period can be used, getting reliable behavior from
the wide range of Internet implementations of DNS names means using only A
through Z, a through z, 0 through 9, and hyphen (-).
These are the basic rules of DNS syntax. You also need to understand some
of the semantics of DNS names. DNS names represent locations in the domain
name space. Each level of the domain tree is represented by a field in the
full DNS name. Figure
10.1 shows the basic structure of a DNS name.
Although rarely seen in practice, a domain name that ends in a period (for
example, example.com.) is a complete domain name, called
an absolute or a fully qualified domain name (FQDN). The root
of the DNS name conceptually follows the rightmost period.
Relative domain names, or partially qualified domain names (PQDNs), do
not end with periods. Software has to interpret a partial name, and the most
common convention is to interpret it relative to the root. With this convention,
you can interpret
There also might be cases in which a partial name entry is concatenated
on the left of the local domain name. This is common in implementations based
on BIND, the most common DNS software, where the local domain is defined in
the boot file that directs how to load zone files.
To reinforce the use of DNS names, before going into the nuances of
server definition, you might want to think about some very simple applications
of DNS names, without the complexity of full servers.