跳转至

使用 Microsoft DHCP 服务器

Microsoft DHCP 服务器是 Microsoft Windows 上的默认 DHCP 服务器。它可以配置为支持 iPXE。它不太容易用于支持一些更高级的 iPXE 选项;如果你有选择,你可能会发现使用 ISC dhcpd 更容易。

Microsoft DHCP 服务器使用 DHCP MMC 插件进行配置。转到 开始 -> 管理工具 -> DHCP

The Microsoft DHCP server

右键单击 服务器选项 并选择 配置选项。你可以使用 067 启动文件名 选项指示 iPXE 启动。例如,要指示 iPXE 从 http://boot.ipxe.org/demo/boot.php 启动演示镜像,你可以向下滚动到选项 067 启动文件名 并将其设置为 http://boot.ipxe.org/demo/boot.php

Setting the boot filename

要从 SAN 启动,你必须使用 017 根路径 选项而不是 067 启动文件名 选项:

Setting the root-path

PXE 链式加载

要使用 PXE 链式加载,你需要设置 Microsoft DHCP 服务器,使其向传统 PXE 客户端分发 undionly.kpxe,然后只向 iPXE 客户端分发"真正的"启动配置。你可以通过告诉 Microsoft DHCP 服务器根据 DHCP 用户类使用不同的配置来做到这一点。

首先,为 iPXE 定义一个用户类。右键单击你的 DHCP 服务器并选择 定义用户类

Defining a DHCP User Class

单击 添加 以添加新的用户类。把 显示名称 设置为 iPXE描述 设置为 iPXE clientsID 设置为 iPXE

Defining the iPXE DHCP User Class

右键单击 服务器选项 并选择 配置选项。向下滚动到选项 067 启动文件名 并将其设置为 undionly.kpxe

Setting the chainloading boot filename

右键单击 策略 并选择 新建策略。创建一个只有单一条件的策略,即 用户类 等于 iPXE

Setting the policy condition

配置策略的设置 页面中,向下滚动到选项 067 启动文件名 并将其设置为 http://my.web.server/real_boot_script.php

Setting the policy filename

如果一切正常,你应该会看到一个策略:当 用户类 等于 iPXE 时,它会把 启动文件名 设置为 http://my.web.server/real_boot_script.php

Completed iPXE policy

这将确保 iPXE 镜像(undionly.kpxe)只在 DHCP 请求来自传统 PXE 客户端时分发。一旦 iPXE 被加载,DHCP 服务器将引导它从 http://my.web.server/real_boot_script.php 启动。(你应该把 http://my.web.server/real_boot_script.php 替换为你希望 iPXE 启动的任何内容。)

较旧的 Windows 版本

如果你使用的是 Windows Server 2008,则无法按上述方式创建策略。改为右键单击 服务器选项 并选择 配置选项。在 高级 选项卡上,从 用户类 下拉列表中选择 iPXE。向下滚动到选项 067 启动文件名 并将其设置为 http://my.web.server/real_boot_script.php

Setting the boot filename for iPXE clients

如果一切正常,你应该会在 DHCP 配置中看到 067 启动文件名 的两个设置:一个包含 undionly.kpxe,另一个包含 http://my.web.server/real_boot_script.php

A working chainloading DHCP configuration

(你应该把 http://my.web.server/real_boot_script.php 替换为你希望 iPXE 启动的任何内容。)