different ip address between clients restarts

perl-list perl-list at network1.net
Mon Jul 10 10:53:34 UTC 2017


It might help to send some logs from each time the client got an address as the lease file information isn't really useful in this case. A snippit of your config showing the relevant subnet(s) might be useful also. 

> From: "Radoslav Pešek" <radoslav.pesek at stuba.sk>
> To: dhcp-users at lists.isc.org
> Sent: Monday, July 10, 2017 5:43:49 AM
> Subject: Re: different ip address between clients restarts

> Hi, has anybody any ideas on this issue? If you need more info let me know.

> Thanks, Rado.

> On 06/29/2017 11:14 AM, Radoslav Pešek wrote:
> > Hi and thanks for your reply, but this shouldn't cause the problem, or
> > maybe I don't understand what you mean. My clients get ips from the
> > same pool (which is the pool they should get it from), but they don't
> > get ip they previously had leased - and, according to the following,
> > dhcp server should grant this address
> > (https://www.ietf.org/rfc/rfc2131.txt):

> > 4.3.1 DHCPDISCOVER message

> > When a server receives a DHCPDISCOVER message from a client, the
> > server chooses a network address for the requesting client. If no
> > address is available, the server may choose to report the problem to
> > the system administrator. If an address is available, the new address
> > SHOULD be chosen as follows:

> > o The client's current address as recorded in the client's current
> > binding, ELSE

> > o The client's previous address as recorded in the client's (now
> > expired or released) binding, if that address is in the server's
> > pool of available addresses and not already allocated, ELSE

> > o The address requested in the 'Requested IP Address' option, if
> > that
> > address is valid and not already allocated, ELSE

> > o A new address allocated from the server's pool of available
> > addresses; the address is selected based on the subnet from which
> > the message was received (if 'giaddr' is 0) or on the address of
> > the relay agent that forwarded the message ('giaddr' when not 0).


> > But I don't know how far isc dhcp implementation conforms to this rfc.

> > Thanks again, Rado.


> > On 06/29/2017 01:49 AM, Bill Shirley wrote:
> >> It has been my experience that if a client does a DHCPREQUEST, the
> >> server will grant
> >> the lease even if the Class and pool 'allow members' do not match.
> >> Only if there is an
> >> explicit 'deny members' on the pool will it DHCPNAK.

> >> However, if a client does a DHCPDISCOVER the server will allocate
> >> only from pools that
> >> meet the 'allow members' and 'deny members' requirements.

> >> Bill


> >> On 6/28/2017 5:36 AM, Radoslav Pešek wrote:
> >>> Hallo list, I have dhcp servers (Debian 8.5, version 4.3.1, failover
> >>> mode, ddns-update-style interim) and (at least) for certain clients
> >>> they don't keep ip address between clients' restarts.

> >>> Its maybe related to another issue I posted few days ago -
> >>> https://lists.isc.org/pipermail/dhcp-users/2017-June/020652.html -
> >>> but the solution only helped for problem with weird hostname value
> >>> in dhcp replies, not for this issue as I hoped.

> >>> So, it's in failover mode (interim) with clients getting ip
> >>> addresses from range. The pool shouldn't be exhausted as I see this
> >>> in logs:

> >>> Jun 27 10:08:39 s3 dhcpd: balancing pool b8107778
> >>> poschodia_a_studenti total 21 free 4 backup 5 lts 0 max-own (+/-)1
> >>> Jun 27 10:08:39 s3 dhcpd: balanced pool b8107778
> >>> poschodia_a_studenti total 21 free 4 backup 5 lts 0 max-misbal 1

> >>> and when I restart test client several times within say few hours it
> >>> gets same ip address it had few restarts ago. It is even asking in
> >>> DHCP DISCOVER message for its current ip address but the server
> >>> decides to lease another one (no DHCP NAK message). The default and
> >>> max lease times for these clients are both set to 2592000.

> >>> These are records in dhcpd.leases when I restart test client (those
> >>> log lines are perhaps my misconfiguration in dhcpd.conf or what, but
> >>> I had this issue even before I added logging so it's not related):

> >>> lease XXX.XXX.XXX.232 {
> >>> starts 3 2017/06/28 07:29:45;
> >>> ends 3 2017/06/28 08:28:38;
> >>> tstp 3 2017/06/28 08:28:38;
> >>> tsfp 6 2017/08/12 07:29:45;
> >>> cltt 3 2017/06/28 07:29:45;
> >>> binding state released;
> >>> next binding state free;
> >>> hardware ethernet aa:bb:cc:dd:ee:ff;
> >>> client-hostname "vm102";
> >>> }
> >>> lease XXX.XXX.XXX.232 {
> >>> starts 3 2017/06/28 07:29:45;
> >>> ends 3 2017/06/28 08:28:38;
> >>> tstp 3 2017/06/28 08:28:38;
> >>> tsfp 3 2017/06/28 08:28:38;
> >>> atsfp 3 2017/06/28 08:28:38;
> >>> cltt 3 2017/06/28 07:29:45;
> >>> binding state free;
> >>> hardware ethernet aa:bb:cc:dd:ee:ff;
> >>> }
> >>> lease XXX.XXX.XXX.231 {
> >>> starts 3 2017/06/28 08:29:03;
> >>> ends 3 2017/06/28 08:59:03;
> >>> tstp 5 2017/07/28 08:44:03;
> >>> tsfp 3 2017/06/28 08:08:55;
> >>> cltt 3 2017/06/28 08:29:03;
> >>> binding state active;
> >>> next binding state expired;
> >>> hardware ethernet aa:bb:cc:dd:ee:ff;
> >>> set mac_6 = "02";
> >>> client-hostname "vm102";
> >>> on release {
> >>> log (error, "=============[ START COMMIT ]================");
> >>> log (error, "host-decl-name: ");
> >>> log (error, host-decl-name);
> >>> log (error, "option host-name: ");
> >>> log (error,
> >>> option host-name);
> >>> log (error, "config-option server.ddns-hostname: ");
> >>> log (error,
> >>> option host-name);
> >>> log (error, "config-option server.ddns-hostname: ");
> >>> log (error,
> >>> config-option server.ddns-hostname);
> >>> log (error, "============[ END COMMIT ]==================");
> >>> }
> >>> }
> >>> lease XXX.XXX.XXX.231 {
> >>> starts 3 2017/06/28 08:29:03;
> >>> ends 3 2017/06/28 08:59:03;
> >>> tstp 5 2017/07/28 08:44:03;
> >>> tsfp 3 2017/06/28 08:08:55;
> >>> cltt 3 2017/06/28 08:29:03;
> >>> binding state active;
> >>> next binding state expired;
> >>> hardware ethernet aa:bb:cc:dd:ee:ff;
> >>> set ddns-txt = "000b7fa68b3f8b2e4967e49ff0faef4cf6";
> >>> set ddns-fwd-name = "vm102.some.domain.";
> >>> set mac_6 = "02";
> >>> client-hostname "vm102";
> >>> on release {
> >>> log (error, "=============[ START COMMIT ]================");
> >>> log (error, "host-decl-name: ");
> >>> log (error, host-decl-name);
> >>> log (error, "option host-name: ");
> >>> log (error,
> >>> option host-name);
> >>> log (error, "config-option server.ddns-hostname: ");
> >>> log (error,
> >>> config-option server.ddns-hostname);
> >>> log (error, "============[ END COMMIT ]==================");
> >>> }
> >>> }
> >>> lease XXX.XXX.XXX.231 {
> >>> starts 3 2017/06/28 08:29:03;
> >>> ends 3 2017/06/28 08:59:03;
> >>> tstp 5 2017/07/28 08:44:03;
> >>> tsfp 3 2017/06/28 08:08:55;
> >>> cltt 3 2017/06/28 08:29:03;
> >>> binding state active;
> >>> next binding state expired;
> >>> binding state active;
> >>> next binding state expired;
> >>> hardware ethernet aa:bb:cc:dd:ee:ff;
> >>> set ddns-rev-name = "231.XXX.XXX.XXX.in-addr.arpa.";
> >>> set ddns-txt = "000b7fa68b3f8b2e4967e49ff0faef4cf6";
> >>> set ddns-fwd-name = "vm102.some.domain.";
> >>> set mac_6 = "02";
> >>> client-hostname "vm102";
> >>> on release {
> >>> log (error, "=============[ START COMMIT ]================");
> >>> log (error, "host-decl-name: ");
> >>> log (error, host-decl-name);
> >>> log (error, "option host-name: ");
> >>> log (error,
> >>> option host-name);
> >>> log (error, "config-option server.ddns-hostname: ");
> >>> log (error,
> >>> config-option server.ddns-hostname);
> >>> log (error, "============[ END COMMIT ]==================");
> >>> }
> >>> }
> >>> lease XXX.XXX.XXX.231 {
> >>> starts 3 2017/06/28 08:29:03;
> >>> ends 3 2017/06/28 08:59:03;
> >>> tstp 5 2017/07/28 08:44:03;
> >>> tsfp 5 2017/07/28 08:44:03;
> >>> atsfp 5 2017/07/28 08:44:03;
> >>> cltt 3 2017/06/28 08:29:03;
> >>> binding state active;
> >>> next binding state expired;
> >>> hardware ethernet aa:bb:cc:dd:ee:ff;
> >>> set ddns-rev-name = "231.XXX.XXX.XXX.in-addr.arpa.";
> >>> set ddns-txt = "000b7fa68b3f8b2e4967e49ff0faef4cf6";
> >>> set ddns-fwd-name = "vm102.some.domain.";
> >>> set mac_6 = "02";
> >>> client-hostname "vm102";
> >>> on release {
> >>> log (error, "=============[ START COMMIT ]================");
> >>> log (error, "host-decl-name: ");
> >>> log (error, host-decl-name);
> >>> log (error, "option host-name: ");
> >>> log (error,
> >>> option host-name);
> >>> log (error, "config-option server.ddns-hostname: ");
> >>> log (error,
> >>> config-option server.ddns-hostname);
> >>> log (error, "============[ END COMMIT ]==================");
> >>> }
> >>> }

> >>> Do you see anything wrong there?

> >>> Thanks for any insights, Rado.


> >>> _______________________________________________
> >>> dhcp-users mailing list
> >>> dhcp-users at lists.isc.org
> >>> https://lists.isc.org/mailman/listinfo/dhcp-users

> >> _______________________________________________
> >> dhcp-users mailing list
> >> dhcp-users at lists.isc.org
> >> https://lists.isc.org/mailman/listinfo/dhcp-users

> > _______________________________________________
> > dhcp-users mailing list
> > dhcp-users at lists.isc.org
> > https://lists.isc.org/mailman/listinfo/dhcp-users

> _______________________________________________
> 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/20170710/e89ae0ba/attachment-0001.html>


More information about the dhcp-users mailing list