Kea
Kea DHCP 是当前 动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 的服务器,由 互联网系统协会 (Internet Systems Consortium, ISC) 开发。
安装
安装 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/24
到192.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 网络)
- 网络 1:
- DNS 服务器如下:
- 网络 1 在 IP 地址
192.168.0.1
上托管了自己的 DNS 服务器 - 网络 2 使用上游 Google DNS:
8.8.8.8
&8.8.4.4
- 网络 1 在 IP 地址
- 网关如下:
- 网络 1:
192.168.0.254/24
- 网络 2:
192.168.1.254/24
- 网络 1:
- DHCP 服务器的静态 IP 如下:
- 网络 1: 网络接口
eth0
为192.168.0.253
- 网络 2: 网络接口
eth0.100
为192.168.1.253
- 网络 1: 网络接口
- Kea 应提供的 IP 地址范围:
- 网络 1: 从
192.168.0.100/24
到192.168.0.199/24
- 网络 2: 从
192.168.1.2/24
到192.168.1.252/24
- 网络 1: 从
- 您定义了一些静态 IP 地址:
- 网络 1: 有两部特殊电话,静态租约分别为
192.168.0.10
和192.168.0.11
- 网络 1: 有两部特殊电话,静态租约分别为
- 您想要为 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
。