Implementation Status - dhcwg/rfc8415bis GitHub Wiki
This is an open list of RFC8415bis implementations. The original idea behind it was to help IESG evaluation to determine if RFC8415 can be elevated to the Internet Standard status.
Contributions (corrections and new entries) are welcome.
This section records the status of known implementations of the protocol defined by this specification at the time of posting of this Internet-Draft, and is based on a proposal described in RFC 7942. The description of implementations in this section is intended to assist the IETF in its decision processes in progressing drafts to RFCs. Please note that the listing of any individual implementation here does not imply endorsement by the IETF. Furthermore, no effort has been spent to verify the information presented here that was supplied by IETF contributors. This is not intended as, and must not be construed to be, a catalog of available implementations or their features. Readers are advised to note that other implementations may exist. According to RFC 7942, "this will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature. It is up to the individual working groups to use this information as they see fit". The DHCPv6 protocol was originally published as RFC 3315 in July 2003. Many extensions were defined and RFC 8415 was published in November 2018. The protocol was implemented by many vendors that claim DHCPv6 compliance. It is sometimes difficult to determine whether full compliance with 8415 is claimed. The DHCPv6 protocol enjoys multiple interoperable implementations from all sectors of industry. There are many open source and proprietary implementations, both general software and hardware-specific.
The following implementations (listed alphabetically) are known to support DHCPv6:
- Android (Google): In March 2023 (IETF'115) Google revealed it is working on the PD client implementation for Android. Open source. Maturity: prototype. Details are scarce, but it seems the implementation will focus on PD functionality. Source: https://datatracker.ietf.org/meeting/116/materials/slides-116-v6ops-using-dhcp-pd-to-allocate-64-per-host-in-broadcast-networks-00, slide 17.
- Cisco Prime Network Registrar: Cisco's software suite that supports many protocols, including RFC8415 compliant server functionality. Proprietary. Maturity: widely used. One of the authors of this I-D was heavily involved in CPNR development. Source: https://www.cisco.com/c/en/us/products/collateral/cloud-systems-management/prime-network-registrar/datasheet-c78-729989.html.
- dhcpcd: Client implementation. Works on many Linux and BSD distributions, but seems to be the default client for various BSD flavors. Open source (BSD). Maturity: widely used, in particular on BSD systems. Source: https://github.com/NetworkConfiguration/dhcpcd .
- dhcpd (ISC): Client, relay and server implementation, present in most Linux and BSD distributions. Open source (Mozilla Public License v2). The project is no longer developed, but the software is still in wide use. Source: https://www.isc.org/dhcp/ .
- dibbler: Client, relay and server implementation. Limited compatibility with RFC8415. Open source (GNU GPLv2). The project is no longer developed, but the software is still in wide use. The biggest known deployment is 16 million devices. One of the authors of this I-D was the leading developer. Source: https://klub.com.pl/dhcpv6/ .
- dnsmasq: Probably the most popular implementation in terms of number of devices. Very popular among CPE and various home appliances. Client and server implementation with some relay capabilities. Open source (GPL v2 or v3). Source: https://dnsmasq.org/ .
- EdgeMax (Ubiquiti): Proprietary implementation running on EdgeMax hardware, home and small enterprise gateways and switches. Focused on DHCPv6-PD. Source: https://help.ui.com/hc/en-us/articles/115002531728-EdgeRouter-Beginners-Guide-to-EdgeRouter.
- EOS (Arista): Proprietary implementation for network switches, routers and other networking hardware. RFC8415 support explicitly stated. Server, client, relay implementation. Source: https://www.arista.com/en/um-eos/eos-ipv6 .
- FreeRADIUS: RADIUS implementation that also provides DHCPv6 server functionality. Open source.
- Huawei: Server, client and relay functionalities are available on most routers and switches. Proprietary. Source: https://support.huawei.com/hedex/hdx.do?docid=EDOC1100247463&id=EN-US_TASK_0176372622, see "Configuring Server/Relay/client/PD client" on the left panel.
- iOS (Apple): Client implementation running on Apple portable devices (iPhones, iPads, etc.). Proprietary. The implentation is widely used.
- IOS (Cisco): Server, relay, and client implementation that runs on Cisco routers, switches and other networking hardware. Proprietary. Widely used. Source: https://community.cisco.com/t5/networking-knowledge-base/part-1-implementing-dhcpv6-stateful-dhcpv6/ta-p/3145631 .
- Kea (ISC): Server implementation. Open source (Mozilla Public License v2). It is a modern replacement for now retired isc-dhcp. More than 500 users subscribed to the mailing list. One of the authors of this I-D is the lead developer. Source: https://kea.readthedocs.io/en/kea-2.4.0/arm/dhcp6-srv.html#supported-dhcpv6-standards .
- JunOS (Juniper): Server, relay, and client implementation that runs on Juniper routers, switches, and other networking hardware. Proprietary. Widely used. Source: https://www.juniper.net/documentation/us/en/software/junos/dhcp/topics/topic-map/dhcpv6-server.html .
- macOS (Apple): Client implementation for Macs (laptops and desktops). Proprietary. Widely used.
- odhcp6c (OpenWRT): Minimalistic client implementation intended for embedded environment. Open source (GPL-2). Source: https://github.com/openwrt/odhcp6c .
- RouterOS (Mikrotik): Server, relay, and client implementation running on Mikrotik networking hardware (routers, switches, many other appliances). Proprietary. Sources: https://wiki.mikrotik.com/wiki/Manual:IPv6/DHCP_Client, https://wiki.mikrotik.com/wiki/Manual:IPv6/DHCP_Server, https://wiki.mikrotik.com/wiki/Manual:RouterOS6_news .
- ServPoET (Finepoint): Server implementation. Proprietary. One of the authors of this I-D was the lead developer. Source: https://finepoint.com/servpoet/ .
- udhcpc6 (busybox): Minimum footprint implementation, intended for embedded devices. It used to be a separate project (udhcpc6), but it is now part of the BusyBox project. Open source (GPL-v2). Client implementation. Source: https://udhcp.busybox.net/README.udhcpc .
- Unifi (Ubiquiti): Server, relay, and client implementation running on UniFi hardware (routers, switches, firewalls). Proprietary. Source: https://help.ui.com/hc/en-us/articles/115005868927-UniFi-Gateway-Static-IPv6-and-DHCPv6-Prefix-Delegation.
- Windows (Microsoft): Microsoft Windows provides client implementation, which is probably still the most popular OS on desktops and laptops. The server version of Windows provides DHCPv6 server implementation. Proprietary.
The DHCPv6 support is also mandated by some third party specs. For example, all cable modems conformant to DOCSIS3.0 or later must support DHCPv6 client functionality. There are many large scale deployments that use DHCPv6. One of them is Comcast's Xfinity. Authors are aware of many other large scale country wide deployments, but due to signed Non-Disclosure Agreements cannot list them. University of New Hampshire's InterOperability Laboratory runs USGv6 Testing Program. Testing DHCPv6 compliance is one aspect of the program. While the original IPv6 Ready Logo testing involved the original DHCPv6 specifications (primarily RFC3315, RFC3633), the large number of tested and certified implementations supports the breadth and depth of DHCPv6 impementations available and deployed in the marketplace over the years that confirm the protocol specifications are up to Internet Standard. See https://www.ipv6ready.org/db/index.php/public/search/?l=&c=&ds=&de=&pc=&ap=2&oem=&etc=D&fw=&vn=&do=1&o=6.-