Questions about dhcpd.leases file

Klemen Sladic gosturnca at gmail.com
Wed Feb 14 22:15:47 UTC 2018


Hi Bob.

You are right. What I need is MAC and IP and may use them as arguments to
the script or tailing the dhcpd.leases.

Thank you very much.

Klemen

On Wed, Feb 14, 2018 at 3:16 AM, Bob Harold <rharolde at umich.edu> wrote:

>
> On Mon, Feb 12, 2018 at 4:57 PM, Simon Hobson <dhcp1 at thehobsons.co.uk>
> wrote:
>
>> Klemen Sladic <gosturnca at gmail.com> wrote:
>>
>> > 1. What is the difference between dhcpd.leases and dhcpd.leases~ files?
>>
>> The latter is the previous file. Periodically (compiled in 1 hour by
>> default) the server will write out a fresh leases file, move the old one
>> (that's the one with ~ appended to it's name), and the new file moved into
>> place. It's done that way so that if an error occurs, you haven't just
>> over-written the only copy of the file !
>>
>> > 2. My dhcpd.leases parsing script is executed on commit, like:
>> >
>> > subnet 192.168.0.0 netmask 255.255.255.0
>> > {
>> >    interface "eth0";
>> >    range 192.168.0.1 192.168.0.100;
>> >    option routers 192.168.0.254;
>> >    on commit {
>> >       execute("/home/user/leases_parse.sh");
>> >    }
>> > }
>> >
>> > Can I assume that dhcpd.leases has already been updated with latest
>> lease when my script is executed?
>>
>> Don't know. It's required that the leases file is updated before sending
>> teh packet to the client, but I don't know if it's defined at what point
>> the on commit is executed.
>>
>> > 3. Is a new lease always appended at the end of dhcpd.leases file?
>>
>> Yes
>>
>> > 4. On renew is a new lease block always added at the end or is existing
>> block updated?
>>
>> Yes. A lease is never updated in-place - a new record is appended to the
>> leases file which is why you will see several entries for some clients.
>> Obviously this append only method needs a cleanup from time to time - see 1
>> above.
>>
>> BTW, there are some things you need to be aware of.
>>
>> AIUI "on xxxx" scripts are not executed asynchronously - hence running
>> your script has the ability to severely compromise the performance of your
>> DHCP service.
>> If you are running the script to parse the lease that's just been
>> written, can you obtain the information from within the server ? Eg build a
>> log statement and then just tail the log file ?
>> Can values be passed in the on xxxx call ? I don't know, but if they can
>> then that might save you have to parse the file.
>>
>>
> If you are using the information that you parse to decide what to return
> from the on-commit call, what is it that you need that the on-commit does
> not already pass to you?
>
> If you are parsing the information for some other use, then you would
> probably be much better to tail the leases file:  tail -F  dhcpd.leases |
> parse-program
> That way you will not affect the performance, and the timing of when it
> writes the lease file vs the on-commit call won't matter.
>
> --
> Bob Harold
>
>
>
> _______________________________________________
> dhcp-users mailing list
> dhcp-users at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20180215/372896d9/attachment.html>


More information about the dhcp-users mailing list