我在本地网络上运行自己的缓存绑定服务器,并为本地域“local.lan”正确配置了区域。此绑定服务器恰好在 Ubuntu 14.04 Server vm 内的 ESXI 主机上运行。
我的网络已设置 DHCP,以将我的 DNS 服务器的地址传送给 DHCP 客户端,从而确保连接到我的网络的任何内容都首先到达我的 DNS 服务器。
该设置已运行近一年,并且似乎基本有效。
最近,Chrome 似乎偶尔会以某种方式绕过我的 DNS 服务器,并针对本地网络上的任何命名地址返回“DNS 查找失败”。例如,如果我输入“http://redmine.local.lan“进入 Chrome,它大多数时候都能正常工作,但偶尔会尝试查询一些对我的 local.lan 域一无所知的互联网 DNS 服务器。我可以同时从另一台装有 Chrome 的桌面发出相同的请求,它工作得很好。IE 和 nslookup 似乎都正常工作;只是 Chrome 有问题。
当我尝试导航到本地网络上的站点时,我查看了我的 DNS 日志。对于 DNS 查找失败的地址,Chrome 似乎发出了“google.com”而不是“redmine.local.lan”的 DNS 请求。
我见过的唯一有效的解决方法是让标签在 Chrome 中保持打开状态。最终它似乎意识到“嗯,也许我应该向正确的 DNS 服务器询问地址”,然后它就成功了。清除 Chrome 的内部 DNS 缓存和清除操作系统的 DNS 缓存似乎收效甚微。
对于这里可能发生的事情有什么想法吗?
答案1
进一步检查后发现,我的 ISP 的 DNS 服务器似乎偷偷充当了二级和三级名称解析器。虽然设置为仅广播我的DNS 服务器在满足 DHCP 请求时,我的路由器似乎有其他计划。我相信这可能是 Linksys E2000 的一个错误。
将桌面设置为始终使用我的 DNS 服务器而不是依赖 DHCP 似乎已经解决了该问题。