DNS 根服务器任播如何工作?

DNS 根服务器任播如何工作?

我知道 DNS 根服务器有 13 个 IP,它们使用任播将请求传播到世界各地的 800 个实际物理服务器。

我知道香港的根服务器和某处的另一个镜像服务器有相同的 IP,在互联网上拥有两个具有不同物理地址但 IP 相同的服务器合法吗?

但我不知道 DNS 请求将如何定位到离我所在地最近的服务器,比如香港。

DNS 如何选择它的服务器,并且拥有 2 个具有相同 IP 的不同物理地址服务器是否合法?

答案1

在大型网络中(具有专用路由器的网络),两台计算机之间可能存在多条网络路径。路由器通常具有多条相互之间的网络链路以实现冗余,因此您可以通过任一链路发送数据包以到达同一目标计算机。

Anycast 利用了这一点,使 IP 地址看起来有两条或多条路由,但实际上这些路由指向完全不同的计算机。如果其中一台计算机离线,该路由将消失,但另一条路由仍然可用。

它需要一些配置才能正常工作。要在站点之间共享 IP,您需要配置 BGP(ISP 级路由),并且只能对至少 256 个 IP 地址块进行配置(因此,仅对一个 IP 使用任播将浪费约 253 个 IP)。在站点内,您仍然需要配置路由器,以便它们知道在哪里可以找到所有任播端点,这通常是通过让每个端点在线时发布其存在来完成的。

由于端点看起来像是通往同一台计算机的多条路径,因此流量可能会随机使用不同的路径。通常这不是问题(即使数据包所走的路径发生变化,它们仍会到达同一位置),但对于任播 IP 来说,不同的路径意味着不同的目的地。这意味着您可以将流量发送到一个端点,而数据包会突然到达另一个端点。

因此,任播不适用于“长寿命”协议,通常只用于无状态协议。DNS 任播很常见,因为数据包很小,即使端点服务器意外更改也没关系。一些站点将任播与 HTTP 结合使用,用于非常小的文件,这些文件只需一两个数据包即可检索。但除此之外,对于任播来说,任何超出此范围的文件都会变得不可靠,因为只要“路径”发生变化,TCP 连接就会随机断开。

相关内容