Table Of Contents
Configuring DHCP
DHCP Server Overview
DHCP Client Overview
DHCP Relay Agent Overview
DHCP Configuration Task List
Enabling the Cisco IOS DHCP Server and Relay Agent Features
Configuring a DHCP Database Agent or Disabling DHCP Conflict Logging
Excluding IP Addresses
Configuring a DHCP Address Pool
Configuring the DHCP Address Pool Name and Entering DHCP Pool Configuration Mode
Configuring the DHCP Address Pool Subnet and Mask
Configuring the Domain Name for the Client
Configuring the IP Domain Name System Servers for the Client
Configuring the NetBIOS Windows Internet Naming Service Servers for the Client
Configuring the NetBIOS Node Type for the Client
Configuring the Default Router for the Client
Configuring the Address Lease Time
Configuring Manual Bindings
Troubleshooting Tips
Configuring a DHCP Server Boot File
Configuring the Number of Ping Packets
Configuring the Timeout Value for Ping Packets
Enabling the Cisco IOS DHCP Client on Ethernet Interfaces
Configuring DHCP Server Options Import and Autoconfiguration
Configuring the Relay Agent Information Option in BOOTREPLY Messages
Configuring a Relay Agent Information Reforwarding Policy
Enabling the DHCP Smart-Relay Feature
Monitoring and Maintaining the DHCP Server
Configuration Examples
DHCP Database Agent Configuration Example
DHCP Address Pool Configuration Example
Manual Bindings Configuration Example
Cisco IOS DHCP Client Example
DHCP Server Options Import and Autoconfiguration Example
Configuring DHCP
This chapter describes how to configure Dynamic Host Configuration
Protocol (DHCP). For a complete description of the DHCP commands listed
in this chapter, refer to the "DHCP Commands" chapter of the Cisco IOS IP Command Reference, Volume 1 of 3: Addressing and Services publication.
To locate documentation of other commands that appear in this chapter,
use the command reference master index, or search online.
As explained in RFC 2131, Dynamic Host Configuration Protocol,
DHCP provides configuration parameters to Internet hosts. DHCP consists
of two components: a protocol for delivering host-specific
configuration parameters from a DHCP Server to a host and a mechanism
for allocating network addresses to hosts. DHCP is built on a
client/server model, where designated DHCP Server hosts allocate network
addresses and deliver configuration parameters to dynamically
configured hosts. By default, Cisco routers running Cisco IOS software
include DHCP server and relay agent software.
DHCP supports three mechanisms for IP address allocation:
•Automatic allocation—DHCP assigns a permanent IP address to a client.
•Dynamic
allocation—DHCP assigns an IP address to a client for a limited period
of time (or until the client explicitly relinquishes the address).
•Manual
allocation—The network administrator assigns an IP address to a client
and DHCP is used simply to convey the assigned address to the client.
The format of DHCP messages is based on the format of Bootstrap Protocol
(BOOTP) messages, which ensures support for BOOTP relay agent
functionality and interoperability between BOOTP clients and DHCP
Servers. BOOTP relay agents eliminate the need for deploying a DHCP
Server on each physical network segment. BOOTP is explained in RFC 951, Bootstrap Protocol (BOOTP), and RFC 1542, Clarifications and Extensions for the Bootstrap Protocol.
To identify the hardware platform or software image information
associated with a feature, use the Feature Navigator on Cisco.com to
search for information about the feature or refer to the software
release notes for a specific release. For more information, see the
"Identifying Supported Platforms" section in the "Using Cisco IOS
Software" chapter in this book.
DHCP Server Overview
The Cisco IOS DHCP Server feature is a full DHCP Server implementation
that assigns and manages IP addresses from specified address pools
within the router to DHCP clients. If the Cisco IOS DHCP Server cannot
satisfy a DHCP request from its own database, it can forward the request
to one or more secondary DHCP Servers defined by the network
administrator.
Figure 14
shows the basic steps that occur when a DHCP client requests an IP
address from a DHCP Server. The client, Host A, sends a DHCPDISCOVER
broadcast message to locate a Cisco IOS DHCP Server. A DHCP Server
offers configuration parameters (such as an IP address, a MAC address, a
domain name, and a lease for the IP address) to the client in a
DHCPOFFER unicast message.
Figure 14 DHCP Request for an IP Address from a DHCP Server
Note A
DHCP client may receive offers from multiple DHCP Servers and can
accept any one of the offers; however, the client usually accepts the
first offer it receives. Additionally, the offer from the DHCP Server is
not a guarantee that the IP address will be allocated to the client;
however, the server usually reserves the address until the client has
had a chance to formally request the address.
The client returns a formal request for the offered IP address to the
DHCP Server in a DHCPREQUEST broadcast message. The DHCP Server confirms
that the IP address has been allocated to the client by returning a
DHCPACK unicast message to the client.
Note The
formal request for the offered IP address (the DHCPREQUEST message)
that is sent by the client is broadcast so that all other DHCP Servers
that received the DHCPDISCOVER broadcast message from the client can
reclaim the IP addresses that they offered to the client.
If the
configuration parameters sent to the client in the DHCPOFFER unicast
message by the DHCP Server are invalid (a misconfiguration error
exists), the client returns a DHCPDECLINE broadcast message to the DHCP
Server.
The DHCP Server will send to the client a DHCPNAK denial
broadcast message, which means the offered configuration parameters have
not been assigned, if an error has occurred during the negotiation of
the parameters or the client has been slow in responding to the
DHCPOFFER message (the DHCP Server assigned the parameters to another
client) of the DHCP Server.
DHCP defines a process by which the DHCP Server knows the IP subnet in
which the DHCP client resides, and it can assign an IP address from a
pool of valid IP addresses in that subnet.
The DHCP Server identifies which DHCP address pool to use to service a client request as follows:
•If
the client is not directly connected (the giaddr field of the
DHCPDISCOVER broadcast message is non-zero), the DHCP Server matches the
DHCPDISCOVER with a DHCP pool that has the subnet that contains the IP
address in the giaddr field.
•If
the client is directly connected (the giaddr field is zero), the DHCP
Server matches the DHCPDISCOVER with DHCP pool(s) that contain the
subnet(s) configured on the receiving interface. If the interface has
secondary IP addresses, the subnets associated with the secondary IP
addresses are examined for possible allocation only after the subnet
associated with the primary IP address (on the interface) is exhausted.
The Cisco IOS DHCP Server feature offers the following benefits:
•Reduced Internet access costs
Using automatic IP address assignment at each remote site substantially
reduces Internet access costs. Static IP addresses are considerably more
expensive to purchase than are automatically allocated IP addresses.
•Reduced client configuration tasks and costs
Because DHCP is easy to configure, it minimizes operational overhead and
costs associated with device configuration tasks and eases deployment
by nontechnical users.
•Centralized management
Because the DHCP Server maintains configurations for several subnets, an
administrator only needs to update a single, central server when
configuration parameters change.
Before you configure the Cisco IOS DHCP Server feature, complete the following tasks:
•Identify
an external File Transport Protocol (FTP), Trivial File Transfer
Protocol (TFTP), or remote copy protocol (rcp) server that you will use
to store the DHCP bindings database.
•Identify the IP addresses that you will enable the DHCP Server to assign, and the IP addresses that you will exclude.
•Identify DHCP options for devices where necessary, including the following:
–Default boot image name
–Default routers
–Domain Name System (DNS) servers
–NetBIOS name server
•Decide on a NetBIOS node type (b, p, m, or h).
•Decide on a DNS domain name.
DHCP Client Overview
The Cisco IOS DHCP client now enables you to obtain an IP address from a
DHCP Server dynamically using the DHCP protocol as specified in
RFC 2131. In Cisco IOS Release 12.2, only Ethernet interfaces are
supported; work is in progress to support all interface types. The
Cisco IOS DHCP client offers the following benefits:
•Reduces time to configure and deploy
•Reduces the number of configuration errors
•Enables customers to centrally control the IP address assigned to a Cisco IOS router
DHCP Relay Agent Overview
A DHCP relay agent is any host that forwards DHCP packets between
clients and servers. Relay agents are used to forward requests and
replies between clients and servers when they are not on the same
physical subnet. Relay agent forwarding is distinct from the normal
forwarding of an IP router, where IP datagrams are switched between
networks somewhat transparently. Relay agents receive DHCP messages and
then generate a new DHCP message to send out on another interface.
The Cisco IOS DHCP relay agent supports the use of unnumbered
interfaces. The DHCP relay agent automatically adds a static host route
specifying the unnumbered interface as the outbound interface.
DHCP Configuration Task List
The DHCP Server database is organized as a tree. The root of the tree is
the address pool for natural networks, branches are subnetwork address
pools, and leaves are manual bindings to clients. Subnetworks inherit
network parameters and clients inherit subnetwork parameters. Therefore,
common parameters, for example the domain name, should be configured at
the highest (network or subnetwork) level of the tree.
Note Inherited
parameters can be overridden. For example, if a parameter is defined in
both the natural network and a subnetwork, the definition of the
subnetwork is used.
Address leases are not inherited. If a lease
is not specified for an IP address, by default, the DHCP Server assigns
a one-day lease for the address.
To configure the Cisco IOS DHCP Server feature, perform the tasks
described in the following sections. First configure a database agent or
disable conflict logging, then specify IP addresses that the DHCP
Server should not assign (excluded addresses) and should assign (a pool
of available IP addresses) to requesting clients. The tasks in the first
three sections are required. The tasks in the remaining sections are
optional.
•Enabling the Cisco IOS DHCP Server and Relay Agent Features (Optional)
•Configuring a DHCP Database Agent or Disabling DHCP Conflict Logging (Required)
•Excluding IP Addresses (Required)
•Configuring a DHCP Address Pool (Required)
•Configuring Manual Bindings (Optional)
•Configuring a DHCP Server Boot File (Optional)
•Configuring the Number of Ping Packets (Optional)
•Configuring the Timeout Value for Ping Packets (Optional)
•Enabling the Cisco IOS DHCP Client on Ethernet Interfaces (Optional)
•Configuring DHCP Server Options Import and Autoconfiguration (Optional)
•Configuring the Relay Agent Information Option in BOOTREPLY Messages (Optional)
•Configuring a Relay Agent Information Reforwarding Policy (Optional)
•Enabling the DHCP Smart-Relay Feature (Optional)
Enabling the Cisco IOS DHCP Server and Relay Agent Features
By default, the Cisco IOS DHCP server and relay agent features are
enabled on your router. To reenable these features if they are disabled,
use the following command in global configuration mode:
Command
|
Purpose
|
Router(config)# service dhcp
|
Enables the Cisco IOS DHCP server and relay features on your router.
Use the no form of this command to disable the Cisco IOS DHCP server and relay features.
|
Configuring a DHCP Database Agent or Disabling DHCP Conflict Logging
A DHCP database agent is any host—for example, an FTP, TFTP, or rcp
server—that stores the DHCP bindings database. You can configure
multiple DHCP database agents and you can configure the interval between
database updates and transfers for each agent. To configure a database
agent and database agent parameters, use the following command in global
configuration mode:
Command
|
Purpose
|
Router(config)# ip dhcp database url
[timeout seconds | write-delay seconds]
|
Configures the database agent and the interval between database updates and database transfers.
|
If you choose not to configure a DHCP database agent, disable the
recording of DHCP address conflicts on the DHCP Server. To disable DHCP
address conflict logging, use the following command in global
configuration mode:
Command
|
Purpose
|
Router(config)# no ip dhcp conflict logging
|
Disables DHCP address conflict logging.
|
Excluding IP Addresses
The DHCP Server assumes that all IP addresses in a DHCP address pool
subnet are available for assigning to DHCP clients. You must specify the
IP address that the DHCP Server should not assign to clients. To do so,
use the following command in global configuration mode:
Command
|
Purpose
|
Router(config)# ip dhcp excluded-address
low-address [high-address]
|
Specifies the IP addresses that the DHCP Server should not assign to DHCP clients.
|
Configuring a DHCP Address Pool
You can configure a DHCP address pool with a name that is a symbolic
string (such as "engineering") or an integer (such as 0). Configuring a
DHCP address pool also places you in DHCP pool configuration
mode—identified by the (dhcp-config)# prompt—from which you can
configure pool parameters (for example, the IP subnet number and default
router list). To configure a DHCP address pool, complete the required
tasks in the following sections.
Configuring the DHCP Address Pool Name and Entering DHCP Pool Configuration Mode
To configure the DHCP address pool name and enter DHCP pool
configuration mode, use the following command in global configuration
mode:
Command
|
Purpose
|
Router(config)# ip dhcp pool name
|
Creates a name for the DHCP Server address pool and places you in DHCP
pool configuration mode (identified by the dhcp-config# prompt).
|
Configuring the DHCP Address Pool Subnet and Mask
To configure a subnet and mask for the newly created DHCP address pool,
which contains the range of available IP addresses that the DHCP Server
may assign to clients, use the following command in DHCP pool
configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# network network-number
[mask | /prefix-length]
|
Specifies the subnet network number and mask of the DHCP address pool.
The prefix length specifies the number of bits that comprise the address
prefix. The prefix is an alternative way of specifying the network mask
of the client. The prefix length must be preceded by a forward
slash (/).
|
Note You can not configure manual bindings within the same pool that is configured with the network command. To configure manual bindings, see the "Configuring Manual Bindings" section.
Configuring the Domain Name for the Client
The domain name for a DHCP client places the client in the general
grouping of networks that make up the domain. To configure a domain name
string for the client, use the following command in DHCP pool
configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# domain-name domain
|
Specifies the domain name for the client.
|
Configuring the IP Domain Name System Servers for the Client
DHCP clients query DNS IP servers when they need to correlate host names
to IP addresses. To configure the DNS IP servers that are available to a
DHCP client, use the following command in DHCP pool configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# dns-server address
[address2 ... address8]
|
Specifies the IP address of a DNS server that is available to a DHCP
client. One IP address is required; however, you can specify up to eight
IP addresses in one command line.
|
Configuring the NetBIOS Windows Internet Naming Service Servers for the Client
Windows Internet Naming Service (WINS) is a name resolution service that
Microsoft DHCP clients use to correlate host names to IP addresses
within a general grouping of networks. To configure the NetBIOS WINS
servers that are available to a Microsoft DHCP client, use the following
command in DHCP pool configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# netbios-name-server
address [address2 ... address8]
|
Specifies the NetBIOS WINS server that is available to a Microsoft DHCP
client. One address is required; however, you can specify up to eight
addresses in one command line.
|
Configuring the NetBIOS Node Type for the Client
The NetBIOS node type for Microsoft DHCP clients can be one of four
settings: broadcast, peer-to-peer, mixed, or hybrid. To configure the
NetBIOS node type for a Microsoft DHCP, use the following command in
DHCP pool configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# netbios-node-type type
|
Specifies the NetBIOS node type for a Microsoft DHCP client.
|
Configuring the Default Router for the Client
After a DHCP client has booted, the client begins sending packets to its
default router. The IP address of the default router should be on the
same subnet as the client. To specify a default router for a DHCP
client, use the following command in DHCP pool configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# default-router
address [address2 ... address8]
|
Specifies the IP address of the default router for a DHCP client. One IP
address is required; however, you can specify up to eight addresses in
one command line.
|
Configuring the Address Lease Time
By default, each IP address assigned by a DHCP Server comes with a
one-day lease, which is the amount of time that the address is valid. To
change the lease value for an IP address, use the following command in
DHCP pool configuration mode:
Command
|
Purpose
|
Router(dhcp-config)# lease {days
[hours][minutes] | infinite}
|
Specifies the duration of the lease. The default is a one-day lease.
•Use the show ip dhcp binding to display the lease expiration time and date of the IP address of the host.
|