DNSparsing通配符时广泛的误解

[编辑补充:这个问题已经自行消失了。 我相信Cloudflare的名字parsing可能是责备。 见下面我自己的答案]

这是我的区域文件的一个片段

*.example.com. 300 IN CNAME proxy.herokuapp.com. foo.example.com. 300 IN A 111.111.111.111 

如果我dig @8.8.8.8 foo.example.com我得到我期望的答案:

 ;; ANSWER SECTION: foo.example.com. 30 IN A 111.111.111.111 

我试过的所有其他公共DNS服务器也是如此。

但是,当我尝试使用Pingdomfoo.example.com上的URL设置检查时,它会将stream量发送到由*.example.com RR引用的我的Heroku应用程序。

New RelicErrplaneHeroku应用本身产生的stream量上设置的检查也是如此。

所以一方面,所有的公共DNS服务器都以一种方式解释区域文件。 然而,四家服务提供商都以不同的方式来解释,这与RFC 4592提出的标准不同。

我的问题是:这些有信誉的,成熟的服务提供商都错了吗? 还是这个小我?

从协议的angular度来看, 权威名称服务器将合成对通配符内的查询的响应,而不是查询它的服务器。 如果你得到不同的答复,那么下列情况之一必须是这样的:

  1. 他们不是在同一台服务器上交谈。 要么你有多个auth域名服务器,他们发送不同的响应,或者完全咨询一组不同的auth服务器。 (您的公司是否运行拆分DNSconfiguration?)
  2. 某些caching服务器在caching中有较旧的logging。
  3. DNS被完全绕过,即在主机文件中的一个条目。

大约10天后,问题就自行消失了。 我最好的猜测是Cloudflare(运行这个域的域名服务器的人)改变了它的DNSparsing代码。

一些更多的信息:

  1. Andrew B的答案(2)是一个候选人:这个名字正在被高速caching的服务器解决,这些服务器自从我添加Alogging以来还没有被刷新。 问题持续了一个多星期,所以我不相信这是可能的。

  2. 我用Cloudflare提出了这个问题,然后升级到了工程团队。 他们最近发布了一些更新的名称parsing代码( https://twitter.com/eastdakota/status/351733117003902976

我想我明白名称parsing的作用比我提问的时候好一点。 看起来更有可能是因为单个原因(Cloudflare错误)而不是多个原因(Heroku,NewRelic,Pingdom和Errplane中的单独错误)。