华为BFD原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BFD原理
介绍
网络设备一个越来越重要的特征是,要求对相邻系统之间通信故障进行快速检测,这样可以更快的建立起替代通道。当前,在特定的环境下,当数据链路硬件上出现故障可以相当快的检测到。而在某些媒介却不能检测通道上的一些特定故障,例如,接口或者转发引擎部件的故障。
在路由协议网络中,当故障不能通过硬件信号检测出来时,网络采用相对较慢“Hello”机制。在目前的协议中,采用“Hello”机制检测到故障的时间要超过1秒钟,这对某些应用来说时间太长了,当数据速率到吉比特时,这么长时间代表了大量的数据丢失。而且,在没有使用路由协议的地方,“Hello”机制是没有用处的,并且,对两个路由协议引擎之间通道故障的检测的语义也是稍微有点差别的。
BFD的目标是对相邻转发引擎之间通道故障提供轻负荷、持续时间短的检测。这些故障包括接口,数据链路,甚至可能是转发引擎本身。
BFD另外一个目标是提供一个单一的机制,它能够用来对任何媒介、任何协议层进行实时地检测,并且检测的时间与开销范围比较宽,这样防止产生一些其他的方法。这篇文档给出了基本协议的详细情况,对一些机制的使用是与应用相关的,将在单独的应用系列文档中描述。
设计
BFD设计用来检测相邻两个转发引擎之间的通信故障。在转发引擎与控制引擎分离的情况下,BFD是打算在实施在系统转发引擎的某些部件上。这不但将协议更多的绑定到转发平面,而且将协议从路由协议引擎中分离出来。BFD也可以实施在控制平面,尽管这样做可能会导致一些故障检测不到。
BFD运行在任何数据协议的顶层,这个数据协议用于两个系统之间进行数据转发。BFD总是运行在单播、P2P模式。BFD净荷可以作为任何媒介或者网络的封装协议净荷在网络中传输。BFD可以运行在一个系统的多个协议层上。任何特定BFD会话的操作上下文都是与它的封装相关的。
BFD能够在系统之间的任何类型通道上进行故障检测,这些通道包括直接的物理链路,虚电路,隧道,MPLS LSPs,多跳路由通道,以及非直接的通道。在同一对系统之间,如果存在多条通道,至少在一个方向上有多条通道也行,则可以在这对系统之间建立多个BFD会话。
在建立一个BFD会话,或者在拆除一个BFD会话时,BFD状态机实施一个三向握手,保证两个系统都能知道状态的改变。
BFD可以抽象成一个简单的服务,它提供的服务原语包括,在给定目的地址以及其他参数前提下,创建、删除、修改一个BFD会话。BFD最终提供一个信号给它的客户层,表示BFD会话开始或者结束。
协议概述
BFD是一个简单的“Hello”协议,在很多方面,它与这个著名的路由协议的检测部分相似。一对系统在它们之间的每条通道上周期性的发送BFD包,如果某个系统在足够长的时间内没有接收到BFD包,则认为在这条到相邻系统的双向通道的某个部分出了故障。在某些条件下,为了减少负荷,系统之间需要协商,停止发送周期性的BFD报文。
一条通道,只有当系统之间的两个方向通信已经建立之后,才能宣布为可操作的。这并不排除单向连接使用的情况。
系统之间,每条通信通道以及它们使用的数据协议都创建一个单独的BFD会话。
每个系统需要对自身能够收发BFD报文的频率进行估计,这样就可以与相邻就故障检测的频率达成一致。为了适应异常的情况,这些估计可以实时地修改。假设快速系统之间与慢速系统之间共享了一段公共地媒介,这样设计就可以使得快速系统之间能够更快地检测故障,而慢速系统也可以根据自身地能力,达到最好的检测效果。
寻址与会话建立
BFD会话的建立取决于使用它的应用的需求,由应用来决定是否需要BFD以及使用BFD时采用的地址。在BFD中,没有发现这种需求的机制。例如,一个OSPF实现可以采用OSPF Hello协议来通知它的相邻系统,请求建立一个BFD会话。
操作模式
BFD有两种操作模式可以选择,另外还有一种功能,它可以与这两种模式结合起来使用。
BFD的主要操作模式称为异步模式。在这种模式,系统之间相互周期性地发送BFD控制包,如果某个系统连续几个包都没有接收到,就认为会话为“Down”了。
BFD的第二种操作模式称为查询模式。在这种模式,假定每个系统都有一个独立的方法,确认它连接到其他系统。这样,一旦一个BFD会话建立起来,系统停止发送BFD 控制包,除非某个系统需要显式地验证连接性。在需要显式验证连接性的情况下,系统发送一个短系列的BFD控制包,然后,协议再次保持沉默。
两种模式的一个辅助功能是回声功能。当回声功能激活时,一个BFD回声包流按照如下方式发送:本地发送一个BFD回声包流,远端系统通过它的转发通道将它们环回回来。如果连续几个回声包都没有接收到,会话就被宣布为“Down”。回声功能可以与异步模式或者查询模式一起使用。由于回声功能处理检测的任务,因此BFD控制包周期性发送的速率可以降低(异步模式下)或者完全取消发送BFD控制包(查询模式下)。
为了取得一个特定的检测时间,纯异步模式只需要回声功能一半的包(注1)。在由于某种原因不能支持回声功能的情况下,也采用纯异步模式。
回声功能具有这样的优势:它真正地只是验证远端系统的转发通道。这样可以减少回来行程的抖动,因此允许更精确的检测时间,也可以潜在地检测其它方法所不能检测到的一些故障。
回声功能可以单独地在每个方向使能。在一个特定方向上回声功能使能必须符合两个条件:1、将回声包环回的系统发出通知,说明它允许将回声包环回;2、发送回声包的系统决定它希望发送回声包。
查询模式在某些情况下是比较有用的。例如,如果系统建立了大量的BFD会话,则周期性的发送BFD负担的很重。另外,当回声功能对称使用哦时候,查询模式也比较有用。查询模式的缺点在于:检测时间本质上是由系统实现的直观推测驱动的,它对BFD协议不可见。当通道来回行程时间比期望的检测时间长,则查询模式也是不可用的。
控制包格式
普通BFD 控制包格式0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1Vers Diag H D P F C A Rs Detect Mult
Length My Discreaminator
Your Discreaminator
Desired Min TX Interval
Required Min RX Interval
Required Min Echo RX Interval
Auth Type Auth Len Authentication Data …BFD 控制包包含一个强制部分与一个可选认证部分。认证部分格式与认证类型有关。
强制部分可选部分