那么,如果我已经有了 DHCP 服务器和 DNS 服务器,那么如何在没有这些组件的情况下构建它呢? DHCP 和 DNS 会与我已有的冲突吗?
答案1
您需要:
- 设置 TFTP 服务器以提供初始网络启动文件(对于大多数情况)。对于 Linux,这些文件通常是 PXE 引导加载程序文件(通常是PXELinux或者PXE)、它的配置文件、内核文件和 initramfs 文件。
- 设置 HTTP 或 SMB 服务器以提供网络引导操作系统所需的其余文件(详细信息取决于您要 PXE 引导的操作系统)
vendor-class-identifier
将现有 DHCP 服务器配置为在收到包含 DHCP 选项 #60( ISC DHCPD 中的选项)且选项值的前 9 个字符设置为 的请求时提供必要的 PXE 引导选项PXEClient
。- 在大多数情况下,必要的选项是 TFTP 服务器的 IP 地址,表示为经典 bootp 样式
siaddr
(next-server
在 ISC DHCPD 中)或 DHCP 选项 #66(option tftp-server-name
在 ISC DHCPD 中),以及应该是的文件的 TFTP 路径名由 PXE 固件加载,再次以经典 bootp 样式(filename
在 ISC DHCPD 中)或 DHCP 选项 #67(option bootfile-name
在 ISC DHCPD 中)表示。 - 如果请求的 DHCP 选项 #93 的值为 0(表示具有经典 BIOS 样式启动的 x86 系统),您可能需要提供一组 PXE 启动选项;如果值为 7(表示具有经典 BIOS 样式启动的 64 位 x86 系统),您可能需要提供另一组 PXE 启动选项。 UEFI 风格的启动)。看RFC 4578 勘误表和IANA DHCPv6 处理器架构类型列表:此处的 IPv4 PXE 启动使用相同的值。
- 对于 UEFI 式客户端,请注意 UEFI 固件可能需要 DHCP 选项 #13 中报告的启动文件的大小,以便固件可以为其将通过网络加载的启动文件分配正确的内存量。如果您没有正确指定此项,UEFI PXE 启动的固件阶段可能会以非常无信息的方式失败。
- 如果您选择使用PXE作为您的 PXE 引导加载程序,您还需要检测 DHCP 选项 #77(
user-class
ISC DHCPD 中的选项)中的值“iPXE”,并提供 iPXE 配置 URL 而不是引导加载程序文件名,因为这表明 iPXE 已成功初始化并正在请求一个配置文件。 iPXE 可以使用 HTTP 而不是 TFTP 来实现更快的启动。
- 在大多数情况下,必要的选项是 TFTP 服务器的 IP 地址,表示为经典 bootp 样式
- DNS 服务器并不是绝对必要的,但它可以很方便。
所有这些服务器应用程序都可以驻留在单个(物理或虚拟)服务器主机中;它们不必是单独的系统。