BGP 收敛问题

网络工程 思科 路由 bgp
2021-07-12 07:04:58

我的 Cisco 2921 路由器上有 2 个不同的运营商,我将第一个运营商的权重设置为 350,以强制其用于出站流量,我将第二个运营商的权重设置为 300。

我正在从两个提供商那里收到 BGP 全表。

我的问题是当我与运营商 #1 的 BGP 会话断开连接时,从运营商 #1 接收的路由需要大约 5-10 分钟才能从我的路由表中删除,以便强制我出站到第二个运营商。我该如何解决这个问题?当与运营商 #1 的 BGP 会话断开连接时,是否会立即删除所有路由?

2个回答

这里有两个问题:

  1. BGP keepalives是60秒,hold down timer是3倍。所以这是您的下限,除非您与您的运营商合作并调整您的计时器。你们都需要有相同的计时器值。

  2. 您正在从两家运营商处收到完整的路线。这是来自每个运营商的超过 400,000 条路线。因此,当运营商丢弃会话时,您的路由器需要处理那么多条目。在像 2900 这样的小型路由器上,这可能需要一些时间。

一种想法是只从您的运营商接收默认路由。您仍然可以使用本地优先级来确定运营商的优先级,但处理一条路线比处理 400,000 条路线要快得多。不要忘记您仍然受到#1 的限制。

正如@ronmaupin 的评论所建议的,另一种解决方案是根本不接受任何 BGP 路由,而是使用静态默认路由(每个 ISP 具有不同的管理距离)以及对象跟踪。

您可以使用 IP SLA ping ISP 的内部路由器,并使用它来跟踪默认路由。这将在几秒钟内进行故障转移,而不是 BGP 的 3 分钟。