当非 Windows、非域成员尝试解析计算机的主机名而不是 FQDN 时,我试图理清 Windows 域环境中 DNS 的预期。
Windows 客户端(我同意这是一个很好的理由)将通过 DHCP 接收他们的域名,并在解析主机名时将其用作 DNS 后缀,这样如果我执行 nslookup server-1,它会请求 server-1.example 的记录。 com。如果我在 Mac 上尝试相同的操作,它只会查找 server-1 并失败。从 DHCP 收到的域名在 /etc/resolv.conf 中为domain example.com
,但是因为它没有被列为search example.com
查找失败而没有附加域。后者也发生在我的基于 linux 的手机上。
我并不真正关心为什么,因为我确信两个平台都有其原因,我想弄清楚的是如何在不修改客户的情况下纠正这种情况。 IANA表示 DHCP/BOOTP 选项 119 是 DNS 域搜索列表的选项,但似乎大多数平台不支持开箱即用的选项 119。Windows 似乎不再支持,尽管这不是一个大问题,而且 *nix 平台仅在使用 ISC DHCP4 或更高版本时才支持它。不确定 Mac,但我在这里和其他地方读到它也不支持选项 119。
有任何想法吗?
阅读本文后,我查看了我刚刚在 Virtualbox 上完成的 Ubuntu 8.10 安装。resolve.conf 包含:
结果,它可以很好地处理查找,我可以使用主机名或 FQDN 访问任何机器。我的 MacBook 也可以很好地处理查找,无论是在工作中还是在家里,但我现在无法检查它的 resolve.conf(屏幕坏了)。工作网络 (Windows DHCP) 和我的家庭网络 (Linux DHCP) 都没有选项 119。事实上,两者都仅将域名作为选项 15 传递。
我让它工作的唯一问题是,当我的家庭网络使用一个单词域名时,Linux 和 Mac 不喜欢它。在其末尾添加“.local”是我必须做的唯一更改。