AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 111430
Accepted
scotchi
scotchi
Asked: 2010-02-10 22:12:36 +0800 CST2010-02-10 22:12:36 +0800 CST 2010-02-10 22:12:36 +0800 CST

域的权威 DNS 服务器是否必须允许递归以允许 CNAME 记录指向其他域?

  • 772

所以我有一个在 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 记录指向其他域?

domain-name-system cname-record heroku recursive dreamhost
  • 4 4 个回答
  • 5103 Views

4 个回答

  • Voted
  1. Best Answer
    Frenchie
    2010-02-10T23:12:06+08:002010-02-10T23:12:06+08:00

    不,您不需要对权威 DNS 服务器进行递归。根据您询问的对象,甚至认为(如果可能的话)您的权威服务器不是递归的,因为它是抵御某些 DoS 攻击的一道防线,这被认为是一种很好的做法。(例如 Cisco 的文档在这里)

    下面是我的域中的一个示例(服务器正在运行 Bind 9 并且是非递归的)。

    ; <<>> 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 错误配置。

    • 6
  2. Alnitak
    2010-02-11T01:39:00+08:002010-02-11T01:39:00+08:00

    不应将权威服务器配置为提供递归服务。甚至没有解决潜在的 Microsoft 错误。

    我现在不能引用章节和诗句(如果我找到了,我会更新)。然而,这在很大程度上是公认的 DNS 服务器操作的“最佳常见做法”。

    如果您的查找链中的某个解析器正在返回SERVFAIL,那么这只是表明某处配置错误,或者您提出了错误的问题(或带有错误标志的正确问题)。

    在您的情况下,如果您要求递归答案(这恰好是默认情况下) ,dreamhost.com服务器会返回。他们完全有权这样做,他们是权威服务器,而不是递归的。SERVFAILnslookup

    在我的系统上,如果我dig改用并专门禁用递归,我会得到:

    % 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.
    
    • 3
  3. jrishaw
    2010-02-10T23:54:12+08:002010-02-10T23:54:12+08:00

    Dreamhost 使用 powerdns(呃),同样糟糕......但 Windows 递归解析器确实很糟糕。

    问题是,为什么您的客户端站点上的 Windows dns 框会出现 SERVFAIL?他们不应该。

    而且,上面的海报是正确的-如果您对域具有权威,则可以将其命名为 cname,A,失败,您将其命名为任何域/ ip(您不必知道与其他域的粘合)。

    也许就是这样 - 请求您的 A 记录(并获得 cname)的 DNS 解析器坚持认为它也知道 heroku.com 的粘合剂。

    您可以为原始查询分析列出的名称服务器以查看发生了什么,但在“更糟糕的情况”情况下,您可以只提供“A”记录..它只是一个 PITA。

    如果你想发布一个真实的失败域,那很酷;你也可以 PM 或 AIM nerdNG :p (我喜欢用 dns 找到根本原因。去图)

    • 2
  4. Steven_W
    2010-02-25T12:13:27+08:002010-02-25T12:13:27+08:00

    我一直在寻找与我自己的“类似”问题,似乎有很多类似的点(例如 Windows2003 DNS 服务器和 SERVFAIL 响应)

    如果有人有任何指向上述“潜在 Microsoft 错误”的链接,他们会介意发布详细信息吗?

    非常感激。

    • 0

相关问题

  • 可以任意注册名字到同一个公网IP吗?

  • Linux 绑定服务器为 DHCP Windows 客户端提供地址,但不为 DHCP Linux 客户端提供地址

  • 如何使用 Windows Server 解析 http 域名

  • 动态更新 /etc/resolv.conf 中列出的解析器

  • 内部名称解析

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve