Cisco DHCP issue with multi-o/s environment

Cisco 1841 with Adv. IP

I'm having some trouble getting cisco's dhcp to work well in a mixed environment with windows and linux. Here is the problem, (which I understand also exists with ISC's dhcp aswell). I want to assign static addresses to several machines, some of which dual boot windows and linux. In the cisco config I would put something like this:

ip dhcp pool GUEST network 10.0.10.0 255.255.255.0 domain-name guest.tld dns-server 65.106.1.196 65.106.7.196 default-router 10.0.10.1

ip dhcp pool testpool host 10.0.0.38 hardware-address 0019.bbd7.fed7 default-router 10.0.0.2 dns-server 10.0.0.50

Using the above config, the linux box gets it's correct IP as expected. When I reboot into windows, I get thrown onto the guest ip block. Apparently for windows hosts, you must use client-identifier rather then hardware address. It's the same thing, but prefixed with a 01 to represent ethernet.

ip dhcp pool testpool host 10.0.0.38 hardware-address 0100.19bb.d7fe.d7 default-router 10.0.0.2 dns-server 10.0.0.50

Now the windows box can get an IP, but rebooting into linux throws you into the guest pool.

I contacted cisco, who's response was to make two pools for every host. one with hardware-address and the other with client-identifier, and set the lease time to be extremely short. While that sounded rediculous, I tried it anyway. The router won't allow you to specify two bindings with the same ip... What is the proper way to do this?? Am I going to have to get a cheap linksys router, and let that handle dhcp ?

Below is my current config: ip dhcp pool testpool origin file tftp://10.0.10.100/1841-dhcp.txt default-router 10.0.0.2 dns-server 10.0.0.50

and the file 1841-dhcp.txt:

*time* Jul 07 2007 01:17 PM *version* 2 !IP address Type Hardware address Lease expiration 10.0.0.39 /24 1 0019.bbd7.fed7 Infinate 10.0.0.39 /24 id 0100.19bb.d7fe.d7 *end*

And the console output when the cisco loads that file:

000194: *Jul 5 14:21:41.291 PCTime: DHCPD: reading bindings from tftp://10.0.10.100/1841-dhcp.txt. 000195: *Jul 5 14:21:41.299 PCTime: DHCPD: read 217 / 1024 bytes. 000196: *Jul 5 14:21:41.299 PCTime: DHCPD: parsing text line "*time* Jul 07 2007 01:17 PM" 000197: *Jul 5 14:21:41.299 PCTime: DHCPD: parsing text line "*version* 2" 000198: *Jul 5 14:21:41.299 PCTime: DHCPD: route: Parsed version = 2 000199: *Jul 5 14:21:41.299 PCTime: DHCPD: parsing text line "!IP address Type Hardware address Lease expiration" 000200: *Jul 5 14:21:41.299 PCTime: DHCPD: parsing text line "10.0.0.39 /24 1 0019.bbd7.fed7 Infinate" 000201: *Jul 5 14:21:41.299 PCTime: DHCPD: creating binding for 10.0.0.39 000202: *Jul 5 14:21:41.299 PCTime: DHCPD: Adding binding to radix tree (10.0.0.39) 000203: *Jul 5 14:21:41.299 PCTime: DHCPD: Adding binding to hash tree 000204: *Jul 5 14:21:41.299 PCTime: DHCPD: parsing text line "10.0.0.39 /24 id 0100.19bb.d7fe.d7" 000205: *Jul 5 14:21:41.299 PCTime: DHCPD: binding for 10.0.0.39 already exists. 000206: *Jul 5 14:21:41.299 PCTime: DHCPD: parsing text line "*end*" 000207: *Jul 5 14:21:41.303 PCTime: DHCPD: read static bindings from tftp://10.0.10.100/1841-dhcp.txt.
Reply to
Dan
Loading thread data ...

Dan,

The IOS DHCP server does indeed have limitations such as you describe. (Can't have a single "host" binding that maps to both a "hardware-address" and a client-id.)

It would be nice if we had an option to make the hardware-address override the client-id.

Regards,

Aaron

Reply to
Aaron Leonard

Why not just configure the Linux side of the house to send the same client-id as Windows(TM)? A couple of minutes with man seems to indicate it isn't difficult.

As far as I know there's no law that say absolutely every niggle has to be solved on the router.

Reply to
Martin Gallagher

In my particular case, I think I'll have to do just that. I was looking for a way to have the windows boxes send the mac address, but it seemed like a dead end. For anyone else who is looking at how to do this:

ifconfig |grep eth0 eth0 Link encap:Ethernet HWaddr 00:19:BB:D7:FE:D7

vim /path/to/dhclient.conf send dhcp-client-identifier 01:00:19:BB:D7:FE:D7; # note the "01:" prefixing the mac address. This tells cisco that your using Ethernet, as if it actually matters.

It's just a little lame that it had to come to this point. There is no acceptable reason why you would have to modify the client machines to get this working. Seriously, what if I were an ISP who was giving out public IP's with dhcp?

Is there another alternative? I googled 'dual boot isc dhcp', and some older message boards showed that ISC has the same problem. At lease someone had a patch to work around it... What really kills me is that the cheap linksys router i have does it with no problem... Doesn't cisco make linksys..

Thank you all.

Reply to
Dan

Cabling-Design.com Forums website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.