On Mon, Jun 30, 2014 at 1:52 PM, Daniel P. Berrange <berrange(a)redhat.com> wrote:
On Sat, Jun 28, 2014 at 05:06:26AM +0530, Nehal J Wani wrote:
> In the current version of dnsmasq, the leases helper script/program
> specified by --dhcp-script to dnsmasq is invoked on three events,
> 'add', 'old', 'del'. In short,
> add: -> a new lease has to be added to db
> del: -> a lease has to be deleted from db
> old:-> if lease has changed
> Now, the lease can be considered to be changed in 2 ways.
> [standard-change] The change could be to the associated hostname or MAC address
> [auxiliary-change] The change associated with expiry time or clientid
>
> When only --dhcp-script is set, 'old' events are sent only for
> standard-lease changes. But when --dhcp-script is set along with
> --leasefile-ro, 'old' events are sent for any change in the lease.
>
> So, right now, if a lease is renewed, the reflected change doesn't
> appear in our JSON formatted lease database <interface-name>.status.
> We have the following options with this:
>
> (i) We can simply add the --leasefile-ro option. But in that case, the
> leases file database which is generated by dnsmasq by the name
> <network-name>.leases will cease to exist. It won't contain any lease
> information. All lease database handling will be done by our
> leaseshelper. Note: this option given a lot of information which is
> not stored in <network-name>.leases file.
What purpose does the <network-name>.leases file that dnsmasq creates
serve ? If our own leases file is able to provide any funtionality
that is missing due to the loss of <network-name>.leases, then this
option seems like the best.
> (ii) We ask the dnsmasq developer(s) to add an extra command line
> option to enable auxiliary changes in lease to be propagated to
> leaseshelper via 'old' events. I had a small conversation with Simon
> Kelley, and he said:
> "Yes. For that application (libvirt), you clearly don't want a
> third-party patch. At very least I'd be willing to add a boolean
> option to dnsmasq which enables "old" events when the lease expiry
> time changes, independent of leasefile-ro."
> If we do this, then can retain <network-name>.leases and have our helper too.
I'd prefer (i) since that lets libvirt work properly with existing
dnsmasq versions which are deployed.
Agreed. The leaseile-ro option was added to dnsmasq in version 2.33
(Current version in fedora is 2.68 and that in CentOS is 2.48 [Dunno
about RHEL]). So I guess, using it shouldn't be a harm.
--
Nehal J Wani