DHCP客户端指定的DNS服务器的IP地址? 这是否违反规范?

我有一些embedded式networking设备,允许我指定是否使用DHCP。 不幸的是,我们有一些客户端在其networking中的DNS服务器不足,导致了这些设备的路由问题。

我的解决scheme是覆盖DHCP提供的DNS服务器,并在DNS(OpenDNS或Google公共DNS)之外指定第三方。 不幸的是,当设备使用DHCP提供的dynamicIP地址时,它会忽略指定的客户端DNS地址。 我可以在没有问题的Windows盒子上做到这一点。

是忽略客户指定的DNS为DHCP提供dynamicIP地址对规范? 我正在尝试确定这些自定义设备是否因为忽略指定的DNS而导致固件制造商出现故障。

不,没有规定这种行为的标准。 DHCP标准指定了一种给客户端提供DNS服务器列表的机制,而不是客户端应该用这个列表做什么。 DNS标准指定了与服务器进行通信的协议(用于查找授权服务器),但不用于select默认服务器。 我不认为POSIX指定如何select默认服务器(您不仅可以从DHCP获得本地DNSconfiguration和服务器,也可以从不同的DHCP连接获得不同的DNS服务器列表,包括VPN连接以及PPP等),即使是POSIX,也不要求所有设备都支持POSIX。

所以这听起来像你需要联系制造商的function要求,而不是一个错误报告。

你有控制DHCP服务器? 是否有可能通过某种types的MAC前缀来识别这些单元,并为它们提供特定的DNS设置? 我知道ISC-DHCPD有一个function,您可以识别单位并以不同的方式处理它们(即IP范围,DHCP选项等)。

dhcpd.conf文件中的一个简单示例可能如下所示:

class "embedded" { match if substring(hardware,1,3) = XX:XX:XX; } pool { allow members of "embedded"; ... other options here ... } 

这将允许您指定这些单位与不同的DNS服务器,而不必得到一个固件/软件的修复。 我不知道微软的DHCP服务器是否具有类似的function(如果你使用的是这种function),或者你甚至可以以这种方式访问​​DHCP服务器,但是这样的东西可能是一种select。