<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Jan 14, 2014 at 4:00 PM, Nicolas C. <span dir="ltr"><<a href="mailto:dhcp@nryc.fr" target="_blank">dhcp@nryc.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
On 14/01/2014 17:07, John Miller wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Hello folks,<br>
<br>
I'm digging into how ISC dhcpd (we're running 4.2.4-P2) handles dynamic<br>
updates when acting as part of a failover pair.  Thus far, I'm seeing<br>
_both_ servers in the failover pair send ddns updates when a new lease<br>
is generated, rather than only the server sending the DHCPACK.  Is this<br>
normal behavior?<br>
</blockquote>
<br>
I don't think so, in failover mode both server reply but in the end only one gives the lease and do the DDNS update.<br>
<br>
Can you give us some of your logs ?<br>
<br>
Be careful with DDNS and failover : when a server dies and the other goes into "partner down", it works, but when the "dead" server comes back, it will purge all the expired leases it was managing.<br>

<br>
So basically a DHCP back from "partner down" mode after the lease time will do a *massive* cleanup in the DNS, even if the leases were correctly handled by the other DHCP.<br>
<br></blockquote><br></div><div class="gmail_quote">Thanks, Nicolas.  Glad to hear multiple updates isn't default behavior.  Here's the pertinent logs, as well as the DDNS-specific pieces of our DHCP config.  Any help would be welcome!<br>
<br>John<br><br></div><div class="gmail_quote">Logs:<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">1st DHCP server (129.64.102.14):<br>Jan 14 10:51:08 dhcp1-dev dhcpd: DHCPREQUEST for 129.64.102.250 from a6:b2:b0:77:ed:ff via eth0: lease 129.64.102.250 unavailable.<br>
Jan 14 10:51:08 dhcp1-dev dhcpd: DHCPNAK on 129.64.102.250 to a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp1-dev dhcpd: DHCPDISCOVER from a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp1-dev dhcpd: DHCPOFFER on 129.64.102.100 to a6:b2:b0:77:ed:ff via eth0<br>
Jan 14 10:51:15 dhcp1-dev dhcpd: DHCPREQUEST for 129.64.102.100 (129.64.102.14) from a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp1-dev dhcpd: DHCPACK on 129.64.102.100 to a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp1-dev dhcpd: Added new forward map from <a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a> to 129.64.102.100<br>
<br></div><div class="gmail_quote">2nd DHCP server (129.64.102.15):<br></div><div class="gmail_quote">Jan 14 10:51:15 dhcp2-dev dhcpd: DHCPDISCOVER from a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp2-dev dhcpd: DHCPOFFER on 129.64.102.100 to a6:b2:b0:77:ed:ff via eth0<br>
Jan 14 10:51:15 dhcp2-dev dhcpd: DHCPREQUEST for 129.64.102.100 (129.64.102.14) from a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp2-dev dhcpd: DHCPACK on 129.64.102.100 to a6:b2:b0:77:ed:ff via eth0<br>Jan 14 10:51:15 dhcp2-dev dhcpd: Added new forward map from <a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a> to 129.64.102.100<br>
<br></div><div class="gmail_quote">Primary DDNS server:<br>Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.14#36493: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': update unsuccessful: <a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a>: 'name not in use' prerequisite not satisfied (YXDOMAIN)<br>
Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.15#64204: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': update unsuccessful: <a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a>: 'name not in use' prerequisite not satisfied (YXDOMAIN)<br>
Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.15#64204: signer "<a href="http://dhcp2-dev.brandeis.edu">dhcp2-dev.brandeis.edu</a>" approved<br>Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.15#64204: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': deleting rrset at '<a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a>' A<br>
Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.15#64204: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': adding an RR at '<a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a>' A<br>
Jan 14 10:51:15 dns-ext-dev1 named[7894]: zone <a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>: sending notifies (serial 1385157532)<br>Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.101.52#39397: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': update unsuccessful: <a href="http://johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu">johnmill-jm-ddns-client-devel.dyn-dev.brandeis.edu</a>: 'name not in use' prerequisite not satisfied (YXDOMAIN)<br>
Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.14#36493: signer "<a href="http://dhcp1-dev.brandeis.edu">dhcp1-dev.brandeis.edu</a>" approved<br>Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.14#36493: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': deleting rrset at 'johnmill-jm-ddns-client-dev<br>
<a href="http://el.dyn-dev.brandeis.edu">el.dyn-dev.brandeis.edu</a>' A<br>Jan 14 10:51:15 dns-ext-dev1 named[7894]: client 129.64.102.14#36493: updating zone '<a href="http://dyn-dev.brandeis.edu/IN">dyn-dev.brandeis.edu/IN</a>': adding an RR at 'johnmill-jm-ddns-client-devel<br>
.<a href="http://dyn-dev.brandeis.edu">dyn-dev.brandeis.edu</a>' A<br><br><br></div><div class="gmail_quote">DHCP Configs:<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">--dhcp1-dev--<br>ddns-update-style interim;<br>
ddns-domainname "<a href="http://dyn-dev.brandeis.edu">dyn-dev.brandeis.edu</a>";<br>deny client-updates;<br>do-forward-updates true;<br>update-conflict-detection true;<br><br>key "<a href="http://dhcp1-dev.brandeis.edu">dhcp1-dev.brandeis.edu</a>" {<br>
        algorithm hmac-md5;<br>        secret "NotReallyOurSecret";<br>};<br><br>zone <a href="http://dyn-dev.brandeis.edu">dyn-dev.brandeis.edu</a>. {<br>        primary 129.64.101.51;<br>        secondary 129.64.101.52;<br>
        key <a href="http://dhcp1-dev.brandeis.edu">dhcp1-dev.brandeis.edu</a>;<br>}<br><br>update-static-leases on;<br><br></div><div class="gmail_quote">--dhcp2-dev--<br>ddns-update-style interim;<br>ddns-domainname "<a href="http://dyn-dev.brandeis.edu">dyn-dev.brandeis.edu</a>";<br>
deny client-updates;<br>do-forward-updates true;<br>update-conflict-detection true;<br><br>key "<a href="http://dhcp2-dev.brandeis.edu">dhcp2-dev.brandeis.edu</a>" {<br>        algorithm hmac-md5;<br>        secret "NotReallyOurSecret";<br>
};<br><br>zone <a href="http://dyn-dev.brandeis.edu">dyn-dev.brandeis.edu</a>. {<br>        primary 129.64.101.51;<br>        key <a href="http://dhcp2-dev.brandeis.edu">dhcp2-dev.brandeis.edu</a>;<br>}<br><br>update-static-leases on;<br>
<br></div><div class="gmail_quote"><br></div></div></div>