我最近一直在研究 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