跳转至

DHCP 用户类设置

名称

  user-class

详细信息

类型 字符串
DHCP 选项编号 77
ISC dhcpd 语法 option user-class

示例

指定自定义 DHCP 用户类

  iPXE> set user-class thinclient

在 ISC dhcpd 中检测 DHCP 用户类

  # in /etc/dhcpd.conf
  if exists user-class and option user-class = "thinclient" {
      filename "thinclient.ipxe";
  }

避免链式加载时的无限循环

  # in /etc/dhcpd.conf
  if exists user-class and option user-class = "iPXE" {
      filename "http://my.web.server/real_boot_script.php";
  } else {
      filename "undionly.kpxe";
  }

描述

指定 iPXE 在 DHCP 请求中发送的用户类。如果没有明确指定用户类,iPXE 将发送用户类 "iPXE"。

DHCP 用户类可用于向 DHCP 服务器标识相关客户端的分组。

另请参阅

备注

从现有的 PXE ROM 链式加载 iPXE 时,DHCP 用户类可用于避免无限循环的问题。

RFC 3004 把 DHCP 用户类定义为一组长度-值元组,但 iPXE 把它当作字符串处理。[^1] 你可以选择使用 set 命令手动构造一个符合 RFC 3004 的值。例如:

  # Length 4, value 'i' (0x69), 'P' (0x50), 'X' (0x48), 'E' (0x45)
  set user-class:hex 04:69:50:48:45

[^1]: 这是 iPXE 和参考 DHCP 服务器实现(ISC dhcpd)中一个由来已久的 bug。大量文档建议通过检查选项 77 的值是否为 "iPXE" 来识别 iPXE 客户端,并使用 "set user-class \<text>" 来指定自定义用户类。为了避免破坏现有配置,iPXE 将继续在 DHCPv4 中以纯字符串形式提供选项 77。