show ip dhcp pool
Displays the configuration and utilization statistics of a DHCP pool, used to verify pool settings and address allocation status.
Definition: show ip dhcp pool is a Cisco IOS privileged exec command. Displays the configuration and utilization statistics of a DHCP pool, used to verify pool settings and address allocation status.
Overview
The 'show ip dhcp pool' command is a critical diagnostic tool in Cisco IOS that displays the configuration and utilization statistics of a DHCP pool. It is used to verify pool settings, monitor address allocation, and troubleshoot DHCP-related issues. This command provides a snapshot of the pool's operational state, including the number of addresses allocated, the lease expiration details, and the pool's utilization percentage.
Understanding this command is essential for network engineers managing DHCP services on Cisco routers or switches acting as DHCP servers. The command operates in Privileged EXEC mode, requiring enable access. It does not modify the running configuration but provides real-time statistics.
When troubleshooting DHCP, this command is often the first step to check if the pool is correctly configured and if addresses are being assigned. Alternatives include 'show ip dhcp binding' for detailed lease information and 'debug ip dhcp server events' for real-time packet-level debugging. The command fits into a broader workflow: after configuring a DHCP pool, use 'show ip dhcp pool' to confirm the pool exists and has the expected parameters; during troubleshooting, use it to check if the pool is exhausted or misconfigured.
Important IOS behavior: the output is buffered and may not reflect real-time changes immediately; the command requires privilege level 15 or equivalent. The output includes fields such as 'Pool name', 'Subnet size', 'Number of addresses', 'Lease time', and 'Utilization'. Understanding these fields helps in capacity planning and fault isolation.
show ip dhcp poolWhen to Use This Command
- Verify that a DHCP pool has been configured correctly with the intended subnet, default gateway, and DNS servers.
- Check how many IP addresses from a pool are currently leased versus available to troubleshoot address exhaustion.
- Confirm that a DHCP pool is enabled and active after making configuration changes.
- Audit DHCP pool utilization to plan for subnet expansion or reallocation.
Parameters
| Parameter | Syntax | Description |
|---|---|---|
| pool-name | WORD | Optional name of a specific DHCP pool to display. If omitted, all configured pools are shown. Use this to filter output for a particular pool. Common mistake: misspelling the pool name or using case-sensitive names. |
Command Examples
View DHCP pool statistics
show ip dhcp poolPool POOL1 : Utilization mark (high/low) : 100 / 0 Subnet size (first/next) : 24 / 24 Total addresses : 254 Leased addresses : 45 Pending event : none 1 subnet is currently in the pool : Current index IP address range Leased addresses 192.168.1.46 192.168.1.1 - 192.168.1.254 45
Pool name: POOL1. Utilization mark: high/low thresholds for alerts. Subnet size: prefix length of first and subsequent subnets. Total addresses: 254 usable IPs. Leased addresses: 45 currently assigned. Pending event: none (no pending operations). Subnet table shows current index (next IP to assign), IP range, and leased count.
View DHCP pool with multiple subnets
show ip dhcp poolPool POOL2 : Utilization mark (high/low) : 100 / 0 Subnet size (first/next) : 24 / 24 Total addresses : 508 Leased addresses : 120 Pending event : none 2 subnets are currently in the pool : Current index IP address range Leased addresses 10.0.0.50 10.0.0.1 - 10.0.0.254 60 10.0.1.30 10.0.1.1 - 10.0.1.254 60
Pool POOL2 has two subnets. Total addresses: 508 (254+254). Leased addresses: 120 total across both subnets. Each subnet shows its own current index, range, and leased count. This is useful when a pool spans multiple subnets.
Understanding the Output
The output begins with the pool name. 'Utilization mark' shows high and low percentages that trigger alerts (default 100/0). 'Subnet size' indicates the prefix length of the first subnet and subsequent subnets if auto-expansion is enabled.
'Total addresses' is the sum of all usable IPs across all subnets in the pool. 'Leased addresses' shows how many are currently assigned to clients. 'Pending event' indicates if any DHCP events are queued (e.g., database updates).
The subnet list shows each subnet's 'Current index' (the next IP to be assigned), the IP address range, and the number of leased addresses in that subnet. A high lease count relative to total addresses may indicate exhaustion. Watch for 'Pending event' as it can signal delays in address assignment.
Configuration Scenarios
Configure a basic DHCP pool for a small office LAN
A small office network with 50 hosts needs DHCP services. The router acts as the DHCP server, providing IP addresses from the 192.168.1.0/24 subnet, default gateway, and DNS server.
Topology
Router(Gi0/0)---192.168.1.0/24---(Hosts)Steps
- 1.Step 1: Enter global configuration mode: Router> enable, Router# configure terminal
- 2.Step 2: Create a DHCP pool named OFFICE_POOL: Router(config)# ip dhcp pool OFFICE_POOL
- 3.Step 3: Define the network and subnet mask: Router(dhcp-config)# network 192.168.1.0 255.255.255.0
- 4.Step 4: Set the default gateway: Router(dhcp-config)# default-router 192.168.1.1
- 5.Step 5: Set the DNS server: Router(dhcp-config)# dns-server 8.8.8.8
- 6.Step 6: Set lease time to 7 days: Router(dhcp-config)# lease 7
- 7.Step 7: Exit DHCP config and verify: Router(dhcp-config)# end, Router# show ip dhcp pool OFFICE_POOL
! DHCP pool configuration ip dhcp pool OFFICE_POOL network 192.168.1.0 255.255.255.0 default-router 192.168.1.1 dns-server 8.8.8.8 lease 7 !
Verify: Use 'show ip dhcp pool OFFICE_POOL' to verify. Expected output includes pool name, subnet size, number of addresses, lease time, and utilization statistics.
Watch out: Forgetting to exclude static addresses (e.g., router interface) from the pool using 'ip dhcp excluded-address'. This can cause IP conflicts.
Configure a DHCP pool with manual bindings for a server farm
A data center has a server farm requiring static IP assignments via DHCP based on MAC addresses. The pool must reserve specific IPs for critical servers while dynamically assigning others.
Topology
Router(Gi0/0)---10.0.0.0/24---(Servers)Steps
- 1.Step 1: Enter global configuration mode: Router> enable, Router# configure terminal
- 2.Step 2: Create a DHCP pool named SERVER_FARM: Router(config)# ip dhcp pool SERVER_FARM
- 3.Step 3: Define the network: Router(dhcp-config)# network 10.0.0.0 255.255.255.0
- 4.Step 4: Set default gateway: Router(dhcp-config)# default-router 10.0.0.1
- 5.Step 5: Exclude addresses for static assignments: Router(config)# ip dhcp excluded-address 10.0.0.1 10.0.0.10
- 6.Step 6: Create manual bindings for servers: Router(dhcp-config)# host 10.0.0.11 255.255.255.0, Router(dhcp-config)# hardware-address aaaa.bbbb.cccc
- 7.Step 7: Repeat for other servers, then exit and verify: Router(dhcp-config)# end, Router# show ip dhcp pool SERVER_FARM
! DHCP pool with manual bindings ip dhcp excluded-address 10.0.0.1 10.0.0.10 ! ip dhcp pool SERVER_FARM network 10.0.0.0 255.255.255.0 default-router 10.0.0.1 host 10.0.0.11 255.255.255.0 hardware-address aaaa.bbbb.cccc host 10.0.0.12 255.255.255.0 hardware-address dddd.eeee.ffff !
Verify: Use 'show ip dhcp pool SERVER_FARM' to see the pool statistics. Use 'show ip dhcp binding' to verify manual bindings are active.
Watch out: Manual bindings require the 'host' command inside the pool; forgetting to specify the subnet mask or using an incorrect MAC address format (should be dotted hex) will cause the binding to fail.
Troubleshooting with This Command
When troubleshooting DHCP issues, 'show ip dhcp pool' is invaluable for identifying pool misconfigurations or exhaustion. A healthy output shows the pool name, subnet size, number of addresses, lease time, and utilization percentage. Key fields to focus on: 'Number of addresses' should match the subnet size; 'Utilization' indicates how many addresses are in use; 'Lease time' should match the configured value.
Problem indicators: if 'Utilization' is 100% and no addresses are available, clients will fail to obtain IPs. If the pool does not appear, it may not be configured or the configuration may be incomplete. Common symptoms this command helps diagnose: clients receiving 169.254.x.x APIPA addresses (pool exhausted or no pool configured), clients getting wrong subnet or gateway (check network and default-router fields), or lease time mismatches.
A step-by-step diagnostic flow: 1) Verify the pool exists with 'show ip dhcp pool'. 2) Check utilization; if high, consider expanding the subnet or reducing lease time. 3) Verify the network statement matches the intended subnet. 4) Check for excluded addresses that may be blocking dynamic allocation. 5) Correlate with 'show ip dhcp binding' to see which clients have leases. 6) Use 'debug ip dhcp server events' to see real-time DHCP exchanges. The command's output can also reveal if the pool is configured but not used due to interface misconfiguration (e.g., no 'ip helper-address' on the client VLAN). In summary, 'show ip dhcp pool' is the first command to run when DHCP fails, providing a quick health check of the server's address pool.
CCNA Exam Tips
CCNA exam may ask you to identify the number of available addresses from the output.
Know that 'Utilization mark' is used for SNMP notifications, not for limiting leases.
Be able to differentiate between 'Leased addresses' and 'Total addresses' to calculate utilization.
The 'Current index' shows the next IP to be assigned, not necessarily the lowest available.
Common Mistakes
Confusing 'Leased addresses' with 'Total addresses' and thinking all addresses are used.
Assuming 'Current index' is the first available IP; it's actually the next IP the router will try to assign, which may be in use.
Forgetting that the pool must be bound to a DHCP server configuration (ip dhcp server) for this command to show meaningful data.
show ip dhcp pool vs show ip dhcp binding
Both 'show ip dhcp pool' and 'show ip dhcp binding' are used for DHCP troubleshooting, but they serve distinct purposes: pool details vs. active lease records. They are commonly confused because both display DHCP-related information, yet one focuses on configuration and utilization statistics of the address pool, while the other shows the dynamic lease table of assigned addresses.
| Aspect | show ip dhcp pool | show ip dhcp binding |
|---|---|---|
| Scope | DHCP pool configuration and utilization | Active IP address bindings (leases) |
| Data shown | Pool name, subnet, lease duration, utilization % | IP address, MAC address, lease expiration, type (automatic/manual) |
| Persistence | Pool config persists in running config | Bindings are dynamic, lost on reload or DHCP server restart |
| Typical use | Verify pool settings, address exhaustion, or misconfiguration | Identify which client has which IP, check lease renewals |
| Output detail | Summarizes pool statistics (e.g., total addresses, leased, pending) | Lists each active lease individually |
Use show ip dhcp pool when you need to verify the pool's configuration, utilization, or address exhaustion status.
Use show ip dhcp binding when you need to see which IP addresses are currently leased to which clients (by MAC) and their lease expiry.
Platform Notes
In IOS-XE, the command syntax and output are identical to classic IOS. However, on newer IOS-XE versions (16.x+), the output may include additional fields like 'Total addresses' and 'Leased addresses' for clarity. On NX-OS, the equivalent command is 'show ip dhcp pool' but with different output formatting; NX-OS also uses 'feature dhcp' to enable the DHCP server.
For ASA, DHCP server functionality is limited; the command 'show dhcpd pool' is used instead, with different syntax. In IOS-XR, DHCP server is not natively supported; instead, use 'show dhcp ipv4 server' or similar. Differences between IOS versions: in 12.x, the output may not show utilization percentage; in 15.x and later, it does.
Also, in some older IOS versions, the pool name is case-sensitive; in newer versions, it is not. Always check the specific IOS documentation for your version.
Related Commands
show ip dhcp binding
Displays the current DHCP binding table, showing which IP addresses have been leased to clients, along with their MAC addresses, lease expiration, and type of binding.
show ip dhcp server statistics
Displays DHCP server statistics, including the number of messages sent and received, to monitor DHCP server performance and troubleshoot issues.
Practice for the CCNA 200-301
Test your knowledge with practice questions covering all CCNA 200-301 exam domains.
Practice CCNA 200-301 Questions