所以我有一个注册到Dreamhost的域名,它显然不会执行recursion查询,而且在Heroku上有一个应用。 Heroku应用程序始终configuration为使用CNAMElogging到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的方式不同,无法parsingDNS。 我试图了解,如果这真的是我身边或他们的configuration问题,值得注意的是,每个标题:
一个域的授权DNS服务器是否必须recursion以允许指向其他域的CNAMElogging?
不,你不需要递送权威的DNS服务器。 根据你提出的问题,甚至可以认为你的授权服务器不是recursion的(如果可能的话),因为它是针对某些DoS攻击的一道防线。 (思科的文档就是这个例子)
下面是一个来自我的域的示例(服务器正在运行绑定9并且是非recursion的)。
; <<>> DiG 9.5.1-P3 <<>> mail.<snip> @<my authoritative master> ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1216 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4 ;; QUESTION SECTION: ;mail.<snip>. IN A ;; ANSWER SECTION: mail.<snip>. 86400 IN CNAME ghs.google.com. ghs.google.com. 158151 IN CNAME ghs.l.google.com. ghs.l.google.com. 33 IN A 74.125.47.121 ;; AUTHORITY SECTION: google.com. 153556 IN NS ns4.google.com. google.com. 153556 IN NS ns2.google.com. google.com. 153556 IN NS ns3.google.com. google.com. 153556 IN NS ns1.google.com. ;; ADDITIONAL SECTION: ns1.google.com. 169823 IN A 216.239.32.10 ns2.google.com. 169823 IN A 216.239.34.10 ns3.google.com. 169823 IN A 216.239.36.10 ns4.google.com. 169823 IN A 216.239.38.10
这听起来更像是在Windows 2003 DNS的DNS错误configuration。
权威服务器不应configuration为提供recursion服务。 甚至没有解决潜在的微软错误。
目前我不能引用章节和诗句(如果我find它,我会更新)。 然而,这是DNS服务器操作所接受的“最佳惯例”。
如果你的查询链中的一些parsing器返回SERVFAIL那么这只是表明一个错误configuration的地方,或者你问错误的问题(或正确的问题与错误的标志)。
在你的情况下, dreamhost.com服务器返回SERVFAIL如果你要求一个recursion的答案(这恰好是nslookup默认情况下)。 他们完全有权这样做,他们是权威的服务器,而不是recursion的。
在我的系统上,如果我使用dig而不是专门禁用recursion,我会得到:
% dig +norecurse @ns1.dreamhost.com mail.scotchi.net. ; <<>> DiG 9.6.0-APPLE-P2 <<>> +norec @ns1.dreamhost.com mail.scotchi.net. ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54426 ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 13 ;; QUESTION SECTION: ;mail.scotchi.net. IN A ;; ANSWER SECTION: mail.scotchi.net. 14400 IN CNAME ghs.google.com.
Dreamhost使用powerdns(唉),就像坏..但Windowsrecursionparsing器确实吸吮。
问题是,为什么你的客户端的Windows DNS服务器获得SERVFAIL? 他们不应该。
而且,上面的海报是正确的 – 如果你是一个域的权威,你可以让它的CNAME,A,失败,你的名字,任何域/ IP(你不必知道粘到其他域)。
也许就是这样 – 要求你的Alogging(并得到一个CNAME)的DNSparsing器坚持认为它也知道heroku.com的胶水。
您可以分析原始查询列出的名称服务器,以查看发生了什么事情,但在“最糟糕的情况”情况下,您可以提供“A”logging..它只是一个PITA。
如果你想发布一个真实世界的失败域很酷, 你也可以PM或AIM nerdNG:p(我喜欢用dnsfind根本原因probs)
我一直在寻找“类似”的问题到我自己这里 ,似乎有很多类似的问题(例如Windows2003 DNS服务器和SERVFAIL响应)
如果任何人有任何链接到上面的“潜在的微软bug”,他们会介意发布细节。
非常感激。