Showing results for 
Search instead for 
Did you mean: 

Setting Static DHCP Reservations (Catalyst 9200 Switch)

Level 1
Level 1


We want to do Static DHCP reservations for some lab equipment in our network. I think the traditional CLI way to do them is by creating single-member DHCP pools:


Conf t

ip dhcp pool host_x.x.x.x

host x.x.x.x /24

client-identifier 01xx.xxxx.xxxx.xx


Anyway, we've had a few issues with some of these being actually taken by the hosts (as per a 'show ip dhcp binding' command, the DHCP reservation wasn't grabbed by the host and it hung on to the old one even after a reboot sometimes), if they were Linux machines, but we'll work that out. This method should work even if many of the Cisco switchports are hooked up to individual 5- or 8- port dumb switches in offices (due to limited wall ports per office), because it uses the MAC (or client-identifier technically).

However, I also recently connected to the Web UI of the switch for the first time and while exploring saw that there is a feature called DHCP Persistence, where you can apparently set reserved addresses for each DHCP pool. But this seems to be done per physical *port* on the Catalyst switch. What if you have another (dumb) switch connected to that switchport, with multiple devices of different MAC addresses on that? Would they all get the same address and cause conflicts or what?

9 Replies 9


You are using a couple terms that do not mix. Setting a "static DHCP" reservation is opposites. Static means it was input manually and DHCP means it was learned dynamically from a certain source. They are separate.

Secondly, have you issued the ip dhcp excluded-address x.x.x.x command? (I believe you can also do a range of IPs with this command)

In config mode you can set IPs to be excluded from the pool you create to prevent host from grabbing it. Most people exclude the first/last 5 or 10 addresses in a /24 for things like IP of router interfaces or MGMT IPs. 


Hope that helps




I know what you mean. In fact until recently I only looked at those two things as mutually exclusive - static IP addresses and dynamic/DHCP ones. And I would simply exclude a range of addresses to make room for static IPs (which would be set manually on the individual devices themselves). But apparently there is a way to have the Cisco system reserve certain DHCP addresses so they keep getting the same ones, like a "permanent lease", but they would still technically be DHCP. I've noticed many regular home routers have some kind of functionality like this as well. And we have our reasons for wanting to do things this way for our setup. I initially just did totally static, but having various engineers set their own IPs individually may cause potential issues with conflicts and ability to track. At least with the method I'm referring to, it can be done centrally by IT on the network equipment.

I think I understand batter what you mean. Yeah if all the devices point to the router acting as a DHCP pool for its addresses then excluding addresses you want reserved may be the best bet. Try it along withy the client-identifier command to see if the devices pull the correct IPs.



debug dhcp detail

please share output of above and note disable debug after finish 

Thanks I'll try that tomorrow when I try the DHCP binding again and let you know.

So I tried doing the static dhcp binding on this device (a special PCB running a custom Linux distro apparently), and it still wouldn't take it. I removed the old binding, created the single host dhcp pool and set the client identifier using the MAC address (technically it's the MAC of the usb to ethernet adapter for the board since we can't use the built in one for certain reasons). We then also tried removing the dhcp lease from the device and rebooting the device, or turning it off while clearing the old binding and making the new one. What happens is something strange: it either goes back to its old IP address or gets a new DHCP address, but neither of those are the static reservation I set for it. Also, what's weirder is that it is listed in the dhcp binding table with something that looks like an IPV6 address, but sort of atypical, I'm not sure what this is exactly:               ff15.d3d4.0000.0200.00ab.113e.05d0.aa45.c90d.67 (instead of the MAC)

I can't even find this address on any of the interfaces of the Linux device.

Other board devices of the same type seem to exhibit this same behavior, with their own long addresses instead of the normal MAC address (or rather "client identifiers" technically since they prepend a 01) when I try to do the static dhcp reservation...

However the MAC address table itself shows the regular Mac address rather than that longer address.

Also, I set 'debug dhcp detail' before doing this but wasn't getting any extra output. I turned it off now. Unless it's sending the debug logs to a different location.


the client use client-id op.27 so it look like long as IPv6 but no it only client-id include some more info additional to MAC address 
please check link above

Interesting, I haven't heard of that before. Is there any reason why it uses the 27 byte client-id rather than the normal one like the other devices? Originally it was using a normal client-id until I tried to set a static reservation for it like this.

Anyway I guess I'll try to set the binding using that address. And using the different debug command.

Thanks for the info.

You are so so welcome 

Review Cisco Networking for a $25 gift card