BFD技术白皮书Word下载.docx

上传人:b****2 文档编号:14844109 上传时间:2022-10-25 格式:DOCX 页数:10 大小:264.48KB
下载 相关 举报
BFD技术白皮书Word下载.docx_第1页
第1页 / 共10页
BFD技术白皮书Word下载.docx_第2页
第2页 / 共10页
BFD技术白皮书Word下载.docx_第3页
第3页 / 共10页
BFD技术白皮书Word下载.docx_第4页
第4页 / 共10页
BFD技术白皮书Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

BFD技术白皮书Word下载.docx

《BFD技术白皮书Word下载.docx》由会员分享,可在线阅读,更多相关《BFD技术白皮书Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

BFD技术白皮书Word下载.docx

同时,在现有的IP网络中不具备秒以下的间歇性故障修复功能,而传统路由架构在对实时应用(如语音)进行准确故障检测方面能力有限,伴随着VoIP应用的激增,实现快速网络故障检测和修复越发显得必要。

BFD协议的出现,为上述问题提出了一种解决方案,BFD能够在系统之间的任何类型通道上进行故障检测,这些通道包括直接的物理链路,虚电路,隧道,MPLSLSP,多跳路由通道,以及非直接的通道。

同时正是由于BFD实现故障检测的简单、单一性,致使BFD能够专注于转发故障的快速检测,帮助网络以良好QoS实现语音、视频及其它点播业务的传输,从而帮助服务提供商基于IP网的实现,为客户提供所需的高可靠性、高适用性VoIP及其它实时业务。

2技术介绍

2.1协议概述

BFD是一个简单的“Hello”协议,在很多方面,它与那些著名的路由协议的邻居检测部分相似。

一对系统在它们之间的所建立会话的通道上周期性的发送检测报文,如果某个系统在一定的时间内没有收到对端的检测报文,则认为在这条到相邻系统的双向通道的某个部分发生了故障。

在某些条件下,为了减少负荷,系统之间的发送和接收速率需要协商。

2.2报文格式

BFD发送的检测报文是UDP报文,定义两种类型的报文

✧控制报文

其格式如下:

●Vers:

BFD协议版本号,目前为1

●Diag:

诊断字,标明本地BFD系统最近一次会话状态发生变化的原因

●Sta:

BFD本地状态

●P:

参数发生改变时,发送方在BFD报文中置该标志,接收方必须立即响应该报文

●F:

响应P标志置位的回应报文中必须将F标志置位

●C:

转发/控制分离标志,一旦置位,控制平面的变化不影响BFD检测,如:

控制平面为ISIS,当ISIS重启/GR时,BFD可以继续监测链路状态

●A:

认证标识,置位代表会话需要进行验证

●D:

查询请求,置位代表发送方期望采用查询模式对链路进行监测

●R:

预留位

●DetectMult:

检测超时倍数,用于检测方计算检测超时时间

●Length:

报文长度

●MyDiscreaminator:

BFD会话连接本地标识符

●YourDiscreaminator:

BFD会话连接远端标识符

●DesiredMinTxInterval:

本地支持的最小BFD报文发送间隔

●RequiredMinRXInterval:

本地支持的最小BFD接收间隔

●RequiredMinEchoRXInterval:

本地支持的最小Echo报文接收间隔(如果本地不支持Echo功能,则设置0)

●AuthType:

认证类型,目前协议提供有

⏹SimplePassword

⏹KeyedMD5

⏹MeticulousKeyedMD5

⏹KeyedSHA1

⏹MeticulousKeyedSHA1

●AuthLength:

认证数据长度

●AuthenticationData:

认证数据区

其中认证部分为可选部分,可以在报文中选择使用,其中认证方式可以有:

SimplePassword、KeyedMD5、MeticulousKeyedMD5、KeyedSHA1、MeticulousKeyedSHA1。

协议定义了控制报文所使用的UDP目的端口号为3784。

✧回声报文(ECHO)

BFD协议并未定义回声报文的格式,但是对于回声报文,其格式只是与本地相关,远端只需把此报文在反向通道上返回,对于本地系统必须能够根据报文中相应的内容分离到相应的会话上(所以对于回声包的发送,及其接收处理在协议中都没有定义)。

协议定义了回声包所使用的UDP目的端口号为3785。

2.3检测模式

BFD协议描述了实现双向检测的机制,可分为两种:

异步模式、查询模式,另外还有一种辅助功能回声功能,它可以与这两种模式结合起来使用。

异步模式和查询模式的本质区别在于检测的位置不同,异步模式下本端按一定的发送周期发送BFD控制报文,需要在远端检测本端系统发送的BFD控制报文;

而在查询模式下检测本端发送的BFD控制报文是在本端系统进行的。

✧异步模式

在异步模式下,系统之间相互周期性地发送BFD控制包,如果某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣布会话为Down。

✧查询模式

在查询模式下,假定每个系统都有一个独立的方法用来确认它连接到其他系统。

这样一旦一个BFD会话建立起来以后,系统停止发送BFD控制报文,除非某个系统需要显式地验证连接性,在需要显式验证连接性的情况下,系统发送一个短系列的BFD控制包,如果在检测时间内没有收到返回的报文就宣布会话为Down,如果收到对端的回应报文,协议再次保持沉默。

✧回声功能

本地发送一系列BFD回声报文,远端系统通过它的转发通道将它们环回回来。

如果本地系统连续几个回声报文都没有接收到,会话就被宣布为Down。

回声功能可以和上述两种检测模式一起使用,可以使用回声功能来代替BFD控制报文的检测的任务,这样可以降低控制报文的发送周期(异步模式下)或者完全取消BFD控制报文(查询模式下)。

2.4发送周期及检测时间

对于发送周期的计算与检测模式无关,无论在那种检测模式下,由于要考虑到链路的抖动,需要一个允许的范围,其具体的计算发送如下所述:

如果DetectMulti为1,发送周期=(90%~70%)*max(bfd.DMTI,接收的RMRI);

否则,发送周期=(100%~75%)*max(bfd.DMTI,接收的RMRI)。

对于检测时间,由于BFD存在两种检测模式,所以对于这两种检测模式下相应检测时间的计算并不完全相同。

由于两种检测模式下都可以使用回声功能,对于回声包的检测时间的计算草案中并没有给出,任何一种可以检测回声包丢失的机制都可以。

在异步模式下,由于检测的位置是在对端,所以对端计算检测时间时需要用到本端的检测倍数,公式如下:

检测时间=接收的远端DM*max(bfd.RMRI,接收到的DMTI)。

在查询模式下,由于检测的位置是在本端,所以本端计算检测时间时只需用本端的检测倍数,公式如下:

检测时间=bfd.DM*max(bfd.RMRI,接收到的DMTI)。

2.5参数修改

BFD的各种参数在会话建立起来以后都可以动态的改变,但是不影响会话的当前状态,其中可以动态改变的参数有:

DMTI、RMRI、使能去使能ECHO功能、使能去使能查询功能、使能去使能认证等。

对于DMTI增加时,本地实际的发送间隔不能改变直到接收一个F比特为1的BFD控制报文,这是为了保证远端系统在本地发送间隔增加时更新了它的检测时间;

对于RMRI减少时,远端计算的检测时间必须不能改变,直到接收到一个F比特(参见报文格式字段解释)为1的BFD控制报文。

这是为了保证在减少检测时间之前,远端系统已经按照较高的速率发送BFD控制报文。

2.6会话建立

BFD在检测前,需要在通道两端建立对等会话,会话建立以后以协商后的速率各自向对端发送BFD的控制报文来实现故障检测。

其会话检测的路径可以是标记交换路径,也可以是其它类型的隧道或是可交换以太网。

2.6.1会话初始化过程

对于BFD会话建立过程中的初始化阶段,两端是主动角色还是被动角色是由应用来决定的,但是至少有一端为主动角色,所以对于初始化阶段可以分为两种方式。

✧两端都为主动方

当两端都为主动角色时,两端的系统都要向对端发送YourDiscriminator为0的BFD控制报文,直到两端学到对端的Discriminator,然后开始建立会话(例如:

由OSPF或者ISIS建立的BFD会话可以是两端都为主动角色)。

当两端都为主动方时,由于YourDiscriminator字段为0,依据BFD协议无法分离到相应的会话上,所以对于初始化报文需要其它的方法:

Ø

对于1hop:

第一个报文的分离依据接收报文的接口(无论是物理链路还是逻辑链路),同时收到报文TTL必须为255。

对于multihop:

✓方法1:

限制配置在单一BFD会话上的(源地址,目的地址)对唯一。

在OSPF的虚链路上建立BFD会话时可以使用这种方法。

✓方法2:

在会话建立之前先用带外的方式得到对端的Discriminator。

在MPLS的LSP上建立会话时可以使用这种方法。

✓方法3:

使用两条单向链路,初始化报文的分离类似1hop,对其中的一条单向链路来说,会话在建立前一个为主动方、一个被动方,被动方根据接收报文的接口来分离YourDiscriminator为0的BFD控制报文。

✧一端主动方、一端被动方

一端为主动角色、一端为被动角色时,是由应用来决定谁是主动角色、谁是被动角色的,主动方首先发送报文,然后由应用把对端的Discriminator携带回来给主动方,被动方在收到主动方的报文后也开始发送报文,以后主动方和被动方发送的报文中YourDiscriminator都不为零,每端都依据相应的Discriminator把控制报文分离到本端相应的会话上(例如:

由LSP-Ping建立的BFD会话)。

2.6.2会话建立过程

会话建立过程是一个三次握手的过程,经过此过程后两端的会话变为Up状态,在此过程中同时协商好相应的参数,以后的状态变化就是根据缺陷的检测结果来进行,并做相应的处理。

其状态机迁移如下:

BFD状态迁移图

以BFD会话连接建立过程为例,简要介绍状态机迁移过程:

BFD会话连接建立

●A、B两站启动BFD,各自初始状态为“down”,发送BFD报文携带状态为“down”

●B站收到状态为“down”的BFD报文,本地状态切换至“init”,发送BFD报文携带状态为“init”

●B站本地BFD状态为“init”后,再接收到状态为“down”的报文不做处理

●A站BFD状态变化过程同上

●B站收到状态为“init”的BFD报文,本地状态切换至“up”

●A、B两站在发生“down=>

init”变化后,会启动一个超时定时器,该定时器的作用是防止本地状态阻塞在“init”(有可能AB连接此时断连,会话不能正常建立),如果在规定的时间内仍未收到状态为“init/up”的BFD报文,则状态自动切换回“down”

●本地状态UP标志会话建立成功

3BFD的标准化

自从2004年7月推出BFD标准的第一个草案起,IETF开始了BFD协议的讨论修订,至今已经从Draftbase-00

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1