目录
BFD是双向检测机制,是一种介质无关、协议无关的快速检测机制
三个模块:应用模块------track模块------BFD检测模块
单跳检测:不可以跨域三层设备,配置时如果添加interface关键词,即为单跳检测。
发送BFD报文时,请求peer-ip的MAC地址进行报文发送。
多跳检测:可以跨越三层设备,配置时不添加interface关键词,即为多跳检测。
发送BFD报文时,会请求peer-ip下一跳的MAC地址进行报文发送。
建立BFD会话连接的时候:依据上层协议建立会话(ospf,vrrp,静态路由,策略路由),BFD自己不会建立邻居关系
建立会话关系:设备表示:
本地标识符
远端标识符
commit开启
BFD的故障检测机制:
BFD依赖会话进行故障的检测,我们在两个系统之间建立BFD会话,并沿它们之间的路径快速的发送BFD控制报文,如果一方在特定的时间内没有收到BFD控制报文,那么BFD将会认为会话down,此时联动其他协议或者接口状态的改变。
BFD会话的建立两种方式:
1、静态建立BFD会话:静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
2、动态建立BFD会话:动态的BFD会话建立多应用到与协议的联动功能中,动态建立BFD会话时,系统对本地标识符和远端标识符的处理方式如下:
动态分配本地标识符:当应用程序触发动态创建BFD会话时,系统随机分配一个本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。
自动学习远端标识符:当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
BFD通过控制报文中的Local Discriminator和Remote Discriminator区分不同的会话。
静态配置BFD会话的本地标识符取值范围是1 ~8191,动态创建BFD会话的本地标识符取值范围是8192~16383。
BFD会话建立过程:
BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变。BFD状态机的建立和拆除都采用三次握手机制,以确保两端系统都能知道状态的变化。..以BFD会话建立为例,简单介绍状态机的迁移过程。
1. RouterA和RouterB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;
对于动态创建BFD会话,Remote Discriminator的值是0。
2. RouterB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
3. RouterB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
4. RouterA的BFD状态变化同RouterB。
5. RouterB收到状态为Init的BFD报文后,本地状态切换至Up。
6. RouterA的BFD状态变化同RouterB。
BFD的两种检测方式:
1、单跳检测:单跳检测只能测试两台设备之间的直连链路,即不能跨域三层。(Echo即单播回声也仅限于单跳检测中)
2、多跳检测:多条检测可用于任意两否设备之间,不要求设备直连,可以跨域三层设备检测。在BFD中分为单跳检测和多跳检测两种&