Configuring The Cisco IOS DHCP Server: Finding Feature Information

Download as pdf or txt
Download as pdf or txt
You are on page 1of 46

Configuring the Cisco IOS DHCP Server

Cisco devices running Cisco software include Dynamic Host Configuration Protocol (DHCP) server and the
relay agent software. The Cisco IOS DHCP server is a full DHCP server implementation that assigns and
manages IP addresses from specified address pools within the device to DHCP clients. The DHCP server
can be configured to assign additional parameters such as the IP address of the Domain Name System (DNS)
server and the default device.
This module describes the concepts and the tasks needed to configure the Cisco IOS DHCP server.

• Finding Feature Information, page 1


• Prerequisites for Configuring the DHCP Server, page 1
• Information About the Cisco IOS DHCP Server, page 2
• How to Configure the Cisco IOS DHCP Server, page 4
• Configuration Examples for the Cisco IOS DHCP Server, page 36
• Additional References for Cisco IOS DHCP Server, page 43
• Feature Information for the Cisco IOS DHCP Server, page 44

Finding Feature Information


Your software release may not support all the features documented in this module. For the latest caveats and
feature information, see Bug Search Tool and the release notes for your platform and software release. To
find information about the features documented in this module, and to see a list of the releases in which each
feature is supported, see the feature information table.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support.
To access Cisco Feature Navigator, go to www.cisco.com/go/cfn. An account on Cisco.com is not required.

Prerequisites for Configuring the DHCP Server


• Before you configure a Cisco Dynamic Host Control Protocol (DHCP) server, you must understand the
concepts documented in the Overview of the DHCP Server section.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
1
Configuring the Cisco IOS DHCP Server
Information About the Cisco IOS DHCP Server

• The Cisco DHCP server and the relay agent services are enabled by default. Use the no service dhcp
command to disable the Cisco DHCP server and the relay agent and the service dhcp command to
reenable the functionality.
• Port 67 (the DHCP server port) is closed in the Cisco DHCP/BOOTP default configuration. There are
two logical parts to the service dhcp command: service enabled and service running. The DHCP service
is enabled by default, but port 67 does not open until the DHCP service is running. If the DHCP service
is running, the show ip sockets details or the show sockets detail command displays port 67 as open.
• The Cisco DHCP relay agent is enabled on an interface only when you configure the ip helper-address
command. This command enables a DHCP broadcast to be forwarded to the configured DHCP server.

Information About the Cisco IOS DHCP Server

Overview of the DHCP Server


The Cisco DHCP server accepts address assignment requests and renewals from the client and assigns the
addresses from predefined groups of addresses within DHCP address pools. These address pools can also be
configured to supply additional information to the requesting client such as the IP address of the Domain
Name System (DNS) server, the default device, and other configuration parameters. The Cisco DHCP server
can accept broadcasts from locally attached LAN segments or from DHCP requests that have been forwarded
by other DHCP relay agents within the network.

DHCP Attribute Inheritance


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.
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.

DHCP Server Address Allocation Using Option 82


The Cisco IOS DHCP server can allocate dynamic IP addresses based on the relay information option (option
82) sent by the relay agent.
DHCP provides a framework for passing configuration information to hosts on a TCP/IP network. Configuration
parameters and other control information are carried in tagged data items that are stored in the options field
of the DHCP message. The data items are also called options. Option 82 is organized as a single DHCP option
that contains information known by the relay agent.
Automatic DHCP address allocation is based on an IP address. This IP address can either be the gateway
address (giaddr field of the DHCP packet) or the IP address of an incoming interface. In some networks, it is
necessary to use additional information to further determine which IP addresses to allocate. By using option

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
2
Configuring the Cisco IOS DHCP Server
DHCP Server Address Allocation Using Option 82

82, the Cisco IOS DHCP relay agent can include additional information about itself when forwarding
client-originated DHCP packets to a DHCP server. The Cisco IOS DHCP server can also use option 82 to
provide additional information to properly allocate IP addresses to DHCP clients. The information sent via
option 82 is used to identify the port where the DHCP request arrives. Automatic DHCP address allocation
does not parse out the individual suboptions contained in option 82. Rather, the address allocation is done by
matching a configured pattern byte by byte.
This feature introduces a new DHCP class capability, which is a method to group DHCP clients based on
some shared characteristics other than the subnet in which the clients reside.
For example, DHCP clients are connected to two ports of a single switch. Each port can be configured to be
a part of two VLANs: VLAN1 and VLAN2. DHCP clients belong to either VLAN1 or VLAN2 and the switch
can differentiate the VLAN that a particular DHCP Discover message belongs to (possibly through Layer 2
encapsulation). Each VLAN has its own subnet and all DHCP messages from the same VLAN (same switch)
have the giaddr field set to the same value indicating the subnet of the VLAN.
Problems can occur while allocating IP addresses to DHCP clients that are connected to different ports of the
same VLAN. These IP addresses must be part of the same subnet but the range of IP addresses must be
different. In the preceding example, when a DHCP client that is connected to a port of VLAN1 must be
allocated an IP address from a range of IP addresses within the VLAN’s subnet, whereas a DHCP client
connecting to port 2 of VLAN1 must be allocated an IP address from another range of IP addresses. The two
range of IP addresses are part of the same subnet (and have the same subnet mask). Generally, during DHCP
address allocation, the DHCP server refers only to the giaddr field and is unable to differentiate between the
two ranges.
To solve this problem, a relay agent residing at the switch inserts the relay information option (option 82),
which carries information specific to the port, and the DHCP server inspects both the giaddr field and the
inserted option 82 during the address selection process.
When you enable option 82 on a device, the following sequence of events occurs:
1 The host (DHCP client) generates a DHCP request and broadcasts it on the network.
2 When the device receives the DHCP request, it adds the option 82 information in the packet. The option
82 information contains the device MAC address (the remote ID suboption) and the port identifier,
vlan-mod-port, from which the packet is received (the circuit ID suboption).
3 The device adds the IP address of the relay agent to the DHCP packet.
4 The device forwards the DHCP request that includes the option 82 field to the DHCP server.
5 The DHCP server receives the packet. If the server is option 82 capable, it uses the remote ID, the circuit
ID, or both to assign IP addresses and implement policies, such as restricting the number of IP addresses
that can be assigned to a single remote ID or circuit ID. The DHCP server echoes the option 82 field in
the DHCP reply.
6 The DHCP server unicasts the reply to the device if the request is relayed to the server by the device. The
device verifies that it originally inserted the option 82 data by inspecting remote ID and possibly circuit
ID fields. The device removes the option 82 field and forwards the packet to the interface that connects
to the DHCP client that sent the DHCP request.
The Cisco software refers to a pool of IP addresses (giaddr or incoming interface IP address) and matches the
request to a class or classes configured in the pool in the order the classes are specified in the DHCP pool
configuration.
When a DHCP address pool is configured with one or more DHCP classes, the pool becomes a restricted
access pool, which means that no addresses are allocated from the pool unless one or more classes in the pool
matches. This design allows DHCP classes to be used either for access control (no default class is configured
on the pool) or to provide further address range partitions within the subnet of the pool.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
3
Configuring the Cisco IOS DHCP Server
How to Configure the Cisco IOS DHCP Server

Multiple pools can be configured with the same class, eliminating the need to configure the same pattern in
multiple pools.
The following capabilities are supported for DHCP class-based address allocation:
• Specifying the full relay agent information option value as a raw hexadecimal string by using the
relay-information hex command in new relay agent information configuration mode.
• Support for bit-masking the raw relay information hexadecimal value.
• Support for a wildcard at the end of a hexadecimal string specified by the relay-information hex
command.

If the relay agent inserts option 82 but does not set the giaddr field in the DHCP packet, the DHCP server
interface must be configured as a trusted interface by using the ip dhcp relay information trusted command.
This configuration prevents the server from dropping the DHCP message.

How to Configure the Cisco IOS DHCP Server

Configuring a DHCP Database Agent or Disabling Conflict Logging


A DHCP database agent is any host (for example, an FTP, a TFTP, or a remote copy protocol [RCP] server)
or storage media on a DHCP server (for example, disk0) that stores the DHCP bindings database. You can
configure multiple DHCP database agents, and the interval between database updates and transfers for each
agent.
Automatic bindings are IP addresses that are automatically mapped to the MAC addresses of hosts that are
found in the DHCP database. Automatic binding information (such as lease expiration date and time, interface
index, and VPN routing and forwarding [VRF] name) is stored in a database agent. The bindings are saved
as text records for easy maintenance.
An address conflict occurs when two hosts use the same IP address. During address assignment, DHCP checks
for conflicts by using ping and gratuitous Address Resolution Protocol (ARP). If a conflict is detected, the
address is removed from the pool. The address is not assigned until the administrator resolves the conflict.

Note We strongly recommend using database agents. However, the Cisco DHCP server can run without database
agents. If you choose not to configure a DHCP database agent, disable the recording of DHCP address
conflicts on the DHCP server by using the no ip dhcp conflict logging command in global configuration
mode. If there is a conflict logging but no database agent is configured, bindings during a switchover are
lost when a device reboots. Possible false conflicts can occur causing the address to be removed from the
address pool.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
4
Configuring the Cisco IOS DHCP Server
Configuring a DHCP Database Agent or Disabling Conflict Logging

SUMMARY STEPS

1. enable
2. configure terminal
3. Do one of the following:
• ip dhcp database url [timeout seconds | write-delay seconds]
• no ip dhcp conflict logging

4. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 Do one of the following: Configures a DHCP server to save automatic bindings
on a remote host called a database agent.
• ip dhcp database url [timeout seconds | write-delay
seconds] or

• no ip dhcp conflict logging Disables DHCP address conflict logging.

Example:
Device(config)# ip dhcp database
ftp://user:[email protected]/router-dhcp timeout
80

Example:
Device(config)# no ip dhcp conflict logging

Step 4 end Exits global configuration mode and returns to privileged


EXEC mode.
Example:
Device(config)# end

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
5
Configuring the Cisco IOS DHCP Server
Excluding IP Addresses

Excluding IP Addresses
The IP address configured on a device interface is automatically excluded from the DHCP address pool. The
DHCP server assumes that all other IP addresses in a DHCP address pool subnet are available for assigning
to DHCP clients.
You must exclude addresses from the pool if the DHCP server does not allocate those IP addresses to DHCP
clients. Consider a scenario where two DHCP servers are set up for the same network segment (subnet) for
redundancy. If DHCP servers do not coordinate their services with each other using a protocol such as DHCP
failover, each DHCP server must be configured to allocate addresses from a nonoverlapping set of addresses
in the shared subnet. See the Example: Configuring Manual Bindings section for a configuration example.

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp excluded-address low-address [high-address]
4. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp excluded-address low-address [high-address] Specifies IP addresses that the DHCP server should not
assign to DHCP clients.
Example:
Device(config)# ip dhcp excluded-address
172.16.1.100 172.16.1.103

Step 4 end Exits global configuration mode and returns to privileged


EXEC mode.
Example:
Device(config)# end

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
6
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Configuring DHCP Address Pools

Configuring a DHCP Address Pool


On a per-address pool basis, specify DHCP options for the client as necessary.
You can configure a DHCP address pool with a name that is a string (such as “engineering”) or an integer
(such as 0). Configuring a DHCP address pool also puts the device into 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 device list).
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 process by which the
DHCP server identifies the DHCP address pool to use for a client request is described in the Configuring
Manual Bindings section.
The DHCP server identifies and uses DHCP address pools for a client request, in the following manner:
• If the client is not directly connected to the DHCP server (the giaddr field of the DHCPDISCOVER
broadcast message is nonzero), the server matches the DHCPDISCOVER with the DHCP pool that has
the subnet that contains the IP address in the giaddr field.
• If the client is directly connected to the DHCP server (the giaddr field is zero), the DHCP server matches
the DHCPDISCOVER with DHCP pools that contain the subnets configured on the receiving interface.
If the interface has secondary IP addresses, 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.

Cisco DHCP server software supports advanced capabilities for IP address allocation. See the Configuring
DHCP Address Allocation Using Option 82 section for more information.

Before You Begin


Before you configure the DHCP address pool, you must:
• Identify DHCP options for devices where necessary, including the following:
• Default boot image name
• Default devices
• Domain Name System (DNS) servers
• Network Basic Input/Output System (NetBIOS) name server
• Primary subnet
• Secondary subnets and subnet-specific default device lists (see Configuring a DHCP Address Pool
with Secondary Subnets for information on secondary subnets).

• Decide on a NetBIOS node type (b, p, m, or h).


• Decide on a DNS domain name.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
7
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Note You cannot configure manual bindings within the same pool that is configured with the network DHCP
pool configuration command. To configure manual bindings, see the Configuring Manual Bindings section.

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool name
4. utilization mark high percentage-number [log]
5. utilization mark low percentage-number [log]
6. network network-number [mask | /prefix-length] [secondary]
7. domain-name domain
8. dns-server address [address2 ... address8]
9. bootfile filename
10. next-server address [address2 ... address8]
11. netbios-name-server address [address2 ... address8]
12. netbios-node-type type
13. default-router address [address2 ... address8]
14. option code [instance number] {ascii string | hex string | ip-address}
15. lease {days [hours [minutes]] | infinite}
16. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool name Creates a name for the DHCP server address pool and enters DHCP
pool configuration mode.
Example:
Device(config)# ip dhcp pool 1

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
8
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Command or Action Purpose


Step 4 utilization mark high percentage-number (Optional) Configures the high utilization mark of the current address
[log] pool size.
• The log keyword enables the logging of a system message. A
Example: system message will be generated for a DHCP pool when the pool
Device(dhcp-config)# utilization mark utilization exceeds the configured high utilization threshold.
high 80 log

Step 5 utilization mark low percentage-number [log] (Optional) Configures the low utilization mark of the current address
pool size.
Example: • The log keyword enables the logging of a system message. A
Device(dhcp-config)# utilization mark system message will be generated for a DHCP pool when the pool
low 70 log utilization falls below the configured low utilization threshold.

Step 6 network network-number [mask | Specifies the subnet network number and mask of the DHCP address
/prefix-length] [secondary] pool.

Example:
Device(dhcp-config)# network 172.16.0.0
/16

Step 7 domain-name domain Specifies the domain name for the client.

Example:
Device(dhcp-config)# domain-name
cisco.com

Step 8 dns-server address [address2 ... address8] Specifies the IP address of a DNS server that is available to a DHCP
client.
Example: • One IP address is required; however, you can specify up to eight
Device(dhcp-config)# dns server IP addresses in one command.
172.16.1.103 172.16.2.103
• Servers should be listed in order of preference.

Step 9 bootfile filename (Optional) Specifies the name of the default boot image for a DHCP
client.
Example: • The boot file is used to store the boot image for the client. The
Device(dhcp-config)# bootfile xllboot boot image is generally the operating system that the client uses
to load.

Step 10 next-server address [address2 ... address8] (Optional) Configures the next server in the boot process of a DHCP
client.
Example: • One address is required; however, you can specify up to eight
Device(dhcp-config)# next-server addresses in one command line.
172.17.1.103 172.17.2.103

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
9
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Command or Action Purpose


• If multiple servers are specified, DHCP assigns them to clients
in a round-robin order. The first client gets address 1, the next
client gets address 2, and so on.
• If this command is not configured, DHCP uses the server specified
by the ip helper address command as the boot server.

Step 11 netbios-name-server address [address2 ... (Optional) Specifies the NetBIOS WINS server that is available to a
address8] Microsoft DHCP client.
• One address is required; however, you can specify up to eight
Example: addresses in one command line.
Device(dhcp-config)# netbios-name-server
172.16.1.103 172.16.2.103 • Servers should be listed in order of preference.

Step 12 netbios-node-type type (Optional) Specifies the NetBIOS node type for a Microsoft DHCP
client.
Example:
Device(dhcp-config)# netbios-node-type
h-node

Step 13 default-router address [address2 ... address8] (Optional) Specifies the IP address of the default device for a DHCP
client.
Example: • The IP address should be on the same subnet as the client.
Device(dhcp-config)# default-router
172.16.1.100 172.16.1.101 • One IP address is required; however, you can specify up to eight
IP addresses in one command line. These default devices are listed
in order of preference; that is, address is the most preferred device,
address2 is the next most preferred device, and so on.
• When a DHCP client requests an IP address, the device—acting
as a DHCP server—accesses the default device list to select
another device that the DHCP client will use as the first hop for
forwarding messages. After a DHCP client has booted, the client
begins sending packets to its default device.

Step 14 option code [instance number] {ascii string | (Optional) Configures DHCP server options.
hex string | ip-address}

Example:
Device(dhcp-config)# option 19 hex 01

Step 15 lease {days [hours [minutes]] | infinite} (Optional) Specifies the duration of the lease.
• The default is a one-day lease.
Example:
• The infinite keyword specifies that the duration of the lease is
Device(dhcp-config)# lease 30
unlimited.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
10
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Command or Action Purpose


Step 16 end Returns to privileged EXEC mode.

Example:
Device(dhcp-config)# end

Configuring a DHCP Address Pool with Secondary Subnets


For any DHCP pool, you can configure a primary subnet and any number of secondary subnets. Each subnet
is a range of IP addresses that the device uses to allocate an IP address to a DHCP client. The DHCP server
multiple subnet functionality enables a Cisco DHCP server address pool to manage additional IP addresses
by adding the addresses to a secondary subnet of an existing DHCP address pool (instead of using a separate
address pool).
Configuring a secondary DHCP subnetwork places the device in DHCP pool secondary subnet configuration
mode—identified by the (config-dhcp-subnet-secondary)# prompt—where you can configure a default address
list that is specific to the secondary subnet. You can also specify the utilization rate of the secondary subnet,
which allows pools of IP addresses to dynamically increase or reduce in size depending on the address
utilization level. This setting overrides the global utilization rate.
If the DHCP server selects an address pool that contains multiple subnets, the DHCP server allocates an IP
address from the subnets as follows:
• When the DHCP server receives an address assignment request, it looks for an available IP address in
the primary subnet.
• When the primary subnet is exhausted, the DHCP server automatically looks for an available IP address
in any of the secondary subnets maintained by the DHCP server (even though the giaddr does not
necessarily match the secondary subnet). The server inspects the subnets for address availability in the
order of subnets that were added to the pool.
• If the giaddr matches a secondary subnet in the pool, the DHCP server allocates an IP address from that
particular secondary subnet (even if IP addresses are available in the primary subnet and irrespective of
the order of secondary subnets that were added).

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
11
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool name
4. utilization mark high percentage-number [log]
5. utilization mark low percentage-number [log]
6. network network-number [mask | /prefix-length]
7. domain-name domain
8. dns-server address [address2 ... address8]
9. bootfile filename
10. next-server address [address2 ... address8]
11. netbios-name-server address [address2 ... address8]
12. netbios-node-type type
13. default-router address [address2 ... address8]
14. option code [instance number] {ascii string | hex string | ip-address}
15. lease {days [hours] [minutes] | infinite}
16. network network-number [mask | /prefix-length] [secondary]
17. override default-router address [address2 ... address8]
18. override utilization high percentage-number
19. override utilization low percentage-number
20. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool name Creates a name for the DHCP server address pool and enters DHCP pool
configuration mode.
Example:
Device(config)# ip dhcp pool 1

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
12
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Command or Action Purpose


Step 4 utilization mark high percentage-number (Optional) Configures the high utilization mark of the current address
[log] pool size.
• The log keyword enables logging of a system message. A system
Example: message is generated for a DHCP pool when the pool utilization
Device(dhcp-config)# utilization mark exceeds the configured high utilization threshold.
high 80 log

Step 5 utilization mark low percentage-number (Optional) Configures the low utilization mark of the current address pool
[log] size.
• The log keyword enables logging of a system message. A system
Example: message is generated for a DHCP pool when the pool utilization
Device(dhcp-config)# utilization mark falls below the configured low utilization threshold.
low 70 log

Step 6 network network-number [mask | Specifies the subnet network number and mask of the primary DHCP
/prefix-length] address pool.

Example:
Device(dhcp-config)# network 172.16.0.0
/16

Step 7 domain-name domain Specifies the domain name for the client.

Example:
Device(dhcp-config)# domain-name
cisco.com

Step 8 dns-server address [address2 ... address8] Specifies the IP address of a DNS server that is available to a DHCP
client.
Example: • One IP address is required; however, you can specify up to eight
Device(dhcp-config)# dns server IP addresses in one command.
172.16.1.103 172.16.2.103
• Servers should be listed in the order of preference.

Step 9 bootfile filename (Optional) Specifies the name of the default boot image for a DHCP
client.
Example: • The boot file is used to store the boot image for the client. The boot
Device(dhcp-config)# bootfile xllboot image is generally the operating system image that the client loads.

Step 10 next-server address [address2 ... address8] (Optional) Configures the next server in the boot process of a DHCP
client.
Example: • One IP address is required; however, you can specify up to eight
Device(dhcp-config)# next-server IP addresses in one command line.
172.17.1.103 172.17.2.103

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
13
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Command or Action Purpose


• If multiple servers are specified, DHCP assigns the servers to clients
in a round-robin order. The first client gets address 1, the next client
gets address 2, and so on.
• If this command is not configured, DHCP uses the server specified
by the ip helper address command as the boot server.

Step 11 netbios-name-server address [address2 ... (Optional) Specifies the NetBIOS Windows Internet Naming Service
address8] (WINS) server that is available to a Microsoft DHCP client.
• One address is required; however, you can specify up to eight
Example: addresses in one command line.
Device(dhcp-config)#
netbios-name-server 172.16.1.103 • Servers should be listed in order of preference.
172.16.2.103

Step 12 netbios-node-type type (Optional) Specifies the NetBIOS node type for a Microsoft DHCP client.

Example:
Device(dhcp-config)# netbios-node-type
h-node

Step 13 default-router address [address2 ... address8] (Optional) Specifies the IP address of the default device for a DHCP
client.
Example: • The IP address should be on the same subnet as the client.
Device(dhcp-config)# default-router
172.16.1.100 172.16.1.101 • One IP address is required; however, you can specify a up to eight
IP addresses in one command line. These default devices are listed
in order of preference; that is, address is the most preferred device,
address2 is the next most preferred device, and so on.
• When a DHCP client requests for an IP address, the device—acting
as a DHCP server—accesses the default device list to select another
device that the DHCP client uses as the first hop for forwarding
messages. After a DHCP client has booted, the client begins sending
packets to its default device.

Step 14 option code [instance number] {ascii string (Optional) Configures DHCP server options.
| hex string | ip-address}

Example:
Device(dhcp-config)# option 19 hex 01

Step 15 lease {days [hours] [minutes] | infinite} (Optional) Specifies the duration of the lease.
• The default is a one-day lease.
Example:
• The infinite keyword specifies that the duration of the lease is
Device(dhcp-config)# lease 30
unlimited.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
14
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Command or Action Purpose


Step 16 network network-number [mask | (Optional) Specifies the network number and mask of a secondary DHCP
/prefix-length] [secondary] server address pool.
• Any number of secondary subnets can be added to a DHCP server
Example: address pool.
Device(dhcp-config)# network 10.10.0.0
255.255.0.0 secondary • During execution of this command, the configuration mode changes
to DHCP pool secondary subnet configuration mode, which is
identified by (config-dhcp-subnet-secondary)# prompt. In this mode,
the administrator can configure a default device list that is specific
to the subnet.
• See Troubleshooting Tips section if you are using secondary IP
addresses under a loopback interface with DHCP secondary subnets.

Step 17 override default-router address [address2 (Optional) Specifies the default device list that is used when an IP address
... address8] is assigned to a DHCP client from a particular secondary subnet.
• If the subnet-specific override value is configured, this override
Example: value is used when assigning an IP address from the subnet; the
Device(config-dhcp-subnet-secondary)# network-wide default device list is used only to set the gateway
override default-router 10.10.0.100 device for the primary subnet.
10.10.0.101
• If this subnet-specific override value is not configured, the
network-wide default device list is used when assigning an IP
address from the subnet.
• See Example: Configuring a DHCP Address Pool with Multiple
Disjoint Subnets section for a sample configuration.

Step 18 override utilization high percentage-number (Optional) Sets the high utilization mark of the subnet size.
• This command overrides the global default setting specified by the
Example: utilization mark high command.
Device(config-dhcp-subnet-secondary)#
override utilization high 60

Step 19 override utilization low percentage-number (Optional) Sets the low utilization mark of the subnet size.
• This command overrides the global default setting specified by the
Example: utilization mark low command.
Device(config-dhcp-subnet-secondary)#
override utilization low 40

Step 20 end Returns to privileged EXEC mode.

Example:
Device(config-dhcp-subnet-secondary)#
end

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
15
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

Troubleshooting Tips
If you are using secondary IP addresses under a single loopback interface and using secondary subnets under
a DHCP pool, use one DHCP pool to configure networks for all the secondary subnets instead of using one
pool per secondary subnet. The network network-number [mask | /prefix-length] [secondary] command must
be configured under a single DHCP address pool rather than multiple DHCP address pools.
The following is the correct configuration:

!
ip dhcp pool dhcp_1
network 172.16.1.0 255.255.255.0
network 172.16.2.0 255.255.255.0 secondary
network 172.16.3.0 255.255.255.0 secondary
network 172.16.4.0 255.255.255.0 secondary
!
interface Loopback111
ip address 172.16.1.1 255.255.255.255 secondary
ip address 172.16.2.1 255.255.255.255 secondary
ip address 172.16.3.1 255.255.255.255 secondary
ip address 172.16.4.1 255.255.255.255 secondary
The following is the incorrect configuration:

!
ip dhcp pool dhcp_1
network 172.16.1.0 255.255.255.0
lease 1 20 30
accounting default
!
ip dhcp pool dhcp_2
network 172.16.2.0 255.255.255.0
lease 1 20 30
accounting default
!
ip dhcp pool dhcp_3
network 172.16.3.0 255.255.255.0
lease 1 20 30
accounting default
!
ip dhcp pool dhcp_4
network 172.16.4.0 255.255.255.0
lease 1 20 30
accounting default
!
interface Loopback111
ip address 172.16.1.1 255.255.255.255 secondary
ip address 172.16.2.1 255.255.255.255 secondary
ip address 172.16.3.1 255.255.255.255 secondary
ip address 172.16.4.1 255.255.255.255 secondary

Verifying the DHCP Address Pool Configuration


The following configuration commands are optional. You can enter the show commands in any order.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
16
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Pools

SUMMARY STEPS

1. enable
2. show ip dhcp pool [name]
3. show ip dhcp binding [address]
4. show ip dhcp conflict [address]
5. show ip dhcp database [url]
6. show ip dhcp server statistics [type-number]

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 show ip dhcp pool [name] (Optional) Displays information about DHCP address pools.

Example:
Device# show ip dhcp pool

Step 3 show ip dhcp binding [address] (Optional) Displays a list of all bindings created on a specific DHCP
server.
Example: • Use the show ip dhcp binding command to display the IP
Device# show ip dhcp binding addresses that have already been assigned. Verify that the
address pool is not exhausted. If necessary, recreate the pool
to create a larger pool of addresses.
• Use the show ip dhcp binding command to display the lease
expiration date and time of the IP address of the host.

Step 4 show ip dhcp conflict [address] (Optional) Displays a list of all IP address conflicts.

Example:
Device# show ip dhcp conflict

Step 5 show ip dhcp database [url] (Optional) Displays recent activity on the DHCP database.

Example:
Device# show ip dhcp database

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
17
Configuring the Cisco IOS DHCP Server
Configuring Manual Bindings

Command or Action Purpose


Step 6 show ip dhcp server statistics [type-number] (Optional) Displays count information about server statistics and
messages sent and received.
Example:
Device# show ip dhcp server statistics

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 are manually mapped to MAC addresses of hosts that are found in the
DHCP database. Manual bindings are stored in the NVRAM of the DHCP server. Manual bindings are just
special address pools. There is no limit to the number of manual bindings, but you can configure only one
manual binding per host pool.
Automatic bindings are IP addresses that have been automatically mapped to MAC addresses of hosts that
are found in the DHCP database. Because the bindings are stored in the volatile memory of the DHCP server,
binding information is lost in the event of power failures or on device reloads. To prevent the loss of automatic
binding information, a copy of the automatic binding information is stored on a remote host called the DHCP
database agent. The bindings are periodically written to the database agent. When the device reloads, the
bindings are read from the database agent to the DHCP database in the DHCP server.

Note We strongly recommend that you use database agents. However, Cisco DHCP server can function even
without database agents.

Some DHCP clients send a client identifier (DHCP option 61) in the DHCP packet. To configure manual
bindings for such clients, you must enter the client-identifier command with the hexadecimal values that
identify the DHCP client. To configure manual bindings for clients that do not send a client identifier option,
you must enter the hardware-address DHCP pool configuration command with the hexadecimal hardware
address of the client.
Depending on your release, the DHCP server sends infinite lease time to the clients for which manual bindings
are configured.
Depending on your release, the DHCP server sends lease time that is configured using the lease command to
clients for which manual bindings are configured.

Note You cannot configure manual bindings within the same pool that is configured with the network command
in DHCP pool configuration mode. See the Configuring DHCP Address Pools section for information
about DHCP address pools and the network command.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
18
Configuring the Cisco IOS DHCP Server
Configuring Manual Bindings

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool pool-name
4. host address [mask | /prefix-length]
5. client-identifier unique-identifier
6. hardware-address hardware-address [protocol-type | hardware-number]
7. client-name name
8. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool pool-name Creates a name for the DHCP server address pool and enters DHCP pool
configuration mode.
Example:
Device(config)# ip dhcp pool pool1

Step 4 host address [mask | /prefix-length] Specifies the IP address and subnet mask of the client.
• There is no limit to the number of manual bindings you can configure.
Example: However, you can configure only one manual binding per host pool.
Device(dhcp-config)# host 172.16.0.1

Step 5 client-identifier unique-identifier Specifies the unique identifier for DHCP clients.
• This command is used for DHCP requests.
Example:
• DHCP clients require client identifiers. You can specify the unique
Device(dhcp-config)#
client-identifier 01b7.0813.8811.66 identifier for the client in either of the following ways:
• A 7-byte dotted hexadecimal notation. For example,
01b7.0813.8811.66, where 01 represents the Ethernet media type
and the remaining bytes represent the MAC address of the DHCP
client.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
19
Configuring the Cisco IOS DHCP Server
Configuring Manual Bindings

Command or Action Purpose


• A 27-byte dotted hexadecimal notation. For example,
7665.6e64.6f72.2d30.3032.342e.3937.6230.2e33.3734.312d.4661.302f.31.
The equivalent ASCII string for this hexadecimal value is
vendor-0024.97b0.3741-fa0/1, where vendor represents the vendor,
0024.97b0.3741 represents the MAC address of the source
interface, and fa0/1 represents the source interface of the DHCP
client.

• See the Troubleshooting section for information about how to determine


the client identifier of the DHCP client.

Note The identifier specified here is considered for a DHCP client that
sends a client identifier in the packet.
Step 6 hardware-address hardware-address Specifies a hardware address for the client.
[protocol-type | hardware-number]
• This command is used for BOOTP requests.
Example: Note The hardware address specified here is considered for a DHCP client
Device(dhcp-config)# that does not send a client identifier in the packet.
hardware-address b708.1388.f166
ethernet

Step 7 client-name name (Optional) Specifies the name of the client using any standard ASCII
character.
Example: • The client name should not include the domain name. For example, the
Device(dhcp-config)# client-name name client1 should not be specified as client1.cisco.com.
client1

Step 8 end Returns to privileged EXEC mode.

Example:
Device(dhcp-config)# end

Troubleshooting Tips
You can determine the client identifier by using the debug ip dhcp server packet command. In the following
sample output, the client is identified by the value 0b07.1134.a029:

Device# debug ip dhcp server packet

DHCPD:DHCPDISCOVER received from client 0b07.1134.a029 through relay 10.1.0.253.


DHCPD:assigned IP address 10.1.0.3 to client 0b07.1134.a029.
.
.
.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
20
Configuring the Cisco IOS DHCP Server
Configuring DHCP Static Mapping

Configuring DHCP Static Mapping


The DHCP Static Mapping feature enables the assignment of static IP addresses (without creating numerous
host pools with manual bindings) by using a customer-created text file that the DHCP server reads. The benefit
of this feature is that it eliminates the need for a long configuration file and reduces the space required in
NVRAM to maintain address pools.
A DHCP database contains the mappings between a client IP address and the hardware address, which is
referred to as a binding. There are two types of bindings: manual bindings that map a single hardware address
to a single IP address, and automatic bindings that dynamically map a hardware address to an IP address from
a pool of IP addresses. Manual (also known as static) bindings can be configured individually directly on the
device or by using the DHCP Static Mapping feature. These static bindings can be read from a separate static
mapping text file. The static mapping text files are read when a device reloads or the DHCP service restarts.
These files are read-only.
The read static bindings are treated just like the manual bindings, in that they are:
• Retained across DHCPRELEASEs from the clients.
• Not timed out.
• Deleted only upon deletion of the pool.
• Provided appropriate exclusions for the contained addresses, which are created at the time of the read.

Just like automatic bindings, manual (or static) bindings from the static mapping text file are also displayed
by using the show ip dhcp binding command.
Perform this task to create the static mapping text file. You will input your addresses in the text file, which
is stored in the DHCP database for the DHCP server to read. There is no limit to the number of addresses that
can be stored in the file. The file format has the following elements:
• Database version number
• End-of-file designator
• Hardware type
• Hardware address
• IP address
• Lease expiration
• Time the file was created

See the following table for more details about the format of the text file.
The following is a sample static mapping text file:

*time* Jan 21 2005 03:52 PM


*version* 2
!IP address Type Hardware address Lease expiration
10.0.0.4 /24 1 0090.bff6.081e Infinite
10.0.0.5 /28 id 00b7.0813.88f1.66 Infinite
10.0.0.2 /21 1 0090.bff6.081d Infinite
*end*

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
21
Configuring the Cisco IOS DHCP Server
Configuring DHCP Static Mapping

Table 1: Static Mapping Text File Field Descriptions

Field Description
*time* Specifies the time the file was created. This field allows DHCP to differentiate
between the new and old database versions when multiple agents are configured.
The valid format of the time is mm dd yyyy hh:mm AM/PM.

*version* 2 Specifies the database version number.

IP address Specifies the static IP address. If the subnet mask is not specified, a mask is
automatically assigned depending on the IP address. The IP address and the mask
is separated by a space.

Type Specifies the hardware type. For example, type “1” indicates Ethernet. The type “id”
indicates that the field is a DHCP client identifier. Legal values can be found online
at http://www.iana.org/assignments/arp-parameters in the “Number Hardware Type”
list.

Hardware address Specifies the hardware address.


When the type is numeric, the type refers to the hardware media. Legal values can
be found online at http://www.iana.org/assignments/arp-parameters in the “Number
Hardware Type” list.
When the type is “id,” the type refers to a match on the client identifier.
For more information about the client identifier, see RFC 2132, DHCP Options and
BOOTP Vendor Extensions, section 9.14, located at http://www.ietf.org/rfc/
rfc2132.txt, or the client-identifier command.
If you are unsure about the client identifier to match with the hardware type, use
the debug dhcp detail command to display the client identifier being sent to the
DHCP server from the client.

Lease expiration Specifies the expiration of the lease. “Infinite” specifies that the duration of the lease
is unlimited.

*end* End of file. DHCP uses the *end* designator to detect file truncation.

Configuring the DHCP Server to Read a Static Mapping Text File


Before You Begin
The administrator must create the static mapping text file in the correct format and configure the address pools
before performing this task.
Before editing the file, you must disable the DHCP server using the no service dhcp command.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
22
Configuring the Cisco IOS DHCP Server
Configuring DHCP Static Mapping

Note The static bindings must not be deleted when a DHCPRELEASE is received or must not be timed out by
the DHCP timer. The static bindings should be created by using the ip dhcp pool command.

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool name
4. origin file url
5. end
6. show ip dhcp binding [address]

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool name Assigns a name to a DHCP pool and enters DHCP configuration
mode.
Example: Note If you have already configured the IP DHCP pool name
Device(config)# ip dhcp pool pool1 using the ip dhcp pool command and the static file URL
using the origin file command, you must perform a fresh
read using the no service dhcp command and the service
dhcp command.
Step 4 origin file url Specifies the URL that the DHCP server can access to locate the
text file.
Example:
Device(dhcp-config)# origin file
tftp://10.1.0.1/static-bindings

Step 5 end Returns to privileged EXEC mode.

Example:
Device(dhcp-config)# end

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
23
Configuring the Cisco IOS DHCP Server
Configuring DHCP Static Mapping

Command or Action Purpose


Step 6 show ip dhcp binding [address] (Optional) Displays a list of all bindings created on a specific
DHCP server.
Example:
Device# show ip dhcp binding

Examples
The following sample output from the show ip dhcp binding command displays address bindings that are
configured:

Device# show ip dhcp binding

00:05:14:%SYS-5-CONFIG_I: Configured from console by console


Bindings from all pools not associated with VRF:
IP address Client-ID/ Ls expir Type Hw address User name
10.9.9.4/8 0063.7363.2d30.3036. Infinite Static 302e.3762.2e39.3634. 632d.4574.8892.
10.9.9.1/24 0063.6973.636f.2d30. Infinite Static 3036.302e.3437.3165. 2e64.6462.342d.
The following sample output displays each entry in the static mapping text file:

*time* Jan 21 2005 22:52 PM


!IP address Type Hardware address Lease expiration
10.19.9.1 /24 id 0063.6973.636f.2d30.3036.302e.3437
10.9.9.4 id 0063.7363.2d30.3036.302e.3762.2e39.3634.632d Infinite
*end*
The following sample debug output shows the reading of the static mapping text file from the TFTP server:
Device# debug ip dhcp server

Loading abc/static_pool from 10.19.192.33 (via Ethernet0):


[OK - 333 bytes]
*May 26 23:14:21.259: DHCPD: contacting agent tftp://10.19.192.33/abc/static_pool (attempt
0)
*May 26 23:14:21.467: DHCPD: agent tftp://10.19.192.33/abc/static_pool is responding.
*May 26 23:14:21.467: DHCPD: IFS is ready.
*May 26 23:14:21.467: DHCPD: reading bindings from tftp://10.19.192.33/abc/static_pool.
*May 26 23:14:21.707: DHCPD: read 333 / 1024 bytes.
*May 26 23:14:21.707: DHCPD: parsing text line
*time* Apr 22 2002 11:31 AM
*May 26 23:14:21.707: DHCPD: parsing text line ““
*May 26 23:14:21.707: DHCPD: parsing text line
!IP address Type Hardware address Lease expiration
*May 26 23:14:21.707: DHCPD: parsing text line
“10.9.9.1 /24 id 0063.6973.636f.2d30.3036.302e.3437”
*May 26 23:14:21.707: DHCPD: creating binding for 10.9.9.1
*May 26 23:14:21.707: DHCPD: Adding binding to radix tree (10.9.9.1)
*May 26 23:14:21.707: DHCPD: Adding binding to hash tree
*May 26 23:14:21.707: DHCPD: parsing text line
“10.9.9.4 id 0063.7363.2d30.3036.302e.3762.2e39.3634.632d”
*May 26 23:14:21.711: DHCPD: creating binding for 10.9.9.4
*May 26 23:14:21.711: DHCPD: Adding binding to radix tree (10.9.9.4)
*May 26 23:14:21.711: DHCPD: Adding binding to hash tree
*May 26 23:14:21.711: DHCPD: parsing text line “Infinite”
*May 26 23:14:21.711: DHCPD: parsing text line “”
*May 26 23:14:21.711: DHCPD: parsing text line
!IP address Interface-index Lease expiration VRF
*May 26 23:14:21.711: DHCPD: parsing text line “*end*”
*May 26 23:14:21.711: DHCPD: read static bindings from tftp://10.19.192.33/abcemp/static_pool.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
24
Configuring the Cisco IOS DHCP Server
Customizing DHCP Server Operation

Customizing DHCP Server Operation


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.
By default, the DHCP server waits for 2 seconds before timing out a ping packet.
You can configure the DHCP server to ignore and not reply to any BOOTP requests that the server receives.
This functionality is beneficial when there is a mix of BOOTP and DHCP clients in a network segment and
there is a BOOTP server and a Cisco DHCP server servicing the network segment. The BOOTP server is
configured with static bindings for the BOOTP clients and the BOOTP clients must obtain their addresses
from the BOOTP server. However, DHCP servers can also respond to BOOTP requests and the DHCP server
may offer an address that causes the BOOTP clients to boot with the address from the DHCP server, instead
of the address from the BOOTP server. Configuring the DHCP server to ignore BOOTP requests ensures that
the BOOTP clients will receive address information from the BOOTP server and will not accept an address
from a DHCP server.
Cisco software can forward these ignored BOOTP request packets to another DHCP server if the ip
helper-address command is configured on the incoming interface.

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp ping packets number
4. ip dhcp ping timeout milliseconds
5. ip dhcp bootp ignore
6. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp ping packets number (Optional) Specifies the number of ping packets the DHCP server
sends to a pool address before assigning the address to a requesting
Example: client.

Device(config)# ip dhcp ping packets 5

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
25
Configuring the Cisco IOS DHCP Server
Configuring a Remote Device to Import DHCP Server Options from a Central DHCP Server

Command or Action Purpose


• The default is two packets. Setting the number argument to a
value of 0 disables the DHCP server ping operation.

Step 4 ip dhcp ping timeout milliseconds (Optional) Specifies the duration the DHCP server waits for a ping
reply from an address pool.
Example:
Device(config)# ip dhcp ping timeout
850

Step 5 ip dhcp bootp ignore (Optional) Allows the DHCP server to selectively ignore and not reply
to received BOOTP requests.
Example: • The ip dhcp bootp ignore command applies to all DHCP pools
Device(config)# ip dhcp bootp ignore configured on the device. BOOTP requests cannot be selectively
ignored on a per-DHCP pool basis.

Step 6 end Returns to privileged EXEC mode.

Example:
Device(config)# end

Configuring a Remote Device to Import DHCP Server Options from a Central


DHCP Server
The Cisco DHCP server can dynamically configure options such as the Domain Name System (DNS) and
Windows Internet Name Service (WINS) addresses to respond to DHCP requests from local clients behind
the customer premises equipment (CPE). Earlier, network administrators configured the Cisco DHCP server
on each device manually. Now, the Cisco DHCP server is 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 centralized servers.
This section contains the following tasks:

Configuring the Central DHCP Server to Update DHCP Options


Perform the following task to configure the Central DHCP Server to update DHCP options:

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
26
Configuring the Cisco IOS DHCP Server
Configuring a Remote Device to Import DHCP Server Options from a Central DHCP Server

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool name
4. network network-number [mask | /prefix-length]
5. dns-server address [address2 ... address8]
6. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool name Creates a name for the DHCP server address pool and enters
DHCP pool configuration mode.
Example:
Device(config)# ip dhcp pool 1

Step 4 network network-number [mask | /prefix-length] Specifies the subnet number and mask of the DHCP address
pool.
Example:
Device(dhcp-config)# network 172.16.0.0 /16

Step 5 dns-server address [address2 ... address8] (Optional) Specifies the IP address of a DNS server that is
available to a DHCP client.
Example: • One IP address is required; however, you can specify up
Device(dhcp-config)# dns server 172.16.1.103 to eight IP addresses in one command line.
172.16.2.103
• Servers should be listed in the order of preference.

Step 6 end Returns to privileged EXEC mode.

Example:
Device(dhcp-config)# end

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
27
Configuring the Cisco IOS DHCP Server
Configuring a Remote Device to Import DHCP Server Options from a Central DHCP Server

Configuring the Remote Device to Import DHCP Options


Perform the following task to configure the remote device to import DHCP options:

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool pool-name
4. network network-number [mask | /prefix-length]
5. import all
6. exit
7. interface type number
8. ip address dhcp
9. end
10. show ip dhcp import

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool pool-name Creates a name for the DHCP server address pool and enters
DHCP pool configuration mode.
Example:
Device(config)# ip dhcp pool pool1

Step 4 network network-number [mask | /prefix-length] Specifies the subnet network number and mask of the
DHCP address pool.
Example:
Device(dhcp-config)# network 172.30.0.0 /16

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
28
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Allocation Using Option 82

Command or Action Purpose


Step 5 import all Imports DHCP option parameters into the DHCP server
database.
Example:
Device(dhcp-config)# import all

Step 6 exit Exits DHCP pool configuration mode and enters global
configuration mode.
Example:
Device(dhcp-config)# exit

Step 7 interface type number Configures an interface and enters interface configuration
mode.
Example:
Device(config)# interface FastEthernet 0/0

Step 8 ip address dhcp Specifies that the interface acquires an IP address through
DHCP.
Example:
Device(config-if)# ip address dhcp

Step 9 end Returns to privileged EXEC mode.

Example:
Device(config-if)# end

Step 10 show ip dhcp import Displays the options that are imported from the central
DHCP server.
Example:
Device# show ip dhcp import

Configuring DHCP Address Allocation Using Option 82

Enabling Option 82 for DHCP Address Allocation


By default, the Cisco DHCP server uses information provided by option 82 to allocate IP addresses. If the
DHCP address allocation is disabled, perform the task described in this section to reenable this capability.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
29
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Allocation Using Option 82

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp use class
4. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp use class Controls DHCP classes that are used for address allocation.
• This functionality is enabled by default.
Example:
• Use the no form of this command to disable this functionality
Device(config)# ip dhcp use class
without deleting the DHCP class configuration.

Step 4 end Returns to privileged EXEC mode.

Example:
Device(config)# end

Troubleshooting Tips
If DHCP classes are configured in the pool, but the DHCP server does not use the classes, verify if the no ip
dhcp use class command was configured.

Defining the DHCP Class and Relay Agent Information Patterns


Before You Begin
You must know the hexadecimal value of each byte location in option 82 to configure the relay-information
hex command. The option 82 format may vary from product to product. Contact the relay agent vendor for
this information.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
30
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Allocation Using Option 82

Perform this task to define the DHCP class and relay agent information patterns:

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp class class-name
4. relay agent information
5. relay-information hex pattern [*] [bitmask mask]
6. Repeat Steps 3 through 5 for each DHCP class you need to configure.
7. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp class class-name Defines a DHCP class and enters DHCP class configuration mode.

Example:
Device(config)# ip dhcp class CLASS1

Step 4 relay agent information Enters relay agent information option configuration mode.
• If you omit this step, the DHCP class matches any relay agent
Example: information option, whether the relay agent information
Device(dhcp-class)# relay agent option value is available or not.
information

Step 5 relay-information hex pattern [*] [bitmask (Optional) Specifies a hexadecimal value for full relay information
mask] option.
• The pattern argument creates a pattern that is used to match
Example: the DHCP class.
Device(dhcp-class-relayinfo)#
relay-information hex • If you omit this step, no pattern is configured and it is
01030a0b0c02050000000123 considered a match to any relay agent information option
value, but the relay information option must be available in
the DHCP packet.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
31
Configuring the Cisco IOS DHCP Server
Configuring DHCP Address Allocation Using Option 82

Command or Action Purpose


• You can configure multiple relay-information hex
commands in a DHCP class.

Step 6 Repeat Steps 3 through 5 for each DHCP class


you need to configure.
Step 7 end Returns to privileged EXEC mode.

Example:
Device(dhcp-class-relayinfo)# end

Troubleshooting Tips
Use the debug ip dhcp server class command to display the class matching results.

Defining the DHCP Address Pool


Perform this task to define the DHCP address pool:

SUMMARY STEPS

1. enable
2. configure terminal
3. ip dhcp pool name
4. network network-number [mask | /prefix-length]
5. class class-name
6. address range start-ip end-ip
7. Repeat Steps 5 and 6 for each DHCP class you need to associate with the DHCP pool.
8. end

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
32
Configuring the Cisco IOS DHCP Server
Configuring a Static Route with the Next-Hop Dynamically Obtained Through DHCP

Command or Action Purpose


Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

Step 3 ip dhcp pool name Configures a DHCP address pool on a Cisco IOS DHCP server
and enters DHCP pool configuration mode.
Example: • Multiple pools can be configured with the same class,
Device# ip dhcp pool ABC eliminating the need to configure the same pattern in multiple
pools.

Step 4 network network-number [mask | /prefix-length] Configures the subnet and mask for a DHCP address pool on a
Cisco IOS DHCP server.
Example:
Device(dhcp-config)# network 10.0.20.0

Step 5 class class-name Associates a class with a pool and enters DHCP pool class
configuration mode.
Example: • This command also creates a DHCP class if the DHCP class
Device(dhcp-config)# class CLASS1 is not yet defined.

Step 6 address range start-ip end-ip (Optional) Sets an address range for the DHCP class in a DHCP
server address pool.
Example: • If this command is not configured for a class, the default
Device(dhcp-pool-class)# address range value is the entire subnet of the pool. Each class in the DHCP
10.0.20.1 10.0.20.100 pool is examined for a match in the order configured.

Step 7 Repeat Steps 5 and 6 for each DHCP class you


need to associate with the DHCP pool.
Step 8 end Returns to privileged EXEC mode.

Example:
Device(dhcp-pool-class)# end

Configuring a Static Route with the Next-Hop Dynamically Obtained Through


DHCP
This task enables static routes to be assigned using a DHCP default gateway as the next-hop device. This
behavior was not possible before the introduction of this feature because the gateway IP address is not known

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
33
Configuring the Cisco IOS DHCP Server
Configuring a Static Route with the Next-Hop Dynamically Obtained Through DHCP

until after the DHCP address assignment. You cannot configure a static route with the CLI without knowing
that DHCP-supplied address.
The static routes are updated in the routing table when the default gateway is assigned by the DHCP server.
The routes remain in the routing table until the DHCP lease expires and then the routes are removed.
When a DHCP client releases an address, the corresponding static route (the route configured using the ip
route command) is automatically removed from the routing table. If the DHCP router option (option 3 of the
DHCP packet) changes during the client renewal, the DHCP default gateway changes to the new IP address
supplied after the renewal.
This feature is particularly useful for VPN deployments such as Dynamic Multipoint VPNs (DMVPNs). This
feature is useful when a nonphysical interface, such as a multipoint generic routing encapsulation (mGRE)
tunnel, is configured on a device and certain traffic must be excluded from entering the tunnel interface.

Before You Begin


Verify all DHCP client and server configuration steps. Ensure that the DHCP client and server are properly
defined to supply a DHCP device option 3 of the DHCP packet.

Note • If the DHCP client is not able to obtain an IP address or the default device IP address, the static route
is not installed in the routing table.
• If the lease has expired and the DHCP client cannot renew the address, the DHCP IP address assigned
to the client is released and any associated static routes are removed from the routing table.

SUMMARY STEPS

1. enable
2. configure terminal
3. ip route prefix mask {ip-address | interface-type interface-number [ip-address]} dhcp [distance]
4. end
5. show ip route

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 configure terminal Enters global configuration mode.

Example:
Device# configure terminal

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
34
Configuring the Cisco IOS DHCP Server
Clearing DHCP Server Variables

Command or Action Purpose


Step 3 ip route prefix mask {ip-address | interface-type Assigns a static route for the default next-hop device when the
interface-number [ip-address]} dhcp [distance] DHCP server is accessed for an IP address.
• If more than one interface is configured to obtain an IP address
Example: from a DHCP server, use the ip route prefix mask
Device(config)# ip route 192.168.1.1 interface-type interface-number dhcp command for each
255.255.255.255 192.168.2.2 dhcp interface. If the interface is not specified, the route is added
to the routing table as soon as any of the interfaces obtain an
IP address and a default device.

Step 4 end Returns to privileged EXEC mode.

Example:
Device(config)# end

Step 5 show ip route (Optional) Displays the current state of the routing table.

Example:
Device# show ip route

Clearing DHCP Server Variables


Perform this task to clear DHCP server variables:

SUMMARY STEPS

1. enable
2. clear ip dhcp binding {address | *}
3. clear ip dhcp conflict {address | *}
4. clear ip dhcp server statistics

DETAILED STEPS

Command or Action Purpose


Step 1 enable Enables privileged EXEC mode.
• Enter your password if prompted.
Example:
Device> enable

Step 2 clear ip dhcp binding {address | *} Deletes an automatic address binding from the DHCP database.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
35
Configuring the Cisco IOS DHCP Server
Configuration Examples for the Cisco IOS DHCP Server

Command or Action Purpose


• Specifying the address argument clears the automatic binding
Example: for a specific (client) IP address, whereas specifying an asterisk
(*) clears all automatic bindings.
Device# clear ip dhcp binding *

Step 3 clear ip dhcp conflict {address | *} Clears an address conflict from the DHCP database.
• Specifying the address argument clears the conflict for a
Example: specific IP address, whereas specifying an asterisk (*) clears
Device# clear ip dhcp conflict conflicts for all addresses.
172.16.1.103

Step 4 clear ip dhcp server statistics Resets all DHCP server counters to 0.

Example:
Device# clear ip dhcp server statistics

Configuration Examples for the Cisco IOS DHCP Server

Example: Configuring the DHCP Database Agent


The following example shows how to store bindings on host 172.16.4.253. The file transfer protocol is FTP.
The server waits for 2 minutes (120 seconds) before performing database changes.

ip dhcp database ftp://user:[email protected]/router-dhcp write-delay 120

Example: Excluding IP Addresses


In the following example, server A and server B service the subnet 10.0.20.0/24. If the subnet is split equally
between the two servers, server A is configured to allocate IP addresses 10.0.20.1 to 10.0.20.125 and server
B is configured to allocate IP addresses 10.0.20.126 to 10.0.20.254.

Server A

ip dhcp excluded-address 10.0.20.126 10.0.20.255


!
ip dhcp pool A
network 10.0.20.0 255.255.255.0

Server B

ip dhcp excluded-address 10.0.20.0 10.0.20.125


!

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
36
Configuring the Cisco IOS DHCP Server
Example: Configuring DHCP Address Pools

ip dhcp pool B
network 10.0.20.0 255.255.255.0

Example: Configuring DHCP Address Pools


In the following example, three DHCP address pools are created: one in network 172.16.0.0, one in subnetwork
172.16.1.0, and one in subnetwork 172.16.2.0. Attributes from network 172.16.0.0—such as the domain name,
Domain Name System (DNS) server, (Network Basic Input/Output System) NetBIOS name server, and
NetBIOS node type—are inherited in subnetworks 172.16.1.0 and 172.16.2.0. In each pool, clients are granted
30-day leases and all addresses in each subnetwork, except the excluded addresses, are available to the DHCP
server for assigning to clients. The table below lists the IP addresses for the devices in three DHCP address
pools.

Table 2: DHCP Address Pool Configuration

Pool 0 (Network Pool 1 (Subnetwork Pool 2 (Subnetwork


172.16.0.0) 172.16.1.0) 172.16.2.0)
Device IP Address Device IP Address Device IP Address

Default devices — Default devices 172.16.1.100 Default devices 172.16.2.100


172.16.1.101 172.16.2.101

DNS server 172.16.1.102 — — — —


172.16.2.102

NetBIOS name 172.16.1.103 — — — —


server 172.16.2.103

NetBIOS node type h-node — — — —

ip dhcp database ftp://user:[email protected]/router-dhcp write-delay 120


ip dhcp excluded-address 172.16.1.100 172.16.1.103
ip dhcp excluded-address 172.16.2.100 172.16.2.103
!
ip dhcp pool 0
network 172.16.0.0 /16
domain-name cisco.com
dns-server 172.16.1.102 172.16.2.102
netbios-name-server 172.16.1.103 172.16.2.103
netbios-node-type h-node
!
ip dhcp pool 1
network 172.16.1.0 /24
default-router 172.16.1.100 172.16.1.101
lease 30
!
ip dhcp pool 2
network 172.16.2.0 /24
default-router 172.16.2.100 172.16.2.101
lease 30

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
37
Configuring the Cisco IOS DHCP Server
Example: Configuring a DHCP Address Pool with Multiple Disjoint Subnets

Example: Configuring a DHCP Address Pool with Multiple Disjoint Subnets


Multiple disjoint subnets in a DHCP pool can be used in any of the following network topologies:
• IP address pooling—The DHCP client and server reside on the same subnet.
• DHCP relay—The DHCP client and DHCP server communicate through a DHCP relay agent where the
relay interface is configured with secondary IP addresses.
• Hierarchical DHCP—The DHCP server is configured as the DHCP subnet allocation server. The DHCP
client and DHCP subnet allocation server communicate through an on-demand address pool (ODAP)
router.

In the following example, one DHCP address pool named pool3 is created; the primary subnet is 172.16.0.0/16,
one secondary subnet is 172.16.1.0/24, and the other secondary subnet is 172.16.2.0/24.
• When IP addresses in the primary subnet are exhausted, the DHCP server inspects the secondary subnets
in the order in which the subnets were added to the pool.
• When the DHCP server allocates an IP address from the secondary subnet 172.16.1.0/24, the server uses
the subnet-specific default device list that consists of IP addresses 172.16.1.100 and 172.16.1.101.
However, when the DHCP server allocates an IP address from the subnet 172.16.2.0/24, the server uses
the pool-wide list that consists of the four IP addresses from 172.16.0.100 to 172.16.0.103.
• Other attributes from the primary subnet 172.16.0.0/16—such as the domain name, DNS server, NetBIOS
name server, and NetBIOS node type—are inherited in both the secondary subnets.
• DHCP clients are granted 30-day leases on IP addresses in the pool. All addresses in each subnet, except
the excluded addresses, are available to the DHCP server for assigning to clients.

The table below lists the IP addresses for the devices in the DHCP address pool that consists of three disjoint
subnets.

Table 3: DHCP Address Pool Configuration with Multiple Disjoint Subnets

Primary Subnet First Secondary Second Secondary


(172.16.0.0/16) Subnet Subnet
(172.16.1.0/24) (172.16.2.0/24)
Device IP Address Device IP Address Device IP Address

Default devices 172.16.0.100 Default devices 172.16.1.100 Default devices 172.16.0.100


172.16.0.101 172.16.1.101 172.16.0.101
172.16.0.102 172.16.0.102
172.16.0.103 172.16.0.103

DNS server 172.16.1.102 — — — —


172.16.2.102

NetBIOS name 172.16.1.103 — — — —


server 172.16.2.103

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
38
Configuring the Cisco IOS DHCP Server
Example: Configuring Manual Bindings

Primary Subnet First Secondary Second Secondary


(172.16.0.0/16) Subnet Subnet
(172.16.1.0/24) (172.16.2.0/24)
NetBIOS node type h-node — — — —

ip dhcp database ftp://user:[email protected]/router-dhcp write-delay 120


ip dhcp excluded-address 172.16.0.100 172.16.1.103
ip dhcp excluded-address 172.16.1.100 172.16.1.101
!
ip dhcp pool pool3
network 172.16.0.0 /16
default-router 172.16.0.100 172.16.2.101 172.16.0.102 172.16.0.103
domain-name cisco.com
dns-server 172.16.1.102 172.16.2.102
netbios-name-server 172.16.1.103 172.16.2.103
netbios-node-type h-node
lease 30
!
network 172.16.1.0 /24 secondary
override default-router 172.16.1.100 172.16.1.101
end
!
network 172.16.2.0 /24 secondary

Example: Configuring Manual Bindings


The following example shows how to create a manual binding for a client named example1.abc.com that
sends a client identifier in the DHCP packet. The MAC address of the client is 02c7.f800.0422 and the IP
address of the client is 172.16.2.254.

ip dhcp pool pool1


host 172.16.2.254
client-identifier 01b7.0813.8811.66
client-name example1
The following example shows how to create a manual binding for a client named example2.abc.com that does
not send a client identifier in the DHCP packet. The MAC address of the client is 02c7.f800.0422 and the IP
address of the client is 172.16.2.253.

ip dhcp pool pool2


host 172.16.2.253
hardware-address 02c7.f800.0422 ethernet
client-name example1
Because attributes are inherited, the two preceding configurations are equivalent to the following:

ip dhcp pool pool1


host 172.16.2.254 255.255.255.0
hardware-address 02c7.f800.0422 ieee802
client-name client1
default-router 172.16.2.100 172.16.2.101
domain-name abc.com
dns-server 172.16.1.102 172.16.2.102
netbios-name-server 172.16.1.103 172.16.2.103
netbios-node-type h-node

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
39
Configuring the Cisco IOS DHCP Server
Example: Configuring Static Mapping

Example: Configuring Static Mapping


The following example shows how to restart the DHCP server, configure the pool, and specify the URL where
the static mapping text file is stored:

no service dhcp
service dhcp
ip dhcp pool abcpool
origin file tftp://10.1.0.1/staticfilename

Note The static mapping text file can be copied to flash memory on the device and served by the TFTP process
of the device. In this case, the IP address in the original file line must be an address owned by the device
and one additional line of configuration is required on the device:tftp-server flash static-filename.

Example: Configuring the Option to Ignore all BOOTP Requests


The following example shows two DHCP pools that are configured on the device and that the device’s DHCP
server is configured to ignore all received BOOTP requests. If a BOOTP request is received from subnet
10.0.18.0/24, the request will be dropped by the device (because the ip helper-address command is not
configured). If there is a BOOTP request from subnet 192.168.1.0/24, the request will be forwarded to
172.16.1.1 via the ip helper-address command.

version 12.2
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router
!
ip subnet-zero
!
ip dhcp bootp ignore
!
ip dhcp pool ABC
network 192.168.1.0 255.255.255.0
default-router 192.168.1.3
lease 2
!
ip dhcp pool DEF
network 10.0.18.0 255.255.255.0
!
ip cef
!
interface FastEthernet0/0
no ip address
shutdown
duplex half
!
interface Ethernet1/0
ip address 10.0.18.68 255.255.255.0
duplex half
!
interface Ethernet1/1
ip address 192.168.1.1 255.255.255.0
ip helper-address 172.16.1.1
duplex half
!
interface Ethernet1/2
shutdown

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
40
Configuring the Cisco IOS DHCP Server
Example: Importing DHCP Options

duplex half
!
interface Ethernet1/3
no ip address
shutdown
duplex half
!
interface FastEthernet2/0
no ip address
shutdown
duplex half
!
ip route 172.16.1.1 255.255.255.255 e1/0
no ip http server
no ip pim bidir-enable
!
call rsvp-sync
!
mgcp profile default
!
dial-peer cor custom
!
gatekeeper
shutdown
!
line con 0
line aux 0
line vty 0 4
!
end

Example: Importing DHCP Options


The following example shows how to configure a remote and central server to support the importing of DHCP
options. The central server is configured to automatically update DHCP options, such as DNS and WINS
addresses, within the DHCP pools. In response to a DHCP request from a local client behind CPE equipment,
the remote server can request or “import” these option parameters from the centralized server. See the figure
below for a diagram of the network topology.

Figure 1: DHCP Example Network Topology

Central Device

!do not assign this range to DHCP clients

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
41
Configuring the Cisco IOS DHCP Server
Example: Configuring DHCP Address Allocation Using Option 82

ip dhcp-excluded address 10.0.0.1 10.0.0.5


!
ip dhcp pool central
! Specifies network number and mask for DHCP clients
network 10.0.0.0 255.255.255.0
! Specifies the domain name for the client
domain-name central
! Specifies DNS server that will respond to DHCP clients when they need to correlate host
! name to ip address
dns-server 10.0.0.2
!Specifies the NETBIOS WINS server
netbios-name-server 10.0.0.2
!
interface FastEthernet0/0
ip address 10.0.0.1 255.255.255.0
duplex auto
speed auto

Remote Device

ip dhcp pool client


! Imports DHCP option parameters into DHCP server database
import all
network 172.16.2.254 255.255.255.0
!
interface FastEthernet0/0
ip address dhcp
duplex auto
speed auto

Example: Configuring DHCP Address Allocation Using Option 82


This example shows how to configure two DHCP classes. CLASS1 defines the group of DHCP clients whose
address requests contain the relay agent information option with the specified hexadecimal values. CLASS2
defines the group of DHCP clients whose address requests contain the configured relay agent information
suboptions. CLASS3 has no pattern configured and is treated as a “match to any” class. This type of class is
useful for specifying a “default” class.
The subnet of pool ABC has been divided into three ranges without further subnetting the 10.0.20.0/24 subnet.
If there is a DHCP Discover message from the 10.0.20.0/24 subnet with option 82 matching that of class
CLASS1, an available address in the range from 10.0.20.1 to 10.0.20.100 will be allocated. If there is no free
address in CLASS1’s address range, the DHCP Discover message will be matched against CLASS2, and so
on.
Therefore, each class in the DHCP pool will be examined for a match in the order configured by the user. In
pool ABC, the order of matching is CLASS1, CLASS2, and finally CLASS3. In pool DEF, class CLASS2
does not have any address range configured. By default, the address range for a particular class is the pool’s
entire subnets. Therefore, clients matching CLASS2 may be allocated addresses from 10.0.20.1 to 10.0.20.254.
Multiple pools can be configured with the same class, eliminating the need to configure the same patterns in
multiple pools. For example, there may be a need to specify that one or more pools must be used only to
service a particular class of devices (for example, cable modems and IP phones).

! Defines the DHCP classes and relay information patterns


ip dhcp class CLASS1
relay agent information
relay-information hex 01030a0b0c02050000000123
relay-information hex 01030a0b0c02*
relay-information hex 01030a0b0c02050000000000 bitmask 0000000000000000000000FF
ip dhcp class CLASS2
relay agent information
relay-information hex 01040102030402020102

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
42
Configuring the Cisco IOS DHCP Server
Example: Configuring a Static Route with the Next-Hop Dynamically Obtained Through DHCP

relay-information hex 01040101030402020102


ip dhcp class CLASS3
relay agent information
! Associates the DHCP pool with DHCP classes
ip dhcp pool ABC
network 10.0.20.0 255.255.255.0
class CLASS1
address range 10.0.20.1 10.0.20.100
class CLASS2
address range 10.0.20.101 10.0.20.200
class CLASS3
address range 10.0.20.201 10.0.20.254
ip dhcp pool DEF
network 172.64.2.2 255.255.255.0
class CLASS1
address range 172.64.2.3 172.64.2.10
class CLASS2

Example: Configuring a Static Route with the Next-Hop Dynamically Obtained


Through DHCP
The following example shows how to configure two Ethernet interfaces to obtain the next-hop device IP
address from the DHCP server:

ip route 10.10.10.0 255.255.255.0 dhcp 200


ip route 10.10.20.1 255.255.255.255 ethernet 1 dhcp

Additional References for Cisco IOS DHCP Server


Related Documents

Related Topic Document Title


Cisco IOS commands Cisco IOS Master Command List, All Releases

DHCP commands: complete command syntax, Cisco IOS IP Addressing Services Command
command mode, command history, defaults, usage Reference
guidelines, and examples

DHCP conceptual information “DHCP Overview” module

DHCP relay agent configuration “Configuring the Cisco IOS DHCP Relay Agent”
module

DHCP server on-demand address pools “Configuring the DHCP Server On-Demand Address
Pool Manager” module

DHCP client configuration “Configuring the Cisco IOS DHCP Client” module

DHCP advanced features “Configuring DHCP Services for Accounting and


Security” module

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
43
Configuring the Cisco IOS DHCP Server
Feature Information for the Cisco IOS DHCP Server

Related Topic Document Title


DHCP enhancements for edge-session management “Configuring DHCP Enhancements for Edge-Session
Management” module

DHCP options “DHCP Options” appendix in the Network Registrar


User’s Guide, Release 6.1.1

RFCs

RFCs Title
RFC 951 Bootstrap Protocol (BOOTP)

RFC 1542 Clarifications and Extensions for the Bootstrap


Protocol

RFC 2131 Dynamic Host Configuration Protocol

RFC 2132 DHCP Options and BOOTP Vendor Extensions

Technical Assistance

Description Link
The Cisco Support and Documentation website http://www.cisco.com/cisco/web/support/index.html
provides online resources to download documentation,
software, and tools. Use these resources to install and
configure the software and to troubleshoot and resolve
technical issues with Cisco products and technologies.
Access to most tools on the Cisco Support and
Documentation website requires a Cisco.com user ID
and password.

Feature Information for the Cisco IOS DHCP Server


The following table provides release information about the feature or features described in this module. This
table lists only the software release that introduced support for a given feature in a given software release
train. Unless noted otherwise, subsequent releases of that software release train also support that feature.
Use Cisco Feature Navigator to find information about platform support and Cisco software image support.
To access Cisco Feature Navigator, go to . An account on Cisco.com is not required.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
44
Configuring the Cisco IOS DHCP Server
Feature Information for the Cisco IOS DHCP Server

Table 4: Feature Information for the Cisco IOS DHCP Server

Feature Name Releases Feature Configuration


Information
DHCP Server Import All Cisco IOS XE Release 3.2SE The DHCP Server Import All
Enhancement Enhancement feature is an
enhancement to the import all
command. Prior to this
feature, the options imported
through the import all
command were overwritten by
those imported by another
subsystem. Through this
feature, options imported by
multiple subsystems can
coexist in the DHCP address
pool. When the session is
terminated or the lease is
released, the imported options
are cleared.

DHCP Server Multiple Subnet Cisco IOS XE Release 3.2SE The DHCP Server Multiple
Subnet feature enables
multiple subnets to be
configured under the same
DHCP address pool.
The following commands
were introduced or modified:
network(DHCP), override
default-router.

DHCP Server Option to Ignore all Cisco IOS XE Release 3.2SE The DHCP Server Option to
BOOTP Requests Ignore all BOOTP Requests
feature allows the Cisco IOS
DHCP server to selectively
ignore and not reply to
received Bootstrap Protocol
(BOOTP) request packets.
The following command was
introduced or modified: ip
dhcp bootp ignore.

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
45
Configuring the Cisco IOS DHCP Server
Feature Information for the Cisco IOS DHCP Server

IP Addressing: DHCP Configuration Guide, Cisco IOS XE Release 3SE (Catalyst 3850 Switches)
46

You might also like