After you have subnetted your network, you should prepare for some simple
sort of hostname resolution using the /etc/hosts file.
If you are not going to use DNS or NIS for address resolution, you have to put
all hosts in the hosts file.
Even if you want to run DNS or NIS during normal operation, you should
have some subset of all hostnames in
/etc/hosts. You should have some sort of name
resolution, even when no network interfaces are running, for example,
during boot time. This is not only a matter of convenience, but it
allows you to use symbolic hostnames in your network
rc scripts. Thus, when changing IP addresses, you
only have to copy an updated hosts file to all
machines and reboot, rather than edit a large number of
rc files separately. Usually you put all local
hostnames and addresses in hosts, adding those of
any gateways and NIS servers used.[1]
You should make sure your resolver only uses information from the
hosts file during initial testing. Sample files
that come with your DNS or NIS software may produce strange
results. To make all applications use /etc/hosts
exclusively when looking up the IP address of a host, you have to edit
the /etc/host.conf file. Comment out any lines
that begin with the keyword order by preceding them with a hash sign,
and insert the line:
The configuration of the resolver library is covered in detail in
Chapter 6.
The hosts file contains one entry per line, consisting
of an IP address, a hostname, and an optional list of aliases for the
hostname. The fields are separated by spaces or tabs, and the address
field must begin in the first column. Anything following a hash sign (#) is
regarded as a comment and is ignored.
Hostnames can be either fully qualified or relative to the local domain.
For vale, you would usually enter the
fully qualified name, vale.vbrew.com,
and vale by itself in the
hosts file, so that it is known by both its official name
and the shorter local name.
This is an example how a hosts file at the Virtual
Brewery might look. Two special names are included,
vlager-if1 and
vlager-if2, which give the addresses
for both interfaces used on vlager:
#
# Hosts file for Virtual Brewery/Virtual Winery
#
# IP FQDN aliases
#
127.0.0.1 localhost
#
172.16.1.1 vlager.vbrew.com vlager vlager-if1
172.16.1.2 vstout.vbrew.com vstout
172.16.1.3 vale.vbrew.com vale
#
172.16.2.1 vlager-if2
172.16.2.2 vbeaujolais.vbrew.com vbeaujolais
172.16.2.3 vbardolino.vbrew.com vbardolino
172.16.2.4 vchianti.vbrew.com vchianti |
Just as with a host's IP address, you should sometimes use a symbolic
name for network numbers, too. Therefore, the
hosts file has a companion called
/etc/networks that maps network names to network
numbers, and vice versa. At the Virtual Brewery, we might install a
networks file like this:[2]
# /etc/networks for the Virtual Brewery
brew-net 172.16.1.0
wine-net 172.16.2.0 |