Kea

出自 ArchWiki

Kea DHCP 是当前 动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 的服务器,由 互联网系统协会 (Internet Systems Consortium, ISC) 开发。

注意: 旧版本 dhcpd停止维护

安装

安装 kea 软件包。如需额外文档,请安装 kea-docs 软件包。

可选依赖:

配置

配置文件位于 /etc/kea 目录下。配置文件的内容使用 JSON 结构。对于以下示例中未包含的特殊配置,请参考 Kea 文档

IPv4 DHCP

要将 DHCP 用于 IPv4,必须调整配置文件 /etc/kea/kea-dhcp4.conf,并激活和启动 kea-dhcp4.service 服务。

提示: 以下子网是为私有网络 保留 的,不会与互联网上的主机冲突
  • 192.168.0.0/16 – 子网 192.168.0.0,子网掩码 255.255.0.0
  • 172.16.0.0/12 – 子网 172.16.0.0,子网掩码 255.240.0.0
  • 10.0.0.0/8 – 子网 10.0.0.0,子网掩码 255.0.0.0

请确保为 Kea 监听的接口分配静态 IP 地址。

单子网配置示例

示例假设

  • 网络为 192.168.0.0/24
  • DNS 服务器 IP 为 192.168.0.1/24
  • 网关 IP 为 192.168.0.254/24
  • DHCP 服务器网络接口 eth0 的静态 IP 为 192.168.0.253/24
  • Kea 应提供从 192.168.0.100/24192.168.0.199/24 的 IP 地址

一个最小化的配置文件 /etc/kea/kea-dhcp4.conf 可能如下所示

/etc/kea/kea-dhcp4.conf
{
    "Dhcp4": {
        "interfaces-config": {
            "interfaces": [ "eth0/192.168.0.253" ],
            "dhcp-socket-type": "raw"
        },

        "subnet4": [
            {
                "id": 1,
                "subnet": "192.168.0.0/24",
                "pools": [ { "pool": "192.168.0.100 - 192.168.0.199" } ],
                "option-data": [
                    {
                        "name": "routers",
                        "data": "192.168.0.254"
                    },
                    {
                        "name": "domain-name-servers",
                        "data": "192.168.0.1"
                    }
                ]
            }
        ]
    }
}

多子网配置示例

示例假设

  • 网络如下:
    • 网络 1: 192.168.0.0/24 (标准物理网络)
    • 网络 2: 192.168.1.0/24 (虚拟 VLAN 网络)
  • DNS 服务器如下:
    • 网络 1 在 IP 地址 192.168.0.1 上托管了自己的 DNS 服务器
    • 网络 2 使用上游 Google DNS: 8.8.8.8 & 8.8.4.4
  • 网关如下:
    • 网络 1: 192.168.0.254/24
    • 网络 2: 192.168.1.254/24
  • DHCP 服务器的静态 IP 如下:
    • 网络 1: 网络接口 eth0192.168.0.253
    • 网络 2: 网络接口 eth0.100192.168.1.253
  • Kea 应提供的 IP 地址范围:
    • 网络 1: 从 192.168.0.100/24192.168.0.199/24
    • 网络 2: 从 192.168.1.2/24192.168.1.252/24
  • 您定义了一些静态 IP 地址:
    • 网络 1: 有两部特殊电话,静态租约分别为 192.168.0.10192.168.0.11
  • 您想要为 IPv4 启用最大调试日志记录,以便排除 IP 保留的任何问题

一个更复杂的配置文件 /etc/kea/kea-dhcp4.conf 可能如下所示

/etc/kea/kea-dhcp4.conf
{
    "Dhcp4": {
        "interfaces-config": {
            "interfaces": [ "eth0/192.168.0.253", "eth0.100/192.168.1.253" ],
            "dhcp-socket-type": "raw"
        },
        "loggers": [
          {
            "name": "kea-dhcp4",
            "severity": "DEBUG",
            "debuglevel": 99,
            "output_options": [
              {
                "output": "stdout"
              }
            ]
          }
        ],
        "subnet4": [
            {
                "id": 1,
                "subnet": "192.168.0.0/24",
                "interface": "eth0",
                "pools": [ { "pool": "192.168.0.100 - 192.168.0.199" } ],
                "option-data": [
                    {
                        "name": "routers",
                        "data": "192.168.0.254"
                    },
                    {
                        "name": "domain-name-servers",
                        "data": "192.168.0.1"
                    }
                ],
                "reservations": [
                {
                    "hostname": "phone1",
                    "hw-address": "1a:1b:1c:1d:1e:1f",
                    "ip-address": "192.168.0.10"
                },
                {
                    "hostname": "phone2",
                    "client-id": "01:11:22:33:44:55:66",
                    "ip-address": "192.168.0.11"
                }
            ]
            },
            {
                "id": 2,
                "subnet": "192.168.1.0/24",
                "interface": "eth0.100",
                "pools": [ { "pool": "192.168.1.2 - 192.168.1.252" } ],
                "option-data": [
                    {
                        "name": "routers",
                        "data": "192.168.1.254"
                    },
                    {
                        "name": "domain-name-servers",
                        "data": "8.8.8.8, 8.8.4.4"
                    }
                ]
            }
        ]
    }
}

用法

Kea 包含四个 systemd 单元文件

单元文件 手册页 描述
kea-dhcp4.service kea-dhcp4(8) DHCPv4 守护进程
kea-dhcp6.service kea-dhcp6(8) DHCPv6 守护进程
kea-dhcp-ddns.service kea-dhcp-ddns(8) DNS 更新守护进程
kea-ctrl-agent.service keactrl(8) 为管理 Kea 服务器公开 REST 接口

可以通过运行以下命令检查 DHCPv4 的配置文件是否存在错误

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

如果一切正常,则可以启用/启动 kea-dhcp4.service