Cisco DHCP issue with multi-o/s environment

Discussion in 'Cisco' started by Dan, Jul 5, 2007.

  1. Dan

    Dan Guest

    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.
     
    Dan, Jul 5, 2007
    #1
    1. Advertisements

  2. 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

    ---

    ~ 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.
     
    Aaron Leonard, Jul 5, 2007
    #2
    1. Advertisements

  3. 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.
     
    Martin Gallagher, Jul 6, 2007
    #3
  4. Dan

    Dan Guest

    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.
     
    Dan, Jul 6, 2007
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.