From ArchWiki

Kea is the bleeding edge DHCP server of the Internet Systems Consortium (ISC) . The older dhcpd is end of life .


Install the kea package. For additional documentation install kea-docs. Additional optional dependencies are:


kea includes four systemd unit files:

unit file purpose
kea-dhcp4.service The IPv4 dhcp daemon.
kea-dhcp6.service The IPv6 dhcp daemon.
kea-dhcp-ddns.service The DNS update daemon.
kea-ctrl-agent.service Exposing a REST interface for managing Kea servers.


The configuration files are located under /etc/kea. The content of the configuration files uses JSON structures. For special configurations that are not yet included in the following examples, please refer to the Kea documentation.


To use DHCP for IPv4, the configuration file /etc/kea/kea-dhcp4.conf must be adapted and the service kea-dhcp4.service must be activated and started.

Tip: The following subnets are usually reserved for private networks and will not conflict with hosts on the internet:
  • 192.168/16 (subnet, netmask
  • 172.16/12 (subnet, netmask
  • 10/8 (for large networks; subnet, netmask

See also RFC 1918.

Make sure to assign a static IP address to the interface on which Kea is listen on.

Example configuration

Assumptions for the example:

  • The net is
  • DNS server has the IP
  • Gateway has the IP
  • Static IP of the DHCP server network interface eth0 is
  • Kea should provide IPs from to

A minimal configuration file /etc/kea/kea-dhcp4.conf could look like:

    "Dhcp4": {
        "interfaces-config": {
            "interfaces": [ "enp1s0/" ],
            "dhcp-socket-type": "raw"

        "subnet4": [
                "id": 1,
                "subnet": "",
                "pools": [ { "pool": " -" } ],
                "option-data": [
                        "name": "routers",
                        "data": ""
                        "name": "domain-name-servers",
                        "data": ""

The configuration file can be checked for errors by running the command:

# kea-dhcp4 -t /etc/kea/kea-dhcp4.conf

If everything looks ok enable and start Kea:

# systemctl enable kea --now

Check the log output of Kea by running the command:

# journalctl -u kea-dhcp4.service