<html><head></head><body><div class="yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div dir="ltr" data-setdir="false">Hello All,</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">I ran into some interesting behaviour of the ISC DHCP client v4.4.1. It happens when a host boots up in a network with the DHCP server (temporarily) down and having at least one valid lease recorded.</div><div dir="ltr" data-setdir="false">I had created a bug entry here: <span>For the track record I had created a bug entry here: <a href="https://gitlab.isc.org/isc-projects/dhcp/-/issues/162" class="ydpb80ce588enhancr_card_3963877054" rel="nofollow" target="_blank">Inconsistent
behaviour with a valid lease(s) in the leases' DB and no DHCP server
up. (#162) · Issues · ISC Open Source Projects / dhcp</a> but I shall repeat the information right below.</span></div><div dir="ltr" data-setdir="false"><span></span><br></div><div dir="ltr" data-setdir="false">Client has timeout set-up to 133[s]:</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false"><pre class="ydp151b02eecode ydp151b02eehighlight" lang="plaintext"><span id="ydp151b02eeLC1" class="ydp151b02eeline" lang="plaintext">timeout 131;</span>
<span id="ydp151b02eeLC2" class="ydp151b02eeline" lang="plaintext">retry 33;</span>
<span id="ydp151b02eeLC3" class="ydp151b02eeline" lang="plaintext">reboot 9;</span>
<span id="ydp151b02eeLC4" class="ydp151b02eeline" lang="plaintext">select-timeout 3;</span>
<span id="ydp151b02eeLC5" class="ydp151b02eeline" lang="plaintext">initial-interval 2;</span>
<span id="ydp151b02eeLC6" class="ydp151b02eeline" lang="plaintext"></span>
<span id="ydp151b02eeLC7" class="ydp151b02eeline" lang="plaintext">interface "eth1" {</span>
<span id="ydp151b02eeLC8" class="ydp151b02eeline" lang="plaintext"> request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, ntp-servers, vendor-encapsulated-options, dhcp-renewal-time, dhcp-rebinding-time;</span>
<span id="ydp151b02eeLC9" class="ydp151b02eeline" lang="plaintext"> require subnet-mask;</span>
<span id="ydp151b02eeLC10" class="ydp151b02eeline" lang="plaintext">}</span><br><br>The current date and time are: <span>Wed 03 Feb 2021 12:33:20 PM PST</span><br>The lease entry is as follows:<br><br><div><pre class="ydp4188cbd4code ydp4188cbd4highlight" lang="plaintext"><span id="ydp4188cbd4LC1" class="ydp4188cbd4line" lang="plaintext">lease {</span>
<span id="ydp4188cbd4LC2" class="ydp4188cbd4line" lang="plaintext"> interface "eth1";</span>
<span id="ydp4188cbd4LC3" class="ydp4188cbd4line" lang="plaintext"> fixed-address 10.1.1.92;</span>
<span id="ydp4188cbd4LC4" class="ydp4188cbd4line" lang="plaintext"> option subnet-mask 255.255.255.128;</span>
<span id="ydp4188cbd4LC5" class="ydp4188cbd4line" lang="plaintext"> option routers 10.1.1.1;</span>
<span id="ydp4188cbd4LC6" class="ydp4188cbd4line" lang="plaintext"> option dhcp-lease-time 3600;</span>
<span id="ydp4188cbd4LC7" class="ydp4188cbd4line" lang="plaintext"> option dhcp-message-type 5;</span>
<span id="ydp4188cbd4LC8" class="ydp4188cbd4line" lang="plaintext"> option domain-name-servers ...;</span>
<span id="ydp4188cbd4LC9" class="ydp4188cbd4line" lang="plaintext"> option dhcp-server-identifier ...;</span>
<span id="ydp4188cbd4LC10" class="ydp4188cbd4line" lang="plaintext"> option domain-name "...";</span>
<span id="ydp4188cbd4LC11" class="ydp4188cbd4line" lang="plaintext"> renew 4 2021/02/04 13:10:16;</span>
<span id="ydp4188cbd4LC12" class="ydp4188cbd4line" lang="plaintext"> rebind 4 2021/02/04 13:11:16;</span>
<span id="ydp4188cbd4LC13" class="ydp4188cbd4line" lang="plaintext"> expire 4 2021/02/04 13:13:16;</span>
<span id="ydp4188cbd4LC14" class="ydp4188cbd4line" lang="plaintext">}</span>
</pre></div>The exchange with a DHCP server (that is down at the very moment) is nothing extraordinary:<br>- Request<br>- Discover<br>- Discover<br>....<br>- Discover<br><br>(133 seconds passed) and stop. Of course the client starts using formerly assigned IP address of 10.1.1.92 .<br><br>When the date changes at midnight so the 4th of February starts, the client starts sending DHCP Discovers again.<br>First couple questions are: Is this expected behaviour? If not so, why it stopped sending Discovers ? <br><br>I was curious and manually modified the lease to expire not the next day but in 30 minutes:<br><br><div><pre class="ydp9d719a47code ydp9d719a47highlight" lang="plaintext"><span id="ydp9d719a47LC1" class="ydp9d719a47line" lang="plaintext">lease {</span>
<span id="ydp9d719a47LC2" class="ydp9d719a47line" lang="plaintext"> interface "eth1";</span>
<span id="ydp9d719a47LC3" class="ydp9d719a47line" lang="plaintext"> fixed-address 10.1.1.92;</span>
<span id="ydp9d719a47LC4" class="ydp9d719a47line" lang="plaintext"> option subnet-mask 255.255.255.128;</span>
<span id="ydp9d719a47LC5" class="ydp9d719a47line" lang="plaintext"> option dhcp-lease-time 3600;</span>
<span id="ydp9d719a47LC6" class="ydp9d719a47line" lang="plaintext"> option routers 10.1.1.1;</span>
<span id="ydp9d719a47LC7" class="ydp9d719a47line" lang="plaintext"> option dhcp-message-type 5;</span>
<span id="ydp9d719a47LC8" class="ydp9d719a47line" lang="plaintext"> option dhcp-server-identifier ....;</span>
<span id="ydp9d719a47LC9" class="ydp9d719a47line" lang="plaintext"> option domain-name-servers ....</span>
<span id="ydp9d719a47LC10" class="ydp9d719a47line" lang="plaintext"> option domain-name "....";</span>
<span id="ydp9d719a47LC11" class="ydp9d719a47line" lang="plaintext"> renew 3 2021/02/03 13:02:23;</span>
<span id="ydp9d719a47LC12" class="ydp9d719a47line" lang="plaintext"> rebind 3 2021/02/03 13:03:23;</span>
<span id="ydp9d719a47LC13" class="ydp9d719a47line" lang="plaintext"> expire 3 2021/02/03 13:05:23;</span>
<span id="ydp9d719a47LC14" class="ydp9d719a47line" lang="plaintext">}</span>
</pre></div>Interestingly the client did not start with DHCP Request as if the lease would already have expired. I thought it might have been the time-zone setting playing role but this was not the case checked the system UTC time and the lease should still be valid.<br>The client has kept sending Discovers perpetually and accordingly to the configured protocol timings (as one would expect) of course not getting any offer (server still down).<br><br>Would the afore described behaviour be an indication of an undocumented feature (bug) ? I read in the documentation that client stopping sending discovers after a timeout would be anticipated in the case of a valid static lease, which is not the case here.<br><br>I would hugely appreciate any insight in the described behaviour.
</pre></div><div><br></div></div><div dir="ltr" data-setdir="false">With my best wishes</div><div dir="ltr" data-setdir="false"> Tomasz Motyl<br></div></div></body></html>