3.8. 在 Kea 中分类客户端


Kea 客户端类提供根据特定条件对客户端进行分组的机制,允许对网络配置进行精细的控制。您可以使用此功能应用特殊的处理规则,或者为客户端分配不同的 DHCP 选项。

您可以创建一个客户端类,它将 IP (VoIP)设备的 Voice 分配到特定的 IP 池,以确保 VoIP 电话获得与网络上的其它设备不同的 IP 地址。例如,在 IPv4 网络中,您可以使用 子字符串 表达式来测试其介质访问控制(MAC)地址的前 3 octets。在 MAC 地址不是可靠的指示符的 IPv6 网络中,您可以测试 DHCPv6 供应商类选项的子字符串。

先决条件

  • kea-dhcp4kea-dhcp6 服务已配置并在运行。
  • 已以 root 用户身份登录。

步骤

  1. 如果要配置 IPv4 网络:

    1. 编辑 /etc/kea/kea-dhcp4.conf 文件,并进行以下更改:

      1. 将以下客户端类添加到 Dhcp4 参数中:

        {
          "Dhcp4": {
            ...
            "client-classes": [
              {
                  "name": "VoIP-Phones",
                  "test": "substring(pkt4.mac, 0, 3) == 0x525400"
              },
              {
                  "name": "Others",
                  "test": "not member('VoIP-Phones')"
              }
            ],
            ...
        Copy to Clipboard Toggle word wrap

        在本例中,以 52:54:00 开头的 MAC 地址的设备与 VoIP-Phones 客户端类匹配。与规则不匹配的设备被分配给 Others 客户端 类。

      2. 定义分配客户端类:

        {
          "Dhcp4": {
            "subnet4": [
              {
                "subnet": "192.0.2.0/24",
        	"pools": [
                  {
                    "pool": "192.0.2.20  - 192.0.2.100",
                    "client-class": "Others"
                  },
                  {
                    "pool": "192.0.2.150 - 192.0.2.200",
                    "client-class": "VoIP-Phones"
                  }
                ],
                ...
        Copy to Clipboard Toggle word wrap

        根据主机匹配的客户端类,Kea 从对应的池中分配 IP。

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

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

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

    3. 重启 kea-dhcp4 服务:

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

    1. 编辑 /etc/kea/kea-dhcp6.conf 文件,并进行以下更改:

      1. 将以下客户端类添加到 Dhcp6 参数中:

        {
          "Dhcp6": {
            ...
            "client-classes": [
              {
                  "name": "VoIP-Phones",
                  "test": "option[16].exists and (substring(option[16].hex, 0, 8) == '00000009')",
              },
              {
                  "name": "Others",
                  "test": "not member('VoIP-Phones')"
              }
            ],
            ...
        Copy to Clipboard Toggle word wrap

        在本例中,发送 DHCPv6 供应商类选项(选项 16)的设备,十六进制值以 00000009 开头,与 VoIP-Phones 客户端类匹配。与规则不匹配的设备被分配给 Others 客户端 类。

      2. 定义分配客户端类:

        {
          "Dhcp6": {
            "subnet6": [
              {
                "subnet": "2001:db8:0:1::/64",
        	"pools": [
                  {
                    "pool": "2001:db8:0:1::1000 - 2001:db8:0:1::2000",
                    "client-class": "Others"
                  },
                  {
                    "pool": "2001:db8:0:1::4000 - 2001:db8:0:1::5000",
                    "client-class": "VoIP-Phones"
                  }
                ],
                ...
        Copy to Clipboard Toggle word wrap

        根据主机匹配的客户端类,Kea 从对应的池中分配 IP。

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

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

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

    3. 重启 kea-dhcp6 服务:

      # systemctl restart kea-dhcp6
      Copy to Clipboard Toggle word wrap

验证

  • 连接与客户端类中规则匹配的客户端,并验证 Kea 从关联的池中分配了一个 IP。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat