0

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

 2 years ago
source link: https://blog.k4nz.com/33cf0e480efd18816e3a9ddd04893836/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

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

 2022-03-13   CREATED BY JENKINSBOT

网络上的链路故障或拓扑变化都会导致设备重新进行路由计算,所以缩短路由协议的收敛时间对于提高网络的性能是非常重要的。

在默认情况下,OSPF 链路故障检测时间由协议 Hello 机制决定,通常是秒级,时间较久。OSPF 通过周期性的向邻居发送 Hello 报文来实现邻居检测,检测到故障所需时间比较长,超过 1 秒钟(默认通过OSPF Dead Timer超时判断邻居失效,缺省为 40s)。

随着科技的发展,语音、视频及其它点播业务应用广泛,而这些业务对于丢包和延时非常敏感,当数据达到吉比特速率级时,较长的检测时间会导致大量数据丢失,无法满足电信级网络高可靠性的需求。

为了解决上述问题,配置 OSPF 的指定进程(或指定接口)的 OSPF 与 BFD 联动功能,可以快速检测链路的状态,故障检测时间可以达到毫秒级,提高链路状态变化时OSPF的收敛速度。

OSPF 与 BFD 联动就是将 BFD 和 OSPF 关联起来,一旦与邻居之间的链路出现故障,BFD 对链路故障的快速感应能够加快 OSPF 对于网络拓扑变化的响应。

pasted_image001.png

当开启 OSPF 并与 BFD 联动后:
1)三台设备(R1、R2、R3)间建立 OSPF 邻居关系,当邻居状态到达 Full 时,通知 BFD 以建立 BFD 会话;
2)当 R1 到 R2 间的链路出现故障后,BFD 首先感知到并通知 R1,当 R1 处理 BFD 会话 Down 事件,重新进行路由计算,新的路径为:R1-R3-R2。

BFD与OSPF联动就是将BFD和OSPF协议关联起来, BFD将链路故障的快速检测结果告知 OSPF 协议:

pasted_image003.png

1)OSPF 通过自己的 Hello 机制发现邻居并建立连接。
2)OSPF 在建立新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给 BFD;
3)BFD 根据收到的邻居信息建立会话,会话建立以后,BFD开始检测链路故障。
4)正常情况下,R1根据OSPF路径开销大小选择经过R2到达R4。

5)当R1和R2之间链路出现故障,BFD首先快速检测到链路故障,BFD会话状态变为Down并通知R1。
6)R1处理邻居Down事件,通知本地OSPF进程邻居不可达,重新进行路由计算,选择通过R3到达R4。

配置前提:
如果需要使用BFD功能快速检测链路故障,则必须在系统视图下执行bfd命令,使能全局BFD功能。

接口配置的BFD特性优先级高于进程配置的BFD特性优先级。如果打开了接口的BFD开关,则按照接口上BFD参数建立BFD会话。

可以配置OSPF IP FRR与BFD联动:
配置OSPF IP FRR特性时,需要底层能够快速响应链路变化,以便迅速将流量切换到备份链路。
将OSPF IP FRR与BFD会话绑定可以达到快速感知故障的目的,确保故障后流量切换的及时性。

[Huawei-ospf-1] bfd all-interfaces { min-rx-interval receive-interval | min-tx-interval transmit-interval | detect-multiplier multiplier-value | frr-binding } 

min-rx-interval receive-interval:指定期望从对端接收BFD报文的最小接收间隔。整数形式,取值范围是10~2000,单位是毫秒。缺省值是1000毫秒。
min-tx-interval transmit-interval:指定向对端发送BFD报文的最小发送间隔。整数形式,取值范围是10~2000,单位是毫秒。缺省值是1000毫秒。
detect-multiplier multiplier-value:指定本地检测倍数。整数形式,取值范围是3~50,缺省值是3。
frr-binding:将BFD会话状态与接口的链路状态进行绑定。当BFD会话状态变为Down时,接口的物理层链路状态也会变为Down,从而触发流量切换到备份路径。

pasted_image.png

针对如上拓扑:

[Huawei] bfd                                                                    # 使能全局 BFD 功能
[OSPF] bfd all-interface enable
[OSPF] bfd all-interface min-tx-interval 100 min-rx-interval 100 detect-multiplier 3

// 当我们 shutdown AR1.GE0/0/2 接口后,在 AR2 上,其 BFD 探测到链路故障,理解结束 OSPF 邻居关系

Feb 20 2022 22:35:08-08:00 AR2 %%01BFD/4/STACHG_TODWN(l)[13]:BFD session changed
 to Down. (SlotNumber=0, Discriminator=18874368, Diagnostic=DetectDown, Applicat
ions=OSPF, ProcessPST=False, BindInterfaceName=GigabitEthernet0/0/1, InterfacePh
ysicalState=Up, InterfaceProtocolState=Up) 
[AR2]
Feb 20 2022 22:35:08-08:00 AR2 %%01OSPF/3/NBR_CHG_DOWN(l)[14]:Neighbor event:nei
ghbor state changed to Down. (ProcessId=256, NeighborAddress=1.1.1.1, NeighborEv
ent=KillNbr, NeighborPreviousState=Full, NeighborCurrentState=Down) 
[AR2]
Feb 20 2022 22:35:08-08:00 AR2 %%01OSPF/3/NBR_DOWN_REASON(l)[15]:Neighbor state 
leaves full or changed to Down. (ProcessId=256, NeighborRouterId=1.1.1.1, Neighb
orAreaId=0, NeighborInterface=GigabitEthernet0/0/1,NeighborDownImmediate reason=
Neighbor Down Due to Kill Neighbor, NeighborDownPrimeReason=BFD Session Down, Ne
ighborChangeTime=2022-02-20 22:35:08-08:00) 

通过 BFD 探测,OSPF 能够完成快速收敛。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK