dhcp not matching subnet if not first address on interface

Steve Clark sclark at netwolves.com
Tue Sep 6 10:50:11 UTC 2011

On 09/06/2011 03:00 AM, Simon Hobson wrote:
> Steve Clark wrote:
>>> I am using dhcp-4.1.1-11.P1 on EL6. I am running dhcpd without
>>> specifying an interface
>>> expecting dhcpd to match the interface based on the subnet defined
>>> in the dhcpd.conf file.
>>> This works as expected unless I have multiple addresses on the
>>> interface and the
>>> subnet that matches the dhcpd.conf file is not the first address
>>> listed on the interface.
>>> Is this a known problem? Is there a work around?
> Yes it's a known problem - it's called "administrator didn't
> configure things right"
> The workaround is to configure things right - see below !
>> Here is an example:
>> /etc/dhcp/dhcpd.conf
>> #dhcpd.conf
>>          ddns-update-style interim;
>>          shared-network DHCP{
>>                  subnet netmask {
>>                  range;
>>                  option domain-name-servers;
>>                  option routers;
>>                  option subnet-mask;
>>                  option broadcast-address;
>>                  default-lease-time 86400;
>>                  max-lease-time 86400;
>>                  deny bootp;
>>          }}
>> ip a s eth2
>> 2: eth2:<NO-CARRIER,BROADCAST,MULTICAST,UP>  mtu 1500 qdisc mq state
>> DOWN qlen 1000
>>      link/ether 00:02:b6:36:d1:39 brd ff:ff:ff:ff:ff:ff
>>      inet brd scope global eth2
>>      inet scope global eth2
> OK, eth2 is what we call a shared-network - it has two IP ranges on
> the same network (you appear to have realised that bit). What you
> need to do is define **ALL** subnets on that shared-network and group
> them in a shared-network statement like this :
> shared-network DHCP{
>     ... shared options
>     subnet netmask {
>       ... subnet options
>     }
>     subnet netmask {
>       ... subnet options
>     }
> }
> DHCPD will not work unless you correctly tell it about your network
> and it's topology. That means you accurately tell it about **all**
> subnets on **all** networks it will be servicing - you forgot to tell
> it about a subnet.
> What I'm guessing is that you've assumed it will spot the other
> subnet at boot time, and since you don't want to declare anything in
> it, then you'll accept a default empty subnet. DHCPD doesn't do that
> - local subnets attached to local interfaces are effectively a
> special case, the general case is that a subnet may or may not be
> locally attached and for most operations it doesn't make any
> difference. For networks that aren't locally attached, the only
> information the server will have about it is what you put in the
> config file. It would have been something of a waste of effort to
> code auto-config of local subnets - especially since in most cases
> the admit would still need to declare them so as to configure options
> within them.
Thanks for the response. I got suckered because we ported code from FreeBSD 6.x
to Linux which generated the dhcpd.conf file and with dhcp 3.0 on FreeBSD this worked OK
without the additional subnet declarations.

Anyway thanks for taking the time to reply.


Stephen Clark
Sr. Software Engineer III
Phone: 813-579-3200
Fax: 813-882-0209
Email: steve.clark at netwolves.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20110906/492e847c/attachment.html>

More information about the dhcp-users mailing list