As described previously, addressing in TCP/IP networking, at least for IP Version 4, revolves around 32-bit numbers. However, you will have a hard time remembering more than a few of these numbers. Therefore, hosts are generally known by “ordinary” names such as gauss or strange. It becomes the application’s duty to find the IP address corresponding to this name. This process is called hostname resolution.
When an application needs to find the IP address of a given host, it
relies on the library functions
gethostbyaddr(3). Traditionally, these and a
number of related procedures were grouped in a separate library called
the resolverlibrary; on Linux, these functions
are part of the standard
libc. Colloquially, this
collection of functions is therefore referred to as “the
resolver.” Resolver name configuration is detailed in Chapter 6.
On a small network like an Ethernet or even a cluster of Ethernets, it
is not very difficult to maintain tables mapping hostnames to
addresses. This information is usually kept in a file named
/etc/hosts. When adding or removing hosts, or
reassigning addresses, all you have to do is update the
hosts file on all hosts. Obviously, this will
become burdensome with networks that comprise more than a handful of
One solution to this problem is the Network Information
System (NIS), developed by Sun Microsystems, colloquially
called YP or Yellow Pages. NIS stores the
file (and other information) in a database on a master host from which clients
may retrieve it as needed. Still, this approach is suitable only for
medium-sized networks such as LANs, because it involves maintaining
hosts database centrally and distributing
it to all servers. NIS installation and configuration is discussed in
detail in Chapter 13.
On the Internet, address information was initially stored in a single
HOSTS.TXT database, too. This file was maintained at
the Network Information Center (NIC), and had to
be downloaded and installed by all participating sites. When the network
grew, several problems with this scheme arose. Besides the administrative
overhead involved in installing
the load on the servers that distributed it became too high. Even more
severe, all names had to be registered with the NIC, which made sure that
no name was issued twice.
This is why a new name resolution scheme was adopted in 1994: the Domain Name System. DNS was designed by Paul Mockapetris and addresses both problems simultaneously. We discuss the Domain Name System in detail in Chapter 6.