DHCP服务器在发送DHCPOFFER之前说“主机未知”


1

我正在尝试PXE引导计算机。在系统日志中,我可以看到:

dhcpd[28030]: DHCPDISCOVER from 98:90:96:bc:fc:e3 via 10.65.240.2
dhcpd[28030]: none: host unknown.
dhcpd[28030]: DHCPOFFER on 10.65.240.111 to 98:90:96:bc:fc:e3 via 10.65.240.2

我无法一生解决这个问题。该子网有效且存在,该计算机具有租约,并且该计算机先前已构建良好!

某些谷歌搜索表明“未知主机”与DNS有关:服务器具有此框所在的正向和反向区域的区域文件。

Answers:


1

DHCP服务器必须能够将DHCPOFFER数据包发送到没有IP的客户端,然后它们使用广播目标MAC地址(FF:FF:FF:FF:FF:FF:FF)和广播目标IP地址广播DHCPOFFER。 255.255.255.255)。不幸的是,Linux坚持将255.255.255.255目标IP更改为本地子网广播地址。这会导致违反DHCP协议。

虽然许多DHCP客户端不会注意到此问题,但有些(例如,所有Microsoft DHCP客户端)会注意到。出现此问题的客户端将似乎看不到来自服务器的DHCPOFFER消息。

前面引用的页面所做的是通过多种创建路由或添加255.255.255.255 IP的主机名的方法,“诱骗” Linux网络引擎使用255.255.255.255 IP作为DHCPOFFER的目标IP,等等

编辑:DHCP客户端位于网络的哪个位置都没有关系;问题是,如果目标IP不是255.255.255.255,则某些挑剔的DHCP客户端将忽略DHCP提供。请考虑如果您通过PXE引导PC,则PXE固件是“第一个” DHCP客户端,接下来,如果您加载Linux内核/ initrd,则启动Linux内核会立即发出“第二个” DHCP请求。在这种情况下,在单个PXE引导会话上,您将获得2个连续的完全不同的DHCP客户端,并且可能会发生,尽管第一个客户端可以容忍所描述的DHCP协议违规,而第二个客户端可能无法容忍。如果仅引导“原谅” DHCP客户端,则同一台PXE引导PC可能已经运行良好。

为了“查看”正在发生的事情,我建议获取一些Wireshark流量捕获,并在数据包级别查看问题。


啊哈!我认为这是有道理的...之所以出现问题,是因为在这种情况下,客户端与接收请求的接口位于不同的子网中,这意味着DHCPOFFER在(例如)10.65.100.0/24上进行,但在10.65上需要.240.0 / 24?
shearn89'7

查看我的答案编辑
Pat Pat

1

因此,我找到了该页面(http://www.tldp.org/HOWTO/DHCP/x369.html),其中提到了向/etc/hosts

我补充说:

255.255.255.255 none

到最后,这似乎已经解决了问题。不知道为什么我以前不需要这个,因为它看起来很基础。有人知道为什么会这样吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.