不支持 IPv6 时 AAAA 查询回复中的 SOA 记录

Man*_*har 2 domain-name-system ipv6

当我在一个不支持 IPv6 的网站上挖 AAAA 时,回复有一个 SOA 记录。

当服务不支持 IPv6 时,是否需要使用 SOA 记录来响应 AAAA 查询?

    dig quora.com AAAA

    ; <<>> DiG 9.9.5-3ubuntu0.6-Ubuntu <<>> quora.com AAAA
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8704
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;quora.com.         IN  AAAA

    ;; AUTHORITY SECTION:
    quora.com.      976 IN  SOA ns1.p28.dynect.net. zone-admin.dyndns.com. 2016031101 3600 600 604800 3600

    ;; Query time: 35 msec
    ;; SERVER: 10.0.2.3#53(10.0.2.3)
    ;; WHEN: Mon Mar 21 08:27:49 UTC 2016
    ;; MSG SIZE  rcvd: 110
Run Code Online (Sandbox Code Playgroud)

Mic*_*l B 7

发生这种情况的原因是负响应缓存。即,如果您对 www.example.com 执行 AAAA 查询并且该记录不存在,那么它不存在的事实将被添加到中间服务器的缓存中。

为了让那些中间服务器知道他们需要 SOA 记录缓存该响应多长时间,因为这是定义 TTL 的地方。此过程完全与协议无关,IPV4 和 IPV6(以及IPV9)获得包含在该additional字段中的相同响应。

编辑以回应评论

(看来我之前的编辑相当不正确!-所以这是真正的编辑)

结果,SOA 记录被插入到权限部分。

根据 RFC 2308 Negative Caching of DNS Queries Section 3

当报告 NXDOMAIN 或指示不存在请求类型的数据时,区域的权威名称服务器必须在响应的授权部分中包含区域的 SOA 记录。这是必需的,以便可以缓存响应。

在阅读此处的评论后为任何好奇的人编辑!

似乎最初的 DNS RFC 1034域概念和设施在描述 SOA 的两个位置时存在问题,即权威部分(在第 3.7 节中)和附加部分(我最初在第 4.3.4 节中引用过)RFC 2181 第 7.1 节对 DNS 规范的澄清对此进行了澄清。RFC 2308后来完全取代了第 4.3.4 节。

抽象的

[RFC1034] 提供了如何缓存否定响应的描述。然而,它有一个根本缺陷,即它不允许名称服务器将这些缓存的响应分发给其他解析器,从而大大降低了缓存的效果。本文档解决了根据经验提出的问题并替换了 [RFC1034 第 4.3.4 节]。