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。