15 October, 2014

Cisco Catalyst DHCP server: ASSIGNMENT FAILURE, POOL EXHAUSTED

Had an issue with Cisco Catalyst 2960 switch not assigning IP from the configured DHCP pool.
WS-C2960S-24PS-L running IOS 15.2(1)E, C2960S-UNIVERSALK9-M

First debugging DHCP events:

Wifi-cat#debu ip dhcp server events
Oct 14 14:26:23.567: DHCPD: Sending notification of DISCOVER:
Oct 14 14:26:23.567:   DHCPD: htype 1 chaddr 4c00.821a.e425
Oct 14 14:26:23.567:   DHCPD: interface = Vlan225
Oct 14 14:26:23.567:   DHCPD: class id 436973636f204150206331363030
Oct 14 14:26:23.567:   DHCPD: out_vlan_id 0
Oct 14 14:26:23.567: DHCPD: Sending notification of DISCOVER:
Oct 14 14:26:23.567:   DHCPD: htype 1 chaddr 4c00.821a.e425
Oct 14 14:26:23.567:   DHCPD: interface = Vlan225
Oct 14 14:26:23.567:   DHCPD: class id 436973636f204150206331363030
Oct 14 14:26:23.567:   DHCPD: out_vlan_id 0
Oct 14 14:26:23.567: DHCPD: subnet [10.241.102.97,10.241.102.126] in address pool Wifi-pool is empty.
Oct 14 14:26:23.567: DHCPD: Sending notification of ASSIGNMENT FAILURE:
Oct 14 14:26:23.567:   DHCPD: htype 1 chaddr 4c00.821a.e425
Oct 14 14:26:23.567:   DHCPD: remote id 020a00000af166630c000000
Oct 14 14:26:23.567:   DHCPD: interface = Vlan225
Oct 14 14:26:23.567:   DHCPD: class id 436973636f204150206331363030
Oct 14 14:26:23.567:   DHCPD: out_vlan_id 0
Oct 14 14:26:23.567: DHCPD: Sending notification of ASSIGNMENT_FAILURE:
Oct 14 14:26:23.567:  DHCPD: due to: POOL EXHAUSTED
Oct 14 14:26:23.567:   DHCPD: htype 1 chaddr 4c00.821a.e425
Oct 14 14:26:23.567:   DHCPD: remote id 020a00000af166630c000000
Oct 14 14:26:23.567:   DHCPD: interface = Vlan225
Oct 14 14:26:23.567:   DHCPD: class id 436973636f204150206331363030
Oct 14 14:26:23.567:   DHCPD: out_vlan_id 0

Then checking the affected DHCP pool for statistics:

Wifi-cat#sh ip dhcp pool Wifi-pool

Pool Wifi-pool :
 Utilization mark (high/low)    : 100 / 0
 Subnet size (first/next)       : 0 / 0
 Total addresses                : 30
 Leased addresses               : 0
 Excluded addresses             : 7
 Pending event                  : none
 1 subnet is currently in the pool :
 Current index        IP address range                    Leased/Excluded/Total
 0.0.0.0              10.241.102.97    - 10.241.102.126    0     / 7     / 30

I see that 0 addresses are leased, 7 excluded and 30 total- should be enough free addresses to lease.
But current index shows 0.0.0.0 which means:
The Current index for the first two subnets is 0.0.0.0, indicating that each of these subnets has used all its available addresses.
http://www.cisco.com/c/en/us/td/docs/routers/10000/10008/configuration/guides/broadband/bba/odap.html#wp1073035

Checking the conflicts database indicates that there are no conflicts.
Wifi-cat#sh ip dhcp conflict

But still, just in case I tried clearing the conflicts:
Wifi-cat#clear ip dhcp pool Wifi-pool conflict *

As a result the DHCP server started leasing IPs and the current index reset itself:
Wifi-cat#sh ip dhcp pool Wifi-pool

Pool Wifi-pool :
 Utilization mark (high/low)    : 100 / 0
 Subnet size (first/next)       : 0 / 0
 Total addresses                : 30
 Leased addresses               : 1
 Excluded addresses             : 7
 Pending event                  : none
 1 subnet is currently in the pool :
 Current index        IP address range                    Leased/Excluded/Total
 10.241.102.102       10.241.102.97    - 10.241.102.126    1     / 7     / 30

Don't know why this situation happened. Could be a software bug? Still investigating.
It is somewhat similar to the previous DHCP issue I described before:

3 comments:

  1. Did you ever find the reason behind this? I am running into a similar issue on a 1941. I resolved it by restarting the dhcp service.

    ReplyDelete
  2. I didnt find a solution. I also had problems with the conflict database not clearing automatically. So I decided to ditch the conflict logging;
    no ip dhcp conflict logging
    Now detected conflicts will not be added to the conflict database thus preventing the conflict database from exhausting the entire DHCP addresspool.

    ReplyDelete
  3. Thanks, do you also know if there's a possibility on 1941's to filter out if a pool has exceeded a certain thresshold of IP leases? I.e. 450 out of 500 addresses are assigned to client devices => send an alert or syslog or maybe something with oid's?

    ReplyDelete