如何选择最优化的 BGP Anycast 组合与 BGP as-path 前置

网络工程 bgp 任播
2021-07-18 05:15:42

问题如下: 假设我有 3 个 POP (Points of Presence) 点,它们具有相同的 IP 地址并且位于不同的国家,例如:USA, Japan, England. 这三个国家服务于全世界的互联网用户。我们希望所有美国地区请求都到美国 POP 点,所有日本地区请求都到日本 POP 点,所有欧洲地区请求都到英国 POP 点。

但事实并非如此,我们发现可能日本要求去英国,还有一些美国要求去日本。

所以现在,我的解决方案是为三个点(ISP AS)添加 AS 路径。例如,如果我向美国加 1,向日本加 3,向英国加 5。那么去英国的请求会更少,去美国的请求会更多,因为英国作为路径变得更长而美国变得更短。但这也可能导致欧洲要求也离开英国前往美国。

如果 as-path 前置范围是 1-5,则有 5*5*5 组合,例如 {1,1,1},{1,2,3},{2,5,1}...

所以我想知道是否有一个很好的算法来为问题选择最佳组合。

实际上,在我们的真实环境中,我有 20 个 POP 点,而不是 3 个。

1个回答

正如 Ron Trunk 已经在评论中指出的那样,使用 AS 前置来实现这一点可能很困难,甚至可能是不可能的。其他网络可以完全忽略您的前缀,只是根据其本地偏好选择最佳路径。只有当您在每个 PoP 上都有很多 BGP 对等方时,您才能通过分别为每个对等方设置 AS 前置来影响一些入站流量,但您仍然几乎没有控制权。

常见的解决方案是使用 CDN 或使用全局负载平衡的形式,其中 DNS 服务器使用它认为最适合的集群的 IP 地址进行响应,或者 HTTP 代理在第一次访问后重定向客户端到更本地的集群。