Domain-Name-System
DNS 中是否允許橫向引用?
我最近一直在研究 DNS,目前使用 DIG 命令收到以下錯誤消息:
BAD (HORIZONTAL) REFERRAL
據我了解,這是由於委託名稱查找而不遍歷“DNS 樹”而引起的。與代表“DNS 樹”的垂直引薦不同,水平引薦代表如下名稱:
(來自“google.com”區域的名稱伺服器的虛構範例答案)
;; QUESTION SECTION: ;123.google.com. IN A ;; AUTHORITY SECTION: a.123.google.com. 7200 IN NS ns1.321.google.com. a.123.google.com. 7200 IN NS ns2.321.google.com. a.123.google.com. 7200 IN NS ns3.321.google.com.
當您詢問上述指定的名稱伺服器之一時,將返回以下答案:
;; QUESTION SECTION: ;123.google.com. IN A ;; AUTHORITY SECTION: a.123.google.com. 7200 IN NS ns4.321.google.com. a.123.google.com. 7200 IN NS ns5.321.google.com. a.123.google.com. 7200 IN NS ns6.321.google.com.
這種情況會一直持續下去,而不會靠近可以實際回答“a.123.google.com”請求的名稱伺服器。
回到我的問題:
通常不允許橫向推薦,還是僅此特定情況是不好的橫向推薦?
水平推薦總是不好的,因為它們不會讓您更接近您的特定查詢:
讓我們使用範例 www.bar.com。
跳過根目錄和 TLD,我們得到 bar.com 的名稱伺服器。詢問這些內容後,我們會獲得對 foo.com 的推薦
這是沒有用的,因為它沒有讓我們更接近 www.bar.com。
造成這種情況的一個常見原因是為子域設置了委派,同時在父區域中仍有其他記錄。
例如:
foo.bar.com。被委派在某處,但 bar.com。仍然包含 foo.bar.com 的 MX 記錄
有關詳細資訊,請參閱以下 ServerFault 執行緒:
BIND/DNS - dig +trace = Bad Referral 和 Bad Horizontal Referral