dhclient killed when DHCPv6 lease is out-of date
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
NetworkManager |
Fix Released
|
Medium
|
|||
isc-dhcp (Ubuntu) |
In Progress
|
High
|
Unassigned | ||
network-manager (Ubuntu) |
In Progress
|
High
|
Unassigned |
Bug Description
Network Manager summarily kills the IPv6 dhclient process when the DHCPv6 lease contained in the dhclient6-
This is effectively a Denial Of Service. It can be trivially induced if, for example, the dhclient6-
start + preferred_lifetime < NOW
triggers dhclient to 'DEPREFER6' the lease (withdraw the address record) and ask the DHCPv6 server for a new lease, but Network Manager will kill the dhclient because it only sees an 'EXPIRE6' state change.
In summary, when the DHCPv6 state transitions from "bound" to "unknown" then "expire" to "done" Network Manager kills the 'dhclient' process before it has chance to request and bind a fresh lease, If 'dhclient' is run manually with the same command-line options and allowed to continue running it correctly gains a new lease.
Network Manager doesn't know how to handle "DEPREF6", which is sent from isc-dhcp dhclient to the helper script (set by "-sf" option).
So it seems that to correctly solve this issue Network Manager must be taught how to handle DEPREF6.
/var/log/syslog will show a message from dhclient of the form:
dhclient: PRC: Address 2a02:8011:2007::2 depreferred.
Changed in network-manager (Ubuntu): | |
importance: | Undecided → High |
Changed in isc-dhcp (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
Changed in isc-dhcp (Ubuntu): | |
importance: | High → Low |
status: | Triaged → Invalid |
description: | updated |
Changed in network-manager: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
summary: |
- Failed to renew DHCPv6 lease after suspend + dhclient killed when DHCPv6 lease is out-of date |
Changed in network-manager (Ubuntu): | |
assignee: | nobody → TJ (tj) |
status: | Triaged → In Progress |
Changed in isc-dhcp (Ubuntu): | |
status: | Invalid → In Progress |
importance: | Low → High |
assignee: | nobody → TJ (tj) |
Changed in network-manager: | |
status: | Confirmed → Fix Released |
Changed in isc-dhcp (Ubuntu): | |
assignee: | TJ (tj) → nobody |
Changed in network-manager (Ubuntu): | |
assignee: | TJ (tj) → nobody |
Status changed to 'Confirmed' because the bug affects multiple users.