3.5. 设置 Kea DHCP 服务器


Kea 是一个具有模块化设计的现代、高性能的 DHCP 服务器。使用 DHCP 服务器为客户端设备自动分配 IP 地址和其他网络设置。这消除了手动配置容易出错的任务。

先决条件

  • 已安装 kea 软件包。
  • 已以 root 用户身份登录。

步骤

  1. 如果要配置 IPv4 网络:

    1. 编辑 /etc/kea/kea-dhcp4.conf 文件,并使用以下配置:

      {
        "Dhcp4": {
          // Global settings that apply to all subnets unless overridden.
          "valid-lifetime": 86400,
          "option-data": [
            {
              "name": "domain-name",
      	"data": "example.com"
            },
            {
              "name": "domain-name-servers",
      	"data": "192.0.2.53"
            }
          ],
      
          // The network interfaces on which Kea will listen for DHCP traffic.
          "interfaces-config": {
            "interfaces": [ "enp1s0" ]
          },
      
          "subnet4": [
            // A definition of a subnet that is directly connected to the server
            {
              "id": 1,
              "subnet": "192.0.2.0/24",
              "pools": [
                { "pool": "192.0.2.20  - 192.0.2.100" },
                { "pool": "192.0.2.150 - 192.0.2.200" }
              ],
              "option-data": [
                { "name": "routers", "data": "192.0.2.1" }
              ],
            },
      
            // A definition of a remote subnet served through a DHCP relay
            {
              "id": 2,
              "subnet": "198.51.100.0/24",
              "pools": [
                { "pool": "198.51.100.20 - 198.51.100.100" }
              ],
      	// Allowed DHCP relay agents
      	"relay": {
                "ip-addresses": [ "198.51.100.5" ]
              },
              "option-data": [
                { "name": "routers", "data": "198.51.100.1" },
      	  { "name": "domain-name-servers", "data": "198.51.100.53" }
              ]
            }
          ]
        }
      }
      Copy to Clipboard Toggle word wrap

      这个示例将 Kea 配置为提供两个子网:一个直接连接到服务器,一个远程配置为使用 DHCP 转发代理。

      示例中指定的设置包括:

      interfaces
      定义 Kea 侦听 DHCP 请求的网络接口。如果子网没有直接连接到服务器,请确保列出可通过其访问子网的接口。
      id
      为子网定义唯一的整数。如果您定义多个子网,则需要此项。
      子网
      以无类别域间路由(CIDR)格式定义子网。
      定义 Kea 可以为客户端分配地址的 IP 地址范围。
      option-data
      定义发送到客户端的 DHCP 选项,如默认网关和 DNS 服务器。按子网选项设置覆盖全局设置。
      relay
      定义 DHCP 转发代理的 IP 地址。虽然此设置对于远程子网是可选的,但它提高了将转发请求限制为可信代理的安全性。不要将此参数用于直接连接的子网。
    2. 验证配置文件的语法:

      # kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
      Copy to Clipboard Toggle word wrap

      如果命令返回 Syntax 检查失败,请修复报告中显示的错误。

    3. 更新 firewalld 规则,以允许传入的 DHCPv4 流量:

      # firewall-cmd --permanent --add-service=dhcp
      # firewall-cmd --reload
      Copy to Clipboard Toggle word wrap
    4. 启用并启动服务:

      # systemctl enable --now kea-dhcp4
      Copy to Clipboard Toggle word wrap
  2. 如果要配置 IPv6 网络:

    1. 编辑 /etc/kea/kea-dhcp6.conf 文件,并使用以下配置:

      {
        "Dhcp6": {
          // Global settings that apply to all subnets unless overridden.
          "valid-lifetime": 86400,
          "option-data": [
            {
              "name": "domain-name",
      	"data": "example.com"
            },
            {
              "name": "dns-servers",
      	"data": "2001:db8:0:1::53"
            }
          ],
      
          // The network interfaces on which Kea will listen for DHCP traffic.
          "interfaces-config": {
            "interfaces": [ "enp1s0" ]
          },
      
          "subnet6": [
            // A definition of a subnet that is directly connected to the server
            {
              "id": 1,
              "subnet": "2001:db8:0:1::/64",
              "pools": [
                { "pool": "2001:db8:0:1::1000 - 2001:db8:0:1::2000" },
                { "pool": "2001:db8:0:1::4000 - 2001:db8:0:1::5000" }
              ],
            },
      
            // A definition of a remote subnet served through a DHCP relay
            {
              "id": 2,
              "subnet": "2001:db8:0:2::/64",
              "pools": [
                { "pool": "2001:db8:0:2::1000 - 2001:db8:0:2::2000" }
              ],
      	// Allowed DHCP relay agents
      	"relay": {
                "ip-addresses": [ "2001:db8:0:2::5" ]
              },
              "option-data": [
      	  { "name": "dns-servers", "data": "2001:db8:0:1::53" }
              ]
            }
          ]
        }
      }
      Copy to Clipboard Toggle word wrap

      这个示例将 Kea 配置为提供两个子网:一个直接连接到服务器,一个远程配置为使用 DHCP 转发代理。

    2. 验证配置文件的语法:

      # kea-dhcp6 -t /etc/kea/kea-dhcp6.conf
      Copy to Clipboard Toggle word wrap

      如果命令返回 Syntax 检查失败,请修复报告中显示的错误。

    3. 更新 firewalld 规则,以允许传入的 DHCPv6 流量:

      # firewall-cmd --permanent --add-service=dhcpv6
      # firewall-cmd --reload
      Copy to Clipboard Toggle word wrap
    4. 启用并启动服务:

      # systemctl enable --now kea-dhcp6
      Copy to Clipboard Toggle word wrap

验证

  1. 在客户端上配置使用 DHCP 的网络连接。请参阅使用 nmcli配置以太网连接
  2. 将客户端连接到网络。
  3. 检查客户端是否从 DHCP 服务器收到 IP 地址:

    # ip address show <interface>
    2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
        link/ether 52:54:00:17:b8:b6 brd ff:ff:ff:ff:ff:ff
        inet 192.0.2.20/24 brd 192.0.2.255 scope global noprefixroute enp1s0
           valid_lft forever preferred_lft forever
        inet6 2001:db8:1::1000/64 scope global noprefixroute
           valid_lft forever preferred_lft forever
    Copy to Clipboard Toggle word wrap

故障排除

  • 检查 Kea 正在侦听的 IPv4 和 IPv6 地址:

    # ss -lunp | grep -E ':(67|547)'
    Copy to Clipboard Toggle word wrap

    如果 Kea 没有侦听您配置的所有接口,请检查 Kea 配置文件中的 interfaces-config 设置。

后续步骤

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat