BFD白皮书

上传人:206****923 文档编号:90599826 上传时间:2019-06-13 格式:DOC 页数:12 大小:166.54KB
返回 下载 相关 举报
BFD白皮书_第1页
第1页 / 共12页
BFD白皮书_第2页
第2页 / 共12页
BFD白皮书_第3页
第3页 / 共12页
BFD白皮书_第4页
第4页 / 共12页
BFD白皮书_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《BFD白皮书》由会员分享,可在线阅读,更多相关《BFD白皮书(12页珍藏版)》请在金锄头文库上搜索。

1、BFD技术白皮书BFD技术白皮书关键词:BFD摘 要:BFD是用来实现快速故障检测的标准协议。本文对BFD技术实现和典型组网应用进行介绍。缩略语:字段英文全名中文解释BFDBidirectional Forwarding Detection双向转发检测UDPUser Datagram Protocol用户数据报协议目 录1 概述. 31.1 产生背景. 31.2 技术优点. 32 BFD技术实现. 32.1 BFD实现简介. 32.2 BFD报文. 52.2.1 BFD控制报文. 52.2.2 BFD Echo报文. 62.3 BFD会话连接建立. 72.4 定时器协商. 82.5 故障检测.

2、 93 典型组网应用. 103.1 路由协议与BFD联动典型组网应用. 103.2 快速重路由与BFD联动典型组网应用. 103.3 VRRP与BFD联动典型组网应用. 104 参考文献. 101 概述1.1 产生背景为了保护关键应用,网络中会设计有一定的冗余备份链路,网络发生故障时就要求网络设备能够快速检测出故障并将流量切换至备份链路以加快网络收敛速度。目前有些链路(如POS)通过硬件检测机制来实现快速故障检测。但是某些链路(如以太网链路)不具备这样的检测机制。此时,应用就要依靠上层协议自身的机制来进行故障检测,上层协议的检测时间都在1秒以上,这样的故障检测时间对某些应用来说是不能容忍的。某

3、些路由协议如OSPF、IS-IS虽然有Fast Hello功能来加快检测速度,但是检测时间也只能达到1秒的精度,而且Fast Hello功能只是针对本协议的,无法为其它协议提供快速故障检测。1.2 技术优点BFD协议就是在这种背景下产生的,提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制。具有以下优点:l 对网络设备间任意类型的双向转发路径进行故障检测,包括直连物理链路、虚电路、隧道、MPLS LSP、多跳路由路径以及单向链路等。l 可以为不同的上层应用服务,提供一致的快速故障检测时间。l 提供小于1秒的检测时间,从而加快网络收敛速度,减少应用中断时间,提高网络的可靠性。2 BFD

4、技术实现2.1 BFD实现简介BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。下面以OSPF与BFD联动为例,简单介绍会话工作流程。1. BFD会话建立流程图1 BFD会话建立流程图(1) OSPF通过自己的Hello机制发现邻居并建立连接;(2) OSPF在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD;(3) BFD

5、根据收到的邻居信息建立会话。2. BFD故障发现处理流程图2 BFD故障发现处理流程图(1) 被检测链路出现故障;(2) BFD检测到链路故障,拆除BFD邻居会话;(3) BFD通知本地OSPF进程BFD邻居不可达;(4) 本地OSPF进程中断OSPF邻居关系BFD有两种操作模式:异步模式和查询模式。目前Comware只支持异步模式。在此模式下,会话两端周期性地发送BFD控制报文,根据是否能收到对端的BFD控制报文来检测会话状态。另外,Comware还支持回声功能。回声功能启动后,会话的一端周期性地发送BFD Echo报文,对端不对此报文进行处理,而只将此报文转发回发送端。根据发送端是否能收到

6、BFD Echo报文来检测会话状态。BFD会话的两端可能是在直连网段(即IP报文的一跳),也可能是在不同网段。回声功能只可以检测直连网段故障,即BFD Echo报文是单跳发送;而BFD控制报文可以检测直连网段和非直连网段的故障,即BFD控制报文可以是单跳或多跳发送。2.2 BFD报文2.2.1 BFD控制报文BFD控制报文包括强制部分和可选认证部分。强制部分格式如图3:图3 BFD控制报文可选认证部分格式如图4:图4 BFD控制报文(认证部分)BFD控制报文各字段含义如表1:表1 BFD控制报文各字段含义字段含义VersBFD协议版本号,目前版本号为1Diag诊断码,表明发送方最近一次会话Do

7、wn的原因Sta发送方BFD会话当前状态,取值为:0代表AdminDown,1代表Down,2代表Init,3代表UpP会话参数变化时置位F如果收到的BFD控制报文P字段置位,则将下一个发送的BFD控制报文的F字段置位作为应答C该字段置位表明BFD的实现是独立于控制平面的A该字段置位表明报文包含认证部分,会话需要进行认证D该字段置位表明发送方希望以查询模式运行,不置位表明不希望以查询模式运行或不支持查询模式R保留位,发送时设为0,接收时忽略该字段Detect Mult检测时间倍数LengthBFD控制报文长度,单位为字节My Discriminator发送方产生的一个唯一非0值,用来标识不同的

8、BFD会话Your Discriminator如果已经收到会话邻居发送的BFD控制报文则该值为收到报文中的My Discriminator,否则为0Desired Min TX Interval发送方支持的最小BFD控制报文发送时间间隔,单位为微秒。Required Min RX Interval发送方支持的最小BFD控制报文接收时间间隔,单位为微秒Required Min Echo RX Interval发送方支持的最小BFD Echo报文接收时间间隔,单位为微秒。为0表示不支持BFD Echo报文Auth Type认证类型Auth Len可选认证部分长度,包括Auth Type和Auth

9、Len字段,单位为字节BFD控制报文采用UDP封装,目的端口号为3784,源端口号在49152到65535的范围内。2.2.2 BFD Echo报文BFD Echo报文提供了一种不依赖于BFD控制报文的故障检测方法。本端发送本端接收,远端不对报文进行处理,而只是将此此报文在反向通道上返回。因此BFD协议并没有对BFD Echo报文的格式进行定义,唯一的要求是发送方能够通过报文内容区分会话。BFD Echo报文采用UDP封装,目的端口号为3785,目的IP地址为发送接口的地址,源IP地址由配置产生(配置的源IP地址要避免产生ICMP重定向)。2.3 BFD会话连接建立& 说明:下面仅介绍通过发送

10、控制报文来建立会话并进行故障检测的过程。BFD会话建立前有主动与被动两种模式。如果一台设备为主动模式,那么在会话建立前不管有没有收到对端发来的BFD控制报文,都会主动发送BFD控制报文。如果一台设备为被动模式,那么在会话建立前就不会主动发送BFD控制报文,直到收到对端发来的BFD控制报文才发送。要建立BFD会话的两端中至少要有一端为主动模式才能成功建立起会话。下面对两端都为主动模式的会话建立过程进行说明,一端主动模式一端被动模式的会话建立过程基本相同。图5 BFD会话连接建立BFD使用三路握手的机制来建立会话,发送方在发送BFD控制报文时会在Sta字段填入本地当前的会话状态,接收方根据收到的B

11、FD控制报文的Sta字段以及本地当前会话状态来进行状态机的迁移,建立会话。l Router A和Router B的BFD收到上层应用的通知后,发送状态为DOWN的BFD控制报文。Router B的BFD状态变化同Router A。l Router B收到对端状态为DOWN的BFD控制报文后,本地会话状态由DOWN迁移到INIT,随后发送的BFD控制报文中将Sta字段填为2表明会话状态为INIT。Router A的BFD状态变化同Router B。l Router A收到对端状态为INIT的BFD控制报文后,本地会话状态由INIT迁移到UP,随后发送的BFD控制报文中将Sta字段填为3表明会话状

12、态为UP。Router B的BFD状态变化同Router A。l BFD双方状态都为UP,会话成功建立并开始检测链路状态。2.4 定时器协商BFD会话建立前BFD控制报文以1秒的时间间隔周期发送以减小报文流量。在会话建立后则以协商的时间间隔发送BFD控制报文以实现快速检测。在BFD会话建立的同时,BFD控制报文发送时间间隔以及检测时间也会通过报文交互协商确定。在BFD会话有效期间,这些定时器可以随时协商修改而不影响会话状态。BFD会话不同方向的定时器协商是分别独立进行的,双向定时器时间可以不同。BFD控制报文发送时间间隔为本端Desired Min TX Interval与对端Required

13、 Min RX Interval之中的最大值,也就是说比较慢的一方决定了发送频率。检测时间为对端BFD控制报文中的Detect Mult乘以经过协商的对端BFD控制报文发送时间间隔。如果加大本端Desired Min TX Interval,那么本端实际发送BFD控制报文的时间间隔必须要等收到对端F字段置位的报文后才能改变,这是为了确保在本端加大BFD控制报文发送时间间隔前对端已经加大了检测时间,否则可能导致对端检测定时器错误超时。如果减小本端Required Min RX Interval,那么本端检测时间必须要等收到对端F字段置位的报文后才能改变,这是为了确保在本端减小检测时间前对端已经减

14、小了BFD控制报文发送间隔时间,否则可能导致本端检测定时器错误超时。然而如果减小Desired Min TX Interval,本端BFD控制报文发送时间间隔将会立即减小;加大Required Min RX Interval,本端检测时间将会立即加大。下面详细介绍参数改变后定时器的协商过程:图6 BFD检测时间协商Router A与Router B建立BFD会话,双方的Desired Min TX Interval和Required Min RX Interval(下面简称为TX和RX)都为100ms,Detect Mult都为3。根据定时器协商规则,Router A的发送时间间隔为Route

15、r A的TX与Router B的RX中的最大值也就是100ms,Router B的发送时间间隔也是100ms,双方的检测超时时间都为300ms。如果此时将Router A的TX和RX加大到150 ms。(1) Router A比较本端的RX(150ms)和Router B的TX(100ms),从而将本端检测时间改为450ms。同时向对端发送P字段置位的BFD控制报文(TX和RX均为150ms)。(2) Router B收到报文后,给Router A回复F字段置位的BFD控制报文(TX和RX均为100ms)。同时将收到报文中的RX与本端的TX进行比较,由于TX较大,故Router B的发送间隔改为150ms。经过比较

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号