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.

 

Configuring Manual Bindings

An address binding is a mapping between the IP address and MAC address of a client. The IP address of a client can be assigned manually by an administrator or assigned automatically from a pool by a DHCP Server.

Manual bindings are IP addresses that have been manually mapped to the MAC addresses of hosts that are found in the DHCP database. Manual bindings are stored in NVRAM on the DHCP Server. Manual bindings are just special address pools. There is no limit on the number of manual bindings but you can only configure one manual binding per host pool.

Automatic bindings are IP addresses that have been automatically mapped to the MAC addresses of hosts that are found in the DHCP database. Automatic bindings are stored on a remote host called a database agent. The bindings are saved as text records for easy maintenance.

To configure a manual binding, first create a host pool, then specify the IP address of the client and hardware address or client identifier. The hardware address is the MAC address. The client identifier, which is required for Microsoft clients (instead of hardware addresses), is formed by concatenating the media type and the MAC address of the client. Refer to the "Address Resolution Protocol Parameters" section of RFC 1700, Assigned Numbers, for a list of media type codes.

To configure manual bindings, use the following commands beginning in global configuration mode:

 

Command

Purpose

Step 1 

Router(config)# ip dhcp pool name

Creates a name for the a DHCP Server address pool and places you in DHCP pool configuration mode—identified by the (dhcp-config)# prompt.

Step 2 

Router(dhcp-config)# host address [mask | /prefix-length]

Specifies the IP address and subnet mask of the client.

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 (/).

Step 3 

Router(dhcp-config)# hardware-address hardware-address type

 

or

Router(dhcp-config)# client-identifier unique-identifier

Specifies a hardware address for the client.

The type value:

Indicates the protocol of the hardware platform. Strings and values are acceptable. The string options are:

ethernet

ieee802

The value options are:

1 10Mb Ethernet

6 IEEE 802

If no type is specified, the default protocol is Ethernet.

or

Specifies the distinct identification of the client in dotted hexadecimal notation, for example, 01b7.0813.8811.66, where 01 represents the Ethernet media type.

Step 4 

Router(dhcp-config)# client-name name

(Optional) Specifies the name of the client using any standard ASCII character. The client name should not include the domain name. For example, the name mars should not be specified as mars.cisco.com.

Configuring a DHCP Server Boot File

The boot file is used to store the boot image for the client. The boot image is generally the operating system the client uses to load. To specify a boot file for the DHCP client, use the following command in DHCP pool configuration mode:

Command

Purpose

Router(dhcp-config)# bootfile filename

Specifies the name of the file that is used as a boot image.

 

Configuring the Number of Ping Packets

By default, the DHCP Server pings a pool address twice before assigning a particular address to a requesting client. If the ping is unanswered, the DHCP Server assumes (with a high probability) that the address is not in use and assigns the address to the requesting client. To change the number of ping packets the DHCP Server should send to the pool address before assigning the address, use the following command in global configuration mode:

Command

Purpose

Router(config)# ip dhcp ping packets number

Specifies the number of ping packets the DHCP Server sends to a pool address before assigning the address to a requesting client. The default is two packets. Setting the count argument to a value of 0 turns off DHCP Server ping operation completely.

 

Configuring the Timeout Value for Ping Packets

By default, the DHCP Server waits 500 milliseconds before timing out a ping packet. To change the amount of time the server waits, use the following command in global configuration mode:

Command

Purpose

Router(config)# ip dhcp ping timeout milliseconds

Specifies the amount of time the DHCP Server must wait before timing out a ping packet. The default is 500 milliseconds.

 

Enabling the Cisco IOS DHCP Client on Ethernet Interfaces

To acquire an IP address via DHCP on an Ethernet interface, use the following command in interface configuration mode:

Command

Purpose

Router(config-if)# ip address dhcp [client-id interface name] [hostname host-name]

Specifies that the Ethernet interface acquires an IP address through DHCP.

 

Configuring DHCP Server Options Import and Autoconfiguration

The Cisco IOS DHCP server can dynamically configure options such as the DNS and WINS addresses to respond to DHCP requests from local clients behind the customer premises equipment (CPE).

Previously, network administrators needed to manually configure the Cisco IOS DHCP server on each device enabled with this feature. The Cisco IOS DHCP server was enhanced to allow configuration information to be updated automatically. Network administrators can configure one or more centralized DHCP servers to update specific DHCP options within the DHCP pools. The remote servers can request or "import" these option parameters from the centralized servers. See the section "DHCP Server Options Import and Autoconfiguration Example" later in this chapter for a configuration example.

To configure the central router to update specific DHCP options within the DHCP pools, use the following commands beginning in global configuration mode:

 

Command

Purpose

Step 1 

Router(config)# ip dhcp pool name

Creates a name for the a DHCP Server address pool and places you in DHCP pool configuration mode—identified by the (dhcp-config)# prompt.

Step 2 

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 (/).

Step 3 

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.

To configure the remote router to import DHCP options into the DHCP server database, use the following commands beginning in global configuration mode:

 

Command

Purpose

Step 1 

Router(config)# ip dhcp pool name

Creates a name for the a DHCP Server address pool and places you in DHCP pool configuration mode—identified by the (dhcp-config)# prompt.

Step 2 

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 (/).

Step 3 

Router(dhcp-config)# import all

Import DHCP option parameters into the DHCP server database.

Step 4 

Router(dhcp-config)# exit

Exits DHCP pool configuration mode.

Step 5 

Router(config)# interface type number

Configures an interface and enters interface configuration mode.

Step 6 

Router(config-if)# ip address dhcp [client-id interface name] [hostname host-name]

Specifies that the interface acquires an IP address through DHCP.

Configuring the Relay Agent Information Option in BOOTREPLY Messages

To configure the DHCP Server to validate the relay agent information option in forwarded BOOTREPLY messages, use the following command in global configuration mode:

Command

Purpose

Router(config)# ip dhcp relay information check

Configures the DHCP Server to check that the relay agent information option in forwarded BOOTREPLY messages is valid.

 

Configuring a Relay Agent Information Reforwarding Policy

To configure a relay agent information reforwarding policy on the DHCP Server (what the DHCP Server should do if a forwarded message already contains relay information), use the following command in global configuration mode:

Command

Purpose

Router(config)# ip dhcp relay information policy {drop | keep |replace}

Determines the relay information reforwarding policy in a cable modem termination system.

 

Enabling the DHCP Smart-Relay Feature

By default, the DHCP smart-relay feature is disabled. To enable the smart-relay functionality, use the following command in global configuration mode:

Command

Purpose

Router(config)# ip dhcp smart-relay

Allows the DHCP relay agent to switch the gateway address (giaddr field of a DHCP packet) to secondary addresses when there is no DHCPOFFER message from a DHCP Server.

 

Monitoring and Maintaining the DHCP Server

To clear DHCP Server variables, use the following commands in privileged EXEC mode, as needed:

Command

Purpose

Router# clear ip dhcp binding {address | *}

Deletes an automatic address binding from the DHCP database. Specifying the address argument clears the automatic binding for a specific (client) IP address, whereas specifying an asterisk (*) clears all automatic bindings.

Router# clear ip dhcp conflict {address | *}

Clears an address conflict from the DHCP database. Specifying the address argument clears the conflict for a specific IP address, whereas specifying an asterisk (*) clears conflicts for all addresses.

Router# clear ip dhcp server statistics

Resets all DHCP Server counters to 0.

Router# clear ip route [vrf vrf-name] dhcp [ip-address]

Removes routes from the routing table added by the Cisco IOS DHCP Server and Relay Agent for the DHCP clients on unnumbered interfaces.

 

To enable DHCP Server debugging, use the following command in privileged EXEC mode:

Command

Purpose

Router# debug ip dhcp server {events | packets | linkage}

Enables debugging on the DHCP Server.

 

To display DHCP Server information, use the following commands in EXEC mode, as needed:

Command

Purpose

Router# show ip dhcp binding [address]

Displays a list of all bindings created on a specific DHCP Server.

Use the show ip dhcp binding to display the lease expiration time and date of the IP address of the host and the number. You can also use this command to display the IP addresses that have already been assigned.

Router# show ip dhcp conflict [address]

Displays a list of all address conflicts recorded by a specific DHCP Server.

Router# show ip dhcp database [url]

Displays recent activity on the DHCP database.

Note Use this command in privileged EXEC mode.

Router# show ip dhcp server statistics

Displays count information about server statistics and messages sent and received.

Router# show ip dhcp import

Displays the option parameters that were imported into the DHCP Server database. Imported option parameters are not part of the router configuration and are not saved in NVRAM.

Router# show ip route [vrf vrf-name] dhcp [ip-address]

Displays the routes added to the routing table by the Cisco IOS DHCP Server and Relay Agent.