如果域名和其名称服务器不共享 TLD,则 Glue 记录通常不可用,并且从技术上讲必需的如果它们不共享同一个二级域名,这可能会导致解析域名的额外步骤。解析器必须先查找名称服务器的地址,然后才能找到您的域名的地址。但理论上,除了这两个步骤之外,您还可以添加更多步骤。
这里的问题是,这条链子可以有多长?
如果xyz.com
使用名称服务器ns1.xyz.info
,
并且xyz.info
使用名称服务器ns1.xyz.co
,
并且xyz.co
使用名称服务器ns1.xyz.cc
,
并且xyz.cc
使用名称服务器ns1.xyz.co.uk
,...等等
... 您可能会得到一个很长的链条,需要解析器解开它才能解析您最初想要的名称。
可能存在一个实际限制 —— BIND 应该只愿意遍历这么多链接,否则可能会出现拒绝服务。但是否存在官方限制?超过多少步解析器就不需要继续执行?
答案1
if xyz.com uses nameserver ns1.xyz.info,
在这种情况下,您的本地解析器将首先向服务器询问.com
(例如 a.gtld-servers.net)在哪里可以找到 xyz.com 域的名称服务器。.com 域服务器通常会为 xyz.com 域的名称服务器的 IP 地址提供粘合记录。
例如:
$ dig gmail.com @a.gtld-servers.net
; <<>> DiG 9.9.3-rpz2+rl.13214.22-P2-Ubuntu-1:9.9.3.dfsg.P2-4ubuntu1.1 <<>> gmail.com @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46893
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 5
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;gmail.com. IN A
;; AUTHORITY SECTION:
gmail.com. 172800 IN NS ns2.google.com.
gmail.com. 172800 IN NS ns1.google.com.
gmail.com. 172800 IN NS ns3.google.com.
gmail.com. 172800 IN NS ns4.google.com.
;; ADDITIONAL SECTION:
ns2.google.com. 172800 IN A 216.239.34.10
ns1.google.com. 172800 IN A 216.239.32.10
ns3.google.com. 172800 IN A 216.239.36.10
ns4.google.com. 172800 IN A 216.239.38.10
;; Query time: 375 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Thu Jul 10 01:10:57 EST 2014
;; MSG SIZE rcvd: 181
根据我的经验,您所说的“如果域名和其名称服务器不共享 TLD,则 Glue 记录通常不可用”根本不是事实。但是,这取决于域名注册商提供的数据,并且他们的政策各不相同。有些要求指定 IP。有些则由域名所有者决定。我记得澳大利亚有一个不支持他们的注册商。如果处理您所在国家/地区域名的注册商数量很少,那么在域名领域内可能确实如此,但对于整个网络而言,这是不典型的。
对于域名所有者来说,提供 Glue 记录当然是一种很好的做法,但有时能够通过名称指定 DNS 服务器而无需确定 IP 被视为提供了灵活性,而许多域名所有者并不了解这会造成的性能问题。
如果您提供 DNS 报告工具,您感兴趣的真的是此类错误配置的绝对限制吗?如果出现哪怕一个这样的缺失胶水记录问题,您报告缺失胶水记录作为警告肯定更为重要。您可能希望跟踪至少几个您提供的间接操作(并报告它们缺失的胶水记录),但您必须遵循此操作的程度。如果 DNS 报告工具警告前 3 个左右,我会非常高兴,因为我真正感兴趣的只是将胶水记录添加到我的域,或者将域的 DNS 提供商切换到更有能力的提供商。
我对您提议的 BIND 上的 DOS 方法表示怀疑,因为 BIND 会缓存它收集的有关名称服务器位置的信息。攻击者必须设置大量没有胶水的域,然后对它们进行大量查询。设置使用后可能被注册商取消的域的成本可能会让攻击者对此不感兴趣。