Glue记录中权威名称服务器的IP地址是否被递归解析器缓存?
顶级域的名称服务器包括胶水以及域名的委托。
现在,递归解析器是否缓存此“A”/“AAAA”记录(粘合记录)?我知道仅当响应来自“权威”名称服务器时才适用缓存,但此处 TLD 名称服务器进一步委托并且不能被视为权威。
或者
,权威名称服务器是否还提供自己的 IP 地址作为 A 记录(以及域的 A 记录),这就是递归解析器缓存的内容?
Glue记录中权威名称服务器的IP地址是否被递归解析器缓存?
顶级域的名称服务器包括胶水以及域名的委托。
现在,递归解析器是否缓存此“A”/“AAAA”记录(粘合记录)?我知道仅当响应来自“权威”名称服务器时才适用缓存,但此处 TLD 名称服务器进一步委托并且不能被视为权威。
或者
,权威名称服务器是否还提供自己的 IP 地址作为 A 记录(以及域的 A 记录),这就是递归解析器缓存的内容?
通常,胶水记录不会作为权威答案给出,如果您查看以下查询的标志(是否存在
aa
权威答案;RFC 1035, 4.1.1),您可能会注意到:对父母的权威:
删除控制。两者都在附加部分中给出了粘合记录。
来自权威服务器的权威答案:
RFC 1034, 5.3.3中的基本算法缓存了大部分响应数据;只有失败和其他奇怪的内容(d)被忽略(重点是我的):
RFC 还提到某些实现可以选择强制解析器忽略缓存数据并咨询权威服务器。真正发生的事情取决于实施。根据Kudelski 安全研究的 DNS 如何杀死互联网:
答案是否权威本身并不是记录是否应该被缓存的指标:
并非每个递归服务器都从根名称服务器开始解析名称,但也有更复杂的递归基础架构。解析器可以有转发器,他们要求的其他递归名称服务器,而不是权威名称服务器。这些响应从不具有权威性,但始终被缓存。
在 DNS 缓存中毒场景中,肇事者不是任何权威名称服务器,而是欺骗来自可信来源的答案,无论它是权威名称服务器还是转发器。因为 DNS 使用 UDP,所以欺骗响应更容易。对此有一些解决方案:
最大 UDP 响应大小。如果响应大于即大于单个 UDP 数据包,则 DNS 使用 TCP。有一个附加部分,包含粘合记录的响应很容易越过该边界。TCP 连接并不是那么容易被欺骗,因为它需要一个中间人位置。
DNSSEC 验证。欺骗性响应的记录不能具有匹配的 DNSSEC 签名,因此不会被缓存。
加密的 DNS。有两个标准:基于 TLS 的 DNS ( RFC 7858 ) 和基于 HTTPS 的 DNS ( RFC 8484 )。