Solaris DHCP Administration Guide

Chapter 2 Planning for DHCP Service

You can use DHCP services in a network you are creating or in a network that exists. If you are setting up a network, see “IP Address Management Topics” in System Administration Guide, Volume 3 before you attempt to set up DHCP services. If the network exists, continue in this chapter.

This chapter describes what you need to do before you set up DHCP service on your network. The information is intended for use with DHCP Manager, although you can also use the command-line utility dhcpconfig to set up DHCP service.

This chapter contains the following information:

Preparing Your Network for DHCP

Before you set up your network to use DHCP, you must first collect information and make decisions about how you will configure the server(s). First:

Mapping Your Network Topology

If you have not already done so, you should map the physical structure or layout of your network. Indicate the location of routers and clients, and the location of servers that provide network services. This map of your network topology can help you determine which server to use for DHCP services, and what configuration information the DHCP server can provide to clients.

See “Planning Your TCP/IP Network” in System Administration Guide, Volume 3 for more information about planning your network.

The DHCP configuration process can look up some network information from the server's system and network files. Updating System Files and Netmask Tables discusses these files. However, you might want to give clients other service information, which you must enter into the server's databases. As you examine your network topology, record the IP addresses of any servers you want your clients to know about. The following are some examples of network services you may have on your network that the DHCP configuration does not discover:

Network Topology to Avoid

DHCP does not work well in network environments where more than one IP network shares the same network hardware media, either through the use of multiple network hardware interfaces or multiple logical interfaces. When multiple IP networks run across the same physical LAN, a DHCP client's request arrives on all network hardware interfaces. This makes the client appear to be attached to all of the IP networks simultaneously.

DHCP must be able to determine the address of a client's network in order to assign an appropriate IP address to the client. If more than one network is present on the hardware media, the server cannot determine the client's network and cannot assign an IP address.

You can use DHCP on one of the networks, but not more than one. If this does not suit your needs, you must reconfigure the networks. Suggestions for reconfiguration include:

Determining the Number of DHCP Servers

The data store option you choose has a direct effect on the number of servers you must have to support your DHCP clients. The following table shows the maximum number of DHCP/BOOTP clients that can be supported by one DHCP server for each data store.

Table 2–1 Estimated Maximum Number of Clients

Data Store 

Maximum Number of Clients 

Text files  

10,000 

NIS+ 

40,000 

Binary files 

100,000 

This maximum number is a general guideline, not an absolute number. A DHCP server's client capacity depends greatly on the number of transactions it must process per second. Lease times and usage patterns have a large effect on the number of clients that a server can support. For example, if leases are set to 12 hours and users turn their systems off at night and on at the same time the next morning, the server must handle transaction peaks each morning as many clients request leases simultaneously. The DHCP server can support fewer clients in such an environment compared to an environment with longer leases, or an environment that consists of constantly connected devices such as cable modems.

The section Choosing the Data Store compares data store options.

Updating System Files and Netmask Tables

During the configuration process, DHCP Manager or the dhcpconfig utility scans various system files on your server for information it can use to configure the server.

You must be sure the information in the system files is current before you run DHCP Manager or dhcpconfig to configure your server. If you notice errors after you configure the server, use DHCP Manager or dhtadm to modify the macros on the server.

The following table lists some of the information gathered during DHCP server configuration, and the sources for the information. Be sure this information is set correctly on the server before you configure DHCP on it. If you make changes to the system files after you configure the server, you should reconfigure the service to pick up the changes.

Table 2–2 Information for DHCP Configuration

Information 

Source 

Comments 

Time zone 

System date, time zone settings 

The date and time zone are initially set during the Solaris installation. You can change the date by using the date command and change the time zone by editing the /etc/TIMEZONE file, which sets the TZ variable.

DNS parameters 

/etc/resolv.conf

The DHCP server uses the /etc/resolv.conf file to look up DNS parameters such as DNS domain name and DNS server addresses. See “Setting Up DNS Clients” in Solaris Naming Setup and Configuration Guide for more information about resolv.conf.

NIS or NIS+ parameters 

System domain name, nsswitch.conf, NIS, NIS+

The DHCP server uses the domainname command to obtain the domain name of the server system, and the nsswitch.conf file to determine where to look for domain-based information. If the server system is a NIS or NIS+ client, the DHCP server queries NIS or NIS+ services to get NIS/NIS+ server IP addresses.

Default router 

System routing tables, user prompt 

The DHCP server searches the network routing tables to find the default router for clients attached to the local network. For clients not on the same network, the DHCP server must prompt the administrator for the information. 

Subnet mask 

Network interface, netmasks table

The DHCP server looks to its own network interfaces to determine the netmask and broadcast address for local clients. If the request had been forwarded by a relay agent, the server looks up the subnet mask in the netmasks table on the relay agent's network.

Broadcast address 

Network interface, netmasks table

For the local network, the DHCP server obtains the broadcast address by querying the network interface. For remote networks, the server uses the BOOTP relay agent's IP address and the remote network's netmask to calculate the broadcast address for the network.  

Making Decisions for Server Configuration

This section discusses some of the decisions to make before you configure the first DHCP server on your network. The topics parallel the dialogs in the DHCP Manager's Configuration Wizard, but the information is also useful if you decide to use the dhcpconfig utility to configure the server.

Selecting a Server for DHCP

With your network topology in mind, you can use the following guidelines to select a host on which to set up a DHCP server.

The server must:

Choosing the Data Store

You can choose to store the DHCP data in text files, binary files, or the NIS+ directory service. The following table summarizes the features of each type of data store, and recommends the environment to which each is best suited.

Table 2–3 Comparison of Data Stores

Data Store Type 

Performance 

Maintenance 

Sharing 

Recommended Environment 

Binary files 

High performance, high capacity.  

Low-maintenance, no database servers required. Contents must be viewed with DHCP Manager or dhtadm and pntadm. Regular file backups suggested.

Containers cannot be shared among DHCP servers. 

Midsize to large environments with many networks with thousands of clients per network. Useful for small to medium ISPs.  

NIS+  

Moderate performance and capacity, dependent upon NIS+ service's performance and capacity 

DHCP server system must be configured as a NIS+ client. Requires NIS+ service maintenance. Contents must be viewed with DHCP Manager or dhtadm and pntadm. Regular backups with nisbackup suggested.

DHCP data is distributed in NIS+, multiple servers can access the same containers.  

Small to midsize environments with up to 5000 clients per network.  

Text files 

Moderate performance, low capacity. 

Low-maintanence, no database servers required. ASCII format is readable without DHCP Manager, dhtadm, or pntadm. Regular file backups suggested.

Containers can be shared among DHCP servers if DHCP data is stored on one file system that is exported though an NFS mount point. 

Small environments with a few hundred to a thousand clients per network, less than 10,000 total clients. 

Traditional NIS (as opposed to NIS+) is not offered as a data store option because it does not support fast incremental updates. If your network uses NIS, you should use text files or binary files for your data store.

Setting a Lease Policy

A lease specifies the amount of time the DHCP server grants permission to a DHCP client to use a particular IP address. During the initial server configuration, you must specify a site-wide lease policy to indicate the lease time and whether clients can renew their leases. The server uses the information you supply to set option values in the default macros it creates during configuration. You can set different lease policies for specific clients or type of clients, by setting options in configuration macros you create.

The lease time is specified as a number of hours, days, or weeks for which the lease is valid. When a client is assigned an IP address (or renegotiates a lease on an IP address it is already assigned), the lease expiration date and time is calculated by adding the number of hours in the lease time to the timestamp on the client's DHCP acknowledgment. For example, if the timestamp of the DHCP acknowledgment is September 16, 2001 9:15 A.M., and the lease time is 24 hours, the lease expiration time is September 17, 2001 9:15 A.M. The lease expiration time is stored in the client's DHCP network record, viewable in DHCP Manager or with pntadm.

The lease time value should be relatively small, so that expired addresses are reclaimed quickly, but large enough so that if your DHCP service becomes unavailable, the clients continue to function until the system(s) that run the DHCP service can be repaired. A rule of thumb is to specify a time that is two times the predicted down time of a server. For example, if it generally takes four hours to obtain and replace a defective part and reboot the server, you should specify a lease time of eight hours.

The lease negotiation option determines whether or not a client can renegotiate its lease with the server before the lease expires. If lease negotiation is allowed, the client tracks the time that remains in its lease, and when half the lease time is used, the client requests the DHCP server to extend its lease to the original lease time. It is useful to disable lease negotiation in environments where there are more systems than IP addresses, so the time limit is enforced on the use of IP addresses. If there are enough IP addresses, you should enable lease negotiation so you do not force a client to take down its network interface and obtain a new lease, which can interrupt the client's TCP connections (such as NFS and telnet sessions). You can enable lease negotiation site-wide during the server configuration, and for particular clients or types of clients through the use of the LeaseNeg option in configuration macros.


Note –

Systems that provide services on the network should retain their IP addresses, and should not be subject to short-term leases. You can use DHCP with such systems if you assign them reserved (manual) IP addresses, rather than IP addresses with permanent leases. This enables you to detect when the system's IP address is no longer in use.


Determining Routers for DHCP Clients

Clients use routers for any network communication beyond their local network, and they must know the IP addresses of these routers in order to use them.

When you configure a DHCP server, you must provide the IP address of a router the clients can use or, if you use DHCP Manager, you can specify that clients should find routers themselves with the router discovery protocol.

If clients on your network support router discovery, you should use router discovery protocol, even if there is only one router. Discovery enables a client to adapt easily to router changes in the network. For example, if a router fails and is replaced by one with a new address, clients can discover the new address automatically without having to obtain a new network configuration to get the new router address.

Making Decisions for IP Address Management

This section discusses the decisions you need to make when you configure IP addresses to be managed by DHCP. The topics parallel the dialogs of DHCP Manager's Address Wizard, but can also be used to make decisions if you use the dhcpconfig utility.

As part of the DHCP service setup, you determine several aspects of the IP addresses that the server is to manage. If your network needs more than one DHCP server, you must decide how to divide responsibility for the addresses so you can assign some to each server. Before you begin to configure your server you must decide on the following:

Number and Ranges of IP Addresses

During the initial server configuration, DHCP Manager allows you to add one block, or range, of IP addresses under DHCP management by specifying the total number of addresses and the first address in the block. DHCP Manager adds a list of contiguous addresses from this information. If you have several blocks of noncontiguous addresses, you can add the others by running DHCP Manager's Address Wizard again, after the initial configuration.

Before you configure your IP addresses, know how many addresses are in the initial block of addresses you want to add and the IP address of the first address in the range.

Client Host Name Generation

The dynamic nature of DHCP means that an IP address is not permanently associated with the host name of the system that is using it. The DHCP management tools can generate a client name to associate with each IP address if you select this option. The client names consist of a prefix, or root name, plus a dash and a number assigned by the server. For example, if the root name is charlie, the client names will be charlie-1, charlie-2, charlie-3, and so on.

By default, generated client names begin with the name of the DHCP server that manages them. This is useful in environments that have more than one DHCP server because you can quickly see in the DHCP network tables which clients any given DHCP server manages. However, you can change the root name to any name you choose.

Before you configure your IP addresses, decide if you want the management tools to generate client names, and if so, what root name to use for the names.

The generated client names can be mapped to IP addresses in /etc/inet/hosts, DNS, or NIS+ if you specify this at configuration. See Client Host Name Registration for more information.

Default Client Configuration Macros

In Solaris DHCP, a macro is a collection of network configuration options and their assigned values. The DHCP server uses macros to determine what network configuration information to send to a DHCP client.

When you configure the DHCP server, the management tools gather information from system files and directly from you through prompts or command-line options you specify. With this information, the management tools create the following macros:

The network address macro is automatically processed for all clients located on that network. The locale macro is included in the server macro, so it is processed when the server macro is processed.

When you configure IP addresses for the first network, you must select a client configuration macro to be used for all DHCP clients using the addresses you are configuring. By default, the server macro is selected because it is contains information needed by all clients that use this server. Clients receive the options contained in the network address macro before those in the server macro. See Order of Macro Processing for more information about the order in which macros are processed.

Dynamic and Permanent Lease Type

The lease type determines if the lease policy applies to the addresses you are configuring. During initial server configuration, DHCP Manager allows you to select either dynamic or permanent leases for the addresses you are adding. If you configure with the dhcpconfig command, leases are dynamic.

When an address has a dynamic lease, the DHCP server can manage the address by allocating it to a client, extending the lease time, detecting when it is no longer in use, and reclaiming it. When an address has a permanent lease, the DHCP server can only allocate it to a client, after which the client owns the address until the client explicitly releases it. When the address is released, the server can assign it to another client. The address is not subject to the lease policy as long as it is configured with a permanent lease type.

When you configure a range of IP addresses, the lease type you select applies to all the addresses in the range. To get the most benefit from DHCP, you should use dynamic leases for most of the addresses. You can later modify individual addresses to make them permanent if necessary, but the total number of permanent leases should be kept to a minimum.

Reserved Addresses and Lease Type

Addresses can be reserved by manually assigning them to particular clients. A reserved address can have a permanent or dynamic lease associated with it. When a reserved address is assigned a permanent lease:

If a reserved address is assigned a dynamic lease, the address can be allocated only to the client that is bound to the address, but the client must track lease time and negotiate for a lease extension as if the address were not reserved. This allows you to track when the client is using the address by looking at the network table.

You cannot create reserved addresses for all the IP addresses during the initial configuration because they are intended to be used sparingly for individual addresses.

Planning for Multiple DHCP Servers

If you want to configure more than one DHCP server to manage your IP addresses, consider the following guidelines:

Planning for Remote Network Configuration

After the initial configuration, you can place IP addresses in remote networks under DHCP management. However, because the system files are not local to the server, DHCP Manager and dhcpconfig cannot look up information to provide default values, so you must provide the information. Before you attempt to configure a remote network, be sure you know the following information:

See Adding, Modifying, and Removing DHCP Networks for the procedure for adding DHCP networks.

Selecting the Tool for Configuring DHCP

After you have gathered information and made decisions as outlined in the previous sections, you are ready to configure a DHCP server. You can use the graphical DHCP Manager or the command-line utility dhcpconfig to configure a server. DHCP Manager lets you select options and enter data that is then used to create the dhcptab and network tables used by the DHCP server. The dhcpconfig utility supports an interactive mode that prompts you for information, but relies on system and network files for additional data used to create the dhcptab and network tables. The noninteractive mode of dhcpconfig requires you to use command-line options to specify data. Note that the interactive version of dhcpconfig is scheduled for removal in a future Solaris release.

DHCP Manager Features

DHCP Manager, a Java-based graphical tool, provides a DHCP Configuration Wizard, which starts automatically the first time you run DHCP Manager on a system that is not configured as a DHCP server. The DHCP Configuration Wizard provides a series of dialog boxes that prompt you for the essential information required to configure a server: data store format, lease policy, DNS/NIS/NIS+ servers and domains, and router addresses. Some of the information is obtained by the wizard from system files, and you only need to confirm that the information is correct, or correct it if necessary.

When you progress through the dialog boxes and approve the information, and the DHCP server daemon starts on the server system, you are prompted to start the Add Addresses Wizard to configure IP addresses for the network. Only the server's network is configured for DHCP initially, and other server options are given default values. You can run DHCP Manager again after the initial configuration is complete to add networks and modify other server options.

dhcpconfig Features

In interactive mode, the dhcpconfig utility prompts you for information and then adds macros to the dhcptab and creates DHCP network tables. It prompts you for server startup options such as the interval for reading the dhcptab, the timeout value for DHCP service offers, and so on. It obtains other information from the system files discussed in Updating System Files and Netmask Tables. You cannot view the information it obtains from system files, so it is important that the system files be updated before you run dhcpconfig in interactive mode.


Note –

The interactive mode is scheduled to be removed in a future Solaris release. DHCP Manager is the recommended tool for interactive use.


In noninteractive mode, the dhcpconfig command supports a list of options that allow you to configure and unconfigure a DHCP server, as well as convert to a new data store and import/export data to and from other DHCP servers. The command can be used in scripts. Please see the dhcpconfig man page for more information.

Comparison of DHCP Manager and dhcpconfig

The following table summarizes the differences between the two server configuration tools.

Table 2–4 Comparison of DHCP Manager and the dhcpconfig Command

Feature 

DHCP Manager 

dhcpconfig Interactive

dhcpconfig With Options

Network information gathered from system. 

Allows you to view the information gathered from system files, and change it if needed. 

You cannot see what information dhcpconfig is gathering. You must look at the dhcptab and network tables after they are created.

You specify the network information with command-line options. 

Configuration experience for user. 

Speeds the configuration process by omitting prompts for nonessential server options by using default values for them. Allows you to change nonessential options after initial configuration. 

Prompts for all server options during configuration process. To change the options later, you must use dhtadm and pntadm commands.

Fastest configuration process, but user must specify values for many options. 

The next chapter includes procedures you can use to configure your server with both DHCP Manager and the dhcpconfig utility.