在邻居上作为出站应用的路由映射如何看到重新分配的 ospf 路由到 bgp?本地的还是外部的?

网络工程 bgp ospf 路线地图
2021-07-28 08:43:38

这是我的场景:

将 ospf 路由重新分配到 bgp 创建一个与 route-type=local 匹配的路由映射并修改下一跳(例如到 4.4.4.4) 将此路由映射分配为 bgp 邻居的出站路由映射(路由策略输出)。

BGP 通告的路由(从 ospf 重新分配的路由)是否会将 nexthop 更改为 4.4.4.4?

如果使用 redistribute 命令应用此路由映射,会发生什么情况?

2个回答

不管路由器如何知道网络,在这种情况下通过 OSPF 重新分配到 BGP,它将遵循路由映射规范。

BGP 将通过 OSPF 通告它知道的网络,下一跳将是路由映射语句。所以是的,它仍然是 4.4.4.4。

如果您要在重新分发本身上使用此路由映射,它只会过滤哪些网络要从 OSPF 重新分发到 BGP。它没有权力设置下一跳或前置或类似的东西。

这里的区别在于使用路由映射来更改特定网络的下一跳,或者首先允许重新分配某些前缀。

你的问题有两部分。第一个是“route-type=local”将匹配的前缀。后半部分是当路由映射附加到邻居时是否可以设置下一跳,而不是重新分配。

上半场很轻松。“本地”路由的概念是 BGP 概念,而不是 OSPF 概念。因此,如果您将路由映射应用于过滤本地路由的 BGP 邻居,它将匹配本地路由器正在采购的任何前缀(通过使用network语句或redistribute语句发起它们),而不匹配从其他路由器获知的任何前缀BGP 邻居。因此,如果将路由映射应用于redistribute将 OSPF 引入 BGP语句,它将不会匹配任何内容,因为不存在类型 = local 的 OSPF 路由。

关于后半部分,你让我很好奇,所以我抓了几个路由器并在实验室中为自己构建了这个。我发现的是以下内容:

通过将路由映射附加到邻居或重新分配,可以使用路由映射来设置前缀的下一跳 IP 地址。当附加到该neighbor语句时,邻居独自看到下一跳(如果配置为这样做,他随后将通告该下游)。当附加到该redistribute语句时,本地路由器会将新的下一跳放入他自己的 BGP 表中,并随后与邻居共享(如果配置为这样做)。(注意下一跳实际上是一个可达 IP,因为如果下一跳不可达,路由器可能不会安装前缀。)

正如我们所见,将路由映射应用于 redistribute 命令不仅可以过滤前缀,还可以影响下一跳(对于某些协议)。这是一个文档,向您展示了哪些协议支持哪些match语句和set语句。

https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/49111-route-map-bestp.html#tables