[Dnsmasq-discuss] default lease time for dhcp-host entries ?

Simon Kelley simon at thekelleys.org.uk
Tue Dec 17 16:32:08 GMT 2013


On 16/12/13 21:37, Maule Mark wrote:
> okay, thank you for checking.

I just pushed a fix into git for the parsing bug.


Cheers,

Simon.

>
>
>
> On Monday, December 16, 2013 3:27 PM, Simon Kelley<simon at thekelleys.org.uk>  wrote:
>
> On 16/12/13 21:00, Maule Mark wrote:
>>> As an alternative to a fake tag to remove the empty field, would it work
>>> to declare a static dhcp-range in my configuration file to cover the
>>> addresses that are managed by the hostsfile?
>>>
>>
>> No. As you'd expect, lease times configured for individual hosts
>> override those in dhcp-ranges.
>>
>> I looked at the code, and it looks like the problem is indeed the double
>> comma.
>>
>> ,,
>>
>> gets treated that same as
>>
>> ,0,
>>
>> ie a lease time of zero.
>>
>> That's a bug, but the easiest way for you to work around it is to avoid
>> the double comma.
>>
>> Cheers,
>>
>> Simon.
>>
>>>
>>> On Monday, December 16, 2013 2:47 PM, Maule Mark<mark_maule at yahoo.com>
>>> wrote:
>>>
>>>       I don't think our client is asking for a lease time.  Or if it was,
>>>       I would also expect it to make the request on the very first
>>>       DHCPREQUEST, which gets the correct 1h lease.
>>>
>>>       The double comma is to establish a placeholder field where we can
>>>       plug in an optional tag: field, which we do in certain situations to
>>>       influence the next dhcp exchange for this id.  The program we use to
>>>       manage this file rigidly expects each line to have the same number
>>>       of fields if this optional tag exists or not..  I'll try putting a
>>>       fake tag in that field and see if it solves the 2m lease time issue.
>>>
>>>
>>>
>>>
>>>       On Monday, December 16, 2013 2:28 PM, Simon Kelley
>>>       <simon at thekelleys.org.uk>  wrote:
>>>
>>>           On 16/12/13 19:36, Maule Mark wrote:
>>>            >  I'm seeing an unexptected (to me) behavior when using a dnsmasq
>>>            >  hostsfile and dhcp.  To start, my interface (pmi_if) is
>>>           configured with
>>>            >  a lease time of 1h (the default), and I have a blank hostsfile.
>>>            >
>>>            >  dhcp-leasefile=/var/lib/axiom/dnsmasq_pmi.leases
>>>            >  dhcp-hostsfile=/var/lib/axiom/dnsmasq_pmi_hostsfile
>>>            >  dhcp-range=172.30.80.0,static,255.255.255.0
>>>            >  dhcp-range=172.30.80.200,172.30.80.240,255.255.255.0
>>>            >  dhcp-lease-max=255
>>>            >  dhcp-option=option:dns-server,172.30.80.1
>>>            >  dhcp-option=option:router,172.30.80.1
>>>            >  dhcp-option=option:ntp-server,172.30.80.1,172.30.80.2,172.30.80.3
>>>            >  dhcp-option=option:default-ttl,50
>>>            >  dhcp-option=option:all-subnets-local,1
>>>            >  dhcp-script=/var/lib/axiom/dhcp-script-pmi.sh
>>>            >  dhcp-boot=/pds/pxe/pxelinux.0,172.30.80.1
>>>            >
>>>            >  Clients boot and are assigned dhcp addresses as expected.  We
>>>           have a
>>>            >  program in our software stack that looks for heartbeat
>>>           messages on this
>>>            >  pmi_if, and when detected, constructs a hostsfile entry for
>>>           the client
>>>            >  that looks like this:
>>>            >
>>>            >  [root at pilot2<mailto:root at pilot2>  axiom]# cat
>>>           dnsmasq_pmi_hostsfile
>>>            >
>>>           00:21:28:A1:F3:F2,00:21:28:A1:F3:F3,,WN5080020001592690,172.30.80.128
>>>            >
>>>           00:21:28:A1:CA:3A,00:21:28:A1:CA:3B,,WN5080020001592691,172.30.80.129
>>>            >
>>>            >  The clients are running udhcpc from busybox.
>>>            >
>>>            >  Everything works as expected until the clients get toward the
>>>           end of
>>>            >  their 1h lease period at which point the clients start sending
>>>            >  DHCPREQUEST requests.  It seems at this point, that the
>>>           leases granted
>>>            >  are now 120s.  Here's some syslog output showing the first
>>>           DHCPREQUEST
>>>            >  being sent about 55 minutes into the 1h initial lease.  Why
>>>           did dnsmasq
>>>            >  return a lease time of 12s in this case?
>>>            >
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  DHCPREQUEST(pmi_if) 172.30.80.129 00:21:28:a1:ca:3a
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  tags: known, pmi_if
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  DHCPACK(pmi_if) 172.30.80.129 00:21:28:a1:ca:3a
>>>           WN5080020001592691
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  requested options: 1:netmask, 3:router, 6:dns-server,
>>>           12:hostname,
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  requested options: 15:domain-name, 28:broadcast, 42:ntp-server
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  bootfile name: /pds/pxe/pxelinux.0
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817
>>>            >  server name: 172.30.80.1
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 next
>>>            >  server: 172.30.80.3
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  1 option: 53 message-type  5
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option: 54 server-identifier  172.30.80.3
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option: 51 lease-time  2m
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option: 58 T1  56s
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option: 59 T2  1m41s
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option:  1 netmask  255.255.255.0
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option: 28 broadcast  172.30.80.255
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  5 option: 15 domain-name  axiom
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size: 18 option: 12 hostname  WN5080020001592691
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size: 20 option:209  70:78:65:6c:69:6e:75:78:2e:63:66:67:2f:64...
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option:208  f1:00:74:7e
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size: 12 option: 42 ntp-server  172.30.80.1, 172.30.80.2,
>>>           172.30.80.3
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option:  3 router  172.30.80.1
>>>            >  2013-12-16 19:33:42.253+00:00 pilot2 dnsmasq-dhcp[23916]:
>>>           208328817 sent
>>>            >  size:  4 option:  6 dns-server  172.30.80.1
>>>            >
>>>            >
>>>            >  Is there a default lease time of 120s for client requests whose
>>>            >  addresses which match a hoststfile entry?.
>>>
>>>           No, there's no 120s default, but there is a 120s floor (ie no
>>>           lease less
>>>           the 120s will be issued).
>>>
>>>           Note that the DHCP _client_ can ask for a particular lease time, it
>>>           would be interesting to see if it's sending a lease-time option
>>>           for 120s
>>>           or less in the DHCPREQUEST packet.
>>>
>>>           Another potential issue is your hostfile:
>>>
>>>           00:21:28:A1:CA:3A,00:21:28:A1:CA:3B,,WN5080020001592691,172.30.80.129
>>>
>>>           I've not looked, but the double comma may concievably confuse
>>>           the parser
>>>           such that it looks like a zero, which then gets interpreted as a
>>>           lease
>>>           time, and transformed to 120s by the floor.
>>>
>>>           I think that is the most likely explanation.
>>>
>>>           Cheers,
>>>
>>>           Simon.
>>>
>>>
>>>            >
>>>            >  thanks
>>>            >  Mark
>>>
>>>            >
>>>            >
>>>            >
>>>            >  _______________________________________________
>>>            >  Dnsmasq-discuss mailing list
>>>            >  Dnsmasq-discuss at lists.thekelleys.org.uk
>>>           <mailto:Dnsmasq-discuss at lists.thekelleys.org.uk>
>>>            >  http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
>>>            >
>>>
>>>
>>>           _______________________________________________
>>>           Dnsmasq-discuss mailing list
>>>          Dnsmasq-discuss at lists.thekelleys.org.uk
>>>           <mailto:Dnsmasq-discuss at lists.thekelleys.org.uk>
>>>          http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
>>>
>>>
>>>
>>>
>>>       _______________________________________________
>>>       Dnsmasq-discuss mailing list
>>>      Dnsmasq-discuss at lists.thekelleys.org.uk
>>>       <mailto:Dnsmasq-discuss at lists.thekelleys.org.uk>
>>
>>>      http://lists.thekelleys.org.uk/mailman/listinfo/dnsmasq-discuss
>>>
>>>
>>
>>
>>
>>




More information about the Dnsmasq-discuss mailing list