在正常情况下,BGP在网络发生变化后可能需要几秒钟到几分钟的时间来收敛。从高层次来看,BGP经历以下过程:
- BGP通过内部网关协议(IGP)或BFD事件或接口事件了解到故障。这些都是BGP获知网络中故障的方法。
- BGP从路由信息库(RIB)中撤回路由,然后RIB从转发信息库(FIB)和分布式FIB(dFIB)中撤回这些路由。这个过程清除了受影响前缀的数据路径。
- BGP向其邻居发送撤回消息。这样邻居节点也能了解到网络中的更改。
- BGP计算受影响前缀的下一条最佳路径。这是一个复杂的过程,涉及路径属性、策略等多种因素。
- BGP将受影响前缀的下一条最佳路径插入到RIB中,然后RIB将它们安装到FIB和dFIB中。
这个过程可能需要几秒钟到几分钟的时间来完成。它的时间长短取决于网络延迟、网络的收敛时间以及设备上的本地负载。只有在控制平面收敛后,数据平面才会收敛。
BGP PIC功能是通过BGP、RIB、Cisco Express Forwarding和MPLS中的额外功能来实现的。
• BGP功能:
BGP PIC影响IPv4和VPNv4地址族下的前缀。对于这些前缀,BGP除了计算主要的最佳路径外,还会计算一个额外的次佳路径(称为备份路径或替代路径)。BGP将最佳路径和备份路径或替代路径安装到BGP RIB中。备份或替代路径提供了一个快速重路由机制,以应对单一网络故障。BGP还将其替代或备份路径包含到IP RIB的应用编程接口(API)中。
• RIB功能:
对于BGP PIC,如果可用,RIB会为每条路由安装一个替代路径。如果RIB选择包含备份或替代路径的BGP路由,它会将备份或替代路径与最佳路径一起安装。RIB还将替代路径包含在其与FIB的API中。
• Cisco Express Forwarding功能:
使用BGP PIC时,Cisco Express Forwarding会为每个前缀存储一个替代路径。当主路径出现故障时,Cisco Express Forwarding以与前缀独立的方式搜索备份或替代路径。Cisco Express Forwarding还会监听BFD事件,以快速检测本地故障。
• MPLS功能:
MPLS转发与Cisco Express Forwarding相似,因为它会存储替代路径,并在主路径出现故障时切换到替代路径。
当启用BGP PIC功能时,BGP会计算每个前缀的备份或替代路径,并将其安装到BGP RIB、IP RIB和FIB中。这在网络故障后提高了收敛速度。BGP PIC功能可以检测两种类型的网络故障。
核心节点或链路故障(内部边界网关协议[iBGP]节点故障):如果PE节点或链路发生故障,那么该故障会通过IGP收敛被检测到。IGP通过RIB将故障情况传递给FIB。
本地链路或直接邻居节点故障(外部边界网关协议[eBGP]节点或链路故障):为了在不到一秒的时间内检测到本地链路故障或eBGP单跳对等节点故障,必须启用BFD(双向转发检测)。Cisco Express Forwarding通过查找BFD事件来检测eBGP单跳对等的故障。
数据平面的收敛:在检测到故障后,Cisco Express Forwarding会为受故障影响的所有前缀检测备用的下一跳。数据平面的收敛在几分之一秒内完成,这取决于BGP PIC实现是在软件中还是硬件中。
控制平面的收敛:在检测到故障后,BGP通过IGP收敛或BFD事件了解到故障情况,并发送撤回消息给相关的前缀,重新计算最佳路径和备份或替代路径,并在网络中宣传下一个最佳路径。
。