Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 07 Aug 2022 13:31:42 +0800
From:      "Ben Woods" <woodsb02@freebsd.org>
To:        freebsd-net@freebsd.org
Cc:        emaste@freebsd.org, roy@marples.name, hrs@freebsd.org, brooks@freebsd.org, cy@freebsd.org, "Philip Paeps" <philip@freebsd.org>
Subject:   Import dhcpcd(8) into FreeBSD base
Message-ID:  <e401671f-6a67-49ed-bc41-e8fbb9de27cb@www.fastmail.com>

next in thread | raw e-mail | index | archive | help
--4ac2e87f860c42b1a90fd5385279aaf3
Content-Type: text/plain;charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi freebsd-net,

I would like to propose dhcpcd is imported into FreeBSD base.

Reason: ensure fresh installs of FreeBSD support using DHCPv6 and prefix=
 delegation to obtain an IP address (not supported by dhclient or rtsold=
). Having it in ports/packages could be problematic if people cannot obt=
ain an IPv6 address to download it.

Why dhcpcd vs other DHCPv6 clients? It=E2=80=99s well supported, full fe=
atured, included in NetBSD and DragonflyBSD base, and is now sandboxed w=
ith capsicum. The other DHCP clients tend to either not support DHCPv6 (=
dhcpleased) or are no longer actively maintained (wide-dhcpv6-client).

For those not familiar with dhcpcd, it=E2=80=99s a DHCP client, not serv=
er. It can be run either in master mode (single instances manages DHCPv4=
 and DHCPv6 on all available network interfaces unless disabled in confi=
g), or single interface mode if preferred.

This was discussed once before on this mailing list in 2019, and I=E2=80=
=99ve had a review open on phabricator for a few years. The main technic=
al concern raised (capsicum sandboxing) was resolved upstream with the d=
hcpcd 9.1.0 release in May 2020. What is perhaps missing is the broader =
community agreement of the change and forward plan.

If accepted, I would recommend a phased implementation such as that sugg=
ested below - open to ideas.

- 14.0 (and perhaps 13.2) - dhcpcd included but off by default (WITH_DHC=
PCD=3Don, but rc.conf/network.subr continue to use dhclient/rtsold). Rel=
ease notes list forward plan.

- 14.1 - switch defaults in rc.conf/network.subr to use dhcpcd instead o=
f dhclient/rtsold. Subject to any issues being addressed prior. Release =
notes could list deprecation of dhclient/rtsold - this deprecation step =
could be done slower if desired.

- 15.0 - remove dhclient/rtsold - again, could be done slower if desired.

I=E2=80=99d be keen to hear the thoughts of the community. If you want t=
o try out dhcpcd today, it=E2=80=99s available in ports/packages.

I should point out that I have a ports commit bit - not src. If accepted=
, I=E2=80=99d either need a src committer to land it, or approve me comm=
itting (via phabricator).

https://reviews.freebsd.org/D22012
https://github.com/NetworkConfiguration/dhcpcd

Regards,
Ben

--
From: Ben Woods
woodsb02@freebsd.org

--4ac2e87f860c42b1a90fd5385279aaf3
Content-Type: text/html;charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>Hi freebsd-net,=
<br></div><div><br></div><div>I would like to propose dhcpcd is imported=
 into FreeBSD base.<br></div><div><br></div><div>Reason: ensure fresh in=
stalls of FreeBSD support using DHCPv6 and prefix delegation to obtain a=
n IP address (not supported by dhclient or rtsold). Having it in ports/p=
ackages could be problematic if people cannot obtain an IPv6 address to =
download it.<br></div><div><br></div><div>Why dhcpcd vs other DHCPv6 cli=
ents? It=E2=80=99s well supported, full featured, included in NetBSD and=
 DragonflyBSD base, and is now sandboxed with capsicum. The other DHCP c=
lients tend to either not support DHCPv6 (dhcpleased) or are no longer a=
ctively maintained (wide-dhcpv6-client).<br></div><div><br></div><div>Fo=
r those not familiar with dhcpcd, it=E2=80=99s a DHCP client, not server=
.&nbsp;It can be run either in master mode (single instances manages DHC=
Pv4 and DHCPv6 on all available network interfaces unless disabled in co=
nfig), or single interface mode if preferred.<br></div><div><br></div><d=
iv>This was discussed once before on this mailing list in 2019, and I=E2=
=80=99ve had a review open on phabricator for a few years. The main tech=
nical concern raised (capsicum sandboxing) was resolved upstream with th=
e dhcpcd 9.1.0 release in May 2020. What is perhaps missing is the broad=
er community agreement of the change and forward plan.<br></div><div><br=
></div><div>If accepted, I would recommend a phased implementation such =
as that suggested below - open to ideas.<br></div><div><br></div><div>- =
14.0 (and perhaps 13.2) - dhcpcd included but off by default (WITH_DHCPC=
D=3Don, but <a href=3D"http://rc.conf/network.subr">rc.conf/network.subr=
</a>&nbsp;continue to use dhclient/rtsold). Release notes list forward p=
lan.<br></div><div><br></div><div>- 14.1 - switch defaults in <a href=3D=
"http://rc.conf/network.subr">rc.conf/network.subr</a>&nbsp;to use dhcpc=
d instead of dhclient/rtsold. Subject to any issues being addressed prio=
r. Release notes could list deprecation of dhclient/rtsold - this deprec=
ation step could be done slower if desired.<br></div><div><br></div><div=
>- 15.0 - remove dhclient/rtsold - again, could be done slower if desire=
d.<br></div><div><br></div><div>I=E2=80=99d be keen to hear the thoughts=
 of the community. If you want to try out dhcpcd today, it=E2=80=99s ava=
ilable in ports/packages.<br></div><div><br></div><div>I should point ou=
t that I have a ports commit bit - not src. If accepted, I=E2=80=99d eit=
her need a src committer to land it, or approve me committing (via phabr=
icator).<br></div><div><br></div><div><a href=3D"https://reviews.freebsd=
.org/D22012">https://reviews.freebsd.org/D22012</a><br></div><div><a hre=
f=3D"https://github.com/NetworkConfiguration/dhcpcd">https://github.com/=
NetworkConfiguration/dhcpcd</a></div><div><br></div><div>Regards,<br></d=
iv><div>Ben<br></div><div><br></div><div id=3D"sig109366288"><div class=3D=
"signature">--<br></div><div class=3D"signature">From: Ben Woods<br></di=
v><div class=3D"signature"><a href=3D"mailto:woodsb02@freebsd.org">woods=
b02@freebsd.org</a><br></div></div><div><br></div></body></html>
--4ac2e87f860c42b1a90fd5385279aaf3--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?e401671f-6a67-49ed-bc41-e8fbb9de27cb>