Domain-Name-System

不支持 IPv6 時 AAAA 查詢回復中的 SOA 記錄

  • October 15, 2021

當我在一個還不支持 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

發生這種情況的原因是負響應記憶體。即,如果您對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 Section 4.3.4 $$.

引用自:https://serverfault.com/questions/765025