cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2905
Views
0
Helpful
2
Replies

Crazy Weird DHCP Client Identifier - HELP!

Scott Pickles
Level 4
Level 4

I have been banging my head for a couple of hours now trying to get an APC SmartUPS 1500 to take a DHCP reservation.  I have followed the doc here as well as this.  I have tried placing the reservation within its own DHCP pool, as an entry under the main pool of the same (parent) subnet, using the client-identifier with and without the hardware type of '01', debugs, etc.  Here is the debug output:

CONFIGURE THE STATIC ENTRY UNDER THE MAIN POOL WITH THE CLIENT-ID (note: I have tried the client-id with hardware type 01 [0100.c0b7.2c95.f9] and without [00c0.b72c.95f9])

RDI-NYC-3650-1(config)#ip dhcp pool VLAN_10
RDI-NYC-3650-1(dhcp-config)#address 10.8.10.2 client-id 00c0.b72c.95f9
002070: Dec 2 16:36:44.804 EST: DHCPD: Adding binding to radix tree (10.8.10.2)
002071: Dec 2 16:36:44.804 EST: DHCPD: Adding binding to hash tree

HERE COMES THE DHCP REQUEST:  You can see that it comes in with the correct MAC of the client and that is exactly what is configured in the pool.

002118: Dec 2 16:39:14.567 EST: DHCPD: Sending notification of DISCOVER:
002119: Dec 2 16:39:14.567 EST: DHCPD: htype 1 chaddr 00c0.b72c.95f9
002120: Dec 2 16:39:14.567 EST: DHCPD: interface = Vlan10
002121: Dec 2 16:39:14.567 EST: DHCPD: class id 415043
002122: Dec 2 16:39:14.567 EST: DHCPD: out_vlan_id 0
002123: Dec 2 16:39:14.568 EST: DHCPD: Sending notification of DISCOVER:
002124: Dec 2 16:39:14.568 EST: DHCPD: htype 1 chaddr 00c0.b72c.95f9
002125: Dec 2 16:39:14.568 EST: DHCPD: interface = Vlan10
002126: Dec 2 16:39:14.568 EST: DHCPD: class id 415043
002127: Dec 2 16:39:14.568 EST: DHCPD: out_vlan_id 0
002128: Dec 2 16:39:14.568 EST: DHCPD: DHCPOFFER notify setup address 10.8.10.14 mask 255.255.255.0

DUMPING THE BINDINGS TABLE:  You can see clearly from the debug it bypassed my static and took another dynamic allocation.  What's really strange is the hardware address of "0000.c0b7.2c95.f900.0000".  That doesn't match any of the client-id or hardware-id formats I'm aware of.  I tried using it anyways and no dice.  I have tried various formats for hardware-id as well.

RDI-NYC-3650-1(config-if)#do sh ip dhcp bind
Bindings from all pools not associated with VRF:
IP address Client-ID/ Lease expiration Type State Interface
Hardware address/
User name
10.8.10.2 00c0.b72c.95f9 Infinite Manual Selecting Unknown
10.8.10.14 0000.c0b7.2c95.f900. Dec 02 2015 04:44 PM Automatic Selecting Vlan10
0000

1 Accepted Solution

Accepted Solutions

Peter Paluch
Cisco Employee
Cisco Employee

Hi Scott,

When I tried to find the description of the address client-id command, I've found out that while it is fleetingly described in Command References, it is not described in the DHCP Configuration Guide, and it is surprisingly not supported on the router IOSes I have available (both relatively old and new). For a static binding, the host comand has traditionally been used, so I am quite confused what this address client-id command is supposed to do and why it was invented.

In any case, can you please remove that command from your existing pool and create a new pool according to this example?

ip dhcp pool UPS
host 10.8.10.2
client-identifier 0000.c0b7.2c95.f900.0000

I assume that you already have another DHCP pool created for the network 10.8.10.0/24 - this host will automatically inherit all remaining settings (netmask, gateway, DNS, ...) from that pool so that you don't need to repeat them in this per-host pool.

Please keep in mind that the Client ID is a different, independent value from the client's MAC address, it is carried in a different field of the DHCP message (essentially, it is a DHCP option while the MAC address, also described chaddr, is a mandatory field in the DHCP message), and if the client supplies the Client ID then its MAC address is ignored for DHCP assignment purposes - the binding is based on the Client ID.

Best regards,
Peter

View solution in original post

2 Replies 2

Peter Paluch
Cisco Employee
Cisco Employee

Hi Scott,

When I tried to find the description of the address client-id command, I've found out that while it is fleetingly described in Command References, it is not described in the DHCP Configuration Guide, and it is surprisingly not supported on the router IOSes I have available (both relatively old and new). For a static binding, the host comand has traditionally been used, so I am quite confused what this address client-id command is supposed to do and why it was invented.

In any case, can you please remove that command from your existing pool and create a new pool according to this example?

ip dhcp pool UPS
host 10.8.10.2
client-identifier 0000.c0b7.2c95.f900.0000

I assume that you already have another DHCP pool created for the network 10.8.10.0/24 - this host will automatically inherit all remaining settings (netmask, gateway, DNS, ...) from that pool so that you don't need to repeat them in this per-host pool.

Please keep in mind that the Client ID is a different, independent value from the client's MAC address, it is carried in a different field of the DHCP message (essentially, it is a DHCP option while the MAC address, also described chaddr, is a mandatory field in the DHCP message), and if the client supplies the Client ID then its MAC address is ignored for DHCP assignment purposes - the binding is based on the Client ID.

Best regards,
Peter

Peter - 

The address client-id command came from the second link I referenced at the beginning of my post.  It is included in my version of IOS on my 3650 stack, and is doing essentially the same thing you are accomplishing with the separate DHCP pool.  I want to say I already tried the exact configuration you have listed because that's how I would normally do it.  If that doesn't work I'll try hardware-address.

Review Cisco Networking for a $25 gift card