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 / 问题 / 1019332
Accepted
Abhishek Palakkal Kaliyath
Abhishek Palakkal Kaliyath
Asked: 2020-05-31 06:38:22 +0800 CST2020-05-31 06:38:22 +0800 CST 2020-05-31 06:38:22 +0800 CST

Glue 记录是否被递归解析器缓存?

  • 772

Glue记录中权威名称服务器的IP地址是否被递归解析器缓存?
顶级域的名称服务器包括胶水以及域名的委托。
现在,递归解析器是否缓存此“A”/“AAAA”记录(粘合记录)?我知道仅当响应来自“权威”名称服务器时才适用缓存,但此处 TLD 名称服务器进一步委托并且不能被视为权威。
或者
,权威名称服务器是否还提供自己的 IP 地址作为 A 记录(以及域的 A 记录),这就是递归解析器缓存的内容?

domain-name-system subdomain dns-hosting domain-name dns-zone
  • 1 1 个回答
  • 377 Views

1 个回答

  • Voted
  1. Best Answer
    Esa Jokinen
    2020-05-31T12:33:28+08:002020-05-31T12:33:28+08:00

    通常,胶水记录不会作为权威答案给出,如果您查看以下查询的标志(是否存在aa 权威答案;RFC 1035, 4.1.1),您可能会注意到:

    • 对父母的权威:

       dig com NS @f.gtld-servers.net
       ;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27
      
    • 删除控制。两者都在附加部分中给出了粘合记录。

       dig google.com NS @f.gtld-servers.net
       ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
      
       dig ns1.google.com A @f.gtld-servers.net
       ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
      
    • 来自权威服务器的权威答案:

       dig google.com NS @ns1.google.com
       ;; flags: qr aa rd; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 9
      
       dig ns1.google.com A @ns1.google.com
       ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
      

    RFC 1034, 5.3.3中的基本算法缓存了大部分响应数据;只有失败和其他奇怪的内容(d)被忽略(重点是我的):

    • 一个。如果响应回答了问题或包含名称错误,则缓存数据并将其返回给客户端。

    • 湾。如果响应包含对其他服务器的更好委托,则缓存委托信息,然后转到步骤 2。

    • C。如果响应显示 CNAME 而不是答案本身,则缓存 CNAME,将 SNAME 更改为 CNAME RR 中的规范名称,然后转到步骤 1。

    • d。如果响应显示服务器故障或其他奇怪的内容,请从 SLIST 中删除服务器并返回步骤 3。

    RFC 还提到某些实现可以选择强制解析器忽略缓存数据并咨询权威服务器。真正发生的事情取决于实施。根据Kudelski 安全研究的 DNS 如何杀死互联网:

    除了可能导致非故意错误响应的错误之外,还必须考虑缓存中毒(请参阅Dan Kaminsky 的 2008 DNS 漏洞和DNS 缓存中毒 Hitchhiker 指南)。许多 DNS 缓存实现将粘合记录缓存为正常记录,因此 DNS 服务器可能会提供恶意响应,从而导致缓存中的条目错误。

    例如:

    evil.com.       IN NS ns.company.com.
    ns.company.com. IN A 6.6.6.6
    

    虽然合法服务器说

    company.com.    IN NS ns.company.com.
    ns.company.com. IN A 1.2.3.4
    

    因此,在记录的整个生命周期内,错误的 IP 地址最终都会在缓存中。为了避免这个问题,大多数缓存解析器实现不信任并忽略超出范围的 NS 记录的可选粘合记录,因此忽略 ns.company.com. IN A 6.6.6.6上面示例中的。DNS 管理员须知:最好只拥有辖区内记录。

    答案是否权威本身并不是记录是否应该被缓存的指标:

    • 上层名称服务器是同一权威名称服务器结构的一部分。因此,由于他们确实委派了对其子域的控制权,即最终可以控制谁可以权威地回答,他们应该被信任并且值得信赖。通常,粘合记录应该与区域本身的记录相匹配,根据 IANA对权威名称服务器的技术要求,其他一切都将是配置错误:

    胶水与权威数据的一致性

    对于将 IP 地址列为粘合的名称服务器,IP 地址必须与该主机的权威 A 和 AAAA 记录匹配。

    委托和区域之间的一致性

    由权威名称服务器提供的 NS 记录集必须与为父区域中的委托提议的记录集相匹配。

    • 并非每个递归服务器都从根名称服务器开始解析名称,但也有更复杂的递归基础架构。解析器可以有转发器,他们要求的其他递归名称服务器,而不是权威名称服务器。这些响应从不具有权威性,但始终被缓存。

    • 在 DNS 缓存中毒场景中,肇事者不是任何权威名称服务器,而是欺骗来自可信来源的答案,无论它是权威名称服务器还是转发器。因为 DNS 使用 UDP,所以欺骗响应更容易。对此有一些解决方案:

      • 最大 UDP 响应大小。如果响应大于即大于单个 UDP 数据包,则 DNS 使用 TCP。有一个附加部分,包含粘合记录的响应很容易越过该边界。TCP 连接并不是那么容易被欺骗,因为它需要一个中间人位置。

      • DNSSEC 验证。欺骗性响应的记录不能具有匹配的 DNSSEC 签名,因此不会被缓存。

      • 加密的 DNS。有两个标准:基于 TLS 的 DNS ( RFC 7858 ) 和基于 HTTPS 的 DNS ( RFC 8484 )。

    • 3

相关问题

  • 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