是否可以通过更短的前缀公告在不中断服务的情况下撤回更长的前缀?

网络工程 bgp
2021-07-16 08:07:04

使用示例 IPv4 地址进行讨论,假设我已使用 BGP 向 Internet 宣布来自数据中心 A 的前缀 192.0.0.0/16,并且我还宣布了来自不同数据中心 B 的更长前缀 192.0.2.0/24(子集) .

在实践中,当数据中心 B 撤回较长的 /24 前缀时,会观察到一段服务中断时间(10 秒到 2 分钟之间),即使数据中心 A 的路由继续公布,到 /24 的流量也被有效地堵住了。

目的是数据中心 A 和 B 都能够处理相同 /24 的流量,但数据中心 B 在可用时是首选。

这种服务中断是否可以避免或最小化,以及如何避免?

1个回答

正如更具体的公告需要时间来传播一样,撤回也需要时间来传播。但与前者不同,后者导致流量在路由删除遍历树时进入死胡同。

在“A - B - C - D - E”链中,其中A是数据中心 B,在B处理撤回的瞬间,它将停止向A路由流量,但C、D、& E仍然会有更具体的路由表中的路径。C将该流量交给B 时B不再需要它。最终,更具体的将被B撤回,然后C也会撤回它,等等。虽然理论上这应该需要几秒钟,但互联网是一个非常大、非常繁忙的地方。