我正在尝试解决与我们网络上的 DHCP 相关的一些时髦的 DNS 问题(我怀疑我们目前正在运行不止一个 DHCP 服务器),并且在试图解决这个问题时,我注意到我刚刚使用的新服务器有些奇怪设置。
有问题的服务器是运行 Ubuntu 9.10 服务器的 Xen 虚拟机。物理 Xen 服务器也在我们的网络上,当我第一次在 Xen 中启动 VM 时(我从运行在我的机器上的本地 Virtualbox VM 导入它,它在不同的网络上运行),它得到了一个从我们的办公网络租用 DHCP,一切都很好。
我检查了dhclient.eth0.leases
文件以查看配置的内容,发现机器所在的先前网络的旧 DHCP 租约仍然存在,以及它当前连接的办公网络的新 DHCP 租约。我立刻注意到了两件事:
来自先前网络的旧 DHCP 租用信息没有
options host-name
一行,我认为这意味着 VM 的原始 VirtualBox 版本没有将此选项发送到 DHCP 服务器。或者这是否意味着旧的 DHCP 服务器不支持 DHCP 主机名选项?当时它正在使用 VirualBox 的内部 DHCP 服务器......新的 DHCP 租用信息确实有
options host-name
一行,其中包括服务器的正确当前主机名(“fozzie”)。如果我理解正确,这意味着服务器将其主机名发送到我们网络上的 DHCP 服务器。
关于这一切,我有很多不明白的地方。
首先,我在任何时候都没有更改dhclient.conf
服务器;它使用默认配置。实际上,它逐字包含以下行:
send host-name "<hostname>"
所以我的第一个问题是,如果配置没有设置为首先发送它,它怎么知道发送服务器的真实主机名?
第二,为什么第一个 DHCP 租约(旧网络)不包含option host-name
,但第二个 DHCP 租约(新网络)确实包含它,如果我没有触及任何配置文件?
我所做的只是将原始的 VirtualBox 机器导出为 OVF,然后将其导入 XenServer,那么如果它甚至没有配置实际的主机名,它是如何通过 DHCP 神奇地配置我的主机名的dhclient.conf
呢?
第三:当我运行hostname
时,服务器返回fozzie.our.domain
,但dhclient.eth0.leases
说主机名选项设置为fozzie
(无域)。它是如何知道剥离域的?