多个PXE服务器相同的子网

我一直在为此奋斗一段时间。 我有几台从networking启动的testing机器,它们从DHCP服务器接收启动数据,这告诉他们启动服务器是谁启动的文件在哪里等。但是,我需要添加第二台PXE服务器在同一个子网(创build另一个Vlan现在不是一个选项)。

我读了一些地方,我可能能够发送某些参数到某些机器基于他们的MAC地址(这种方式select什么样的电脑启动从什么服务器),但我不知道如何做到这一点,任何人都知道如何? 这将是我的解决scheme,但我找不到答案。

我的DHCP是一个Windows Server 2003

我有两台服务器运行Linux服务器的自定义风格作为TFTP服务器。 有些机器使用数据从服务器1启动,其他机器必须能够从服务器2启动。

谢谢

编辑:我已经select了答案,但如果任何人关心,我没有使用链加载build议,而是写了一个gPXE脚本,并刻录ISO映像在CD中,我从它启动,脚本执行和PC是redirect到脚本中陈述的服务器,这是我使用的脚本。

#!gpxe dhcp net0 set filename pxelinux.0 set next-server 10.225.83.125 #Server your pointing to set 210:string http://10.225.83.125/fogimg/ #if http the exact http address imgfetch pxelinux.0 #name of the img file to fetch imgload pxelinux.0 #name of the img file to load boot pxelinux.0 #name of the img file to boot from 

这是可能的,如果你使用gPXE 。 您可以将所有主机configuration为使用gPXE进行引导,然后使用用PHP编写的服务器脚本或其他类似的服务器来提供给定MAC地址参数的相应映像:

 chain http://${next-server}/boot.php?mac=${net0/mac} 

就是这里给出的例子。

您不必将gPXE烧入您的网卡(虽然这当然是一个有效的select):链接加载很好。

最后,在Win2k3 DHCP上描述你的gPXE客户端的configuration页面在这里 。

我们在我们的Linux DHCP服务器上使用ISC dhcpd3,而不是在Server 2003上。但是我们在这里有两种不同的networking启动环境。 用于Linux安装的PXELinux和用于Windows安装的Microsoft Deployment Toolkit 2010。

所以,例如,因为我们从DHCP服务器的TFTP,我们的Linux客户端有类似的条目

 host linux-host {hardware ethernet 00:01:02:03:04:05; fixed-address ABCD; filename "pxelinux.0";} 

和Windows客户端有类似的条目

 host windows-host {hardware ethernet 00:06:07:08:09:10; fixed-address ABCE; use-host-decl-names on; next-server ABCF; option tftp-server-name "ABCF"; option bootfile-name "boot\\x86\\wdsnbp.com";} 

这是(我认为)Chopper3正在描述的设置。 就个人而言,我永远不会回到Windows DHCP服务器。 我们有一个Python脚本,可以在几秒钟内重新生成我们的DHCPconfiguration,所以我们可以根据需要在引导types之间切换。

您在此之后是能够根据客户端MAC设置BOOTP / DHCP选项66和67。 尽pipe您可以使用默认的Windows DHCP服务轻松地在全球范围内设置这些选项,但即使使用预留,也无法select这种select。

我也不知道在其他DHCP服务器中的这种能力,所以另一种可能性是在现有的DHCP服务器上设置MAC-to-IP保留(所以你知道你的机器上有哪些IP)并使用选项66和67来分发相同的引导主机和文件到每台机器上,但是在发送这些引导文件的计算机上,它会根据源IP提交不同的文件 – 这是否合理?