如何保证主DNS服务器之间的DNS记录一致性?

如何保证主DNS服务器之间的DNS记录一致性?

根DNS服务器可能是最典型的主(非只读)DNS服务器,目前根DNS服务器的IP地址有13个,但考虑到IP Anycast技术,全球部署的根DNS服务器会超过13个。

如果有人想要更新所有根 DNS 服务器的 DNS 记录,那么所有这些 DNS 服务器之间是否存在某种同步或复制机制?

更复杂的是,如果两个人想要同时更新同一个 DNS 记录,DNS 如何解决潜在的冲突?

例如,某人A将 DNS 记录更新至r1,同时,某人将相同的 DNS 记录更新至;此外假设和之间存在显著的网络延迟。r2a.root-servers.net.(deployed at region A)Br1r3a.root-servers.net.(deployed at region B)region Aregion B

第二个问题类似于数据库集群,因为有多个主数据库服务器,并且这些主服务器从所有其他主服务器同步数据。

答案1

回答你的第一个问题:“DNS 区域如何在 TLD DNS 服务器之间同步”

根 DNS 服务器和 TLD DNS 机制与较低级别的通用 DNS 服务器截然不同。简而言之,每个 TLD 都有自己的机制来保持服务器同步。它们可能使用区域传输,或者可能有非常具体的脚本来同步和检查所有节点之间的区域数据错误。

第二个问题:‘DNS 如何防止冲突更新’

这是通过普通 DNS 协议处理的,即拥有一个 DNS 主服务器,它将接收或更改区域数据,但其余的 DNS 从服务器无权更改任何内容。此外,区域更改通过 SOA 记录中的序列号进行跟踪。权威 DNS 服务器使用此信息来确定它们是否“落后”并需要获取区域的最新副本。

由于对于给定区域实际上只有一个主控,因此实际上不可能发生冲突的变化。

答案2

根是 DNS 服务器列表,其中顶层可以找到域名。(许多 DNS 查询从未到达根服务器,而是从其他地方获取缓存响应。)有一个根区维护者生成它。每个根服务器维护者都使用DNS 区域传输并使用特定于站点的机制在内部进行复制。这些根服务器可以在 DNS 软件中或在 root-servers.net 区域中找到这里或者这里

顶级域名的变更频率相对较低。尽管这种复制涉及 13 个不同的运营商,且有数百个实例,但最终一致性在实践中并不重要。在新 TLD 上注册域名时,其 DNS 服务器可能早已位于根目录中。

目前根 DNS 服务器有 13 个 IP 地址

13 个名称、26 个 IP 地址、许多任播实例。所有根服务器都具有 IPv4 和 IPv6 服务地址。可以使用任何一个,任您选择。

也可以看看: 根域名服务器的 IP 地址可以更改吗?

相关内容