Fact-checked by Grok 2 weeks ago

DHCPD

DHCPD ( Daemon) is the server component of the Internet Systems Consortium's (ISC) open-source ISC DHCP software, which implements the network protocol for automatically assigning and other configuration parameters to client devices on networks. Developed to simplify network administration by eliminating the need for manual configuration, DHCPD responds to client requests by allocating addresses from predefined pools and providing details such as subnet masks, default gateways, and DNS server information. The ISC DHCP project, including DHCPD, originated in the late 1990s as an effort to provide a robust, standards-compliant implementation of DHCP following the protocol's initial standardization in RFC 1531 in October 1993. The first release of the ISC DHCP server occurred in December 1997, authored by Ted Lemon and Vixie Enterprises for ISC, with subsequent versions in June 1999 adding client and relay agent capabilities to create a full DHCP suite. Over time, the software incorporated support for DHCPv6 to handle IPv6 address assignment, debuting in version 4.0 released in December 2007, aligning with RFC 3315 for IPv6-specific extensions. DHCPD's core functionality is managed through the configuration file, which defines subnets, pools, lease durations, and options like vendor-specific parameters or file names for PXE booting. It records active leases in a log-structured dhcpd.leases file to prevent address conflicts and support features such as lease renewal and release. Advanced capabilities include (DDNS) updates to synchronize IP assignments with DNS records, failover mechanisms for redundant servers to ensure , and agent support for forwarding DHCP messages across network segments. These features made DHCPD a staple in enterprise and Linux-based environments, including distributions from , , and . Despite its widespread adoption, ISC declared the end-of-life (EOL) for the ISC DHCP distribution, including DHCPD, in October 2022, with maintenance ceasing by December 2022 after the final releases of versions 4.4.3-P1 and 4.1-ESV-R16-P2. The decision stemmed from resource constraints and the need to focus on modern requirements, leading ISC to develop as the successor DHCP server, which offers improved modularity, JSON-based configuration, and ongoing enhancements for both DHCPv4 and DHCPv6. As of November 2025, ISC DHCP continues to be distributed and maintained with backported security fixes by major operating system vendors, including , , and , though users are still encouraged to migrate to for official upstream support.

Introduction

Definition and Purpose

DHCPD, or the DHCP daemon, is an implementation developed by the (ISC) that serves as a background process for providing (DHCP) server functionality on systems. As a daemon, it runs continuously in the background, listening for and responding to client requests without direct user intervention, making it suitable for automated network environments. The primary purpose of DHCPD is to dynamically assign addresses, masks, gateways, DNS addresses, and other essential network parameters to client devices on a (), thereby simplifying network administration by eliminating the need for manual configuration of each device. This automation reduces administrative overhead, minimizes errors from static assignments, and supports scalable deployment in environments ranging from small offices to large enterprises. By managing these assignments through temporary leases, DHCPD ensures efficient use of the available pool while maintaining network stability. For DHCPv4, DHCPD operates using the (UDP), listening on port 67 as the port and communicating with clients on port 68; for , it listens on UDP port 547 as the /relay port while clients use port 546. This positions it as the authoritative source for information and configuration within the network. In a typical interaction, when a client broadcasts a DHCPDISCOVER message to locate available servers, DHCPD responds with a DHCPOFFER packet that includes proposed details, such as the and duration, initiating the process. This implementation adheres to the DHCP protocol standards, enabling seamless integration with diverse client hardware and operating systems.

Relation to DHCP Protocol

DHCPD, developed by the (ISC), serves as a of the (DHCP) standards, ensuring compatibility with core protocol specifications for automated network configuration. It adheres to RFC 2131, which defines DHCP for IPv4 networks, enabling the server to dynamically assign IPv4 addresses, subnets, and related parameters to clients on local networks. Similarly, DHCPD supports RFC 3315 for , facilitating IPv6 address assignment and configuration options such as prefixes and delegated prefixes to IPv6-enabled devices, thus providing dual-stack interoperability in modern networks. As the server-side component of the DHCP protocol, DHCPD participates in the foundational process—Discover, Offer, Request, and Acknowledge—to negotiate and manage leases with clients. In this sequence, DHCPD responds to a client's DHCPDISCOVER broadcast with a DHCPOFFER containing available address options, processes the client's DHCPREQUEST to confirm selection, and finalizes the lease via DHCPACK, ensuring reliable address allocation without manual intervention. This implementation aligns precisely with the protocol's client-server messaging model, promoting seamless integration across diverse network environments. DHCPD fully supports DHCP options as outlined in the specifications, allowing administrators to convey essential details to clients. For instance, it handles option 3 to specify default routers (gateways) and option 6 to provide (DNS) server addresses, enhancing client connectivity and name resolution. Additionally, through its configuration file, DHCPD enables vendor-specific extensions, permitting customized options for specialized deployments. Although the DHCP protocol itself is designed to be implementation-agnostic, DHCPD incorporates ISC-specific enhancements that extend functionality while maintaining standards compliance. These include built-in support for protocols between multiple DHCP servers to ensure during lease management, as well as (DDNS) updates compliant with 2136 for automatic registration of client hostnames in DNS zones. Such features bolster the protocol's robustness in enterprise settings without deviating from core interoperability requirements.

History and Development

Origins and Initial Releases

The development of DHCPD, the open-source (DHCP) server, began in under the (ISC), with the first code commit by primary developer Ted Lemon on November 29, 1995, at the suggestion of to complement ISC's 8 DNS software. By 1996, Lemon had become active in the IETF Dynamic Host Configuration Working Group (DHCWG), contributing to the evolution of the DHCP protocol as defined in 2131, which built on earlier BOOTP limitations. This effort was part of ISC's broader mission to maintain reference implementations of key internet protocols, providing free, open-source tools for network administrators. Early prototypes and beta versions emerged in 1996, with patches and diffs documented in ISC's FTP archives, reflecting iterative testing on systems to automate IP address assignment amid the rapid expansion of /IP networks in the late . The first public distribution of ISC DHCP, including the server component, was released in December 1997, followed by the 1.0 in June 1998. Version 2.0, released in June 1999, marked a significant initial milestone by introducing a DHCP client and alongside the , motivated by the need to address static challenges in growing environments where manual management became impractical. These early releases focused primarily on operating systems, enabling dynamic lease allocation to streamline network operations without proprietary dependencies.

Evolution of Versions

The ISC DHCP server, commonly known as DHCPD, underwent significant evolution through its major version series, with the 3.x branch spanning from 2001 to 2012 and focusing on enhanced reliability and management features, while the 4.x series, from 2007 to 2022, emphasized integration and ongoing security hardening. The 3.x series, beginning with version 3.0 released in October 2001, introduced critical advancements such as support for the DHCP failover protocol, which enabled redundant server configurations to prevent single points of failure in assignment, and the integration of OMAPI (Open Management ) in version 3.0 for and state querying of the DHCP server and client. This series continued with releases like 3.1-ESV (Extended Support Version) in 2010, providing long-term stability patches until its end-of-support in 2012, addressing issues such as memory leaks in OMAPI usage. Transitioning to the 4.x series, version 4.0 in December 2007 marked the initial addition of full support, including , client, and functionality for management, with subsequent releases like 4.1 in 2008 and beyond refining DHCPv6 operations through improved prefix delegation and stateful addressing to better align with IETF standards. The 4.1-ESV branch, launched for extended stability in enterprise environments, received maintenance up to its final patch, 4.1-ESV-R16-P2 in October 2022, which included fixes for buffer overruns in lease parsing among other security updates. The series culminated in the overall final release, 4.4.3-P1, on October 5, 2022, incorporating security patches for vulnerabilities like denial-of-service issues in packet handling. Key enhancements across versions included the license transition to the (MPL) 2.0 starting with 4.4.0 in 2018 and formalized in 4.4.1, improving compatibility for redistribution and modification while maintaining open-source principles. Throughout its lifecycle, ISC issued regular security advisories, addressing over 20 (CVEs), primarily focused on buffer overflows—such as those in log handling (CVE-2004-0460) and DHCPv6 responses (CVE-2012-3570)—and denial-of-service vectors in client and server components, ensuring robustness against remote exploitation attempts.

Technical Architecture

Core Components

The ISC DHCP server, commonly known as dhcpd, is structured around three primary components that form the foundation of its operation: the dhcpd binary as the main executable, the dhcpd.conf , and the dhcpd.leases as the persistent lease database. The dhcpd binary implements the core server functionality, handling incoming DHCP requests and responses in accordance with the protocol's state transitions, such as , OFFER, REQUEST, and . It operates as a daemon that, by default, forks into the background to detach from the controlling terminal, ensuring continuous operation unless explicitly configured otherwise with the -f flag. At its heart, dhcpd employs a single-process daemon model, where the main process listens for incoming UDP broadcasts on port 67, processes client requests through an internal state machine that manages protocol interactions, and responds accordingly. This architecture integrates with system libraries, such as those for socket programming and networking (e.g., BSD sockets via libc), to handle packet reception, parsing, and transmission without relying on specialized DHCP libraries. Upon receiving a request, the state machine evaluates the client's needs against the loaded configuration, selects an appropriate IP address from available pools if applicable, and updates the lease database atomically to prevent corruption—typically by writing changes to a temporary file before renaming it to the main leases file. The dhcpd.conf file serves as the central repository for server parameters, including subnet declarations, ranges, and option definitions that guide assignments and client configurations. Loaded at startup or reload, it dictates the server's behavior across networks, ensuring consistency in how requests are fulfilled. Meanwhile, dhcpd.leases maintains a record of all active and expired s in a structured text format, preserving state across server restarts and enabling recovery of ongoing assignments. For reliability, dhcpd incorporates robust error handling by logging issues, warnings, and informational messages to , facilitating diagnostics in production environments. Signal management further enhances operational control; for instance, sending a signal triggers the daemon to reread the without interrupting service, allowing seamless updates to dhcpd.conf. This combination of components and mechanisms ensures dhcpd's efficiency in managing dynamic IP allocations in diverse network settings.

Lease Management System

The lease management system in DHCPD relies on a text-based file named dhcpd.leases to store and maintain a persistent database of assigned addresses. This file uses a log-structured format, appending new or updated declarations at the end without rewriting existing entries, which ensures efficient updates and minimizes corruption risks. Each entry is enclosed in curly braces and includes key details such as the assigned address, the client's via the hardware ethernet field, duration implied by start and end timestamps (e.g., starts 1 2023/10/10 12:00:00; ends 1 2023/10/11 12:00:00;), and additional like client if provided. To support atomic updates, DHCPD writes changes to a before renaming it to dhcpd.leases, creating a copy suffixed with ~ (e.g., dhcpd.leases~) for recovery in case of interruptions. IP address renewal and expiration in DHCPD follow the standard DHCP protocol, where clients initiate at 50% of the duration (T1 timer) by sending a DHCPREQUEST to the allocating , and rebind at 87.5% (T2 timer) via broadcast if renewal fails. The identifies the requesting client primarily through the chaddr field in the DHCP message, which contains the client's hardware (MAC) address, enabling accurate matching and extension via a DHCPACK response that updates the end timestamp in the file. Expired leases are automatically reclaimed after the end time passes, freeing the IP for reallocation, while active leases persist until explicitly released or renewed. DHCPD employs pool-based allocation to manage IP addresses dynamically from subnets defined in the configuration file, where each subnet or shared-network block contains one or more pool statements specifying a range of addresses (e.g., range 192.168.1.100 192.168.1.200;) for general distribution. Reservations for static mappings are handled via host declarations that associate a specific client's hardware address with a fixed-address IP within or outside the pool, ensuring the address is reserved exclusively for that MAC upon request. This mechanism prevents conflicts by checking the lease database before assigning addresses from the pool. Lease persistence is a core feature, allowing DHCPD to retain active across server restarts by loading the dhcpd.leases file upon startup, avoiding disruptions to connected clients. In configurations with paired servers, lease occurs in real-time, with the primary server updating the secondary's database to maintain identical lease states; this uses the DHCP (as defined in the Internet-Draft draft-ietf-dhc-failover) for load balancing and consistency during partner failures or restarts.

Features

Basic DHCP Services

The ISC DHCP daemon (DHCPD) provides core (DHCP) services to automate network configuration for clients on IPv4 networks. At its foundation, DHCPD supports automatic assignment of addresses from predefined pools within declarations, ensuring clients receive unique addresses without manual intervention. This process follows the DHCP protocol as defined in RFC 2131, where the server responds to client messages with an OFFER containing an available . Alongside assignment, DHCPD provisions essential parameters such as the mask via DHCP option 1 and the (router) via option 3, enabling clients to join the network and route traffic appropriately. These services form the baseline for dynamic addressing in local area networks, reducing administrative overhead in environments with numerous devices. To accommodate legacy systems, DHCPD includes compatibility with the (BOOTP), as specified in RFC 951, allowing it to serve BOOTP clients alongside modern DHCP ones in mixed environments. BOOTP clients, which lack the lease renewal mechanisms of DHCP, are explicitly declared in the and receive fixed addresses without dynamic leasing. This ensures seamless operation for older diskless workstations or embedded devices that rely on BOOTP for initial bootloading, without requiring separate servers. DHCPD handles both broadcast and unicast traffic to support client-server interactions across local and relayed networks. Broadcast messages, such as DHCPDISCOVER and DHCPOFFER, are used for initial address requests on the local , while is employed for renewals once a client has an assigned address. For scenarios spanning multiple subnets, DHCPD integrates with relay agents that forward requests, including support for the Relay Agent Information option (option 82) per RFC 3046, which embeds subnet-specific details to inform accurate address allocation. This relay capability extends basic services beyond broadcast domains, facilitating centralized DHCPD deployment in routed networks. Lease management in DHCPD, which underpins these services, allows configurable durations per address pool to balance resource reuse and stability; for dynamic addresses, default lease times are 43200 seconds (12 hours), though this can be adjusted based on network needs. The system tracks assignments in memory and on disk, preventing conflicts while enabling automatic reclamation of expired addresses.

Advanced Capabilities

ISC DHCPD extends its core IP address assignment functionality through several advanced features that enhance remote management, integration with other network services, and reliability in complex environments. The Object Management Application Programming Interface (OMAPI) provides a remote programming layer for controlling and querying the DHCP server's state, allowing administrators to interact with objects such as leases and hosts over a network connection. OMAPI enables operations like adding, updating, or deleting leases and host records without direct access to the server, supporting scripted automation for dynamic network management. The omshell command-line client facilitates these interactions by establishing a secure TCP/IP connection to the server, where users can issue commands to retrieve lease details or modify configurations in real time. Dynamic DNS (DDNS) updates allow ISC DHCPD to automatically register or modify DNS records in conjunction with IP lease assignments, integrating seamlessly with ISC to maintain consistent hostname-to-IP mappings. This feature complies with RFC 4702, which defines the DHCP client (FQDN) option for negotiating update responsibilities between clients and servers, using flags to specify whether the server should update A records, PTR records, or both. By gathering client identifiers like DUIDs and FQDNs during lease processes, the server verifies ownership via DHCID resource records and performs updates to , ensuring automatic resolution without manual intervention. The protocol enables coordination between two DHCP servers to share a common address pool, providing by allowing seamless handoff during failures. In this setup, a primary and secondary synchronize lease databases in real time using a , with each typically managing about half the available addresses to avoid conflicts. If the primary server becomes unavailable, the secondary enters a partner-down state, reclaims unallocated addresses over a maximum client (MCLT), and continues serving clients without interruption, thereby minimizing in production networks. Vendor class options support device-specific configurations by allowing the to identify and tailor responses based on client-provided vendor information, enhancing customization for diverse hardware. The vendor-class-identifier option (code 60, per RFC 2132) carries a string that matches against -defined classes, enabling selective assignment of parameters like boot files or TFTP servers. For example, PXE clients identify themselves with "PXEClient" in this option, prompting the to provide next-server and bootfile-name options for and automated installations.

Configuration and Operation

Configuration Files and Syntax

The primary configuration file for the ISC DHCP server daemon, known as dhcpd, is typically located at /etc/dhcp/dhcpd.conf on systems, where administrators define the 's behavior, including network scopes, address pools, and client-specific options. This file employs a hierarchical, declarative syntax that structures configurations into blocks enclosed in curly braces { }, allowing nested definitions for logical organization. The syntax distinguishes between declarations, which establish scopes such as subnet, pool, host, and shared-network; parameters, which set global or scoped values like default-lease-time 3600;; and expressions, which enable conditional logic for dynamic responses, such as if statements to match client attributes. For instance, a basic declaration might appear as follows:
[subnet](/page/Subnet) 192.168.1.0 netmask 255.255.255.0 {
    [range](/page/Range) 192.168.1.100 192.168.1.200;
    option routers 192.168.1.1;
}
This block defines an range for dynamic allocation and specifies a option for clients within that . The shared-network groups multiple subnets sharing the same physical network, facilitating pool management across them, as in shared-network localnet { [subnet](/page/Subnet) 10.0.0.0 netmask 255.255.0.0 { ... } [subnet](/page/Subnet) 192.168.0.0 netmask 255.255.255.0 { ... } }. Host-specific reservations use the host with fixed-[address](/page/Address) to a static to a client's , for example: host client1 { [hardware](/page/Hardware) ethernet 00:11:22:33:44:55; fixed-[address](/page/Address) 192.168.1.10; }. Options, defined via the option keyword, customize DHCP responses, such as option domain-name-servers 8.8.8.8, 8.8.4.4;. Expressions add flexibility, allowing configurations like if (option dhcp-client-identifier) { fixed-address 192.168.1.50; } to conditionally assign addresses based on client attributes. For modular setups, the include directive incorporates external files, e.g., include "/etc/dhcp/subnets.conf";, enabling segmented management of complex configurations. All statements end with a , and comments use the # , ensuring readability in larger deployments.

Starting and Managing the Daemon

The ISC DHCP server daemon, dhcpd, is typically launched from the command line by invoking dhcpd followed by one or more network interface names, such as dhcpd eth0, which binds the daemon to the specified interfaces and requires privileges to operate. For foreground execution and , the -f flag prevents the process from daemonizing and forking into the background, while the -d flag directs log output to instead of , allowing real-time monitoring of startup and operational messages. On modern Linux distributions using , such as , the daemon is managed as a named isc-dhcp-server.service, started with sudo systemctl start isc-dhcp-server.service, and can be enabled for boot-time activation via sudo systemctl enable isc-dhcp-server.service. Once running, the daemon can be managed through Unix signals sent to its process ID, stored in /var/run/dhcpd.pid. Sending a SIGHUP signal prompts dhcpd to reread its configuration file without restarting, facilitating updates to lease policies or address pools during operation. For a graceful shutdown, a SIGTERM (signal 15) is issued, after which the daemon can be restarted by reinvoking the dhcpd command or, in systemd environments, using sudo systemctl restart isc-dhcp-server.service. Log monitoring is primarily handled through the syslog facility, with default messages logged under the LOG_DAEMON priority to /var/log/syslog on many systems, enabling administrators to track lease assignments, errors, and server events using tools like tail -f /var/log/syslog | grep dhcpd. Troubleshooting often begins with configuration and lease file validation using command-line flags before full startup. The -t option tests the syntax of the dhcpd.conf file without binding to any network interfaces, while -T performs a similar syntax check on the dhcpd.leases file, writing results to a temporary output without altering the original. Interface binding is achieved by passing interface names directly as arguments (e.g., dhcpd -f -d eth0), ensuring the daemon listens only on specified devices to avoid unintended broadcasts. For dual-stack environments, the -6 flag enables mode, allowing the daemon to handle assignments alongside IPv4 via separate invocations or configurations. A frequent operational is "no free leases," which occurs when all addresses in a configured pool are exhausted or unclaimed due to expired leases not being reclaimed promptly, resolvable by expanding the pool range in the configuration or monitoring lease file growth.

Deployment and Platforms

Supported Operating Systems

The ISC DHCP server, developed by the (ISC), is designed primarily for operating systems, where it has been widely deployed since its inception. It supports a range of platforms including distributions, various BSD variants, , and macOS, allowing administrators to configure it as a DHCP server, relay, or client for both IPv4 and networks. On Linux, ISC DHCP is compatible with all major distributions such as , , , and , where pre-built packages are available through standard repositories like APT or YUM, facilitating easy integration into server environments. For BSD systems, it runs on , , and , often installed via ports collections or packages, with full support for their native networking stacks. Solaris (including ) and macOS, typically requiring building from source or installation via third-party package managers such as Homebrew or , as official pre-built packages are not provided. Compatibility across these platforms is achieved through standard build processes, such as using the autotools-based ./configure && make sequence for compilation from tarballs, ensuring portability on kernels. Pre-built binaries are commonly found in distribution repositories—for instance, via apt install isc-dhcp-server on or ports on BSD systems—while builds handle custom configurations or older hardware. There is no official native support for Windows, though unofficial ports exist via , allowing limited functionality in a POSIX emulation environment; however, ISC recommends against production use on Windows due to stability concerns. IPv6 support, including DHCPv6 server, client, and relay capabilities, has been fully integrated on these systems since version 4.0, released in 2007, enabling dual-stack deployments without platform-specific modifications. Resource requirements remain minimal, with the typically consuming under 10 MB of for small (up to a few hundred clients) and scaling efficiently to thousands of clients on modest hardware, such as systems with 128 MB or more, depending on file size and traffic volume. This lightweight footprint ties into straightforward installation methods across supported platforms, as detailed in subsequent deployment guides.

Installation Methods

The ISC DHCP server (dhcpd) can be installed on supported operating systems primarily through distribution package managers or by compiling from provided by the (ISC). Package-based installation is recommended for most users as it handles dependencies and integrates with system services automatically. On Debian-based distributions like and , use the Advanced Package Tool (APT) to install the server package:
sudo apt update
sudo apt install isc-dhcp-server
This command retrieves and installs the isc-dhcp-server package from the distribution repositories, including the dhcpd binary and default configuration files. For Red Hat-based systems such as (RHEL), , or , the package is available via Yellowdog Updater, Modified (YUM) on older releases or DNF on newer ones. On RHEL 7 and compatible systems, execute:
sudo yum install dhcp
On RHEL 8 and later or :
sudo dnf install dhcp-server
These commands install the DHCP server components, including dhcpd, and place files in /etc/dhcp/. To install from , first the latest release tarball (e.g., version 4.4.3-P1, the final maintenance release) from the ISC archives at https://downloads.isc.org/isc/dhcp/. Unpack the archive using:
gunzip dhcp-4.4.3-P1.tar.gz
[tar](/page/Tar) xvf dhcp-4.4.3-P1.tar
[cd](/page/.cd) dhcp-4.4.3-P1
Prepare the build if needed by running autoreconf -i for libtool , then configure the build with options such as --enable-dhcpv6 to include :
./configure --enable-dhcpv6
Compile and install with:
make
sudo make install
This process requires standard development tools like and Make, and optionally BIND libraries for features. The binaries will be installed to /usr/local/sbin/ by default. Post-installation steps vary by but often include setting up files and permissions. On Debian-based systems, edit or create /etc/default/isc-dhcp-server to define listening interfaces, for example:
INTERFACESv4="eth0"
Additionally, ensure lease database files are writable by the server process; create the directory if necessary and set ownership:
sudo mkdir -p /var/lib/dhcp
sudo touch /var/lib/dhcp/dhcpd.[lease](/page/Lease)s
sudo [chown](/page/Chown) dhcpd:dhcpd /var/lib/dhcp/dhcpd.leases
The dhcpd user and group are created by the package installation; manual creation may be needed for source builds. To confirm the installation, invoke the version flag:
dhcpd -V
This outputs the compiled version and build details, such as "isc-dhcpd-4.4.3-P1".

End-of-Life and Transition

EOL Announcement and Reasons

The (ISC) officially announced the end-of-life (EOL) for its DHCP server software, known as ISC DHCP or DHCPD, in 2022, with the final maintenance releases occurring on October 5, 2022. These releases, versions 4.4.3-P1 and 4.1-ESV-R16-P2, marked the conclusion of all updates, bug fixes, and security patches from ISC, though the organization noted a potential exception for any significant new security vulnerabilities discovered post-EOL. As of September 2025, ISC confirms all versions of ISC DHCP are EOL with no further support, though some operating system packagers may still distribute it without ISC-provided updates. Prior to this, ISC had indicated plans to cease maintenance by the end of 2022, aligning with the broader discontinuation of active development. The primary reasons for discontinuing ISC DHCP centered on the aging codebase, which originated in the and had become increasingly difficult to maintain and modify without introducing risks. The software's mature but monolithic design lacked modern features, leading to fewer changes over recent years due to the high potential for in updates. Additionally, ISC shifted its development resources toward , a more modular and actively maintained successor initiated in 2015, to better address evolving network needs and improve long-term sustainability. This transition reflected broader resource allocation priorities at ISC following the software's decades of service. A key aspect of ISC DHCP's longevity was its Extended Support Version (ESV) branch, such as 4.1-ESV, which provided long-term stability and updates for users until its EOL in 2022. However, the absence of new features and the accumulating maintenance challenges ultimately rendered continued support unsustainable. The EOL has significant implications for users, who are strongly advised by ISC to migrate to alternative solutions, as any vulnerabilities identified after October 2022—for instance, issues like the refcount overflow in lease queries (CVE-2022-2928) that were addressed in the final release—would receive no further patches, potentially exposing networks to unmitigated risks.

Migration to Successor Software

Kea serves as the designated successor to the ISC DHCP server (commonly referred to as DHCPD), developed by the (ISC) as a modern, modular replacement released in September 2014. Designed to address limitations in the legacy software, such as scalability and configuration flexibility, Kea uses JSON-based configuration files and supports advanced features like and updates, with significant feature enhancements reaching broader compatibility by version 2.0 in early 2022. As of June 2025, Kea released version 3.0 as its first (LTS) version, providing three years of maintenance for enhanced stability in production environments. Following the end-of-life announcement for ISC DHCP in 2022, organizations are encouraged to transition to Kea to maintain security and support. As of 2025, major platforms such as and have integrated Kea, aiding widespread adoption. The process begins with exporting active leases from the ISC DHCP database, which can be accomplished using the omshell utility to query and dump lease data or through custom scripts tailored to the deployment's lease file format. These leases must then be converted into Kea's supported formats, such as or directly into a , using tools like the KeaMA Leases utility provided by ISC. Next, the dhcpd.conf configuration file is translated to Kea's structure via the isc-dhcp-to-kea tool or the comprehensive Kea Migration Assistant (KeaMA), which automates much of the syntax mapping but requires manual review for complex options like subclassing or vendor-specific data. Administrators should consult ISC's official Kea for detailed syntax mappings and common pitfalls. Handling differences in data storage is a key consideration, particularly when shifting from ISC DHCP's flat-file storage to 's versatile backends, such as memfile (for simplicity), , , or for high-volume environments. For instance, can be imported into a database using Kea's built-in loader scripts after schema setup, enabling seamless querying and persistence. Testing the migrated setup in parallel with the running ISC DHCP instance—by configuring Kea to serve a separate or —allows validation of address assignments, option delivery, and behavior without disrupting production traffic. Kea's RESTful API provides a significant advantage during transition, enabling runtime configuration updates and lease manipulations without full restarts, which minimizes downtime compared to ISC DHCP's reload mechanisms. For large networks, a phased rollout is recommended: start with non-critical segments, monitor lease migrations and client renewals over several days, then progressively expand to core subnets while maintaining ISC DHCP as a fallback until full cutover. This approach, detailed in ISC's documentation, ensures reliability and facilitates rollback if issues arise.

Comparisons and Alternatives

ISC DHCP vs. Kea

ISC DHCP, the original daemon developed by the Internet Systems Consortium (ISC), features a monolithic architecture written primarily in C, utilizing a single configuration file (dhcpd.conf) for both DHCPv4 and limited DHCPv6 operations. In contrast, Kea employs a modular design implemented in C++, with separate daemons for DHCPv4, DHCPv6, and Dynamic DNS (DDNS), configured via JSON files that enable easier parsing and dynamic updates. This modularity in Kea is further enhanced by its hooks framework, which allows loading dynamically linked libraries to extend functionality at specific processing points, such as custom lease management or client classification, without recompiling the core server. Both implementations support key features like failover protocols and DDNS updates, but their approaches differ significantly. ISC DHCP relies on a protocol-based failover mechanism for DHCPv4, synchronizing states between primary and secondary servers, while Kea uses a hooks-based High Availability (HA) library that supports both DHCPv4 and DHCPv6, often leveraging shared databases for lease replication in active-passive or load-balanced setups. Kea introduces high-performance database integrations via hooks libraries, such as libdhcp_pgsql.so for PostgreSQL backends, enabling scalable storage of leases, hosts, and configurations that outperform file-based systems in large environments. Additionally, Kea provides more robust IPv6 support through its dedicated DHCPv6 server, including prefix delegation and full compliance with modern standards, whereas ISC DHCP offers only basic DHCPv6 capabilities. ISC DHCP maintains an edge in handling legacy BOOTP clients through its native compatibility with RFC 951, though Kea addresses this via an optional BOOTP hooks library for RFC 1497 queries. Performance-wise, 's multi-threaded architecture delivers much higher throughput on modern hardware compared to ISC DHCP's single-threaded model, particularly in high-volume scenarios with short lease times, as demonstrated in ISC's internal benchmarks. For instance, facilitates easier scaling through online reconfiguration via a REST , avoiding the need for server restarts that are common with ISC DHCP's signal-based reloads. A notable shift in licensing occurs with , which adopts the 2.0 (MPL 2.0)—a file-level that permits commercial forks and modifications while requiring source disclosure for changed files—compared to ISC DHCP's more permissive (similar to the 2-clause BSD). This change in supports broader commercial adaptations. Migration from ISC DHCP to is aided by the Kea Migration Assistant (KeaMA) tool, which automates much of the configuration translation from dhcpd.conf to , though users must relearn the for advanced hooks and management.

Comparison with Other DHCP Servers

ISC DHCPD, the server component of the ISC DHCP implementation, distinguishes itself through its open-source nature and robust feature set tailored for mid-sized to large deployments, but it lacks a graphical user interface and relies on text-based configuration files secured primarily through file permissions. In contrast, Microsoft DHCP, integrated into Windows Server, emphasizes enterprise integration with a GUI-driven management console and role-based access control for security, making it suitable for Active Directory environments. dnsmasq offers a lightweight alternative optimized for small to medium networks, such as embedded systems or home routers, with simple configuration and low resource usage, though it lacks native failover support. Cisco IOS DHCP, embedded within network hardware like routers and switches, provides device-integrated address assignment without requiring separate servers, but its capabilities are constrained to the hardware's processing limits and do not include built-in failover. A key strength of DHCPD is its protocol, which enables load balancing and between two servers managing the same address pool, enhancing reliability in high-availability setups. This contrasts with 's emphasis on simplicity, where occurs via a single file with straightforward options, ideal for environments with fewer than 1,000 clients but without equivalent features. Microsoft DHCP supports through protocol-based replication or split scopes, integrated with Windows clustering for scalability in large enterprises. Cisco IOS DHCP achieves by deploying multiple non-overlapping pools across devices rather than true , suiting hardware-centric network designs. All modern implementations, including DHCPD, support via for stateful address assignment and , ensuring compatibility with dual-stack networks. DHCPD was the default DHCP server in major distributions such as (as of 24.04) and earlier versions of (up to RHEL 9), contributing to its widespread adoption in open-source server environments. As of 10 (released May 2024), Kea has replaced ISC DHCP as the default.
CriterionISC DHCPDMicrosoft DHCPdnsmasqCisco IOS DHCP
Open-sourceYesNoYesNo
ScalabilityMid-to-large (high-volume, high-reliability)Enterprise (multiple scopes, AD integration)Small-to-medium (up to 1,000 leases default)Device-bound (pools limited by hardware)
IPv6 SupportYes (DHCPv6, prefix delegation)Yes (stateful/stateless)Yes (DHCPv6, RA, prefix delegation)Yes (DHCPv6 in modern IOS)
FailoverYes (protocol-based, load balancing)Yes (replication, split scopes)No (manual redundancy required)No (multiple servers with non-overlapping pools)
GUINo (text config)Yes (Server Manager, DHCP console)No (config file)CLI/Web (device-dependent)
Security ModelFile permissions, network controlsRole-based access, AD authorizationFile permissions, lease limitsDevice ACLs, authentication

References

  1. [1]
    ISC DHCP
    The Dynamic Host Configuration Protocol (DHCP) is a network protocol used to assign IP addresses and provide configuration information to devices such as ...Missing: definition | Show results with:definition
  2. [2]
    ISC DHCP 4.4 Manual Pages - dhcpd
    Jun 6, 2023 · DHCP allows hosts on a TCP/IP network to request and be assigned IP addresses, and also to discover information about the network to which they ...
  3. [3]
    The History of DHCP - ISC
    The Dynamic Host Configuration Protocol (DHCP) was first defined as a standards-track protocol in RFC 1531 in October 1993, as an extension to the Bootstrap ...
  4. [4]
    ISC DHCP Server has reached EOL
    Oct 4, 2022 · ISC DHCP's history and evolution. The ISC DHCP server was originally written for Internet Software Consortium (ISC) by Ted Lemon and Vixie ...
  5. [5]
    ISC Open Source Projects / dhcp - GitLab
    Jun 20, 2019 · The first release of the ISC DHCP distribution in December 1997 included just the DHCP server. Release 2 in June 1999 added a DHCP client and a ...
  6. [6]
    ISC DHCP and IPv6 – the DHCPv6 Story
    Apr 21, 2011 · ISC released ISC DHCP 4.0 in December 2007, which included a DHCPv6 server, client, and relay. ISC continues to release new versions of ISC DHCP ...
  7. [7]
    ISC DHCP 4.4 Manual Pages - dhcpd.conf
    Jun 6, 2023 · The dhcpd.conf file contains configuration information for the dhcpd server, consisting of parameters and declarations.
  8. [8]
    ISC DHCP 4.4 Manual Pages - dhcpd.leases
    Jun 6, 2023 · The dhcpd.leases file is a persistent database of DHCP leases, recording new lease values at the end of the file, and is log-structured.Dhcpd. Leases · The Dhcpv4 Lease Declaration · The Dhcpv6 Lease (ia)...<|control11|><|separator|>
  9. [9]
    Chapter 3. Providing DHCP services | Red Hat Enterprise Linux | 8
    The dynamic host configuration protocol (DHCP) is a network protocol that automatically assigns IP information to clients.
  10. [10]
    isc-dhcp-server - Community Help Wiki - Ubuntu Documentation
    Apr 14, 2015 · The Dynamic Host Configuration Protocol (DHCP) is a network service that enables host computers to be automatically assigned settings from a server.
  11. [11]
    Kea DHCP - ISC
    ISC distributes TWO full-featured, open source, standards-based DHCP server distributions: Kea DHCP and ISC DHCP. Kea includes all the most-requested features.
  12. [12]
    RFC 2131 Dynamic Host Configuration Protocol March 1997 - IETF
    The Dynamic Host Configuration Protocol (DHCP) provides configuration parameters to Internet hosts. DHCP consists of two components: a protocol for delivering ...
  13. [13]
    RFC 3315 - Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
    The Dynamic Host Configuration Protocol for IPv6 (DHCP) enables DHCP servers to pass configuration parameters such as IPv6 network addresses to IPv6 nodes.
  14. [14]
    Standard DHCP Options Defined in ISC DHCP and Kea
    May 27, 2025 · These tables show the standard options currrently defined for both DHCPv4 and DHCPv6 and which ones are supported in the ISC DHCP server and Kea DHCP servers.
  15. [15]
    Happy Birthday to ISC's DHCP4
    Nov 29, 2013 · On November 29th ISC's DHCP4 will turn 18. The first code for the DHCP project was committed to the source repository by Ted Lemon on 1995-11-29.
  16. [16]
    [PDF] The DHCP Handbook
    As part of the work of producing the ISC DHCP distribution, Ted has been active in the IETF DHCWG since 1996. Along with Ralph, Bernie Volz, and Jim Bound, Ted ...
  17. [17]
    About Us - ISC
    July 27, 2022. This stable branch release included many new and improved ... ISC DHCP End of Life was announced with the release of updated server versions.
  18. [18]
    Index of /pub/network/isc/dhcp/dhcp-1.0-history - FTP Directory Listing
    Index of /pub/network/isc/dhcp/dhcp-1.0-history ; [ ], DHCPD-BETA-5.9-5.10.diff.gz, 1996-09-11 15:53 ; [ ], DHCPD-BETA-5.10-5.11.diff.gz, 1996-09-12 06:30 ; [ ] ...
  19. [19]
    What is DHCP Failover? - ISC Knowledgebase
    Oct 30, 2018 · DHCP failover is a mechanism whereby two DHCP servers are both configured to manage the same pool of addresses, so that they can share the load of assigning ...Missing: x support
  20. [20]
    http://web.mit.edu/netbsd/src/dist/dhcp/RELNOTES
    Version 3 of the ISC DHCP Distribution includes the following features that are new since version 2.0: - DHCP Failover Protocol support - OMAPI, an API for ...
  21. [21]
  22. [22]
    Upgrade tips from DHCP 3 to DHCP 4 - ISC Knowledgebase
    Jul 13, 2021 · Perhaps most critically, ISC will provide fixes for future security issues that are discovered in DHCP 4, while DHCP 3 will not receive any ...Missing: x | Show results with:x
  23. [23]
    CVE-2021-25217: A buffer overrun in lease file parsing code
    May 26, 2021 · CVE-2021-25217: A buffer overrun in lease file parsing code can be used to exploit a common vulnerability shared by dhcpd and dhclient.
  24. [24]
    ISC DHCP < 4.4.3-P1 Multiple Vulnerabilities | Tenable®
    Jan 12, 2023 · Patch Publication Date: 10/5/2022. Vulnerability Publication Date: 10/5/2022. Reference Information. CVE: CVE-2022-2928, CVE-2022-2929. IAVB ...
  25. [25]
    ISC DHCP Moves to MPL 2.0 License
    Jun 19, 2017 · We will add the MPL 2.0 license terms as we update or change files, beginning with the 4.4.0 beta version. Older versions already published ...
  26. [26]
    ISC DHCP – The Last Branch
    Jan 9, 2018 · 1. Adopt the MPL 2.0 license. With this branch, we have changed the open source license for ISC DHCP to the Mozilla Public License, MPL 2.0.
  27. [27]
    CVE-2004-0460: DHCP stack buffer overflow vulnerability
    Jun 22, 2004 · CVE-2004-0460: DHCP stack buffer overflow vulnerability in handling log lines containing ASCII characters only.Missing: DoS | Show results with:DoS
  28. [28]
  29. [29]
    RFC 2131 - Dynamic Host Configuration Protocol - IETF Datatracker
    The Dynamic Host Configuration Protocol (DHCP) provides a framework for passing configuration information to hosts on a TCPIP network.Missing: ISC | Show results with:ISC
  30. [30]
    A Basic Guide to Configuring DHCP Failover - ISC Knowledgebase
    Sep 14, 2022 · Ensure that firewalls and filters allow DHCP traffic, OMAPI control channel traffic, and failover protocol messages to reach your servers.Missing: x | Show results with:x
  31. [31]
    RFC 3074: DHC Load Balancing Algorithm
    This document proposes a method of algorithmic load balancing. It enables multiple, cooperating servers to decide which one should service a client.Missing: ISC lease persistence
  32. [32]
    RFC 3046 - DHCP Relay Agent Information Option - IETF Datatracker
    The new option is called the Relay Agent Information option and is inserted by the DHCP relay agent when forwarding client-originated DHCP packets to a DHCP ...Missing: ISC | Show results with:ISC
  33. [33]
    ISC DHCP 4.1 Manual Pages - dhcpd.conf
    Feb 17, 2022 · The dhcpd.conf file contains configuration information for dhcpd, the Internet Systems Consortium DHCP Server. The dhcpd.conf file is a free- ...
  34. [34]
    dhcpd(8) — isc-dhcp-server — Debian testing
    May 3, 2025 · dhcpd is a Dynamic Host Configuration Protocol server that allows hosts to request and be assigned IP addresses on a TCP/IP network.Missing: architecture | Show results with:architecture
  35. [35]
    ISC DHCP 4.1 Manual Pages - omapi
    Dec 21, 2021 · OMAPI is an programming layer designed for controlling remote applications, and for querying them for their state. It is currently used by the ISC DHCP server.Missing: support | Show results with:support
  36. [36]
    ISC DHCP 4.4 Manual Pages - omshell
    Jun 6, 2023 · The OMAPI Command Shell, omshell, provides an interactive way to connect to, query, and possibly change, the ISC DHCP Server's state via OMAPI, the Object ...
  37. [37]
    ISC DHCP support for Standard DDNS
    Jul 13, 2021 · ISC DHCP 4.3 updates the DDNS code to be compliant with RFCs 4701, 4702, 4703, and 4361. Dynamic DNS update styles.Dynamic Dns Update Styles · Dhcp Server - Which Ddns... · Transition Issue
  38. [38]
    RFC 4702 - The Dynamic Host Configuration Protocol (DHCP ...
    This document describes a Dynamic Host Configuration Protocol for IPv4 (DHCPv4) option that can be used to exchange information about a DHCPv4 client's fully ...Missing: ISC | Show results with:ISC
  39. [39]
    dhcpd.conf(5) — isc-dhcp-server — Debian testing
    May 3, 2025 · Whenever a client makes a DHCP request, the DHCP server runs a hash on the client identification, resulting in value from 0 to 255. This is used ...
  40. [40]
    ISC DHCP 4.4 Manual Pages - dhcp-options - ISC Knowledgebase
    Jun 6, 2023 · DHCP options allow clients to receive network configuration and service details from the server. Options are declared with a keyword, name, and ...
  41. [41]
    How to install and configure isc-dhcp-server - Ubuntu documentation
    It will lease an IP address for 600 seconds if the client doesn't ask for a specific time frame. Otherwise the maximum (allowed) lease will be 7200 seconds. The ...
  42. [42]
    Troubleshooting: no free leases - Mailing Lists
    Jul 21, 2017 · I hit "no free leases". I'm hoping someone could help me figure out what's going wrong / how to fix it. This is most of my dhcpd.conf [1] file.Missing: error | Show results with:error
  43. [43]
    ISC's Software Support Policy and Version Numbering
    Sep 10, 2025 · Operating System support. We have a published list of supported operating systems. These are the operating systems we can test on, or that we ...
  44. [44]
    14.5. DHCP for IPv6 (DHCPv6) | Red Hat Enterprise Linux | 7
    The ISC DHCP includes support for IPv6 (DHCPv6) since the 4.x release with a DHCPv6 server, client, and relay agent functionality.Missing: improvements | Show results with:improvements
  45. [45]
    Setting up the dhcpd server, Diskless NetBSD HOW-TO
    The ISC DHCPD supports the following platforms: NetBSD, OpenBSD, FreeBSD, Mac OS X, Darwin, Linux, SunOS, Solaris, NEXTSTEP, HP-UX, BSD/OS, OSF/1, and Ultrix.
  46. [46]
    ISC DHCP on CYGWIN - Angelfire
    Simple instructions: · Unpack the archive $ cd /tmp · Patch the source $ cd dhcp-3.0. · Configure and build · Install · Setup configuration and leases files · Edit ...Missing: Windows | Show results with:Windows
  47. [47]
    Large networks and memory allocation in ISC DHCP
    Nov 15, 2018 · Runtime memory allocation in ISC DHCP differs between the IPv4 and IPv6 servers. The DHCPv4 server will allocate memory structures at startup for each address.
  48. [48]
    Reducing DHCP memory consumption - ISC Knowledgebase
    Oct 18, 2018 · The amount of memory consumed by ISC DHCP can be significantly reduced by strategic use of 'range6' statements.
  49. [49]
    DHCP_Server - Debian Wiki
    Aug 17, 2025 · ToDo: Note that this page is out of date. ISC has deprecated the ISC DHCP suite and suggests using Kea as a replacement. This page should be ...
  50. [50]
    14.2. Configuring a DHCP Server - Red Hat Documentation
    The first step in configuring a DHCP server is to create the configuration file that stores the network information for the clients.
  51. [51]
    How to Install and Configure a DHCP Server on Rocky Linux - CIQ
    Jul 2, 2024 · Rocky Linux uses dnf for package management, so install the DHCP server software with the command: sudo dnf install dhcp-server -y.<|control11|><|separator|>
  52. [52]
    isc-projects/dhcp - GitHub
    HISTORY ISC DHCP was originally written by Ted Lemon under a contract with Vixie Labs with the goal of being a complete reference implementation of the DHCP ...Missing: 1996 | Show results with:1996
  53. [53]
    how to create executable using isc dhcp and problem while issuing ...
    Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]. Hi all, The file mentioned below is ./configure of ISC DHCP ... --enable-dhcpv6 enable support for ...
  54. [54]
    Keep file permissions on dhcpd.leases after reboot on Linux
    Mar 2, 2021 · By running the command sudo chmod 777 /var/lib/dhcp/dhcpd.leases, the file permissions can be changed and thus the app is able to modify the file as we want it ..."Can't open /var/lib/dhcp/dhcpd6.leases for append." during start of ...Question regarding the dhcpd.leases file for ISC-DHCP-SERVER ...More results from askubuntu.com
  55. [55]
    CVE-2022-2928 An option refcount overflow exists in dhcpd
    Oct 5, 2022 · CVE-2022-2928 is an option refcount overflow in dhcpd. Repeated lease queries can cause the server to abort due to a missing refcount decrement.Missing: 29217 | Show results with:29217
  56. [56]
    Migrating from ISC DHCP to Kea DHCP with Keama
    May 10, 2023 · Migrate by documenting, using KeaMA to translate config, testing in lab, and performing a cutover, enabling small pieces at a time.
  57. [57]
  58. [58]
    [PDF] Migrating to Kea DHCP - ISC
    Migrating to Kea DHCP involves understanding existing configurations, network de-fragmentation, planning, and step-by-step migrations, often requiring ...
  59. [59]
    Migrating to Kea from ISC DHCP
    Use the KeaMA tool to partially translate your ISC DHCP config. Review, modify, and test the resulting Kea config. Small migrations are recommended.
  60. [60]
  61. [61]
    17. Hook Libraries — Kea 3.1.4 documentation
    This hook library provides support for using PostgreSQL database(s) for Kea Lease, Host, and Configuration Backends. ... DHCP lease statistics, for Kea DHCP ...
  62. [62]
    Kea High Availability vs. ISC DHCP Failover - ISC Knowledgebase
    Mar 25, 2025 · Both solutions use the technique described in RFC 3074 for load balancing. Active-passive. Both ISC DHCP and Kea HA support the mode of ...Missing: persistence | Show results with:persistence
  63. [63]
    Kea Bootp Hooks Library
    libdhcp_bootp is a hooks library which allows the processing of BOOTP queries following the RFC1497. Old RFC951 BOOTP queries without vendor extensions are not ...
  64. [64]
    ISC Open Source Software Licenses
    ... Kea DHCP, ISC DHCP versions 4.4.0 and greater, and all versions of Stork are available under the Mozilla Public License 2.0. The BIND -S edition is licensed ...
  65. [65]
    Install and configure DHCP Server on Windows Server
    ### Summary of Microsoft DHCP Features
  66. [66]
    Man page of DNSMASQ
    Feb 5, 2025 · The dnsmasq DHCP server supports static address assignments and multiple networks. It automatically sends a sensible default set of DHCP options ...Missing: simplicity | Show results with:simplicity
  67. [67]
    IP Addressing: DHCP Configuration Guide, Cisco IOS Release 15M&T
    Dec 3, 2012 · The Cisco IOS DHCP server is a full DHCP server implementation that assigns and manages IP addresses from specified address pools within the device to DHCP ...Missing: bound | Show results with:bound
  68. [68]
    ISC DHCP - endoflife.date
    Aug 10, 2025 · The 4.4. 3-P1 and 4.1-ESV-R16-P2 versions of ISC DHCP, released on October 5, 2022, were the last maintenance versions that ISC planned to ...Missing: 1.0 | Show results with:1.0<|separator|>