我正开始研究设置一个 PXE 服务器来覆盖初中校园,但从未这样做过,并且有一些与我们学区网络设置有关的问题,我不确定这些细节是否会改变我设置 PXE 的方式。
据我所知,需要在 DHCP 服务器上进行配置更改,以使客户端成功连接到 PXE 服务器并获取引导加载程序等。但是,我没有 DHCP 服务器的任何管理员权限,因为它由学区集中管理。他们还在该级别进行了一些更改以阻止某些流量(他们没有说明具体是什么,但我收到报告说他们阻止了一些 PXE 所需的端口,但不确定是否确实阻止了哪些端口)。
我正在探索的一个解决方法是将 dnsmasq 设置为 DHCP 代理,并使用 Windows Subsystem for Linux 处理 TFTP 和 PXE 请求,因为我不希望该学区给我一份 Windows Server 副本来设置和使用。
我的想法是,这将允许我使用我更熟悉的工具(Linux 命令行比 Windows 更熟悉)以及更好的文档和支持,而且不必向地区寻求帮助(因为他们允许但不正式支持 PXE 启动)。
我的问题:
- 使用 WSL 设置 dnsmasq 是否是解决我的限制的合理方法?
- 如果服务器要支持拥有数百个客户端的校园,我需要什么样的服务器硬件最低要求?
- 是否有任何我尚未找到的可能有帮助的资源?(我查看了 StackExchange 和这里,发现了一些关于该主题的内容,但都是我没有遇到的问题。)
- 由于我无法控制或访问 DHCP/DNS/等服务器,有没有更好的方法来设置 PXE 启动?
答案1
作为我的个人项目之一,我负责管理校园网络的一部分和大型大学的一组实验室电脑。
我们通过代理模式下的 Dnsmasq 通过 iPXE 对 PC 进行映像处理、更改其默认启动选项、检测无法启动的计算机并启动管理工具。实验室的 DHCP 是在缺少 PXE 条件语句的路由器上完成的,因此我们使用 Dnsmasq。
代理模式下的 Dnsmasq 将在配置中指定的网络上做出响应,响应不包含 IP 分配,但设置了所有必要的 PXE 选项。DHCP 客户端将此信息附加到从真实 DHCP 服务器收到的租约响应中。
我们在实验室集群中的虚拟机上运行 Dnsmasq,同时提供必要的(SMB、NFS)共享以方便映像启动和 TFTP 服务器。iSCSI 启动目标由该网络上的 SAN 端口提供服务。
Dnsmasq 本身与 iPXE 的 TFTP 并不占用资源,但使用 SMB、NFS、iSCSI 进行图像分发是. 因此,我们使用 10Gbe 上行链路。
我们仅使用成像作为初始部署步骤,然后通过 AWX 上的 Ansible 角色管理更新、软件分发和配置更改。
您确实应该与校园 IT 部门协调此事,因为我们的网络设置为检测到任何恶意 DHCP 服务器活动都会触发交换机上的端口关闭(DHCP 侦听),我们也对 STP BPDU(BPDU 防护)执行相同操作,以确保学生不会造成破坏并相互利用。至少他们应该知道您在某处使用 Dnsmasq,这样就不会触发不必要的警报。
答案2
你可以试试塞瓦
单个 exe 包含您需要的一切,它的代理 DHCP 模式不会干扰已经存在的 DHCP 基础设施、Legacy、UEFI、Windows、Linux 等。
EDIT1:读了一些 OP 评论后,我想补充一下
如果您根据代理 DHCP 服务设置 PXE 设置,则除了口头/书面授权外,您不需要 IT 部门提供太多信息。当 PXE 客户端启动时,它会在 DHCPDISCOVERY 数据包上发送其信息,然后客户端将获得 2 个答案,一个来自提供 IP 和相关 DHCP 选项的 DHCP 服务器,另一个来自仅提供 PXE 信息的代理 DHCP,如 TFTP IP 地址和 NBP(网络启动程序)的路径。客户端接受两个提议并完成两个 DHCP 事务,收集继续网络启动过程所需的信息。如果常规客户端(非 PXE)启动,将仅接收来自 DHCP 服务器的答案,而代理 DHCP 将保持沉默,以防止对相应冲突域造成不必要的中断(请记住 DHCP 提议是广播流量)。
微软很久以前就不鼓励使用 DHCP 选项 66/67,使用 DHCP 数据包的相应字段可以正确实现相同的功能。
TFTP 使用 UDP 端口 69 进行传输建立,但实际的数据传输是在约定的临时 UDP 端口上进行的,该端口必须在您的 PXE/TFTP 服务器防火墙中打开。
PXE 相对于 USB 的优势很多,其中最重要的优势包括规模、集中管理和远程启动。所有大型 PC 生产商在对 PC 进行映像时都会使用磁盘克隆和/或 PXE