所以我有一个在 Dreamhost 注册的域,它显然不进行递归查找,还有一个在 Heroku 上的应用程序。Heroku 应用程序始终配置为使用 CNAME 记录来proxy.heroku.com
.
所以:
Authoritative DNS: ns1.dreamhost.com (for foo.com)
CNAME record: app.foo.com -> proxy.heroku.com
Resolves to: Set of A records for EC2 IPs
有些人试图从 Windows Server 2003 DNS 服务器后面连接到应用程序,有人告诉我,它以不同的方式处理 SERVFAIL 并且无法解析 DNS。我试图了解这是否真的是我身边或他们的配置问题,特别是根据标题:
域的权威 DNS 服务器是否必须递归以允许 CNAME 记录指向其他域?
不,您不需要对权威 DNS 服务器进行递归。根据您询问的对象,甚至认为(如果可能的话)您的权威服务器不是递归的,因为它是抵御某些 DoS 攻击的一道防线,这被认为是一种很好的做法。(例如 Cisco 的文档在这里)
下面是我的域中的一个示例(服务器正在运行 Bind 9 并且是非递归的)。
这听起来更像是 Windows 2003 DNS 中的 DNS 错误配置。
不应将权威服务器配置为提供递归服务。甚至没有解决潜在的 Microsoft 错误。
我现在不能引用章节和诗句(如果我找到了,我会更新)。然而,这在很大程度上是公认的 DNS 服务器操作的“最佳常见做法”。
如果您的查找链中的某个解析器正在返回
SERVFAIL
,那么这只是表明某处配置错误,或者您提出了错误的问题(或带有错误标志的正确问题)。在您的情况下,如果您要求递归答案(这恰好是默认情况下) ,
dreamhost.com
服务器会返回。他们完全有权这样做,他们是权威服务器,而不是递归的。SERVFAIL
nslookup
在我的系统上,如果我
dig
改用并专门禁用递归,我会得到:Dreamhost 使用 powerdns(呃),同样糟糕......但 Windows 递归解析器确实很糟糕。
问题是,为什么您的客户端站点上的 Windows dns 框会出现 SERVFAIL?他们不应该。
而且,上面的海报是正确的-如果您对域具有权威,则可以将其命名为 cname,A,失败,您将其命名为任何域/ ip(您不必知道与其他域的粘合)。
也许就是这样 - 请求您的 A 记录(并获得 cname)的 DNS 解析器坚持认为它也知道 heroku.com 的粘合剂。
您可以为原始查询分析列出的名称服务器以查看发生了什么,但在“更糟糕的情况”情况下,您可以只提供“A”记录..它只是一个 PITA。
如果你想发布一个真实的失败域,那很酷;你也可以 PM 或 AIM nerdNG :p (我喜欢用 dns 找到根本原因。去图)
我一直在寻找与我自己的“类似”问题,似乎有很多类似的点(例如 Windows2003 DNS 服务器和 SERVFAIL 响应)
如果有人有任何指向上述“潜在 Microsoft 错误”的链接,他们会介意发布详细信息吗?
非常感激。