]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Pass '--dhcp-authoritative' option to dnsmasq
authorAlexey I. Froloff <raorn@raorn.name>
Mon, 2 Feb 2015 10:44:14 +0000 (13:44 +0300)
committerAlexey I. Froloff <raorn@raorn.name>
Wed, 4 Feb 2015 09:44:40 +0000 (12:44 +0300)
When dnsmasq is restarted, it forgets about all leases (since it runs
with leasefile-ro option). When client tries to renew its lease, dnsmasq
sends DHCPNAK reply with message "lease not found". Then client shuts
down the network and re-request lease from DHCP server (and gets exactly
same IP address). There's a small network downtime which affects
services, like zookeeper, running in VMs.

Change-Id: Ieff0236670c1403b5d79ad8e50d7574c1b694e34
Closes-Bug: #1345947

neutron/agent/linux/dhcp.py
neutron/tests/unit/test_linux_dhcp.py

index 6d186f22237e380fab6541193f1fa11928454fa2..bbce2e7ddd26985056e8f823d968bbe8c1dfc2d8 100644 (file)
@@ -318,6 +318,7 @@ class Dnsmasq(DhcpLocalProcess):
             '--addn-hosts=%s' % self.get_conf_file_name('addn_hosts'),
             '--dhcp-optsfile=%s' % self.get_conf_file_name('opts'),
             '--leasefile-ro',
+            '--dhcp-authoritative',
         ]
 
         possible_leases = 0
index 4b55d9798e7966e3fd291106a8d26c87c7c17111..628aa3d812a609a9ccb78e230bddbf6d446f0126 100644 (file)
@@ -728,7 +728,8 @@ class TestDnsmasq(TestBase):
             '--dhcp-hostsfile=/dhcp/%s/host' % network.id,
             '--addn-hosts=/dhcp/%s/addn_hosts' % network.id,
             '--dhcp-optsfile=/dhcp/%s/opts' % network.id,
-            '--leasefile-ro']
+            '--leasefile-ro',
+            '--dhcp-authoritative']
 
         seconds = ''
         if lease_duration == -1: