我正在尝试设置一个 DNS 来补充我的主机提供的 DNS(另请参阅这个相关问题)。现在我似乎不理解我域的 DNS 记录,就是这样(为简洁起见,省略了一些条目):
econemon.com. 1800 IN NS ns.stratoserver.net.
econemon.com. 1800 IN NS ns2.stratoserver.net.
econemon.com. 1800 IN A 85.214.92.48
现在,尽管在 Wikipedia 上阅读了 DNS,但我并没有真正理解两件事:
- 为什么名称服务器除了 A 记录之外,还返回一个指向自身的 NS 记录?那会用来做什么?我的理解是,此记录将由不负责域的名称服务器提供。
- 客户端究竟是如何使用这两条 NS 记录的?我可以添加更多,有什么意义?
服务器发回的包含 NS 记录的答案是“权限”部分,它只是递归服务器在查找答案时沿树向下走的答案的一部分。客户端使用 NS 记录来确定在解析名称时接下来要询问谁。您可以根据需要添加任意数量的 NS 记录(尽管如果您有很多NS 记录,则会出现一些极端情况);拥有更多 NS 记录的好处是您的 DNS 服务中有更多冗余(尽管为了获得最大优势,您确实希望将 NS 服务器放在不同的网络和域上)。
所有区域文件都应包含对相关名称服务器的引用。在多服务器情况下,名称服务器使用它来了解何时应该在哪里发送关于何时进行更改以及应该从哪里接受它们的 NOTIFY 消息。
此外,这些条目并不总是指向当前服务器。在委派名称解析的情况下,它们将改为引用角色已委派给的服务器,尽管这对于主域名来说很少见(对于子域来说并不少见)。
客户端系统(或它们与之通信的 DNS 缓存)应该尝试您的其中一个名称服务器,然后,如果该查找失败,它应该尝试下一个,依此类推,直到所有尝试都已尝试或响应。
您可以拥有任意数量的名称服务器,以获得额外的弹性。RFC 规定“至少两个”并且它们不应该在同一个网络上(一些小型 Web 主机有两个名称服务器设置,它们实际上是具有两个 IP 地址的同一服务器 - 不好),但它们没有列出任何上限.