当非 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 的手机上。
我不太关心为什么,因为我确信两个平台都有其原因,我试图弄清楚的是如何在不修改客户端的情况下纠正这种情况。 互联网号码分配机构DHCP/BOOTP 选项 119 是 DNS 域搜索列表的选项,但似乎大多数平台都不支持开箱即用的选项 119。Windows 似乎不再支持了,不过这不是什么大问题,而 *nix 平台仅在使用 ISC DHCP4 或更高版本时才支持它。不确定 Mac 是否支持,但我在这里和其他地方读到它也不支持选项 119。
有任何想法吗?
答案1
读完这篇文章后,我看了一下刚刚在 Virtualbox 上完成的 Ubuntu 8.10 安装。resolve.conf 包含:
# Generated by NetworkManager
domain ourdomain.local
search ourdomain.local
nameserver 192.168.0.6
nameserver 192.168.0.7
因此,它可以很好地处理查找,我可以使用主机名或 FQDN 访问任何机器。我的 MacBook 也可以很好地处理查找,无论是在工作还是在家,但我现在无法检查它的 resolve.conf(屏幕坏了)。工作网络(Windows DHCP)和我的家庭网络(Linux DHCP)都没有选项 119。事实上,两者都只将域名作为选项 15 传递。
我遇到的唯一问题是,当我的家庭网络使用单词域名时,Linux 和 Mac 不喜欢它。我唯一需要做的改变就是在它的末尾添加“.local”。