BFD:

vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 15

vrrp vrid 1 track interface GigabitEthernet2/0/1 reduced 15

 

BFD使用组播IP地址224.0.0.184

 

 

 

 

(1)概念:

双向转发检测BFD是一种全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况,和IGP等结合使用,默认1000毫秒发送一次报文,如果没收到对方的报文会默认发送三次

 

 

(2)目的:

为了减小设备故障对业务的影响,提高网络的可靠性,网络设备需要能够尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务继续进行。在现有网络中,有些链路通常通过硬件检测信号,如sdh告警,检测链路故障,但并不是所有的介质都能够提供硬件检测。此时,应用就要依靠上层协议自身的hello报文机制来进行故障检测。上层协议的检测时间都在1秒以上,这样的故障检测时间对某些应用来说是不能容忍的。同时,在一些小型三层网络中,如果没有部署路由协议,则无法使用路由协议的hello报文机制来检测故障。

 

 

 

(3)bfd原理:

bfd在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。bfd本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送bfd报文,如果在检测时间内没有收到bfd报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。

 

 

 

①“bfd检测的时候是检测的是对方的地址”利用自己的快速的“helllo”包快速感知

 

②特殊:

单臂回声功能:一般是和运营商连接的时候配置的,源是自己,目的也是自己,字节发出的报文。能够回来就说明链路是没问题的

 

 

(4)bfd模式:

bfd会话建立后有两种模式:异步模式和查询模式

 

1、异步模式:设备周期性发送bfd控制报文,如果在检测时间内没有收到对端发送的bfd控制报文,则认为会话down。

 

 

2、查询模式:设备周期性发送bfd控制报文,但是对端(缺省为异步模式)会停止周期性发送bfd控制报文。如果通信双方都是查询模式,则双方都停止周期性发送bfd控制报文。当需要验证连接性的时候,设备会以协商的周期连续发送几个p比特位置1的bfd控制报文。如果在检测时间内没有收到返回的报文,就认为会话down;如果收到对方回应的f比特位置1的报文,就认为连通,停止发送报文,等待下一次触发查询。

 

3、另外,也可以链路两端通过发送控制报文建立和保持bfd会话,任意一端通过发送echo报文检测链路状态

 

 

(5)bfd优点:

轻负荷、快速检测故障、对任何介质、任何协议层进行实时检测

 

 

 

(6)bfd会话建立示意图举例:

 

bfd_bfd(快速hello)

 

两台设备上同时配置了ospf与bfd,bfd会话建立过程如下所示:

①ospf通过自己的hello机制发现邻居并建立连接。

 

②ospf在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给bfd。

 

③ bfd根据收到的邻居信息建立会话。

 

④会话建立以后,bfd开始检测链路故障,并做出快速反应。

 

 

 

(7)bfd故障发现:

bfd_bfd(快速hello)_02

 

被检测链路出现故障。

①bfd快速检测到链路故障,bfd会话状态变为down。

 

②bfd通知本地ospf进程bfd邻居不可达。

 

③本地ospf进程中断ospf邻居关系。

 

 

 

(8)bfd会话建立方式:

 

 

1、静态建立bfd会话:本地标识符(local discriminator)

 

 

①静态建立bfd:通过命令行手工配置bfd会话参数,包括配置本地标识符和远端标识符等,然后手工下发bfd会话建立请求。

 

配置:

bfd dtoa bind peer-ip 10.1.1.1

discriminator local 20

discriminator remote 10

ip route-static 10.1.2.0 255.255.255.0 10.1.1.2 track bfd-session atod

 

 

②bfd自动会话配置:

bfd 1 bind peer-ip 10.2.128.1 source-ip 10.2.128.2 auto

 

 

 

③bfd和接口的联动:

bfd btoa bind peer-ip default-ip interface g 1/0/1

 

 

 

④bfd和track的联动:

创建和BFD会话关联的Track项1,检测Router B是否可以与静态路由的下一跳Router A互通。

track 1 bfd echo interface gigabitethernet 2/0/1 remote ip 10.2.1.1 local ip 10.2.1.2

 

参考博客:

https://blog.csdn.net/pgl608/article/details/82893265

 

 

 

2、动态建立bfd会话:远端标识符(remote discriminator)

 

 

“bfd通过控制报文中的local discriminator和remote discriminator区分不同的会话”

 

 

①动态建立bfd会话时:系统对本地标识符和远端标识符的处理方式如下:

动态分配本地标识符

 

②当应用程序触发动态创建bfd会话时,系统分配属于动态会话标识符区域的值作为bfd会话的本地标识符。然后向对端发送remote discriminator的值为0的bfd控制报文,进行会话协商

自学习远端标识符

 

③当bfd会话的一端收到remote discriminator的值为0的bfd控制报文时,判断该报文是否与本地bfd会话匹配,如果匹配,则学习接收到的bfd报文中local discriminator的值,获取远端标识符。

 

 

 

(9)bfd检测机制:

①bfd的检测机制是两个系统建立bfd会话,并沿它们之间的路径周期性发送bfd控制报文,如果一方在既定的时间内没有收到bfd控制报文,则认为路径上发生了故障。

 

 

②bfd提供异步检测模式。在这种模式下,系统之间相互周期性地发送bfd控制报文,如果某个系统连续几个报文都没有接收到,就认为此bfd会话的状态是down。

 

 

 

 

(10)bfd会话过程:

bfd会话有四种状态:down、init、up和admindown。会话状态变化通过bfd报文的state字段传递,系统根据自己本地的会话状态和接收到的对端bfd报文驱动状态改变。bfd状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。

bfd_bfd(快速hello)_03

①routera和routerb各自启动bfd状态机,初始状态为down,发送状态为down的bfd报文。对于静态配置bfd会话,报文中的remote discriminator的值是用户指定的;对于动态创建bfd会话,remote discriminator的值是0。

 

②routerb收到状态为down的bfd报文后,状态切换至init,并发送状态为init的bfd报文。

 

③routerb本地bfd状态为init后,不再处理接收到的状态为down的报文。

 

④routera的bfd状态变化同routerb。

 

⑤routerb收到状态为init的bfd报文后,本地状态切换至up。

 

⑥routera的bfd状态变化同routerb。

 

⑦双方up,周期性发hello包

 

bfd_bfd(快速hello)_04

 

 

 

 

 

(10)bfd的联动应用:

 

1、bfd与静态路由联动:

①静态路由自身没有检测机制,当网络发生故障的时候,需要管理员介入。bfd与静态路由联动特性可为公网静态路由绑定bfd会话,利用bfd会话来检测静态路由所在链路的状态。

 

②bfd与静态路由联动可为每条静态路由绑定一个bfd会话,当这条静态路由上绑定的bfd会话检测到链路故障(由up转为down)后,bfd会将故障上报路由管理系统,由路由管理模块将这条路由设置为“非激活”状态(此条路由不可用,从ip路由表中删除)。当这条静态路由上绑定的bfd会话成功建立或者从故障状态恢复后(由down转为up),bfd会上报路由管理模块,由路由管理模块将这条路由设置为“激活”状态(此路由可用,加入ip路由表)

 

 

2、bfd与ospf联动:

bfd与ospf联动就是将bfd和ospf协议关联起来,通过bfd对链路故障的快速感应进而通知ospf协议,从而加快ospf协议对于网络拓扑变化的响应。

 

bfd_bfd(快速hello)_05

 

 

 

 

3、bfd与is-is联动:

bfd_bfd(快速hello)_06

①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功能,在routera和routerb上配置了bfd与is-is联动。当routera和routerb之间的链路故障时,bfd能够快速检测到故障并通告给is-is协议,is-is down掉此接口的邻居,从而触发拓扑计算,同时更新lsp使得其他邻居(如routerb的邻居routerc)及时收到routerb的更新lsp,实现了网络拓扑的快速收敛。