home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous SectionNext Section

11.3 Setting Up a DHCP Server

Managing the network configurations of the hosts on even a small network can be tedious. Administrators of large networks, including ISPs, have long used the DHCP service to centrally manage network configurations. Red Hat Linux includes a DHCP server that you can install in order to facilitate the management of your network. Hosts configured with DHCP clients can load their network configurations from the DHCP server at boot time, including such configuration items as:

  • Hostname

  • Domain name

  • IP address

  • Netmask

  • Broadcast IP address

  • Gateway IP address

  • DNS server address

11.3.1 Installing the DHCP Server

Before installing the DHCP server, you should check whether your system's network adapter is properly configured to support DHCP. To do so, issue the ifconfig command as root:

# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:A0:CC:25:8A:EC  
          inet addr:192.168.0.5  Bcast:192.168.255.255  
            Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:71910 errors:0 dropped:0 overruns:0 
            frame:0
          TX packets:108334 errors:0 dropped:0 overruns:0 
            carrier:0
          collisions:89 txqueuelen:100 
          Interrupt:11 Base address:0x6000

If your system's network adapter is properly configured to support DHCP, the output of the ifconfig command will indicate that the adapter supports BROADCAST. If the output doesn't include this specifications, you must reconfigure or replace the network adapter. Fortunately, it's rare that an adapter lacks these capabilities.

To set up a DHCP server, use the Package Management Tool to install the dhcp package, which is part of the Network Servers package group. In doing so, be sure to disable the checkboxes associated with any unwanted services. Then, configure the service as explained in the following section.

11.3.2 Configuring the DHCP Service

To configure the DHCP service, you must create the DHCP configuration file, /etc/ dhcpd.conf. Here's a simple configuration that you can use as a starting point:

ddns-update-style ad-hoc;
default-lease-time 64800;
max-lease-time     64800;
option domain-name-servers 192.168.0.1;
option domain-name         "oreilly.com";
subnet 192.168.0.0 netmask 255.255.255.0
{
  option subnet-mask         255.255.255.0;
  option broadcast-address   192.168.0.255;
  option routers             192.168.0.1;
  server-identifier 192.168.0.5;
  host sara 
  {
    hardware ethernet  00:50:04:d2:3f:15;
    fixed-address      192.168.0.33;
    default-lease-time 86400;
  }
  range 192.168.0.50 192.168.0.254;
}

When a DHCP client obtains a network configuration from the server, it doesn't generally obtain the configuration permanently. Instead, a DHCP client is said to lease a configuration. The two lines at the top of the configuration file specify the default and maximum lease duration, in seconds. The figure 64800 (seconds) is equivalent to 18 hours. By choosing a relatively long lease time, a client will not generally need to renew its leased network configuration during a workday. You can choose a shorter or longer duration, as you prefer.

The next two lines specify information transmitted to clients as part of their network configurations:

domain-name-servers

The DNS server IP address. More than one server can be specified. Each server is separated from its neighbor by a comma.

domain-name

The domain name.

Next comes a group of lines—delimited with paired curly braces—that define a network or subnetwork. In this case, the network defined has the IP address 192.168.0.0 with a netmask of 255.255.255.0. This means that the range of network addresses is from 192.168.0.0 to 192.168.0.255.

Hosts in this network share three parameters:

subnet-mask

The network mask, which indicates by 1-bits the bit positions of the IP address associated with the network, rather than the host. Often, the network mask has the value 255.255.255.0.

broadcast-address

The IP address of the network, with all 1-bits in the bit positions associated with the host address. Often, this means that the first three members of the dotted quad IP address appear, followed by the value 255.

routers

The default gateway IP address.

The next set of lines define the network configuration for a particular host, named sara:

host sara 
  {
    hardware ethernet  00:50:04:d2:3f:15;
    fixed-address      192.168.0.33;
    default-lease-time 86400;
  }

The host's network adapter has an Ethernet MAC address of 00:50:04:d2:3f: 15. The Ethernet address is a unique code, assigned by the adapter's manufacturer, that serves to identify the adapter. When it queries the DHCP server, this adapter will be leased the IP address 192.168.0.33; the lease will have a duration of 24 hours (86400 seconds). This adapter will always receive this IP address, which is also known as a static IP address.

The next line defines a range of IP addresses:

range 192.168.0.50 192.168.0.254;

Hosts not assigned a static IP address will be leased an address within the specified range. Such an IP address is termed a dynamic IP address.

For more information about the dhcpd.conf file, see the associated manpage.

11.3.3 Starting the DHCP Service

To start the DHCP service, launch the Service Configuration Tool by choosing Server Settings Services from the GNOME or KDE menu. Select the list entry associated the DHCP service, named dhcpd, and click Start.

To verify that the DHCP service has started, issue the following command to view recent system log entries:

$ tail -40 /var/log/messages

You should see something like the following:

Nov  3 11:35:39 localhost dhcpd: Internet Software Consortium DHCP Server V3.0pl1
Nov  3 11:35:39 localhost dhcpd: Copyright 1995-2001 Internet Software Consortium.
Nov  3 11:35:39 localhost dhcpd: All rights reserved.
Nov  3 11:35:39 localhost dhcpd: For info, please visit http://www.isc.org/products/DHCP
Nov  3 11:35:39 localhost dhcpd: Wrote 0 deleted host decls to leases file.
Nov  3 11:35:39 localhost dhcpd: Wrote 0 new dynamic host decls to leases file.
Nov  3 11:35:39 localhost dhcpd: Wrote 0 leases to leases file.
Nov  3 11:35:39 localhost dhcpd: 
Nov  3 11:35:39 localhost dhcpd: Listening on LPF/eth0/00:50:da:76:59:fd/192.168.0.0/24
Nov  3 11:35:39 localhost dhcpd: Sending on   LPF/eth0/00:50:da:76:59:fd/192.168.0.0/24
Nov  3 11:35:39 localhost dhcpd: Sending on   Socket/fallback/fallback-net
Nov  3 11:35:39 localhost dhcpd: dhcpd startup succeeded

Now, boot a client configured to obtain its network configuration via DHCP. If you need help configuring a client to use DHCP, consult the next section. If the DHCP client and server are working, you should see system log messages that resemble the following:

Nov  3 11:59:40 localhost dhcpd: DHCPREQUEST for 
  192.168.0.4 from 00:50:04:d2:3f:15 via eth0
Nov  3 11:59:40 localhost dhcpd: DHCPACK on 192.168.0.4 to 
  00:50:04:d2:3f:15 via eth0

If you find that the DHCP server is not working, consult the file /usr/share/doc/dhcp- */README.

What often appears to be a problem with a DHCP server is most likely a problem with the DHCP client. If you have difficulty getting the DHCP service to work properly, configure the client as explained in the next section. Another common problem is configuring multiple DHCP servers on the same network. In order to avoid conflicts between servers, you should generally operate only a single DHCP server on your network.

If you want the DHCP service to start automatically when you boot your system, use the Service Configuration Tool to associate the service with the desired runlevel or runlevels.

11.3.4 Configuring DHCP Clients

To configure a Windows 9x client to use DHCP, select Start Settings Control Panel Network Configuration to open the TCP/IP Properties dialog box. Select the TCP/IP network component associated with the network adapter you want to configure and click Properties. Select the IP Address tab and choose Obtain an IP address automatically. Then select the DNS tab and choose Disable DNS. This setting does not actually disable DNS; it merely configures the system to rely on DHCP to provide the IP address of the DNS server.

Next, select the Gateway tab and remove any installed gateways. Click OK to dismiss the TCP/IP Properties dialog box, and click OK again to dismiss the Network Properties dialog box. You can use a similar procedure to configure Windows NT/ 2000 clients.

Windows 9x lets you view leased network configuration information. To do so, run the program winipcfg and select the proper adapter. The program shows the Ethernet address, IP address, subnet mask, and default gateway associated with the client, if any. Click More to view additional information, such as hostname, DNS server IP address, and the lease expiration time. You can manually release or renew a lease by clicking Release or Renew.

Under Windows 2000 and XP, you can view similar information describing the network configuration by issuing the command:

$ ipconfig /all

To configure a Linux client to use DHCP, launch the Network Administration Tool. Select the Devices tab and click the interface you want to configure. Click Edit to view the Ethernet Device dialog box. Finally, enable the checkbox labelled Automatically obtain IP address settings with, choose DHCP from the drop-down box, and click OK. To determine the status of a DHCP lease held by a Linux client, you can search the system log for relevant messages.

    Previous SectionNext Section