特定的DNS有时会parsing为通配符,不正确

我有一个间歇性的问题,我不知道从哪里开始尝试排除故障。

在我们的开发环境中,我们在负载平衡器上有两个可见的IP地址,一个到前端,一个到后端服务器。 前端configuration为采用通配符DNS名称来支持通用“门户”。

dev.example.com A 10.1.1.1 *.dev.example.com CNAME dev.example.com 

后端服务器是同一空间内的所有特定名称:

 core.dev.example.com A 10.1.1.2 cms.dev.example.com CNAME core.dev.example.com search.dev.example.com CNAME core.dev.example.com 

这是问题。 定期尝试访问cms.dev.example.com的开发人员或程序将获得指向前端的结果,而不是后端负载平衡器:

 cms.dev.example.com is an alias to core.dev.example.com core.dev.example.com is an alias to dev.example.com (WRONG!) dev.example.com 10.1.1.1 

开发人员都在Mac OS X机器上,但我也发现在Ubuntu机器上也出现了问题,使用本地云主机DNSparsing器。

有时开发人员正在使用一个VPN,它将DNS指向自己的parsing器,有时他使用NAT路由器分配的DNSparsing器在本地networking上。

有时清除Mac OS X DNScaching,login到VPN,然后注销VPN,将使问题消失。

原始权威服务器在zerigo上,直接向其名称服务器挖掘似乎总是给出正确的答案。 这些logging发布的DNScaching时间为15分钟,但问题已经断断续续了大约一周。

任何疑难排解build议

嗯….当你将通配符CNAME指令replace为:

  *.dev.example.com. A 10.1.1.1 

不要将CNAME与通配符混合使用,特别是如果其中一个CNAMES可能与通配符名称匹配。

在这些条件下,通配符,CNAME和DNScaching的组合可能会给您带来不一致的结果。

我通过消除所有的CNAME并用Aloggingreplace它们来解决了我的间歇性解决问题。 不是很干,但没有更多不一致的查找。