在我的情况下,选播是否有助于我,以及如何实现它?

我有几台不同IP的服务器,部署在不同的数据中心(大多数地理位置靠近我们的用户)。 让我们设想一下,这是简单的Web服务器。

我想要的是服务器的单个IP地址,所有用户都可以简单地使用它,并将客户端路由到最近的服务器。

我认为使用任播地址可能会帮助我。 我不明白的是

  1. 如我所见,Anycast只用于DNS服务器。 我相信这是由于非常简单(无状态)的DNS协议本质。 选播是否适用于networking服务器? 会话路由到一台服务器保持连接到唯一的服务器(所以说,所有的保活请求路由到同一台服务器),或每个请求可以去不同的服务器?

  2. 我如何在实践中实现任播? 我知道我需要一个自治系统(好的,我有一个),然后我需要一些服务器状态感知的BGP播音员(所以它会宣布我的任播地址,只有当/当服务器能够回答) – 我不知道要使用什么。

有人对Anycast部署有任何经验吗? 这个想法很简单,但我发现实际执行的信息太less了。

先谢谢你!

你需要有一个ASN。 你不能真正宣布less于25个networking。 不能保证任何会话都会经过相同的路由,但是大多数会使用相同的path。

然而,这与应用程序会话无关,因为路由器不是会话感知的 – 它们只是转发数据包而不pipe状态/types/标志。 选播用于所有types的服务。

用户将最终在拥有IP的服务器(或负载均衡器)上,这与它结束于哪个服务器无关。 如果客户端1.1.1.1与服务器2.2.2.2对话,则客户端将始终与2.2.2.2进行通信,而不pipe在Internet或Intranet上如何路由。

路由器不是“服务器状态感知”,它宣布networking – 而不是个人IP。 它不会知道或关心服务器是否能够响应,我想你是与负载平衡器 (如IPVS,HAproxy)混淆。

如果你没有混淆它,那么你需要多个运输提供商宣布你的networking(或部分,至less25)。 如果您位于同一地点,则可以直接要求您的提供商宣布您的networking。 我认为宣布客户ASN的function是通过AS-SET的信息,但是我对此有点不确定。