例如,假设有一家托管公司 hostingcompany.com,其名称服务器为 ns1.hostingcompany.com。当我在浏览器中输入 hostingcompany.com 时,我的计算机会联系顶级 .com 域名服务器,该服务器又会联系 hostingcompany.com 的名称服务器以获取 hostingcompany.com 或其任何子域的 A 记录。这难道不是循环的吗,因为名称服务器的 FQDN 是域名本身的子域?换句话说,为了找到 ns1.hostingcompany.com 的 IP 地址,我们需要一个 *.hostingcompany.com 的名称服务器,而它本身就是这个名称服务器?我遗漏了什么?
答案1
您的问题标题提出的问题与问题正文中的问题不同。
为什么这不会产生循环依赖?
Shane 介绍了胶水记录的主题。有关更多信息,请参阅什么是胶水记录?。
为什么在区域文件中定义 NS 记录(如果优先使用粘合记录)?
这有点复杂。有一个 DNS 术语叫范围指的是 DNS 记录是否在更高级别的“权限范围内”标签或录制。
ns1.example.com.
位于 的管辖范围内example.com.
。ns1.contoso.com.
不在 的管辖范围内example.com.
。example.com.
并且contoso.com.
均在 的管辖范围内com.
。com.
位于.
(root) 的管辖范围内。
这样分解一下,就更容易解释了:引用名称服务器需要胶水辖区内。
如果sub.example.org.
(上述示例中没有)指定了 的名称服务器ns1.contoso.com.
,则无需提供 glue。如果提供 glue,则称为“超出管辖范围的 glue”,实际上被认为是坏的:
- 的 IP 地址
ns1.contoso.com.
必须在两个不同的名称服务器上进行管理。 ns1.contoso.com.
可能由一个完全独立的公司所有。- 的运营商
ns1.contoso.com.
可能知道他们托管sub.example.org.
,但他们无法知道 的名称服务器是否example.org.
为其名称服务器提供超出管辖范围的粘合。如果他们更改 的 IP 地址ns1.contoso.com.
,这将完全中断sub.example.net.
,直到 的所有者example.net.
注意到这一点并更正粘合或将其删除。
答案2
该名称可以解析,因为有胶水记录.com
在这种情况下,存在于 TLD 的名称服务器中。
提供名称服务器的答案hostingcompany.com
还包括A
TLD 服务器为名称服务器提供的记录,因此解析系统(通常是您的计算机查询的递归名称服务器,而不是您的计算机本身)知道在哪里查找。