跳转至内容

Kea

来自 ArchWiki

Kea DHCPInternet Systems Consortium (ISC) 当前的 动态主机配置协议 服务器。

注意 旧的 dhcpd停止支持

安装

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

可选依赖项包括

配置

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

IPv4 DHCP

要使用 IPv4 的 DHCP,必须修改配置文件 /etc/kea/kea-dhcp4.conf,并激活和启动服务 kea-dhcp4.service

提示 以下子网 保留 给私有网络,不会与 Internet 上的主机冲突
  • 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 拥有自己的 DNS 服务器,IP 地址为: 192.168.0.1
    • 网络 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: 有两部固定 IP 的特殊电话 192.168.0.10 && 192.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"
                    }
                ]
            }
        ]
    }
}
注意 此示例使用 Google 公共 DNS。请将其替换为您信任的 DNS 解析器。请参阅 域名解析#第三方 DNS 服务

用法

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