Kea is ISC’s modern open source DHCPv4 and DHCPv6 server.
Kea is the new alternative to ISC DHCP, ISC’s older open source DHCP distribution.
Kea is a high performance, production grade solution for IPv4 or IPv6 addressing for the enterprise, education and service providers.
Kea is designed to be easily extensible through an applications API. This API can be called at multiple places during the DHCP processing, to consult or update enterprise provisioning systems, for example. Kea DHCP leases may be stored in a memory file database, or in a MySQL or Postgres database.
The Kea distribution does not yet include a DHCP client or relay, but because both are standards-based, the ISC DHCP client works fine with the Kea DHCP server. Kea runs on Linux, BSD, and MacOS. Kea comes with comprehensive Developer and Administrator documentation.
ISC offers commercial 7 x 24 support for Kea, as well as consulting and contract development to assist in implementing Kea, including migration from ISC DHCP.
Broad, standards-compliant support for both DHCPv4 and DHCPv6 protocols
- Direct address assignment or DHCPv6 prefix delegation
- Dynamic DNS for updating DNS records as leases are renewed or expired
- Dynamic IP addressing for most clients and static host reservations, for servers and printers
- Tracking of MAC addresses, even in DHCPv6
- Most DHCPv4 and v6 options, or easily add your own
Easily extensible
- Using Hooks, it is possible to control the assignment of options and even addresses from your own provisioning system
- Hook points include: packet received, subnet selected, lease renewed, lease released, ready to respond
- Hooks allow the developer to edit information such as the lease parameters (time to renew), the subnet, address or options to be delivered
- For an example of how this can be used, see the FaceBook Kea Application
Resources
Kea Project wiki
Kea Packages for popular operating systems
Kea Developer Guide
Weighing your options
| Feature Support | Kea Server | ISC DHCP Server |
|---|---|---|
| DHCPv4 or DHCPv6 server | ![]() | ![]() |
| Stateless mode | ![]() | — |
| Uninterrupted service – online reconfiguration | no restart unless physical interfaces change | some changes can be made using OMAPI without restart |
| DHCPv4 Failover | — | ![]() |
| Integrations | Documented, supported ‘hooks’ api | Community-contributed LDAP integration |
| Lease Database | PostGreSQL, MySQL or memfile | Local text file |
| DHCPv6 Prefix Delegation | ![]() | ![]() |
| Client classification | basic | ![]() |
| Dynamic DNS updating (DDNS) | ![]() | ![]() |
| Option Assignment Determined by | Global, Subnet, Host (v. 1.0) Or specify via hooks application | Global, Shared Network, Subnet, Class, Pool, Host |
| Host Reservation | ![]() | ![]() |
| Documentation | Developer documentation, Administrative Reference | embedded ‘man pages’ |
| Operating System Support | RedHat Enterprise Linux, CentOS, Fedora and FreeBSD Builds on: most Linux and BSD variants, including MacOSX | Linux and Unix variants, Solaris, HU/UX & AIX with a single network interface |
| Bug Database | public Trac issue database | private, mailto: [email protected] |
| Community Support | Kea User’s mailing list | DHCP-users mailing list |
| Professional 7 x 24 Support from ISC | ![]() | ![]() |
Advice for ISC DHCP Users
You may be wondering whether we recommend you migrate from ISC DHCP to Kea at this time.
- Use Kea if you need higher performance
- Use Kea if you are modernizing your infrastructure
- Use Kea if you want a stateless DHCP architecture tied to your own provisioning system for device-specific information
- Use Kea for your DHCP server needs
If Kea is missing a minor feature you need
- Consider requesting a custom-developed hooks application
- Kea hooks can do everything from re-writing options in the packet to triggering external applications
Continue to use ISC DHCP if
- You need DHCPv4 failover (note that HA implementations of Kea are possible today using a HA database back end)
- If you are using legacy interfaces
Continue using ISC DHCP for client and relay functions
