GCP 中 VPN 到共享 VPC 的错误 BGP 路由被选为最佳路由

GCP 中 VPN 到共享 VPC 的错误 BGP 路由被选为最佳路由

我们有基于路由的 VPN 隧道,从两个站点(总共 4 个路由器)的一对 Cisco 路由器到同一共享 VPC(XPN)中的两个不同 VPN 网关。通过 BGP 共享路由到单个云路由器。我们这边的两个站点各自具有不同的 AS,每对站点在对内通过相同的 AS 对等,但对之间的对等是 EIGRP。我正在使用路由图和特定指标将 eigrp 重新分配回 BGP(反之亦然)。在一个站点,我还将输入输出重新分配到 OSPF,将另一个从静态重新分配到 OSPF。每个站点到每个站点的“本地”路由来自 ospf/static,“远程”路由来自 eigrp。

举个例子...

AS 65001 正在宣布 10.1.1.0/24 的度量为 50(它是来自 OSPF 的本地路由 rdis),以及 172.16.1.1/24 的度量为 100(它是从 EIGRP 学习到的远程路由)。

AS 65002 正在宣布 172.16.1.1/24 的度量为 50(它是一条本地路由,来自静态的 rdis),以及 10.1.1.0/24 的度量为 100(它是一条远程路由,从 EIGRP 获知)。

实际上已经公布了 62 条航线,但您也明白了。62 条航线的列表仅在度量上有所不同。


现在我的问题是...云路由器采用来自 65001 的所有路由,并使它们成为主要/活动的,而不管度量如何,并且忽略来自 65002 的较低度量路由,除非我放弃到 65001 的隧道/对等。

因此,我的流量总是能够到达需要去的地方,但却采用次优路线。

大约两周前,它运行正常,但自那时起,它只是在某个时候停止了预期的工作。

我将其中一个 AS 65002 路由器更改为 65001(仅使用邻居语句 local-as,并且还更新 GCP 端,因为我还使用 AS 65002 从这些路由器对等到 Azure),但似乎并没有改变这种行为。

答案1

我通过在出站路由图上的“远程”路由前面添加一个简单的 AS 来解决这个问题,大致如下:

router bgp 65001
 neighbor 169.254.x.y route-map DISTtoBGP out
!
route-map DISTtoBGP permit 10
 match ip address prefix-list LOCtoBGP
!
route-map DISTtoBGP permit 20
 match ip address prefix-list REMtoBGP
 set as-path prepend 65001
!
ip prefix-list LOCtoBGP seq 10 permit 10.1.0.0/16 le 24
!ip prefix-list LOCtoBGP ...
!
ip prefix-list REMtoBGP seq 10 permit 172.16.0.0/16 le 24
!ip prefix-list REMtoBGP ...

它很笨重,需要手动维护,但它能起作用。

谢谢 Navi,您关于 AS 路径长度的问题指出了简单的解决方法。

相关内容