replacement of isc-dhcp-client with with systemd-networkd for dhclient needs integration

Bug #1717983 reported by Scott Moser
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
avahi (Ubuntu)
Invalid
Undecided
Unassigned
cloud-init (Ubuntu)
Fix Released
Undecided
Unassigned
controlaula (Ubuntu)
Invalid
Undecided
Unassigned
ddclient (Ubuntu)
Triaged
High
Unassigned
maas (Ubuntu)
Invalid
Undecided
Unassigned
madwimax (Ubuntu)
Triaged
Undecided
Unassigned
ntp (Ubuntu)
Fix Released
Undecided
Unassigned
openresolv (Ubuntu)
Won't Fix
Undecided
Unassigned
resolvconf (Ubuntu)
Won't Fix
Undecided
Unassigned
samba (Ubuntu)
Triaged
Medium
Unassigned
sendmail (Ubuntu)
Invalid
Undecided
Unassigned
ubuntu-meta (Ubuntu)
Won't Fix
Undecided
Unassigned

Bug Description

dhclient has been used as the dhcp client in Ubuntu and debian for
many years. Over time, many packages have integrated with dhclient.
The list below is of packages that have declared a dependency and
those that have shipped hooks to be invoked by dhclient.

As we move to systemd-networkd these will have to be addressed.

# ./get-rdeps isc-dhcp-client | sort -u
breaks - initramfs-tools (initramfs-tools)
depends - dracut (dracut-network)
depends - isc-dhcp (isc-dhcp-client-ddns)
depends - libguestfs (libguestfs0)
depends - maas (python3-maas-provisioningserver)
depends - netscript-2.4 (netscript-2.4)
depends - network-manager (network-manager)
depends - ubuntu-meta (ubuntu-minimal)
depends - walinuxagent (walinuxagent)
depends - whereami (whereami)
depends - wicd (wicd-daemon)
depends - wifi-radar (wifi-radar)
enhances - resolvconf (resolvconf)
recommends - avahi (avahi-autoipd)
recommends - ifupdown (ifupdown)
recommends - ifupdown2 (ifupdown2)
recommends - madwimax (madwimax)

$ apt-file search '/etc/dhcp/' | grep 'hooks.d/' | sed 's,:.*,,' | sort -u
avahi-autoipd
cloud-init
controlaula
ddclient
isc-dhcp-client
ntp
ntpdate
openresolv
resolvconf
samba-common
sendmail-base
systemd
whereami

Another possible integration point that is not likely listed in the package
dependencies is reading of the leases file for additional information.
As an example, Azure advertises the location of its http based metadata
service as an option in a dhclient response. cloud-init will read the
lease files to find the correct address.

Related bugs:
 * bug 1713803: replacement of resolvconf with systemd needs integration

ProblemType: Bug
DistroRelease: Ubuntu 17.10
Package: isc-dhcp-client 4.3.5-3ubuntu1
ProcVersionSignature: Ubuntu 4.12.0-11.12-generic 4.12.5
Uname: Linux 4.12.0-11-generic x86_64
NonfreeKernelModules: zfs zunicode zavl zcommon znvpair
ApportVersion: 2.20.7-0ubuntu1
Architecture: amd64
CurrentDesktop: GNOME
Date: Mon Sep 18 12:46:31 2017
DhclientLeases:

EcryptfsInUse: Yes
InstallationDate: Installed on 2015-07-23 (788 days ago)
InstallationMedia: Ubuntu 15.10 "Wily Werewolf" - Alpha amd64 (20150722.1)
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
SourcePackage: isc-dhcp
UpgradeStatus: No upgrade log present (probably fresh install)

Related branches

Revision history for this message
Scott Moser (smoser) wrote :
Scott Moser (smoser)
description: updated
Revision history for this message
Steve Langasek (vorlon) wrote :

Packages which depend on isc-dhcp-client do so because they invoke the dhcp client directly for their own purposes. This will not change; systemd-networkd does not expose a dhcp client for direct use by other callers.

no longer affects: dracut (Ubuntu)
no longer affects: isc-dhcp (Ubuntu)
no longer affects: network-manager (Ubuntu)
no longer affects: ifupdown (Ubuntu)
no longer affects: ifupdown2 (Ubuntu)
no longer affects: wicd (Ubuntu)
Revision history for this message
Steve Langasek (vorlon) wrote :

madwimax is a network driver package (not a network manager) that invokes dhclient directly on events. That looks like something that should be integrated with systemd-networkd somehow.

Changed in madwimax (Ubuntu):
status: New → Triaged
no longer affects: walinuxagent (Ubuntu)
no longer affects: whereami (Ubuntu)
no longer affects: libguestfs (Ubuntu)
Steve Langasek (vorlon)
no longer affects: netscript-2.4 (Ubuntu)
no longer affects: initramfs-tools (Ubuntu)
Changed in ubuntu-meta (Ubuntu):
status: New → Triaged
no longer affects: wifi-radar (Ubuntu)
Revision history for this message
Steve Langasek (vorlon) wrote :

avahi-autoipd's dhclient hook exists for stopping and restarting the avahi-autoipd daemon while other dhclient hooks are running. I don't know why exactly it does this but I don't think there's going to be a relevant equivalent in systemd-networkd.

Changed in avahi (Ubuntu):
status: New → Invalid
Revision history for this message
Steve Langasek (vorlon) wrote :

resolvconf is being dropped at the same time as ifupdown/isc-dhcp-client; there is no need to integrate it with systemd-networkd.
openresolv is an alternative implementation of resolvconf which has never been used in Ubuntu.

Changed in resolvconf (Ubuntu):
status: New → Won't Fix
Changed in openresolv (Ubuntu):
status: New → Won't Fix
Revision history for this message
Scott Moser (smoser) wrote :

"I don't know.... I don't think.." doesnt really seem like valid justification for marking Invalid on avahi. I went looking a bit further. I'm not exactly sure why it ties into dhcp hooks, but it also ties into ifupdown hooks.

Should I raise another of these bugs for programs that ship ifupdown hooks ?
  /etc/network/if-{up,down}.d/*
?

Anything that did use those will have to be transitioned.

Scott Moser (smoser)
tags: added: netplan-transition
Revision history for this message
Steve Langasek (vorlon) wrote : Re: [Bug 1717983] Re: replacement of isc-dhcp-client with with systemd-networkd for dhclient needs integration

On Tue, Sep 19, 2017 at 01:09:24PM -0000, Scott Moser wrote:
> "I don't know.... I don't think.." doesnt really seem like valid
> justification for marking Invalid on avahi. I went looking a bit
> further. I'm not exactly sure why it ties into dhcp hooks, but it also
> ties into ifupdown hooks.

Ok, so alternate rationale: avahi-autoipd is a service that is primarily of
interest to mobile client systems, not to servers. The ifupdown->networkd
transition only affects servers. On client systems, we will continue to use
NetworkManager, which for the past 9 years has not been running the dhclient
hooks:

  https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/293139

And no one has complained in that time about misbehavior of avahi as a
result of these particular hooks not being run. Therefore, whatever the
reason these undocumented upstream hooks were added, I don't believe they
matter for the ifupdown->systemd transition.

If you prefer to express this as 'wontfix' or 'triaged'+'wishlist', I don't
mind. But in terms of prioritization, I don't consider it important to
follow through any further on the avahi dhclient hooks.

> Should I raise another of these bugs for programs that ship ifupdown hooks ?
> /etc/network/if-{up,down}.d/*

I think that's reasonable. But please note that networkd simply does not
support these kinds of hooks today (in particular it does not support
if-pre-up.d and if-down.d because these hooks must block networkd; you can
implement if-up.d and if-post-down.d by running /after/ the network events).
The decision to migrate to networkd has been taken in full knowledge that,
at least initially, there would be regressions in these kinds of
integrations.

Revision history for this message
Scott Moser (smoser) wrote :

I opened bug 1718227. for packages that ship if-up.d or if-down.d scripts.

On Tue, Sep 19, 2017 at 2:18 PM, Steve Langasek <
<email address hidden>> wrote:

> On Tue, Sep 19, 2017 at 01:09:24PM -0000, Scott Moser wrote:
> > "I don't know.... I don't think.." doesnt really seem like valid
> > justification for marking Invalid on avahi. I went looking a bit
> > further. I'm not exactly sure why it ties into dhcp hooks, but it also
> > ties into ifupdown hooks.
>
> Ok, so alternate rationale: avahi-autoipd is a service that is primarily
> of
> interest to mobile client systems, not to servers. The ifupdown->networkd
> transition only affects servers. On client systems, we will continue to
> use
> NetworkManager, which for the past 9 years has not been running the
> dhclient
> hooks:
>
> https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/293139
>
> And no one has complained in that time about misbehavior of avahi as a
> result of these particular hooks not being run. Therefore, whatever the
> reason these undocumented upstream hooks were added, I don't believe they
> matter for the ifupdown->systemd transition.
>
> If you prefer to express this as 'wontfix' or 'triaged'+'wishlist', I don't
> mind. But in terms of prioritization, I don't consider it important to
> follow through any further on the avahi dhclient hooks.
>
> > Should I raise another of these bugs for programs that ship ifupdown
> hooks ?
> > /etc/network/if-{up,down}.d/*
>
> I think that's reasonable. But please note that networkd simply does not
> support these kinds of hooks today (in particular it does not support
> if-pre-up.d and if-down.d because these hooks must block networkd; you can
> implement if-up.d and if-post-down.d by running /after/ the network
> events).
> The decision to migrate to networkd has been taken in full knowledge that,
> at least initially, there would be regressions in these kinds of
> integrations.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1717983
>
> Title:
> replacement of isc-dhcp-client with with systemd-networkd for dhclient
> needs integration
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/avahi/+bug/
> 1717983/+subscriptions
>

tags: added: id-59c57605d1dfa992a27e9102
Revision history for this message
Dimitri John Ledkov (xnox) wrote :
Changed in cloud-init (Ubuntu):
status: New → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ntp - 1:4.2.8p10+dfsg-5ubuntu3

---------------
ntp (1:4.2.8p10+dfsg-5ubuntu3) artful; urgency=medium

  * d/ntp.dhcp add support for parsing systemd networkd lease files LP:
    #1717983

 -- Dimitri John Ledkov <email address hidden> Tue, 03 Oct 2017 01:54:33 +0100

Changed in ntp (Ubuntu):
status: New → Fix Released
Revision history for this message
Steve Langasek (vorlon) wrote :

controlaula does not exist in Ubuntu beyond artful. So invalid for bionic, and wontfix for artful.

Changed in controlaula (Ubuntu):
status: New → Invalid
Revision history for this message
Steve Langasek (vorlon) wrote :

ddclient wants to send updated IP address information to the dyndns server when a new IP address is received from DHCP.

This should be supplemented with a networkd-dispatcher routable.d hook.

Changed in ddclient (Ubuntu):
status: New → Triaged
importance: Undecided → High
Revision history for this message
Steve Langasek (vorlon) wrote :

"high" for ddclient wrt the importance of the hook to the operation of the package.

Revision history for this message
Steve Langasek (vorlon) wrote :

python3-maas-provisioningserver calls dhclient directly in order to do network discovery. This does not need replaced with networkd integration.

Changed in maas (Ubuntu):
status: New → Invalid
Revision history for this message
Steve Langasek (vorlon) wrote :

samba-common's dhclient hook needs porting. Setting to 'medium' as this only affects dhcp-provided netbios nameservers and netbios scope, which are relatively uncommon options.

Changed in samba (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
Revision history for this message
Steve Langasek (vorlon) wrote :

Per /usr/share/sendmail/dynamic, /etc/dhcp3/dhclient-exit-hooks.d/sendmail is considered deprecated in favor of /etc/network/if-{up,post-down}.d/sendmail. Therefore for sendmail's purposes, this is a duplicate of LP: #1718227.

Changed in sendmail (Ubuntu):
status: New → Invalid
Steve Langasek (vorlon)
tags: removed: id-59c57605d1dfa992a27e9102
Revision history for this message
Steve Langasek (vorlon) wrote :

ubuntu-meta retains a dependency on isc-dhcp-client for use in initramfs (via initramfs-tools integration), and application which will not be replaced by networkd for the foreseeable future.

Changed in ubuntu-meta (Ubuntu):
status: Triaged → Won't Fix
Revision history for this message
Steve Langasek (vorlon) wrote :
Changed in cloud-init (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.