Error with dynamic update

Simon Hobson simon at thehobsons.co.uk
Thu May 5 07:05:27 UTC 2011


Flex Banana wrote:

>here a small part of all configuration files:
>
># /etc/dhcpd.conf
>
>include "/etc/named.d/vl005000";
>include "/etc/dhcpd.subnet-eth0";
>include "/etc/dhcpd.subnet-eth1";
>include "/etc/dhcpd.subnet-eth2";
>include "/etc/dhcpd.static";
>
>authoritative;
>server-name vl005000;
>option ntp-servers vl005000.lausanne.edu-vd;
>default-lease-time 3600;
>deny client-updates;
>ddns-update-style interim;
>ddns-updates on;
>ddns-hostname = lcase (option host-name);
>
>if substring (lcase (option dhcp-client-identifier), 1, 8) = "lausanne"
>{
>option domain-name "lausanne.edu-vd";
>option domain-search "lausanne.edu-vd";
>}
>elsif substring (lcase (option dhcp-client-identifier), 1, 5) = "aigle"
>{
>option domain-name "aigle.alpes.edu-vd";
>option domain-search "aigle.alpes.edu-vd lausanne.edu-vd";
>}
>elsif substring (lcase (option dhcp-client-identifier), 1, 3) = "bex"
>{
>option domain-name "bex.alpes.edu-vd";
>option domain-search "bex.alpes.edu-vd lausanne.edu-vd";
>}
>else
>{
>option domain-search "domaine.edu-vd";
>}
>
>
># /etc/dhcpd.subnet-eth0
>
>subnet 10.28.25.0 netmask 255.255.255.0 {
>option routers 10.28.25.1;
>range 10.28.25.151 10.28.25.254;
>option subnet-mask 255.255.255.0;
>option domain-name-servers 10.28.25.50;
>zone 25.28.10.in-addr.arpa. { primary 10.28.25.50; key vl005000; }
>zone lausanne.edu-vd. { primary 10.28.25.50; key vl005000; }
>zone aigle.alpes.edu-vd. { primary 10.28.25.50; key vl005000; }
>zone bex.alpes.edu-vd. { primary 10.28.25.50; key vl005000; }
>}
>
>
># /etc/dhcpd.subnet-eth1
>
>subnet 10.28.25.0 netmask 255.255.255.0 {
>option routers 10.28.25.1;
>range 10.28.25.151 10.28.25.254;
>option subnet-mask 255.255.255.0;
>option domain-name-servers 10.28.25.50;
>zone 25.28.10.in-addr.arpa. { primary 10.28.25.50; key vl005000; }
>zone lausanne.edu-vd. { primary 10.28.25.50; key vl005000; }
>zone aigle.alpes.edu-vd. { primary 10.28.25.50; key vl005000; }
>zone bex.alpes.edu-vd. { primary 10.28.25.50; key vl005000; }
>}

OK, I see absolutely nothing whatsoever there that would make dhcpd 
behave differently when doing updates for the different interfaces. 
If it does behave differently based on the arrival interface of the 
packet, then that's an artifact of it's internal operation and liable 
to change at any time without warning. What output do you get from 
"diff /etc/dhcpd.subnet-eth0 /etc/dhcpd.subnet-eth1" ? If that's a 
true copy of your config then there will be no output and the two 
include files are identical.

Given that, I'd say that the first update to view ETH1 was merely an 
accident. Perhaps it's random which source address is used ?

The only way I can see this working is to run up 3 instances of 
dhcpd, each bound to one interface. The only setting I'm aware of 
that would affect the dhcp servers idea of it's own Ip address is 
server-identifier - but as far as I know that only affect what goes 
in the dhcp packets.

Whether you could multihome your DNS server and have different zone 
declarations for each view in the dhcp config is another idea. Eg, in 
eth0 you use 10.28.25.50 as the primary, in eth1 you use 10.28.25.51, 
and so on. But you still have the problem that dhcpd is not designed 
to select a different (but IP-wise identical) subnet declaration 
based on the interface on which the packet arrives.

Whatever, this is now way beyond my expertise, I think only someone 
intimately familiar with the code internals will be able to sort this 
one out.

-- 
Simon Hobson

Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.



More information about the dhcp-users mailing list