In order for computers to find one another by name on a TCP/IP network, the computers need some method of name resolution ”that is, converting a hostname like gingko.threeroomco.com into an IP address like 192.168.78.109, or vice-versa. There are several ways of doing this, but one of the most common is to use a Domain Name System (DNS) server, also known as a name server. In fact, the instructions on basic configuration presented in Chapter 2, TCP/IP Network Configuration, describe configuring a computer to use a DNS server for name resolution. These instructions presuppose, however, that a DNS server exists that you can use. Furthermore, the Internet as a whole relies upon a distributed set of DNS servers. Two major reasons for running a name server yourself are closely related to these two uses of DNS. You might want to run a DNS server on your own network to translate names into IP addresses for your own computers, or you might want to run an externally visible DNS server to allow others to address your local machines by name.
In any event, DNS administration involves setting up a number of configuration files that control the DNS server, including specifications of the domains that it handles. Depending upon your needs, you may have to dig into DNS features that don't directly involve your own configuration, such as obtaining a domain name. You might also want the DNS server to coordinate its activities with other servers on your network, particularly your DHCP server, as described in Chapter 5, Configuring Other Computers via DHCP.
Linux's DNS servers fall in the middle range of server complexity; they aren't as difficult to administer as a very complex system like Kerberos, but they're harder to administer than a simple server like Telnet. This chapter can get you started, and may be all you need to administer a simple domain. For more complex configurations, you can read your DNS server's documentation, or a book on the subject such as Albitz and Liu's DNS and BIND, 4th Edition (O'Reilly, 2001) or Hunt's Linux DNS Server Administration (Sybex, 2000).