<div dir="ltr">Here is the description of the behavior for --dhcp-authoritative from the dnsmasq page. [1]<br><div><br></div><div>>Should be set when dnsmasq is definitely the only DHCP server on a network. For DHCPv4, it changes the behaviour from strict RFC compliance so that DHCP requests on unknown leases from unknown hosts are not ignored. This allows new hosts to get a lease without a tedious timeout under all circumstances. It also allows dnsmasq to rebuild its lease database without each client needing to reacquire a lease, if the database is lost. For DHCPv6 it sets the priority in replies to 255 (the maximum) instead of 0 (the minimum).</div><div><br></div><div>As far as I understand it, the original intent of the patch that caused the issue was to fix that refusal to answer lease renewals after a restart. So it wasn't added to get NAKs, it was added to make it respond to renewals before they timeout.</div><div><br></div><div><br></div><div>1. <a href="http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html" target="_blank">http://www.thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html</a></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, May 25, 2015 at 7:44 PM, Doug Wiegley <span dir="ltr"><<a href="mailto:dougwig@parksidesoftware.com" target="_blank">dougwig@parksidesoftware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Option 4, turn off authoritative if we don’t want NAK’s?<div><br></div><div>doug</div><div><br><div><blockquote type="cite"><div><div><div>On May 25, 2015, at 7:35 PM, Kevin Benton <<a href="mailto:blak111@gmail.com" target="_blank">blak111@gmail.com</a>> wrote:</div><br></div></div><div><div><div><div dir="ltr">Hi,<div><br></div><div>A recent change[1] to pass '--dhcp-authoritative' to dnsmasq has caused DHCPNAK messages when multiple agents are scheduled to a network [2].</div><div><div><br></div><div>This was back-ported to Icehouse and Juno so we need a fix that is compatible with both of them.</div><div><br></div><div>I have two fixes for this so far and a third alternative if we don't like those.</div><div><br></div><div>The first is hacky, but it's only a few-line change.[3] It adds an iptables rule that just stops the DHCPNAKs from making it to the client. This is clean to back-port but it doesn't protect clients that have filtering disabled (e.g. bare metal).</div><div><br></div><div>The second persists the DHCP leases to a database.[4] The downside to this was always that being rescheduled to another agent would mean no entries in the lease file. This approach adds a work-around to generate an initial fake lease file based on all of the ports in the network.</div><div><br></div><div>A third approach that I don't have a patch pushed for yet is very similar to the second. When dnsmasq is in the leasefile-ro mode, it will call the script passed to --dhcp-script to get a list of leases to start with. This script would be built with the same logic as the second one. The only difference between the second approach is that dnsmasq wouldn't persist leases to a database.</div><div><br></div><div><br></div><div>I'm looking for feedback on how we want to go forward with this in a back-port friendly manner.</div><div><br></div><div>Cheers,</div><div>Kevin Benton</div><div><br></div><div><br></div><div>1. <a href="https://review.openstack.org/#/q/Ieff0236670c1403b5d79ad8e50d7574c1b694e34,n,z" target="_blank">https://review.openstack.org/#/q/Ieff0236670c1403b5d79ad8e50d7574c1b694e34,n,z</a></div><div>2. <a href="https://bugs.launchpad.net/neutron/+bug/1457900" target="_blank">https://bugs.launchpad.net/neutron/+bug/1457900</a></div><div>3. <a href="https://review.openstack.org/#/c/185332/" target="_blank">https://review.openstack.org/#/c/185332/</a></div><div>4. <a href="https://review.openstack.org/#/c/185486/" target="_blank">https://review.openstack.org/#/c/185486/</a></div><div><br></div>-- <br><div><div>Kevin Benton</div></div>
</div></div></div></div>
__________________________________________________________________________<br>OpenStack Development Mailing List (not for usage questions)<br>Unsubscribe: <a href="mailto:OpenStack-dev-request@lists.openstack.org" target="_blank">OpenStack-dev-request@lists.openstack.org</a>?subject:unsubscribe<br><a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br></div></blockquote></div><br></div></div><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div>Kevin Benton</div></div>
</div></div>