Wrong address assigned --- bottom bits of MAC address ignored ?

Jim Glassford jmglass at iup.edu
Thu Feb 28 18:23:31 UTC 2013


Hi Gary,

I found helpful, "The DHCP Handbook" ISBN 1-57870-137-6, and looks like 
I need to get a newer addition. :-)

<http://search.barnesandnoble.com/DHCP-Handbook/Ralph-E-Droms/e/9780672323270>

jim


On 2/28/2013 12:53 PM, gary mazzaferro wrote:
> Hi Glen,
>
> Thanks... This was the explanation I was looking for.. again thank you
>
> This should be in a practices guide, your description well written and
> easily understood.
>
> Both you and Sten were correct, hosts must not be placed in the subnet
> declaration. The server does act weird, it won't serve fixed addresses
> unless they are in the range. But, then its a first come basis for
> assignment.
>
> Now I have to figure out why the server is not seeing dhcp requests on eth2.
>
> again thank you...
>
> cheers,
> gary
>
>
> On Thu, Feb 28, 2013 at 6:56 AM, Glenn Satchell
> <glenn.satchell at uniq.com.au> wrote:
>> Hi Gary
>>
>> Just to clarify a few things.
>>
>> You have two ethernet interfaces and two subnets. Are these physically
>> separate subnets, ie using different switches, or different vlans on one
>> switch?
>>
>> Or are they sharing the same broadcast domain, with both subnets going
>> over the same wire and traffic visible on both ports? In dhcpd this is
>> termed a shared-network.
>>
>> This is important, because if it's a shared network the client may be
>> sending all requests out eth0. This is the mac the server sees and it
>> responds as you have seen.
>>
>> Is the second ethernet port being assigned any IP address?
>>
>> For a host statement with fixed-address the dhcp server takes some short
>> cuts. One of these side effects is that it does not record an entry in the
>> leases file. So the dhcpd.leases entry you see is for allocation from the
>> dynamic range. Once the dhcp server has allocated an address to a client
>> it will continue to offer the same address each time that client asks for
>> it unless a different client is already using it.
>>
>> The dhcp server will not allocate a fixed-address if it puts the client in
>> the wrong subnet. ie if the request came in via a relay or direct
>> connection that indicated it was in a different subnet it would allocate
>> one from the dynamic range of the appropriate subnet.
>>
>> Fourthly, if you put an address in the "range" then the server is able to
>> allocate that address even if there is a host entry with fixed-address
>> also using that same address. It is a race to see who gets it first. Even
>> though the dhcp server will ping the address before offering it, if a
>> firewall on the client (common on windows since XP) blocks icmp then it
>> will not receive a response. So fixed-addresses should not be included in
>> range statements.
>>
>> In this case you want
>>
>> range 172.31.1.17 172.31.1.30;
>> and
>> range 10.96.165.17 10.96.165.44;
>>
>> The dhcp server thinks 90:e2:ba:0c:0d:50 is connected to the 172.31.1.0
>> subnet and offers a dynamic IP from the range in that subnet. It's just a
>> coincidence that it chose 172.31.1.16, perhaps that was the first free
>> address. Now that it is in the dhcpd.leases file it will keep offering
>> that address. To clear that lease entry, stop the dhcp server process,
>> edit the dhcpd.leases file and remove all leases for that ip address
>> (there may be several entries in the file) and then start the dhcpd
>> process.
>>
>> As others have said putting host statements in the subnet definition
>> almost never does what you want, and causes confusion when clients receive
>> odd responses. You are very strongly encouraged to move them out of the
>> subnet definition. A simple comment will serve much better at documenting
>> the desired information.
>>
>> Please keep posting responses and more questions. The dhcp server is a
>> very flexible piece of software, so sometimes it takes a bit of tweaking
>> to do what you want. The important part you need to do is describe your
>> network topology to us - then we can help with how the config should go.
>>
>> regards,
>> -glenn
>>
>>
>> On Thu, February 28, 2013 11:15 pm, Sten Carlsen wrote:
>>> On 28/02/13 13:00, gary mazzaferro wrote:
>>>> Hi Sten,
>>>>
>>>> Thank you for the reply and the explanation...
>>>>
>>>> I do understand host statements are global. Placing them under the
>>>> subnets was for documentation than anything else.
>>>>
>>>> The explanation doesn't address the issue I'm experiencing, IP address
>>>> for 172.31.1.16 is already provisioned for mac address
>>>> 90:e2:ba:0c:0d:51 and in my reading of the documentation, the server
>>>> should not be offering to the incoming request using mac address
>>>> 90:e2:ba:0c:0d:50.
>>> Well, this is probably another misunderstanding, if I understand you
>>> correctly. Putting a fixed address into a host statement does NOT
>>> reserve it for any purpose. The server will happily hand it out to any
>>> who may ask IF it is in the pool/range of the subnet the discover
>>> arrives at.
>>> My guess is that your eth1 has an address in the 172.31.1.x range - this
>>> would mean that it will get an address in that range (or no addresss at
>>> all) whatever you put in the host statement.
>>>
>>> Again I will warn against putting host statements in the subnets, in
>>> this case it will mean that the following options will be given even
>>> when the address is:
>>>
>>> Feb 27 18:07:54 DCAPXEserver dhcpd: DHCPACK on 172.31.1.16 to
>>> 90:e2:ba:0c:0d:50 (hd-node4) via eth1
>>>
>>>    option domain-name "wbu.mydomain.com";
>>>    option domain-name-servers 10.96.191.251,10.119.248.254;
>>>    option routers 10.96.164.1;
>>>    default-lease-time 3456000;
>>>    max-lease-time 34560000;
>>>
>>> Basic point is DON'T put fixed address statements in the range you give
>>> the server to hand out, there will not be any reservations made. Sorry I
>>> missed this at first reading.
>>>> cheers,
>>>> gary
>>>>
>>>> On Wed, Feb 27, 2013 at 7:36 PM, Sten Carlsen <stenc at s-carlsen.dk>
>>>> wrote:
>>>>> It seems that you think the host statement can have a limited scope,
>>>>> limited
>>>>> to a subnet. That is not correct, host statements are global wherever
>>>>> they
>>>>> are placed. The bad thing about putting them into subnets is that they
>>>>> will
>>>>> inherit options from the subnet even if they get addresses from another
>>>>> subnet.
>>>>>
>>>>> The server will hand out an address corresponding to the subnet it sees
>>>>> the
>>>>> discover coming from, it will use the fixed address only if it matches
>>>>> the
>>>>> subnet the discover comes from, else it will use an address from the
>>>>> subnet's pool.
>>>>>
>>>>>
>>>>>
>>>>> On 28/02/13 2:36, gary mazzaferro wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> Maybe someone can help me..
>>>>>
>>>>> I have an intel card with 4 ports.. with incremental  mac addresses.
>>>>>
>>>>> I'm trying to to use the dhcp server 4.2.3.P2 to assign two subnets
>>>>> based on mac addresses, The server is assigning the first address it
>>>>> finds close to the mac address.  Not sure if my config file is bad..
>>>>>
>>>>> 90:e2:ba:0c:0d:50 should be 10.96.165.16
>>>>> 90:e2:ba:0c:0d:51 should be 172.31.1.16
>>>>>
>>>>> 90:e2:ba:0c:0d:50 sees and offer of 172.31.1.16
>>>>>
>>>>> Feb 27 18:07:53 DCAPXEserver dhcpd: DHCPDISCOVER from 90:e2:ba:0c:0d:50
>>>>> via
>>>>> eth1
>>>>> Feb 27 18:07:54 DCAPXEserver dhcpd: DHCPOFFER on 172.31.1.16 to
>>>>> 90:e2:ba:0c:0d:50 (hd-node4) via eth1
>>>>> Feb 27 18:07:54 DCAPXEserver dhcpd: DHCPREQUEST for 172.31.1.16
>>>>> (172.31.1.10) from 90:e2:ba:0c:0d:50 (hd-node4) via eth1
>>>>> Feb 27 18:07:54 DCAPXEserver dhcpd: DHCPACK on 172.31.1.16 to
>>>>> 90:e2:ba:0c:0d:50 (hd-node4) via eth1
>>>>>
>>>>> Can some one please help me ?
>>>>>
>>>>> lease file:
>>>>> # The format of this file is documented in the dhcpd.leases(5) manual
>>>>> page.
>>>>> # This lease file was written by isc-dhcp-4.2.3-P2
>>>>>
>>>>> server-duid "\000\001\000\001\030\224\215R\000\014)\375\317\242";
>>>>>
>>>>> lease 172.31.1.16 {
>>>>>    starts 4 2013/02/28 01:07:54;
>>>>>    ends 2 2013/04/09 01:07:54;
>>>>>    cltt 4 2013/02/28 01:07:54;
>>>>>    binding state active;
>>>>>    next binding state free;
>>>>>    rewind binding state free;
>>>>>    hardware ethernet 90:e2:ba:0c:0d:50;
>>>>>    client-hostname "hd-node4";
>>>>> }
>>>>>
>>>>> option domain-name-servers 172.31.1.10;
>>>>> default-lease-time 3456000;
>>>>> ddns-update-style none;
>>>>> authoratative ;
>>>>> subnet 172.31.1.0 netmask 255.255.255.0 {
>>>>>    option domain-name "dca.wbu.mydomain.com";
>>>>>    option domain-name-servers 172.31.1.10;
>>>>>    option routers 172.31.1.1;
>>>>>    default-lease-time 3456000;
>>>>>    max-lease-time 34560000;
>>>>>    range 172.31.1.11 172.31.1.30;
>>>>>    host hd-namenode-data1 {
>>>>>      option host-name "hd-namenode";
>>>>>      hardware ethernet 00:0c:29:c6:82:be;
>>>>>      filename "vmunix.hd-namenode";
>>>>>      fixed-address 172.31.1.11;
>>>>>    }
>>>>>    host pikespeak1 {
>>>>>      hardware ethernet 00:00:c0:5d:bd:95;
>>>>>      filename "vmunix.pikepeak";
>>>>>      server-name "pikespeak1";
>>>>>    }
>>>>>    host node1-data1 {
>>>>>      option host-name "hd-node1";
>>>>>      hardware ethernet 00:0c:29:c1:6e:35;
>>>>>      filename "vmunix.stargo";
>>>>>      fixed-address 172.31.1.13;
>>>>>    }
>>>>>    host node2-data1 {
>>>>>      option host-name "hd-node2";
>>>>>      hardware ethernet 00:0c:29:b8:af:f3;
>>>>>      filename "vmunix.stargo";
>>>>>      fixed-address 172.31.1.14;
>>>>>    }
>>>>>    host node3-data1 {
>>>>>      option host-name "hd-node3";
>>>>>      hardware ethernet 00:0c:29:04:65:ee;
>>>>>      filename "vmunix.stargo";
>>>>>      fixed-address 172.31.1.15;
>>>>>    }
>>>>>    host node4-data1-stargo {
>>>>>      option host-name "hd-node4";
>>>>>      hardware ethernet 90:e2:ba:0c:0d:51;
>>>>>      filename "vmunix.stargo";
>>>>>      fixed-address 172.31.1.16;
>>>>>    }
>>>>> }
>>>>> subnet 10.96.165.0 netmask 255.255.255.0 {
>>>>>    option domain-name "wbu.mydomain.com
>>>>> ";
>>>>>    option domain-name-servers 10.96.191.251,10.119.248.254;
>>>>>    option routers 10.96.164.1;
>>>>>    default-lease-time 3456000;
>>>>>    max-lease-time 34560000;
>>>>>    range 10.96.165.11 10.96.165.44;
>>>>>    host hd-namenode-mgt {
>>>>>      option host-name "hd-namenode";
>>>>>      hardware ethernet 00:0c:29:c6:82:b4;
>>>>>      filename "vmunix.hd-namenode";
>>>>>      fixed-address 10.96.165.11;
>>>>>    }
>>>>>    host hd-node1-mgt {
>>>>>      option host-name "hd-node1";
>>>>>      hardware ethernet 00:0c:29:c1:6e:2b;
>>>>>      filename "vmunix.hd-node1";
>>>>>      fixed-address 10.96.165.13;
>>>>>    }
>>>>>    host hd-node2-mgt {
>>>>>      option host-name "hd-node2";
>>>>>      hardware ethernet 00:0c:29:b8:af:9e;
>>>>>      filename "vmunix.hd-node2";
>>>>>      fixed-address 10.96.165.14;
>>>>>    }
>>>>>    host hd-node3-mgt {
>>>>>      option host-name "hd-node3";
>>>>>      hardware ethernet 00:0c:29:04:65:e4;
>>>>>      filename "vmunix.hd-node3";
>>>>>      fixed-address 10.96.165.15;
>>>>>    }
>>>>>    host hd-node4-mgt-stargo {
>>>>>      option host-name "hd-node4";
>>>>>      hardware ethernet 90:e2:ba:0c:0d:50;
>>>>>      filename "vmunix.hd-node4";
>>>>>      fixed-address 10.96.165.16;
>>>>>    }
>>>>> }
>>>>> _______________________________________________
>>>>> dhcp-users mailing list
>>>>> dhcp-users at lists.isc.org
>>>>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>>>>
>>>>>
>>>>> --
>>>>> Best regards
>>>>>
>>>>> Sten Carlsen
>>>>>
>>>>> No improvements come from shouting:
>>>>>         "MALE BOVINE MANURE!!!"
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> dhcp-users mailing list
>>>>> dhcp-users at lists.isc.org
>>>>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>>> _______________________________________________
>>>> dhcp-users mailing list
>>>> dhcp-users at lists.isc.org
>>>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>> --
>>> Best regards
>>>
>>> Sten Carlsen
>>>
>>> No improvements come from shouting:
>>>         "MALE BOVINE MANURE!!!"
>>>
>>> _______________________________________________
>>> dhcp-users mailing list
>>> dhcp-users at lists.isc.org
>>> https://lists.isc.org/mailman/listinfo/dhcp-users
>>
>> _______________________________________________
>> dhcp-users mailing list
>> dhcp-users at lists.isc.org
>> https://lists.isc.org/mailman/listinfo/dhcp-users
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users



More information about the dhcp-users mailing list