09-BFD配置
本章节下载: 09-BFD配置 (227.84 KB)
在以下路由协议的介绍中所指的路由器及路由器图标,代表了一般意义下的路由器以及运行了路由协议的以太网交换机。为提高可读性,在手册的描述中将不另行说明。
为了减小设备故障对业务的影响、提高网络的可用性,设备需要能够尽快检测到与相邻设备间的通信故障,以便能够及时采取措施,从而保证业务继续进行。
现有的故障检测方法主要包括以下几种:
l 硬件检测:例如通过SDH(Synchronous Digital Hierarchy,同步数字体系)告警检测链路故障。硬件检测的优点是可以很快发现故障,但并不是所有介质都能提供硬件检测。
l 慢Hello机制:通常采用路由协议中的Hello报文机制。这种机制检测到故障所需时间为秒级。对于高速数据传输,例如吉比特速率级,超过1秒的检测时间将导致大量数据丢失;对于时延敏感的业务,例如语音业务,超过1秒的延迟也是不能接受的。并且,这种机制依赖于路由协议。
l 其他检测机制:不同的协议有时会提供专用的检测机制,但在系统间互联互通时,这样的专用检测机制通常难以部署。
BFD(Bidirectional Forwarding Detection,双向转发检测)是一套全网统一的检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。为了提升现有网络性能,邻居之间必须能快速检测到通信故障,从而更快的建立起备用通道恢复通信。
BFD提供了一个通用的、标准化的、介质无关、协议无关的快速故障检测机制,可以为各上层协议如路由协议、MPLS等统一地快速检测两台路由器间双向转发路径的故障。
BFD在两台路由器上建立会话,用来监测两台路由器间的双向转发路径,为上层协议服务。BFD本身并没有发现机制,而是靠被服务的上层协议通知其与谁建立会话,会话建立后如果在检测时间内没有收到对端的BFD控制报文则认为发生故障,通知被服务的上层协议,上层协议进行相应的处理。
图1-1 BFD建立流程图(以OSPF为例)
BFD建立过程:
l 上层协议通过自己的Hello机制发现邻居并建立连接;
l 上层协议在建立了新的邻居关系时,将邻居的参数及检测参数都(包括目的地址和源地址等)通告给BFD;
l BFD根据收到的参数进行计算并建立邻居。
图1-2 BFD发生故障处理流程图(以OSPF为例)
当网络出现故障时:
l BFD检测到链路/网络故障;
l 拆除BFD邻居会话;
l BFD通知本地上层协议进程BFD邻居不可达;
l 本地上层协议中止上层协议邻居关系;
l 如果网络中存在备用路径,路由器将选择备用路径。
BFD草案中没有规定检测的时间精度,目前支持BFD的设备大多数提供的是毫秒级检测。
l 单跳检测:BFD单跳检测是指对两个直连系统进行IP连通性检测,这里所说的“单跳”是IP的一跳。
l 多跳检测:BFD可以检测两个系统间的任意路径,这些路径可能跨越很多跳,也可能在某些部分发生重叠。
l 双向检测:BFD通过在双向链路两端同时发送检测报文,检测两个方向上的链路状态,实现毫秒级的链路故障检测。(BFD检测LSP是一种特殊情况,只需在一个方向发送BFD控制报文,对端通过其他路径报告链路状况。)
l 控制报文方式:链路两端会话通过控制报文交互监测链路状态。
l Echo报文方式:链路某一端通过发送Echo报文由另一端转发回来,实现对链路的双向监测。
BFD会话建立前有两种模式:主动模式和被动模式。
l 主动模式:在建立会话前不管是否收到对端发来的BFD控制报文,都会主动发送BFD控制报文;
l 被动模式:在建立会话前不会主动发送BFD控制报文,直到收到对端发送来的控制报文。
在会话初始化过程中,通信双方至少要有一个运行在主动模式才能成功建立起会话。
BFD会话建立后有两种模式:异步模式和查询模式。通信双方要求运行在相同的模式。
l 异步模式:以异步模式运行的设备周期性地发送BFD控制报文,如果在检测时间内对端没有收到BFD控制报文,则认为会话down。
l 查询模式:假定有一个独立的方法,确认自己和对端系统的连通性。这样,BFD会话建立后,会停止周期发送BFD控制报文,除非需要显式地验证连接性。
l 目前仅支持异步模式。
l 当BFD会话工作于echo报文方式时,不受运行模式控制。
l 在需要显式验证连接性的情况下,系统以协商的周期连续发送几个P比特位置1的BFD控制报文。如果在检测时间内没有收到返回的报文,就认为会话down;如果认为连通,则不再发送报文,等待下一次查询的触发。
会话建立后,可以动态协商BFD的相关参数(例如最小发送间隔、最小接收间隔、初始模式等),两端协议通过发送相应的协商报文后采用新的参数,不影响会话的当前状态。
BFD控制报文封装在UDP报文中传送,其UDP端口号为3784,如图1-3所示。
图1-3 BFD控制报文格式图
l Vers:协议的版本号,协议版本为1;
l Diag:本地协议最后一次从up状态转换到其他状态的原因如表1-1;
表1-1 Diag原因描述
Diag |
描述 |
0 |
无诊断信息(No Diagnostic) |
1 |
控制检测超时(Control Detection Time Expired) |
2 |
回声功能失效(Echo Function Failed) |
3 |
邻居通知会话down(Neighbor Signaled Session Down) |
4 |
转发平面重启(Forwarding Plane Reset) |
5 |
通道失效(Path Down) |
6 |
连接通道失效(Concatenated Path Down) |
7 |
管理down(Administratively Down) |
8~31 |
保留位(Reserved for future use) |
l State(Sta):BFD会话当前状态,取值为:0代表AdminDown,1代表Down,2代表Init,3代表Up。
l Demand(D):设置为1,表示发送协议希望操作在查询模式;设置为0,表示发送协议不区分操作在查询模式,或者表示发送协议不能操作在查询模式;
l Poll(P):设置为1,表示发送协议请求进行连接确认,或者发送请求参数改变的确认;设置为0,表示发送协议不请求确认;
l Final(F):设置为1,表示发送协议响应一个接收到P比特为1的BFD控制报文;设置为0,表示发送协议不响应一个P比特为1的BFD控制报文;
l Control Plane Independent(C):设置为1,表示发送协议的BFD实现不依赖于它的控制平面(换句话说,BFD在转发平面实施,即使控制平面失效了,BFD仍然能够起作用);设置为0,表示BFD在控制平面实施;
l Authentication Present(A):如果设置为1,则表示控制报文包含认证字段,并且会话是被认证的;
l Reserved(R):在发送时设置为0,在接收时忽略;
l Detect Mult:检测时间倍数。
l Length:BFD控制报文的长度,单位字节;
l My Discriminator:发送协议产生的一个唯一的、非0鉴别值,用来对两个协议之间的多个BFD会话进行分离;
l Your Discriminator:从远端协议接收到的鉴别值“My Discriminator”,如果没有收到这个值就返回0;
l Desired Min Tx Interval:本地协议发送BFD控制报文时想要采用的最小间隔,单位毫秒;
l Required Min Rx Interval:本地协议能够支持的接收两个BFD控制报文之间的间隔,单位毫秒;
l Required Min Echo Rx Interval:本地协议能够支持的接收两个BFD回声报文之间的间隔,单位毫秒。如果这个值设置为0,则发送协议不支持接收BFD回声报文;
l Auth Type:BFD控制报文使用的认证类型;
l Auth Len:认证字段的长度,包括认证类型与认证长度字段。
l OSPF与BFD联动:详细情况请参见“IP路由分册”中的“OSPF配置/命令”。
l IS-IS与BFD联动:详细情况请参见“IP路由分册”中的“IS-IS配置/命令”。
l RIP与BFD联动:详细情况请参见“IP路由分册”中的“RIP配置/命令”。
l 静态路由与BFD联动:详细情况请参见“IP路由分册”中的“静态路由配置/命令”。
l BGP与BFD联动:详细情况请参见“IP路由分册”中的“BGP配置/命令”。
l MPLS与BFD联动:详细情况请参见“MPLS分册”中的“MPLS基本配置/命令”。
l Track与BFD联动:详细情况请参见“可靠性分册”中的“Track配置/命令”。
与BFD相关的协议规范有:
l draft-ietf-bfd-base-05:Protocol Independent Bidirectional Forwarding Detection
l draft-ietf-bfd-v4v6-1hop-05:BFD for IPv4 and IPv6(Single Hop)
BFD基本功能配置,是配置其他协议和BFD联动应用的基础。
在配置BFD检测方式之前,需完成以下任务:
l 配置接口的网络层地址,使相邻节点之间网络层可达
l 配置可支持BFD的路由协议
表1-2 配置BFD基本功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置BFD会话建立前的会话模式 |
bfd session init-mode { active | passive } |
可选 缺省情况下,BFD会话建立前的会话模式为active |
进入接口视图 |
interface interface-type interface-number |
- |
配置发送BFD控制报文的最小时间间隔 |
bfd min-transmit-interval value |
可选 缺省值为400 |
配置接收echo报文的最小时间间隔 |
bfd min-echo-receive-interval value |
可选 缺省值为400 |
配置接收BFD控制报文的最小时间间隔 |
bfd min-receive-interval value |
可选 缺省值为400 |
配置BFD报文最大失效的个数(当远端会话没有收到本端指定数目的BFD报文时,将认为会话已经失效) |
bfd detect-multiplier value |
可选 缺省情况下,BFD报文最大失效数目为5 |
配置echo报文源IP地址 |
bfd echo-source-ip ip-address |
可选 需要注意的是,为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议不要将BFD echo报文的源IP地址配置为属于该设备任何一个接口所在网段 |
开启BFD模块的Trap功能后,模块会生成级别为notifications的Trap报文,用于报告该模块的重要事件。生成的Trap报文将被发送到设备的信息中心,通过设置信息中心的参数,最终决定Trap报文的输出规则(即是否允许输出以及输出方向)。(有关信息中心参数的配置请参见“系统分册”中的“信息中心配置”。)
表1-3 配置BFD的Trap功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能BFD的Trap功能 |
snmp-agent trap enable bfd |
可选 缺省情况下,Trap开关打开,BFD发送Trap报文 |
snmp-agent trap enable bfd命令的详细介绍请参见“系统分册/SNMP命令”中的snmp-agent trap enable命令。
在完成上述配置后,在任意视图下执行display命令可以显示配置后BFD的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除BFD会话的统计信息。
表1-4 BFD显示和维护
操作 |
命令 |
显示使能的BFD接口信息 |
display bfd interface [ verbose ] |
显示使能的BFD调试信息开关 |
display bfd debugging-switches |
显示BFD会话信息 |
display bfd session [ verbose ] [ slot slot-number [ all | verbose ] ] |
显示BFD会话信息 |
display bfd session [ verbose ] [ slot slot-number [ all | verbose ] ] |
清除BFD会话统计信息 |
reset bfd session statistics [ slot slot-number ] |
清除BFD会话统计信息 |
reset bfd session statistics [ slot slot-number ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!