「OSPF」- 与 BGP 联动(OSPF-BGP Association)

  CREATED BY JENKINSBOT

问题描述

当有新设备加入到网络中,或设备重启时,可能会出现在 BGP 收敛期间内网络流量丢失的现象。

R1、R2、R3、R4 运行 OSPF,并建立 IBGP 全互联。其中 R3 是 R2 的备份设备。

当网络环境稳定时,R1 访问 10.1.5.5/32 的流量路径为:R1-R2-R4-R5;

当 R2 故障时,R1 访问 10.1.5.5/32 的流量路径切换到:R1-R3-R4-R5;

当 R2 恢复后,R1 访问 10.1.5.5/32 的流量路径恢复为:R1-R2-R4-R5,但是此时会出现丢包。

原因分析

出现丢包的原因是 IGP 收敛速度比 BGP 快而造成的:
1)当 R2 恢复后,R2 的 OSPF 先收敛。
2)此时 R1 若要访问 10.1.5.5/32,先查 BGP 路由,下一跳为 R4;再查 IGP 路由,会根据 IGP 路由传递给 R2;
3)当 R2 收到该流量后,会查 BGP 路由。由于 BGP 还未完成收敛,发现没有到达 10.1.5.5/32 的路由,则不会转发数据,造成流量丢失。

补充说明:
1)R1 去往 10.1.5.5/32 的下一跳为 R4 的原因是:在实际 BGP 网络中,R1 是不会得知 R4<=>R5 间的网络,需要配置 NextHopLocal 才能使 R1.BGP-Route(10.1.5.5/32) 生效,所以 R1.BGP-Route(10.1.5.5/32).NextHop 为 R4;

解决方案

通过使能 OSPF-BGP-Association(OSPF 与 BGP 联动)特性,能够解决流量丢失问题。

原理简述

核心原理是:通过足够的等待时间,等待 BGP 收敛完成。

使能 OSPF-BGP-Association 特性,设备会在设定的联动时间内保持为 Stub-Router,配置 Stub-Router 是一种特殊的路由选路,配置 Stub-Router 的路径不被优选,原因是:该设备发布的 LSA 中的链路 Metric 为最大值(65535),从而告知其它 OSPF 设备不要使用该路由器来转发数据,以尽量避免数据从此路由器转发。用于保护此路由器链路。当经过 on-startup interval 时间后,才能成为普通路由器。

在 R2 上,当开启该特性后,在完成 BGP 收敛前,R1 不把流量转发到 R2 上,而是继续使用备份设备 R3 转发流量,直到 R2 上的 BGP 路由完成收敛。

应用场景

通常使用在升级等维护操作的场景。

配置案例

配置 Stub-Router 特性:

[Huawei-ospf-1] stub-router [ on-startup [ interval ] ]
on-startup [ interval ]:在发生重启或故障时,设备保持为 Stub 路由器的时间间隔。整数形式,5s~65535s,default=500s
如果未配置 on-startup 参数,则表示该设备始终保持为 Stub-Router,即所有来自这个设备的路由条目 Cost 值均设为65535。
如果已配置 on-startup 参数,则表示该设备仅在重启或者故障时保持为 Stub-Router,保持时间由interval参数决定。