在多个数据中心定位单个 IPv6 或 IPv4 可路由前缀

网络工程 路由 ipv4 bgp ipv6 bgp-ipv6
2021-07-31 15:34:09

学术问题(目前):

是否可以从多个不同的物理数据中心向给定前缀(IPv6 和/或 IPv4)通告 BGP 路由?

我想这是多宿主,但不同。传统的多宿主是指具有多个链接的单个数据中心。这将是多个不同的地理分布数据中心。

期望的行为是这样的:如果亚洲的用户访问这些 IP 之一,他们的数据包可能会最终到达亚洲数据中心。同时,如果美国的用户向这些 IP 之一发送数据包,他们的数据包将被路由到美国数据中心。等等。相同的 IP,但网络应该倾向于将数据包路由到最近的站点。

这在当前的互联网上可能吗?是否可以使用 IPv6、IPv4 或两者兼而有之?(我怀疑您必须拥有自己的区块并发布自己的 BGP 路由或与一系列数据中心签订合同才能做到这一点......)

2个回答

您所描述的称为任播,在部署 DNS 等服务时很常见。因为路由可以改变它对于使用较长会话的事物来说是一个坏主意,但对于简短的事物,DNS 查询它被大量使用。

传统的多宿主意味着具有多个链接的单个网络。该网络可能仅限于单个数据中心,也可能跨越全球或介于两者之间的任何地方。

将相同的 IP 路由到多个不同的服务器,这样每个数据包都会到达其中一个服务器,这称为“任播”。这可以通过每个站点的单独网络、跨越所有站点的单个网络或上述的组合来实现。将所有站点放在一个网络上的优点是它为您提供了更大的灵活性,在公共互联网上,您可以广告的块大小有限制(对于 ipv4,它至少是 /24,对于 IPv6,事情更复杂)而在您自己的网络中,您可以根据需要路由各个 IP。拥有自己的全球网络还可以提高服务质量,即使对于您不打算进行任播的服务器,因为它可以让您控制更大比例的网络路径。

一般来说,任播适用于基于无状态 UDP 的请求/响应协议。建立通信会话的协议(包括任何使用 TCP 的协议)更成问题,因为 Internet 路由可能会发生变化。

对此的解决方案是对初始联系使用任播,然后移动到常规单播 IP 以继续会话。执行此操作的常用方法是对 DNS 服务器使用任播,而不是对实际服务使用任播。DNS 方法的缺点是有时 DNS 解析器可能会使用从客户端到 Internet 的不同路由。