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 / 问题 / 868201
Accepted
HippoMan
HippoMan
Asked: 2017-08-12 07:16:05 +0800 CST2017-08-12 07:16:05 +0800 CST 2017-08-12 07:16:05 +0800 CST

dns:更改 DNS 记录的 ANY 和 A 查询之间的区别?

  • 772

我最近更改了特定域的 IP 地址,称之为example.com. 我知道传播 DNS 更改需要时间,而且传播尚未完成还为时过早。

我注意到运行 ANY 查询与运行 A 记录查询给出不同的结果。例如 ...

% host -t a example.com
example.com has address THE.OLD.IP.ADDRESS
% host -t any example.com
example.com has address THE.NEW.IP.ADDRESS

我知道最终,DNS 将完全传播,然后 A 记录查询将返回 THE.NEW.IP.ADDRESS。但我想知道是否有人可以解释为什么 ANY 查询返回新 IP 地址,而 A-record 查询仍然返回旧 IP 地址,直到传播完成。

这对我来说很重要,因为解析域名的应用程序软件似乎执行 A-record 查询而不是 ANY 查询,因此,这些应用程序仍然将 IP 地址解析为旧值,直到 DNS 传播完成。

我只是在寻找解释为什么任何结果似乎都比 A 记录结果传播得更快……这是为了我自己的理解和启发。

非常感谢。

domain-name-system
  • 3 3 个回答
  • 492 Views

3 个回答

  • Voted
  1. Best Answer
    sridhar pandurangiah
    2017-08-12T07:38:46+08:002017-08-12T07:38:46+08:00

    看起来“ANY”记录查询正在由具有新 IP 的权威 DNS 服务器响应,而“A”记录查询正在由其他递归 DNS 服务器响应,其中新 IP 地址传播仍在等待中,并且因此返回旧的 IP 地址,因为这就是它在缓存中的信息。

    • 1
  2. Patrick Mevzek
    2017-08-12T15:32:50+08:002017-08-12T15:32:50+08:00
    1. 提供涉及的真实姓名,否则无法解决您的问题。并且dig不host用于调试。并始终明确指定您查询的名称服务器
    2. ANY 不是真正的记录,它只是要求解析器将它在缓存中的给定名称的所有内容发回;因此它是一个非常糟糕的调试工具,因为结果将完全取决于查询的解析器;出于某种原因,有些人想完全弃用它
    3. 所以任何记录都不会“传播”
    4. 事实上,由于 DNS 不是自上而下的,因此根本没有记录传播。这是一个到处使用的术语,但这很难反映现实。

    现在至少从 2019 年 1 月 10 日开始,使用RFC 8482“对具有 QTYPE=ANY 的 DNS 查询提供最小大小的响应”,名称服务器可以自由地“解散”ANY请求并以最少的数据(他们认为的任何记录子集)进行回复适当的,或者只有一个 HINFO 记录)。

    从 Cloudflare 看这个可爱的例子:

    $ dig @ns7.cloudflare.com cloudflare.com ANY +noall +ans
    cloudflare.com.     1h3m9s IN HINFO "RFC8482" ""
    
    • 1
  3. Andrew B
    2017-08-12T09:07:55+08:002017-08-12T09:07:55+08:00

    dig 的输出在这种情况下会有所帮助,因为我们缺少其他详细信息,例如与两个查询关联的 TTL。

    我发现这不太可能ANY导致不同的行为。无论使用何种查询类型,缓存中的各个记录都会有不同的 TTL 与之相关联,这两个查询没有区别会提示服务器更新其缓存值。如果有的话,如果它们当前不在缓存中,ANY通常会导致特定记录类型的答案被忽略。(即过期)

    您的查询很可能被定向到负载平衡的 DNS 集群,并且您的一些查询正在登陆旧答案中的 TTL 已过期的服务器,而其他查询则登陆仍在缓存中的记录的服务器上。将来验证这一点的一个简单方法是注意远程服务器返回的 TTL。如果它不是基于真实世界时间以秒为单位持续递减,那么您将看到来自不同服务器的 TTL 值。

    • 0

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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