Anycast 是如何加速网络访问的?

当您在浏览器的地址栏中键入 cloud.z2er.com 并按 Enter 键时,该站点会在(希望)几秒钟后显示在您的浏览器中。在幕后发生了许多事情来将您的请求路由到该站点,以便您可以查看内容。边界网关协议(BGP) 可确保您的请求通过 Internet 的最佳路由到达该站点的服务器。

有几种寻址目标服务器的方法,在这篇文章中,我们将详细讨论其中之一,任播寻址。

什么是任播?

在任播中,一组服务器共享相同的 IP 地址,并将数据从源计算机发送到地形上最近的服务器。这有助于减少延迟和带宽成本,缩短用户的加载时间并提高可用性。重要的是要记住,地形上更近并不本质上意味着地理上更近,尽管情况通常如此。

Anycast 与 BGP 协议相关联,该协议确保路由器的所有邻居都知道可以通过该路由器到达的网络以及到这些网络的拓扑距离。Anycast 的主要原理是在多个路由器的 BGP 消息中通告一个 IP 地址范围。当这在 Internet 上传播时,路由器会意识到哪些邻居提供了到所公布 IP 地址的最短拓扑路径。

寻址方法

这些其他主要寻址方法可用于路由流量。

  • 单播 寻址 使用 一对一 关联,其中每个目标地址被唯一标识为单个接收方端点。传统的 DNS 部署是使用单播地址配置的。

Anycast 是如何加速网络访问的?插图

  • 多播寻址 使用 一对唯一的多 关联,其中使用多播组地址将数据报从单个发送方路由到单个传输中的多个选定端点。多播的一个常见用途是流式音频,其中音频通过多播寻址发布,客户端将路由流作为通道选择。

Anycast 是如何加速网络访问的?插图

  • 广播寻址 使用 一对多 关联,其中使用广播地址在一次传输中将数据报从单个发送方路由到所有其他连接的端点。网络根据需要为包含合格接收者的所有网段(链接)自动复制数据报。

Anycast 是如何加速网络访问的?插图

DNS任播

使用单播,DNS 客户端解析器可以配置多个 DNS 名称服务器目标。如果解析器没有从列表中的第一个服务器收到任何响应,它通常会等待一个超时值,然后再切换到解析器列表中的第二个服务器(和后续服务器)。下一次解析器必须执行查找时,它不会“记住”列表中的服务器没有响应,它会开始查询列表中的第一个服务器,即使它仍然不可用。根据客户端的操作系统,它每次在解析器列表中轮换尝试失败的服务器时可能需要一到五秒的时间。

配置了任播地址的 DNS 客户端解析器实际上消除了这种延迟,因为解析是由路由协议处理的。在下图中,配置了任播 DNS IP 地址 123.10.10.10 的单个 DNS 客户端工作站显示了针对使用相同任播 IP 地址部署的三个 DNS 名称服务器中最近的一个执行 DNS 解析。

Anycast 是如何加速网络访问的?插图

客户端的 DNS 解析器可以针对上面显示的三个 DNS 服务器中的任何一个进行解析。由于路由拓扑,第 3 层路由将通过路由器 R1 发送我们的 DNS 客户端的数据包。如果路由器 R1 或服务器 A 出现故障,我们的 DNS 客户端的数据包将通过路由器 R2 和 R3 自动重新路由到下一个最近的 DNS 服务器。此外,到我们服务器 A 的路由将从路由表中删除,从而阻止进一步使用该名称服务器。服务器 A 在恢复之前不会被使用,并且 IP 任播地址路由重新注入网络。

让我们从日常生活中做一个类比,让这一切更容易理解。

想象一下,您想要的鞋子正在打折,并且在百货连锁店的所有分店都有售。就像任播一样,您可以在许多相同的站点上获得服务,而无需偏爱任何特定站点。因此,您在 Waze 中输入“Marks and Spencer”,导航器将带您到最近的可用分店购买这些鞋子。如果前往最近分行的道路被阻塞,Waze 会带您前往下一个最近的分行。

为什么选择任播?

您可能会问,问题是为什么使用任播路由而不是更简单的单播路由,后者会将您的请求发送到同一个 IP 地址。

对于具有单个 Web 服务器以容纳中等流量的站点来说,单播路由当然是足够和合适的。想象一下,您坐在 一家咖啡馆里用电脑访问 cloud.z2er.com,该网站每小时点击量 843 次。该站点将有一个 Web 服务器,您的请求将很快被路由到该单播地址。

然而,当您下次访问 https://www.zhihu.com 阅读最新文章时,就不会那么简单了。由于该文拥有数百万订阅者,因此有多个 Web 服务器均具有相同的 IP 地址,分布在不同的地理区域,以处理请求。

Anycast 是如何加速网络访问的?插图

在这种情况下任播的优点是:

  • 性能改进——如上所述,流量以可忽略的延迟路由到用户
  • 服务可靠性– 使用冗余服务器,服务的可用性更高。例如,如果巴黎服务器正在维护,服务将自动路由到具有下一个最佳路由的可用服务器。

Anycast 是如何加速网络访问的?插图

  • 负载均衡——路由到多台服务器将有效均衡服务器之间的负载,提高站点速度
  • 减少 DoS 攻击的影响- 拒绝服务攻击可能会局限于服务器,因此不会影响整个服务
Z2ER大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除,若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,与Z2ER无关。本站发布的内容若侵犯到您的权益,请联系z2er@z2er.com删除,将及时处理!
Z2ER » Anycast 是如何加速网络访问的?