1. BFD检测IP链路
在IP
链路上建立BFD
会话,利用BFD
检测机制快速检测故障。BFD
检测IP链路支持单跳检测和多跳检测:
BFD
单跳检测是指对两个直连系统进行IP连通性检测,“单跳”是IP
链路的一跳。BFD
多跳检测是指BFD
可以检测两个系统间的任意路径,这些路径可能跨越很多跳,也可能在某些部分发生重叠。
# 组网应用
BFD检测单跳链路:BFD
检测两台设备之间的IP
单跳路径,BFD
会话绑定出接口。
BFD检测多跳链路:BFD
检测SwitchA
和SwitchC
之间的IP
多跳路径,BFD
会话绑定对端IP
但不绑定出接口。
2. BFD单臂回声功能
单臂回声功能是指通过BFD报文的环回操作检测转发链路的连通性。
在两台直接相连的设备中,其中一台设备支持BFD
功能,另一台设备不支持BFD
功能,只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD
功能的设备上创建单臂回声功能的BFD
会话。支持BFD
功能的设备主动发起回声请求功能,不支持BFD
功能的设备接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。
# 组网应用
如下图,SwitchA
支持BFD
功能,SwitchB
不支持BFD
功能。在SwitchA
上配置单臂回声功能的BFD
会话,检测SwitchA
到SwitchB
之间的单跳路径。SwitchB
接收到SwitchA
发送的BFD
报文后,直接在网络层将该报文环回,从而快速检测SwitchA
和SwitchB
之间的直连链路的连通性。
3.BFD与接口状态联动
BFD
与接口状态联动提供一种简单的机制,使得BFD
检测行为可以关联接口状态,提高了接口感应链路故障的灵敏度,减少了非直连链路故障导致的问题。BFD
检测到链路故障会立即上报Down
消息到相应接口,使得接口进入一种特殊的Down
状态:BFD Down
状态。该状态等效于链路协议Down
状态,在该状态下只有BFD
的报文可以正常处理,从而使接口也可以快速感知链路故障。
# 组网应用
链路中间存在其他设备,虽然三层仍是直连,但由于实际物理线路分段,一旦链路故障,两端设备需要比较长的时间才能检测到,导致直连路由收敛慢,网络中断时间长。在SwitchA
和SwitchB
上配置BFD
会话,配置接口联动后,当BFD
检测到链路出现故障,立即上报Down
消息到相应接口,使接口进入BFD Down
状态。
4.BFD与静态路由联动
与动态路由协议不同,静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。BFD for
静态路由特性可为静态路由绑定BFD
会话,利用BFD
会话来检测静态路由所在链路的状态。
BFD for
静态路由可为每条静态路由绑定一个BFD
会话,在自身满足参与选路条件的前提下,静态路由最终是否能参与选路还受BFD
会话检测状态影响。
当某条静态路由上的 BFD
会话检测到链路故障(BFD
会话检测状态为Down
)时,BFD
会将故障上报系统,系统将这条路由从IP
路由表中删除。当某条静态路由上的 BFD
会话检测到故障的链路重新建立成功(BFD
会话检测状态为Up
)时,BFD
会上报系统,系统将这条路由加入IP
路由表。缺省情况下,当 BFD
会话状态处于Admin down
(shutdown命令触发)或邻居Admin down
时,与该BFD
会话绑定的静态路由可以参与选路。但是在系统整机重启场景下,BFD
会话需要重新协商,静态路由是否能参与选路以BFD
重新协商状态为准。
BFD for
静态路由有单跳检测和多跳检测两种方式。
单跳检测
对于非迭代的静态路由,所配置的出接口和下一跳就是直连下一跳信息。这样,
BFD
会话的出接口即静态路由的出接口,对端地址即路由的下一跳。多跳检测
对于迭代的静态路由,仅配置了下一跳,需要迭代出直连下一跳和出接口。这样,
BFD
会话的对端地址为路由的原始下一跳,出接口则不限。一般情况下,迭代的原始下一跳是多跳的,非直接可达,故支持迭代的静态路由进行多跳检测。
5.BFD与OSPF联动
网络上的链路故障或拓扑变化都会导致路由的重新计算,要提高网络的可用性,缩短路由协议的收敛时间非常重要。由于链路故障无法完全避免,因此,加快故障感知速度并将故障快速通告给路由协议是一种可行的方案。
BFD
与OSPF
联动就是将BFD
和OSPF
协议关联起来,通过BFD
对链路故障的快速感应进而通知OSPF
协议,从而加快OSPF
协议对于网络拓扑变化的响应。下表显示了OSPF
协议是否绑定BFD
时收敛速度的数据:
是否绑定BFD | 链路故障检测机制 | 收敛速度 |
---|---|---|
未绑定BFD | OSPF HELLO keepalive 定时器超时 | 秒级 |
绑定BFD | BFD 会话Down | 毫秒级 |
# 组网应用
如下图,SwitchA
分别与SwitchC
和SwitchD
建立OSPF
邻居关系,SwitchA
到SwitchB
的路由出接口为Interface 1
,经过SwitchC
到达SwitchB
。邻居状态到达FULL
状态时通知BFD
建立BFD
会话。
当SwitchA
和SwitchC
之间链路出现故障,BFD
首先感知到并通知SwitchA
。SwitchA
处理邻居Down
事件,重新进行路由计算,新的路由出接口为Interface 2
,经过SwitchD
到达SwitchB
。
6.BFD与IS-IS联动
通常情况下,IS-IS
设定发送Hello
报文的时间间隔为10
秒钟,相邻设备失效的时间一般配置为Hello
报文间隔的3
倍。若在相邻设备失效时间内没有收到邻居发来的Hello
报文,将会删除邻居。设备能感知到邻居故障的时间最小也是秒级。在高速的网络环境中,这将导致报文大量丢失。
BFD
与IS-IS
联动是指BFD
会话由IS-IS
协议动态创建,不再依靠手工配置,当BFD
检测到故障时,通过路由管理通知IS-IS
协议,由协议进行相应邻居Down
处理,快速更新LSP
信息和进行增量路由计算,从而实现IS-IS
路由的快速收敛。使用BFD
并不是代替IS-IS
协议本身的Hello
机制,而是配合IS-IS
协议更快的发现邻居方面出现的故障,并及时通知IS-IS
重新计算相关路由以便正确指导报文的转发。
下表显示了IS-IS
协议是否绑定BFD
时收敛速度的数据:
是否绑定BFD | 链路故障检测机制 | 收敛速度 |
---|---|---|
未绑定BFD | hello 报文机制 | 秒级 |
绑定BFD | BFD 会话Down | 毫秒级 |
# 组网应用
如下图,在各设备上使能了IS-IS
功能,在SwitchA
和SwitchB
上配置了BFD
与IS-IS
联动。当SwitchA
和SwitchB
之间的链路故障时,BFD
能够快速检测到故障并通告给IS-IS
协议,IS-IS Down
掉此接口的邻居,从而触发拓扑计算,同时更新LSP
使得其他邻居(如SwitchB
的邻居SwitchC
)及时收到SwitchB
的更新LSP
,实现了网络拓扑的快速收敛。
7.BFD与BGP联动
BGP
协议通过周期性的向对等体发送Keepalive
报文来实现邻居检测机制,但这种机制检测到故障所需时间比较长,超过1
秒钟。当数据达到吉比特速率级别时,将会导致大量的数据丢失。因此,BGP
协议通过引入BFD
与BGP
联动功能,利用BFD
的快速检测机制,迅速发现BGP
对等体间链路的故障,并报告给BGP
协议,从而实现BGP
路由的快速收敛。
下表显示了BGP
协议是否绑定BFD
时收敛速度的数据:
是否绑定BFD | 链路故障检测机制 | 收敛速度 |
---|---|---|
未绑定BFD | keepalive 报文机制 | 秒级 |
绑定BFD | BFD 会话Down | 毫秒级 |
# 组网应用
如下图,SwitchA
和SwitchB
分别属于AS100
和AS200
,两台交换机直接相连并建立EBGP
连接。使用BFD
检测SwitchA
和SwitchB
之间的BGP
邻居关系,当SwitchA
和SwitchB
之间的链路发生故障时,BFD
能够快速检测到故障并通告给BGP
协议。
8.BFD与MPLS LSP联动
在LSP
链路上建立BFD
会话,利用BFD
检测机制快速检测LSP
链路的故障,可以提供端到端的保护。使用BFD
检测单向LSP
路径时,反向链路可以是IP
链路、LSP
或TE
隧道。检测MPLS LSP
的连通性时,BFD
会话协商有静态配置BFD
和动态创建BFD
两种方式,其中,动态创建BFD
方式只支持动态LSP
,静态配置BFD
方式则支持静态和动态LSP
。
BFD
检测LSP
的连通性,即Ingress
和Egress
之间相互周期性地发送BFD
报文。如果任何一端在检测时间内没有收到对端发来的BFD
报文,就认为LSP
状态为Down
,并向LSPM
上报LSP Down
消息。
# 组网应用
如下图,为简化起见,只考虑从PE1
到CE2
的流量。当PE1
到P1
之间的链路发生故障时,PE1
可以通过和P1
相连的接口感知到故障。但是如果P1
到PE2
之间的链路发生故障,则PE1
无法通过接口感知,这时需要结合BFD
与动态LSP
联动来进行快速故障检测。
在PE1
上有到PE2
的动态LSP
,配置BFD
与动态LSP
联动为这条动态LSP
建立BFD
会话并进行检测,同时在PE1
上配置VPN FRR
的相关策略,指定保护路径为PE1
到PE3
。当PE1
到P1
或者P1
到PE2
之间的链路发生故障时,PE1
上能迅速感知到LSP
故障,并触发VPN FRR
切换,使流量切换到PE1
到PE3
、PE3
到CE2
,实现保护。
9.BFD与MPLS TE联动
BFD
和MPLS TE
联动是MPLS TE
中的一种端到端的快速检测机制,用于快速检测隧道所经过的链路中所发生的故障。传统的检测机制依靠RSVP Hello
或者RSVP
刷新超时等进行检测,都有检测速度慢的缺点。BFD
检测机制采用快速收发报文的机制,完成这些隧道链路故障的快速检测,从而引导承载业务的快速切换,达到保护业务的目的。
BFD
支持的MPLS TE
类型有:
静态BFD与TE CR-LSP联动
静态
BFD
与TE CR-LSP
联动使用BFD
检测CR-LSP
,做到快速发现LSP
故障。BFD
会话需要手动配置。静态BFD与TE Tunnel联动
静态
BFD
与TE Tunnel
联动使用BFD
检测整条TE
隧道,触发VPN FRR
等应用进行流量切换。动态BFD与TE CR-LSP联动
动态
BFD
与TE CR-LSP
联动的作用和静态BFD
与TE CR-LSP
联动相同。所不同的是建立BFD
会话的方式,动态BFD
与TE CR-LSP
联动的BFD
会话动态触发。
其中,BFD
与TE Tunnel
联动与BFD
与CR-LSP
联动的区别是故障通告的对象不同。BFD
与TE Tunnel
联动是向VPN
等应用通告故障,触发业务流在不同隧道接口上的切换;BFD
与CR-LSP
联动是向TE
隧道通告故障,触发业务流在同一TE
隧道内的不同CR-LSP
上的切换。
通过和LSP
绑定,在Ingress
和Egress
之间建立BFD
会话。BFD
报文从源端开始经过LSP
到达宿端,宿端再对该BFD
报文进行回应,通过此方式在源端可以快速检测出LSP
所经过链路的故障状态。当检测出链路故障以后,BFD
将此信息上报给承载在该LSP
上面的应用模块,应用再将流量切换到备份路径上。
# 组网应用
BFD与TE CR-LSP联动
如下图所示,在设备S1
和设备S2
之间建立一条主Tunnel
,同时配置热备份LSP
。在设备S1
上建立一个到设备S2
的BFD
会话,用于检测该Tunnel
中的主LSP
。当主LSP
链路出现故障时,BFD
会快速通知设备S1
。收到故障信息以后,设备S1
会立即将流量切换到热备份LSP
上,从而保证流量的不中断性。
BFD与TE Tunnel联动
如上图所示,在设备S1
到P2
、P2
到设备S2
之间建立一条主Tunnel
,同时在设备S1
到P3
、P3
到设备S2
之间建立一条备份Tunnel
。在路径设备S1
到P2
、P2
到设备S2
上建立一个BFD
会话,用于检测主Tunnel
的路径。当主链路出现故障时,BFD
会快速通知设备S1
。收到故障信息以后,S1
会立即将流量切换到备份Tunnel
上,从而保证了流量的不中断。
10.BFD与VRRP联动
VRRP
的协议关键点是当Master
出现故障时,Backup
能够快速接替Master
的转发工作,保证数据流的中断时间尽量短。
当Master
出现故障时,VRRP
依靠Backup
设置的超时时间来判断是否应该抢占,切换速度在1
秒以上。将BFD
应用于Backup
对Master
的检测,可以实现对Master
故障的快速检测,缩短用户流量中断时间。BFD
对Backup
和Master
之间的实际地址通信情况进行检测,如果通信不正常,Backup
就认为Master
已经不可用,升级成Master
。VRRP
通过监视BFD
会话状态实现主备快速切换,切换时间控制在50
毫秒以内。
# 组网应用
如下图所示,SwitchA
和SwitchB
之间配置VRRP
备份组建立主备关系,SwitchA
为主用设备,SwitchB
为备用设备,用户过来的流量从SwitchA
出去。在SwitchA
和SwitchB之
间建立BFD
会话,VRRP
备份组监视该BFD
会话,当BFD
会话状态变化时,通过修改备份组优先级实现主备快速切换。
备份组优先级实现主备快速切换流程如下:
1)
BFD
检测到SwitchA
和SwitchC
之间的链路故障时,上报给VRRP
一个BFD
检测Down
事件。2)
SwitchB
上VRRP
备份组的优先级增加,增加后的优先级大于SwitchA
上的VRRP
备份组的优先级。3)于是
SwitchB
立刻升为Master
,后继的用户流量就会通过SwitchB
转发,SwitchA
成为备用设备。
11.BFD与PIM联动
正常情况下,如果共享网段上的当前DR
(Designate Router
)出现故障,其他PIM
邻居会等到邻居关系超时才触发新一轮的DR
竞选过程,组播数据传输中断的时间将会不小于邻居关系的超时时间,通常是秒级。
BFD
与PIM
联动的特点是可以进行快速故障检测,能够在毫秒级别内通知PIM
模块触发新一轮的DR
竞选,而不是等到邻居关系超时。
BFD
与PIM
联动同时也适用于共享网段上Assert
竞选的过程,可以快速响应Assert Winner
接口故障。
下表显示了PIM
协议是否绑定BFD
时收敛速度的数据:
是否绑定BFD | 链路故障检测机制 | 收敛速度 |
---|---|---|
未绑定BFD | 邻居关系超时 | 秒级 |
绑定BFD | BFD 会话Down | 毫秒级 |
# 组网应用
如下图,在与用户主机相连的共享网段上,SwitchC
的下游接口Interface1
和SwitchD
的下游接口Interface2
之间建立PIM BFD
会话,通过在链路两端发送BFD
检测报文检测链路状态。
SwitchC
作为当前DR
,下游接口Interface1
负责接收端组播数据的转发。若接口Interface1
发生故障,BFD
快速把会话状态通告给RM
,再由RM
通告给PIM
。PIM
模块触发新一轮的DR
竞选,SwitchD
作为新当选的DR
,下游接口Interface2
在短时间内向接收端转发组播数据,从而缩小组播数据传输的中断时间。