当我未在dhclient.conf中定义主机名时,我的DHCP服务器如何知道我的计算机的主机名?


12

我正在尝试解决与网络上的DHCP有关的一些时髦的DNS问题(我怀疑目前有多个DHCP服务器正在运行),而在试图弄清这一点时,我发现我刚在新服务器上发现了一些奇怪的情况设定。

有问题的服务器是运行Ubuntu 9.10 Server的Xen虚拟机。物理Xen服务器也在我们的网络上,当我第一次在Xen中启动VM(我从运行在我的机器上的本地Virtualbox VM导入它时,该VM在不同的网络上运行)。从我们的办公室网络租用DHCP,一切都很好。

我检查了dhclient.eth0.leases文件以查看配置后的内容,发现该机器所在的先前网络的旧DHCP租约仍然存在,以及该计算机当前连接到的办公网络的新DHCP租约。我马上注意到了两件事:

  1. 来自先前网络的旧DHCP租约信息没有options host-name一行,我认为这是VM的原始VirtualBox版本没有将此选项发送到DHCP服务器。还是这意味着旧的DHCP服务器不支持DHCP主机名选项?当时它正在使用VirualBox的内部DHCP服务器...

  2. 新的DHCP租约信息确实options host-name一行,其中包括服务器的正确当前主机名(“ fozzie”)。如果我理解正确,则意味着服务器将其主机名发送到了我们网络上的DHCP服务器。

我对这一切有很多不了解的地方。

首先,我dhclient.conf在任何时候都没有更改服务器;它使用默认配置。实际上,它逐行包含以下行:

send host-name "<hostname>"

因此,我的第一个问题是,如果未首先配置发送服务器的真实主机名,它将如何知道发送服务器的真实主机名?

其次option host-name如果我没有触摸任何配置文件,为什么第一个DHCP租约(对于旧网络)不包括,而第二个DHCP租约(在新网络上)却包括了它?

我所做的就是将原始VirtualBox计算机导出为OVF,然后将其导入XenServer,因此,即使它甚至没有使用实际的主机名配置,它也如何通过DHCP神奇地配置我的主机名dhclient.conf呢?

第三:当我运行时hostname,服务器返回fozzie.our.domain,但dhclient.eth0.leases说主机名选项设置为fozzie(无域)。它怎么知道剥夺域名?

Answers:


11

好吧,在长时间浏览互联网并尝试通读man页面之后,我大体上了解了发生了什么:

[H]很明显,如果没有设置要首先配置的真实主机名,它是否知道发送服务器的真实主机名?

显然,,send host-name "<hostname>"并且更具体地说,<hostname>在Ubuntu上具有特殊的意义。它告诉dhclient您将计算机的当前主机名发送到DHCP服务器。请注意,这是区分大小写的(即,如果键入<HOSTNAME>,dhclient会将原义文本发送<HOSTNAME>到DHCP服务器)。如此此处所报道,这在Ubuntu Feisty及更高版本上有效,是(具有讽刺意味的)修复dhclient默认情况下不发送计算机主机名的问题的补丁程序的一部分。

[W]如果我没有触摸任何配置文件,为什么第一个DHCP租约(对于旧网络)不包括选项主机名,但是第二个DHCP租约(在新网络上)却包括选项主机名?

这似乎是因为并非所有DHCP服务器都会将主机名回显给客户端。昨天,我们仍然使用基于Linux的ClarkConnect路由器作为DHCP服务器,它将主机名回显给每个客户端。今天,我们在该服务器上禁用了D​​HCP,并切换到在主域控制器上使用内置的DHCP服务器。我们从PDC租借的DHCP都不包含option host-name任何租约,但似乎没有任何影响。机器在DNS中得到更新,并且它们都可以通过主机名相互查找。

当我运行时hostname,服务器返回fozzie.our.domain,但是 dhclient.eth0.leases说hostname选项设置为fozzie(无域)。它怎么知道剥夺域名?

这是我没有完全理解DHCP的复杂性。我们的DHCP服务器已设置为使用我们的域配置所有客户端。我猜想DHCP服务器足够聪明,可以从客户端发送的主机名中删除域名部分。

任何人都可以对这个答案进行更正或澄清吗?看起来还是有点“手摇”,所以我不会原样接受它。

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.