根据维基百科和其他页面,你可以有:
代理DHCP
如果PXEredirect服务(代理DHCP)接收到扩展的DHCPDISCOVER,它将使用扩展的DHCPOFFER答复客户端的端口68 / UDP(DHCP客户端端口)。
扩展的DHCPOFFER主要包含:
- 如何调整MacOS上的NFS客户端来获得Linux的性能?
- 我如何configurationOpenSwan允许来自iPhone的纯IPsec(而不是L2TP)连接?
- ProFTPd / FTPS问题:无法接受TLS连接:收到违反协议的EOF
- 监视Linux内核空间处理
- Apache HTTPD进程累计cpu时间
- 一个PXE发现控制字段,用于推荐多播,广播或单播联系PXE引导服务器
- 每个可用PXE引导服务器types的IP地址列表
- 一个PXE引导菜单,每个条目代表一个PXE引导服务器types
- 一个PXE启动提示告诉用户按下某个键来查看启动菜单
- 如果超时,则启动第一个启动菜单项的超时
Proxy DHCP服务也可以与标准的DHCP服务在同一台主机上运行。 由于两个服务不能共享端口67 / UDP,代理DHCP运行在端口4011 / UDP上,并且期望来自PXE客户端的扩展DHCPDISCOVER数据包为DHCPREQUEST。 标准DHCP服务必须在其DHCPOFFER中发送PXE选项的特殊组合,以便PXE客户端知道在同一主机(端口4011 / UDP)上查找代理DHCP。
我想实现这样的服务器,发出这些扩展的响应。 我不介意为此设置另一个守护进程,但是如果我可以只configurationisc-dhcp-server来发送理想的响应。
(在你build议之前,我不能使用syslinux,这是作弊,我在EFI平台上这样做,因此有本地PXE支持)
dsnmasq可以做到这一点。 这是一个5class轮。 http://etherboot.org/wiki/proxydhcp?s%5B%5D=dhcp&s%5B%5D=proxy
所以对于我来说,不清楚为什么你需要自己的服务器。 DHCP和PXEBOOT是一个非常棘手的事情。 使用DHCP代理,您会添加一堆其他问题。 因为这些文档是模糊的,而且客户端的实现很糟糕,这意味着在线上进行大量的testing和字节检查。
这是关于远程启动configuration协议(基于DHCP,因此扩展DHCP nomanclature)。 不幸的是,这个草案在1999年去世了,大多数PXE客户都不太支持。 我从来没有见过一个OSS服务器(尽pipe一些专有的部署软件确实支持它到不同的级别)。 欲了解更多信息,可以查看RFC草案 (第3.3节专门讨论RBCP)。
ISC DHCP可以configuration为回答PXE引导所需的所有内容,而无需借助DHCP代理服务器设置。 您真正想要DHCP代理服务器的唯一原因是,如果您不希望或不能控制响应的DHCP服务器的configuration。
DHCP代理被明确地build立起来,使得即使在另一台机器上也有另一种服务,完全脱离了对DHCP服务器的任何控制或操纵。 通过PXE规范,客户端可以基本上监听两个响应,一个来自DHCP服务器,一个来自代理服务器,用于组装引导NBP(networking引导程序)所需的所有内容。
英特尔在http://download.intel.com/design/archives/wfm/downloads/pxespec.pdf上的具体说明在这方面非常详细,并且非常清楚地说明了这些序列。 详细信息请参阅第15页到第19页。 RFC包含了这个相同的信息,但对我来说还不太清楚。
我目前还没有意识到任何开源的DHCP代理服务实现,但老实说,这部分协议的代码非常简单。
你从维基百科引用的文本是旧的不准确的。 它混合了两个不同的概念:
我觉得你有兴趣2)然后,如果你想创build自己的基于PXE标准(不含pxelinux)的菜单只是得到PXE标准http://www.pix.net/software/pxeboot/archive/pxespec.pdf (第19页),并了解如何使用以下“PXE选项”来填充封装的特定于供应商的DHCP选项(43)
PXE_BOOT_SERVERS PXE_BOOT_MENU PXE_MENU_PROMPT PXE_BOOT_ITEM
不容易,不知何故受到DHCP数据包大小的限制,不是很灵活。