为什么BGP在这里没有正确选择路径?

网络工程 bgp
2021-07-16 21:57:07

在此处输入图片说明

在上图中邻居关系/对等关系是如此

R1--->R2 
R1--->R3

R2 和 R3 不是直接或什至间接(通过 R1)对等体

R2--->R4
R3--->R6

R4 和 R6 未连接,因此它们不是对等体

R4--->R5
R6--->R7
R5--->R7

到目前为止没问题,一切正常,R2 可以看到 AS 2000 的 55.55 网络和 AS 1000 的 77.77 网络,通过它们只有一个且唯一的出口接口!!

R2#show ip bgp

   Network          Next Hop             Metric LocPrf Weight Path
> 55.55.1.0/24     10.1.24.4             0 3000 2000 i
> 55.55.2.0/24     10.1.24.4             0 3000 2000 i
> 77.77.1.0/24     10.1.24.4             0 3000 2000 1000 i
> 77.77.2.0/24     10.1.24.4             0 3000 2000 1000 i

R3#sh ip bgp

   Network          Next Hop             Metric LocPrf Weight Path
> 55.55.1.0/24     10.1.36.6             0 3000 1000 2000 i
> 55.55.2.0/24     10.1.36.6             0 3000 1000 2000 i
> 77.77.1.0/24     10.1.36.6             0 3000 1000 i
> 77.77.2.0/24     10.1.36.6             0 3000 1000 i

但问题是当我在 R2 和 R3 之间添加一个链接并使它们对等而不是看到 55.55 和 77.77 网络中的每一个的 2 条路径时,他们只看到其中一个(2 条路径),而另一个只是在路径上我意思是

R2(config-router)#do sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
> 55.55.1.0/24     10.1.24.4             0 3000 2000 i
> 55.55.2.0/24     10.1.24.4             0 3000 2000 i
>i77.77.1.0/24     10.1.23.3             0    100   0 3000 1000 i
                   10.1.24.4             0 3000 2000 1000 i
>i77.77.2.0/24     10.1.23.3             0    100   0 3000 1000 i
                   10.1.24.4             0 3000 2000 1000 i

据我了解,R2 也应该通过 R3 学习 55.55 网络,我的意思是从这条路径 R3-->R6-->R7-->R5,因为这些路由器是对等的,R6 也有到 55.55 网络的路由,而 R7 得到了那些如此等等,为什么我们看不到一条通过那条路的路?并且也在 R3 上

R3(config-router)#do sh ip bgp

   Network          Next Hop            Metric LocPrf Weight Path
>i55.55.1.0/24     10.1.23.2                0    100      0 3000 2000 i
                   10.1.36.6                0 3000 1000 2000 i
>i55.55.2.0/24     10.1.23.2                0    100      0 3000 2000 i
                   10.1.36.6                0 3000 1000 2000 i
> 77.77.1.0/24     10.1.36.6                0 3000 1000 i
> 77.77.2.0/24     10.1.36.6                0 3000 1000 i

并且 R3 也应该通过 R2 学习 77.77 网络我的意思是R2-->R4-->R5-->R7 但为什么这没有发生?顺便说一句,我知道最佳实践是在 AS 中的路由器之间使用完整的 iBGP,而且我知道我们最好在这些边缘路由器之间建立直接链接,这样就无需说明或夸大明显的最佳实践,只需直接回答问题即可重点谢谢。

1个回答

您没有说明您使用的是哪种硬件,但通常 BGP 只会选择一个最佳路径。您看到的是相应路由器上的 BGP 选择的最佳路径。如果此路径不可用,路由器将选择另一条路径。例如,如果 R2 和 R4 之间的链路出现故障,R2 将选择通过 R3->R6 的路径等等。

在 Cisco 设备上,您可以使用show ip bgp 55.55.2.0/24.

此外,如果路由器从另一个 iBGP 对等方接收到更好的路径,则它不会将其次优路径发送到该路由器。这将解释为什么您只看到一条路径。如果您想始终向其他 iBGP 路由器宣布最佳外部/eBGP路径,您可以(在 Cisco 上)使用bgp advertise-best-external 命令

请注意,所有这些都假设您具有通过环回 IP 的 BGP 会话的标准 iBGP 设置,并且所有 BGP 下一跳都可以访问(直接或通过某种方式,如果 IGP)。

此外,Cisco对 BGP 路径选择过程很好的描述,可以帮助您进一步了解路由器选择此路径的原因。

你的榜样

您在 R2 和 R3 之间建立 BGP 会话。现在会发生什么?

R2从 R3接收以下路径信息

  • 55.55.1.0/24 AS_PATH:3000 1000 2000
  • 55.55.2.0/24 AS_PATH:3000 1000 2000
  • 77.77.1.0/24 AS_PATH:3000 1000
  • 77.77.2.0/24 AS_PATH:3000 1000

R3从 R2接收以下路径信息

  • 55.55.1.0/24 AS_PATH:3000 2000
  • 55.55.2.0/24 AS_PATH:3000 2000
  • 77.77.1.0/24 AS_PATH:3000 2000 1000
  • 77.77.2.0/24 AS_PATH:3000 2000 1000

R2运行它的最佳路径算法

对于 55.55.1.0/24 和 55.55.2.0/24,它具有较短的 AS_PATH (3000 2000),因此它将继续使用从 R3 接收到的路径(3000 1000 2000)。

对于 77.77.1.0/24 和 77.77.2.0/24,它从 R3 接收到更好的路径 (3000 1000),因此它将使用此路径。R2 现在将向 R3 发送两个前缀的提款及其旧的最佳路径 (3000 2000 1000),因为它不再是最佳路径!来自 eBGP 对等方的旧最佳路径仍然存在于 R2s RIB 中,但它不再是活动路径。

一旦 R3 收到提款,它就会从其 RIB 中删除路径。

R3 运行它的最佳路径算法

R3 与 R2 的作用相同,仅对于 R3 而言是相反的。它从 R2 获取 55.55.1.0/24 和 55.55.2.0/24 的新最佳路径,因此它将旧路径的撤回发送到 R2。

一旦 R2 收到提款,它就会从其 RIB 中删除路径。

两台路由器上的 BGP 表现在都处于您显示的状态。