Bug 2048887
Summary: | [dhcpd] DHCPD not handing out infinite leases | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | aygarg |
Component: | dhcp | Assignee: | Martin Osvald 🛹 <mosvald> |
Status: | CLOSED NOTABUG | QA Contact: | rhel-cs-infra-services-qe <rhel-cs-infra-services-qe> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 8.5 | CC: | akaris, augol, bnemec, dmoessne, dosmith, ealcaniz, jmalde, oarribas, vvoronko |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2022-02-06 12:16:58 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
aygarg
2022-02-01 05:11:56 UTC
I was able to reproduce on RHEL8.5 and can confirm this works on RHEL7.9. This is not a bug but an intended change in behavior introduced by the below upstream patch (since upstream 4.3.5, RHEL8.x is based on 4.3.6): https://github.com/isc-projects/dhcp/commit/68507137e1cbd783b6cb7ce84a4805c96af6eb5e ~~~ - Altered DHCPv4 lease time calculation to avoid roll over errors on 64-bit OS systems when using -1 or large values for default-lease-time. Rollover values will be replaced with 0x7FFFFFFF - 1. This alleviates unintentionally short expiration times being handed out when infinite lease times (-1) in conjuction with failover. [ISC-Bugs #41976] ~~~ This means dhcp no longer supports infinite leases. This may sound wrong to you, but RFC itself allows this behavior: https://datatracker.ietf.org/doc/html/rfc2131#section-2.2 ~~~ The client may ask for a permanent assignment by asking for an infinite lease. Even when assigning "permanent" addresses, a server may choose to give out lengthy but non-infinite leases to allow detection of the fact that the client has been retired. ~~~ There is no client/server side configuration directive that could workaround the responsible code behavior in ack_lease(). |