什么是“任播”,它有什么帮助?

use*_*ame 89 networking routing ip anycast

直到几秒钟前,当我读到“有哪些很酷或有用的服务器/网络技巧? ”时,我才听说过任播。

维基百科关于它的“任播”文章非常正式,并没有真正唤起如何使用它的心理图景。

有人可以用几个非正式的句子解释什么是“任播”,如何配置它(只是一般意义上的),以及它的好处是什么(它让什么变得更容易)?

Mur*_*iar 89

任播是一种网络技术,其中从多个位置通告相同的 IP 前缀。然后,网络根据路由协议成本和可能的广告服务器的“健康状况”来决定将用户请求路由到哪个位置。

任播有几个好处。首先,在稳定状态下,任播服务(DNS 是一个很好的例子)的用户将始终连接到“最近的”(从路由协议的角度来看)DNS 服务器。这减少了延迟,并提供了一定程度的负载平衡(假设您的消费者均匀分布在您的网络中)。

另一个优点是易于配置管理。您不必根据服务器/工作站的部署位置(亚洲、美洲、欧洲)配置不同的 DNS 服务器,而是在每个位置配置一个 IP 地址。

根据任播的实施方式,它还可以提供一定程度的高可用性。如果任播路由的通告是以某种健康检查为条件的(例如,在本例中对知名域的 DNS 查询),那么一旦服务器出现故障,它的路由就可以被删除。一旦网络重新收敛,用户请求将被无缝转发到下一个最近的 DNS 实例,无需任何手动干预或重新配置。

最后一个优势是水平缩放;如果您发现一台服务器负载过重,只需将另一台服务器部署在一个位置,使其能够处理过载服务器请求的一部分。同样,由于不需要客户端配置,这可以很快完成。

  • 否 - 发送到任播地址的流量只会到达广告该地址的一个位置。您可能会想到 _multicast_,其中发送到多播组地址的数据包将发送到对该组感兴趣的所有主机。 (5认同)
  • @Pacerier - 你不能使用域名来查找你的 DNS 服务器 - 这是一个循环依赖。示例:配置 dns.foo.com。作为您的 DNS 服务器。我将请求发送到 dns.foo.com 到哪个 IP 地址?我知道了,我去 DNS 查一下。ETC。 (3认同)

cag*_*nut 32

在理解“任播”时经常让我感到困惑的一件事是,虽然它是一个高级术语,但在实际实现中通常可以归结为两个示例:

  1. 路由器使用BGP通过多个AS路径通告相同的 IP 块,作为将用户引导到“更近”站点的粗略方法。同时,它只需从故障站点撤回路由,就可以提供到其他站点的几乎透明的故障转移。这对几乎任何协议都有用,但显然它引发了很多后端数据同步问题。

  2. 从您自己网络中的多个点(通过静态路由OSPFEIGRP或其他方式)广告相同的服务 IP 。如果路由的权重不同,则它充当故障转移机制。如果路由被平均加权,它可以利用大多数名牌供应商路由器的按数据包或按流负载平衡功能。您必须小心应用层协议对此感到满意,这就是为什么您几乎总是听说它与DNS 一起使用其中请求总是一个数据包,一切都是无状态的。就我个人而言,当 DNS 和适当的负载均衡器的组合几乎总是更好的解决方案时,我认为这是将应用层问题侵入网络层的一种黑客行为。

  • DNS 的问题是可以使用 google 或其他一些远程解析器,而离解析器最近的服务器可能与用户不同。当然,这仅适用于非 DNS 用途的任播(例如 tcp 任播或其他用途)。 (3认同)

diq*_*diq 16

主要用于基于UDP的服务,如DNS。基本上,您从世界各地的多个数据中心宣布相同的路线。这样,您的客户端将被发送到基于 BGP 路由的“最佳”和“最近”数据中心。我将“最佳”和“最接近”放在引号中,因为网络提供商可以以不同的方式玩游戏并从某些网络路由流量。一般来说,任播的效果最好,但这并不能保证。

例如,将您的 DNS 服务器列为 1.2.3.4 和 1.2.3.5。您的路由器会在多个数据中心中发布 1.2.3/24 的路由。如果您在日本并且在那里有一个数据中心,那么您很可能会在那里结束。如果你在美国,你会被送到你的美国数据中心。同样,它基于 BGP 路由,而不是实际的地理路由,但这通常是问题所在。


net*_*man 9

根据我最初的回复,我刚刚在我的博客上发布了另外两篇文章,标题为:任播 DNS - 第 3 部分,使用 RIP 和任播 DNS - 第 3 部分,使用 RIP(续)。后者更详细,但在 www.netlinxinc.com/netlinx-blog.html,您将找到有关如何使用 RIP 为 Anycast DNS 配置 Cisco 路由器和基于开源 Quagga 主机的路由软件的实际方法。

我目前正在撰写该系列的第四篇文章。这将提供有关如何使用 OSPF 部署 Anycast DNS 的食谱。在本系列的最后,我将展示使用 BGP 部署 Anycast DNS 的方法。

任播 DNS - 第 1 部分,概述

Anycast DNS - 第 2 部分,使用静态路由

任播 DNS - 第 3 部分,使用 RIP

任播 DNS - 第 3 部分,使用 RIP(续)