• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

12-可靠性配置指导

目录

11-BFD配置

本章节下载 11-BFD配置  (361.41 KB)

11-BFD配置


1 BFD

1.1  BFD简介

BFD(Bidirectional Forwarding Detection,双向转发检测)是一个通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于检测转发路径的连通状况,保证设备之间能够快速检测到通信故障,以便能够及时采取措施,保证业务持续运行。BFD可以为各种上层协议(如路由协议等)快速检测两台设备间双向转发路径的故障。上层协议通常采用Hello报文机制检测故障,所需时间为秒级,而BFD可以提供毫秒级检测。

1.1.1  BFD的基本原理

BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有发现机制,而是靠被服务的上层协议通知来建立会话。上层协议在建立新的邻居关系后,将邻居的参数及检测参数(包括目的地址和源地址等)通告给BFD;BFD根据收到的参数建立BFD会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文,则认为该双向转发路径发生了故障,并将故障信息通知给该会话所服务的上层应用,由上层应用采取相应的措施。下面以OSPF与BFD联动为例,简单介绍BFD的工作流程。

图1-1所示,OSPF与BFD联动触发建立会话的流程为:

(1)     OSPF通过自己的Hello机制发现邻居并建立连接。

(2)     OSPF在建立了新的邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。

(3)     BFD根据收到的邻居信息建立会话。

图1-1 BFD会话建立流程图

 

BFD检测到链路故障通知OSPF的流程为:

(4)     BFD检测到链路故障,BFD会话状态变为Down。

(5)     BFD通知本地OSPF进程BFD邻居不可达。

(6)     本地OSPF进程中断OSPF邻居关系。

图1-2 BFD故障发现处理流程图

 

1.1.2  单跳检测和多跳检测

BFD可以用来进行单跳和多跳检测:

·     单跳检测:是指对两个直连设备进行IP连通性检测,这里所说的“单跳”是IP的一跳。例如,如图1-3所示,使用BFD检测Device A和Device B之间的IP单跳路径。

图1-3 单跳检测

·     多跳检测:BFD可以检测两个设备间任意路径的链路情况,这些路径可能跨越很多跳。例如,如图1-4所示,使用BFD检测Device A和Device B之间的IP多跳路径。

图1-4 多跳检测

 

1.1.3  BFD会话的工作方式和检测模式

BFD会话通过下面两种报文来实现。

1. echo报文方式

echo报文封装在UDP报文中传送,该报文IP头中的源IP和目的IP均为本端设备的IP地址,其UDP目的端口号为3785。

本端发送echo报文建立BFD会话,对链路进行检测。对端不建立BFD会话,只需把收到的echo报文转发回本端。如果在检测时间内没有收到对端转发回的echo报文,则认为会话down。

echo报文方式的BFD会话不需要双方均支持BFD功能,不支持BFD功能的设备接收到echo报文后,直接将该报文环回,从而达到快速检测的目的。

当BFD会话工作于echo报文方式时,仅支持单跳检测,并且不受检测模式的控制。

2. 控制报文方式

控制报文封装在UDP报文中传送,对于单跳检测其UDP目的端口号为3784,对于多跳检测其UDP目的端口号为4784。链路两端的设备通过控制报文中携带的参数(会话标识符、期望的收发报文最小时间间隔、本端BFD会话状态等)协商建立BFD会话。

BFD会话建立前有两种模式:主动模式和被动模式。

·     主动模式:在建立会话前不管是否收到对端发来的BFD控制报文,都会主动发送BFD控制报文;

·     被动模式:在建立会话前不会主动发送BFD控制报文,直到收到对端发送来的控制报文。

通信双方至少要有一方运行在主动模式才能成功建立起BFD会话。

BFD会话建立后有两种模式:异步模式和查询模式。

·     异步模式:设备周期性发送BFD控制报文,如果在检测时间内没有收到对端发送的BFD控制报文,则认为会话down。缺省情况下,BFD会话为异步模式。

·     查询模式:当系统中的BFD会话数量较多时,采用查询模式可防止周期性发送BFD控制报文的开销对系统的正常运行造成影响。

¡     本端的BFD会话工作在查询模式时,本端设备会向对端发送D比特位置1的BFD控制报文,对端(缺省为异步模式)收到该报文后将停止周期性发送BFD控制报文。这种情况下,仅对本端到对端的链路进行检测,即当对端设备在检测时间内未收到BFD控制报文时,则认为链路故障,将BFD会话状态置为down。

¡     如果通信双方的BFD会话均工作在查询模式,则双方都停止周期性发送BFD控制报文。这种情况下,系统将通过其他与BFD无关的机制对链路进行检测(比如Hello报文机制、硬件检测机制等)。

另外,也可以链路两端通过发送控制报文建立和保持BFD会话,任意一端通过发送echo报文检测链路状态。

1.1.4  BFD支持的应用

BFD可以和路由协议、MPLS等联合使用,具体如表1-1所示。

表1-1 BFD支持的应用

应用

参见信息

链路聚合与BFD联动

“二层技术-以太网交换配置指导”中的“以太网链路聚合”

IPv4静态路由与BFD联动

“三层技术-IP路由配置指导”中的“静态路由”

IPv6静态路由与BFD联动

“三层技术-IP路由配置指导”中的“IPv6静态路由”

RIP与BFD联动

“三层技术-IP路由配置指导”中的“RIP”

OSPF与BFD联动

“三层技术-IP路由配置指导”中的“OSPF”

OSPFv3与BFD联动

“三层技术-IP路由配置指导”中的“OSPFv3”

IS-IS与BFD联动

“三层技术-IP路由配置指导”中的“IS-IS”

BGP与BFD联动

“三层技术-IP路由配置指导”中的“BGP”

PIM与BFD联动

“IP组播配置指导”中的“PIM”

IPv6 PIM与BFD联动

“IP组播配置指导”中的“IPv6 PIM”

MPLS与BFD联动

“MPLS配置指导”中的“MPLS OAM”

RSVP与BFD联动

“MPLS配置指导”中的“RSVP”

Track与BFD联动

“可靠性配置指导”中的“Track”

 

1.1.5  协议规范

与BFD相关的协议规范有:

·     RFC 5880:Bidirectional Forwarding Detection (BFD)

·     RFC 5881:Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop)

·     RFC 5882:Generic Application of Bidirectional Forwarding Detection (BFD)

·     RFC 5883:Bidirectional Forwarding Detection (BFD) for Multihop Paths

·     RFC 5885:Bidirectional Forwarding Detection (BFD) for the Pseudowire Virtual Circuit Connectivity Verification (VCCV)

·     RFC 7130:Bidirectional Forwarding Detection (BFD) on Link Aggregation Group (LAG) Interfaces

1.2  配置限制和指导

当设备系统工作模式切换成专家模式后,如果设备没有安装以下单板时,则不支持BFD功能:

·     FD系列接口板

·     SH系列接口板

在配置BFD之前,需配置接口的网络层地址,使相邻节点之间网络层可达。

BFD会话建立后,可以动态协商BFD的相关参数(例如最小发送间隔、最小接收间隔、初始模式、报文认证等),两端协议通过发送相应的协商报文后采用新的参数,不影响会话的当前状态。

在IRF环境中使用BFD时,如果BFD会话的检测时间小于IRF链路down的延迟上报时间,可能会导致BFD会话震荡。为了避免上述问题的产生,建议调整IRF链路down的延迟上报时间,使其小于BFD会话的检测时间。关于IRF链路down延迟上报功能的详细介绍,请参见“虚拟化技术配置指导”中的“IRF”。

提示

缺省BFD运行版本1,同时兼容版本0。不能通过命令行配置修改为版本0,当对端设备运行版本0会话时,本端自动会切换到版本0。

 

1.3  配置echo报文方式的BFD

1.3.1  BFD会话建立方式

建立echo报文方式的BFD会话的方式有两种:

·     通过bfd static命令手工创建。

·     应用程序与BFD联动时动态创建。

在已配置uRPF功能的设备上不要配置echo报文方式的BFD,否则可能导致echo报文被丢弃。关于uRPF功能的详细介绍请参见“安全配置指导”中的“uRPF”。

1.3.2  通过bfd static命令手工创建静态BFD会话

1. 功能简介

创建的静态BFD会话可以用来进行echo报文方式的BFD单跳检测和多跳检测。

2. 配置限制和指导

使用echo报文方式的静态BFD会话进行检测时,仅需在本端创建静态BFD会话。

首次创建静态BFD会话时,必须指定静态BFD会话的对端IPv4或IPv6地址。系统仅检查IP地址的形式,不检查其正确性。指定错误的对端IP地址或源IP地址均会导致静态BFD会话无法建立。

不同的静态BFD会话的本地标识符不能相同。

如果创建静态BFD会话时未指定source-ip/source-ipv6参数,将使用bfd echo-source-ip/bfd echo-source-ipv6命令指定的IPv4/IPv6地址作为echo报文的源IPv4/IPv6地址。如果创建静态BFD会话时指定了source-ip/source-ipv6参数,将使用该参数的地址作为echo报文的源IPv4/IPv6地址。建议用户创建echo报文方式的静态BFD会话时指定source-ip/source-ipv6参数。

3. 配置单跳检测的静态BFD会话

表1-2 配置单跳检测的静态BFD会话

操作

命令

说明

进入系统视图

system-view

-

配置echo报文源IP地址

·     配置echo报文源IPv4地址
bfd echo-source-ip ip-address

·     配置echo报文源IPv6地址
bfd echo-source-ipv6 ipv6-address

缺省情况下,未配置echo报文的源IPv4地址

为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议不要将echo报文的源IPv4地址配置为属于该设备任何一个接口所在网段

缺省情况下,未配置echo报文的源IPv6地址

echo报文源IPv6地址仅支持全球单播地址

创建静态BFD会话,并进入静态BFD会话视图

(IPv4网络)

bfd static session-name [ peer-ip ipv4-address interface interface-type interface-number destination-ip ipv4-address [ source-ip ipv4-address ] one-arm-echo [ discriminator { auto | local local-value } ] ]

(IPv6网络)

bfd static session-name [ peer-ipv6 ipv6-address interface interface-type interface-number destination-ipv6 ipv6-address [ source-ipv6 ipv6-address ] one-arm-echo [ discriminator { auto | local local-value } ] ]

 

(可选)指定静态BFD会话的本地标识符

discriminator local local-value

缺省情况下,未指定静态BFD会话的本地标识符

本命令仅用于创建静态BFD会话时未指定静态BFD会话标识符的场景

 

4. 配置多跳检测的静态BFD会话

表1-3 配置多跳检测的静态BFD会话

操作

命令

说明

进入系统视图

system-view

-

配置echo报文源IP地址

·     配置echo报文源IPv4地址
bfd echo-source-ip ip-address

·     配置echo报文源IPv6地址
bfd echo-source-ipv6 ipv6-address

缺省情况下,未配置echo报文的源IPv4地址

为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议不要将echo报文的源IPv4地址配置为属于该设备任何一个接口所在网段

缺省情况下,未配置echo报文的源IPv6地址

echo报文源IPv6地址仅支持全球单播地址

创建静态BFD会话,并进入静态BFD会话视图

(IPv4网络)

bfd static session-name [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] destination-ip ipv4-address [ source-ip ipv4-address ] one-arm-echo[ discriminator { auto | local local-value } ] ]

(IPv6网络)

bfd static session-name [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] destination-ipv6 ipv6-address [ source-ipv6 ipv6-address ] one-arm-echo [ discriminator { auto | local local-value } ] ]

 

(可选)指定静态BFD会话的本地标识符

discriminator local local-value

缺省情况下,未指定静态BFD会话的本地标识符

本命令仅用于创建静态BFD会话时未指定静态BFD会话标识符的场景

 

1.3.3  调整BFD检测时间

1. 功能简介

在建立echo报文方式的BFD会话时,用户可以根据网络状况和性能需求,调整设备接收echo报文的时间间隔、检测时间倍数。

2. 调整单跳BFD的检测时间

表1-4 调整单跳BFD的检测时间

操作

命令

说明

进入系统视图

system-view

-

进入接口视图或静态BFD会话视图

·     进入接口视图
interface interface-type interface-number

·     进入静态BFD会话视图
bfd static session-name

静态BFD会话必须已经存在

配置静态BFD会话的参数时,需要进入静态BFD会话视图

配置接收echo报文的最小时间间隔

bfd min-echo-receive-interval interval

缺省情况下,接收echo报文的最小时间间隔为400毫秒

配置单跳检测的BFD检测时间倍数

bfd detect-multiplier interval

缺省情况下,BFD检测时间倍数为5

 

3. 调整多跳BFD的检测时间

操作

命令

说明

进入系统视图

system-view

-

(可选)进入静态BFD会话视图

bfd static session-name

配置静态BFD会话的参数时,需要进入静态BFD会话视图

配置接收多跳echo报文的最小时间间隔

bfd multi-hop min-echo-receive-interval interval

缺省情况下,接收echo报文的最小时间间隔为400毫秒

配置多跳检测的BFD检测时间倍数

bfd multi-hop detect-multiplier value

缺省情况下,多跳检测的BFD检测时间倍数为5

 

1.4  配置控制报文方式的BFD

1.4.1  BFD会话建立方式

建立控制报文方式的BFD会话有两种方式:静态创建BFD会话和动态建立BFD会话。

BFD通过控制报文中的本地标识符和远端标识符来区分不同的会话。静态创建BFD会话和动态建立BFD会话的主要区别在于本地标识符和远端标识符的获取方式不同:

·     静态BFD会话的本地标识符和远端标识符由用户手工配置。手工指定会话的本地标识符和远端标识符方法包括:

¡     通过bfd static命令手工创建。

¡     应用程序与BFD联动时,由用户手工指定会话的本地标识符和远端标识符。例如,使用静态BFD会话方式检测MPLS LSP时,需要用户手工指定会话的本地标识符和远端标识符。关于静态BFD会话方式检测MPLS LSP的详细介绍,请参见“MPLS配置指导”中的“MPLS OAM”。

·     动态BFD会话的本端标识符由本端设备自动分配,远端标识符在BFD会话协商建立过程中获取。本端设备自动分配本地标识符的方法包括:

¡     通过bfd static命令的auto方式为本端自动分配会话的本地标识符。

¡     应用程序与BFD联动时,如果用户未指定会话的本地标识符和远端标识符,则由本端设备自动分配会话的本地标识符。

1.4.2  配置限制和指导

配置被服务的上层协议支持BFD功能后,无需执行本配置,设备上会自动创建控制报文方式的BFD会话。

当设备系统工作模式切换成专家模式后,不支持配置bfd multi-hop destination-port命令。

当设备系统工作模式切换成专家模式后,主控板接收或发送BFD控制报文的最小时间间隔支持配置为3~99ms。

BFD版本0不支持以下命令,配置不生效。

·     bfd session init-mode

·     bfd authentication-mode

·     bfd demand enable

·     bfd echo enable

1.4.3  通过bfd static命令手工创建静态BFD会话

创建的静态BFD会话可以用来进行控制报文方式的BFD单跳检测和多跳检测,通过与Track配合可为对链路故障响应速度要求较高的业务提供故障检测服务。关于Track与BFD联动的详细介绍,请参见“可靠性配置指导”中的“Track”。

如果对端创建了静态BFD会话,那么本端必须创建静态BFD会话。

首次创建静态BFD会话时,必须指定静态BFD会话的对端IPv4或IPv6地址。系统仅检查IP地址的形式,不检查其正确性。指定错误的对端IP地址或源IP地址均会导致静态BFD会话无法建立。

不同的静态BFD会话的本地标识符不能相同。

表1-5 创建单跳检测的静态BFD会话

操作

命令

说明

进入系统视图

system-view

-

创建静态BFD会话,并进入静态BFD会话视图

IPv4网络)

bfd static session-name peer-ip ipv4-address interface interface-type interface-number source-ip ipv4-address [ discriminator { auto |local local-value remote remote-value } ]

需要保证指定的peer-ip为对端静态BFD会话所在的接口的IP地址,source-ip为本端静态BFD会话所在的接口的IP地址,否则无法建立静态BFD会话

IPv6网络)

bfd static session-name peer-ipv6 ipv6-address interface interface-type interface-number source-ipv6 ipv6-address [ discriminator { auto |local local-value remote remote-value } ]

需要保证指定的peer-ipv6为对端静态BFD会话所在的接口的IPv6地址,source-ipv6为本端静态BFD会话所在的接口的IPv6地址,否则无法建立静态BFD会话

(可选)指定静态BFD会话的本地标识符和远端标识符

discriminator { local local-value | remote remote-value }

缺省情况下,未指定静态BFD会话的本地标识符和远端标识符

本命令仅用于创建静态BFD会话时未指定静态BFD会话标识符的场景

 

表1-6 创建多跳检测的静态BFD会话

操作

命令

说明

进入系统视图

system-view

-

创建静态BFD会话,并进入静态BFD会话视图

IPv4网络)

bfd static session-name peer-ip ipv4-address [ vpn-instance vpn-instance-name ] source-ip ipv4-address [ discriminator { auto |local local-value remote remote-value }  ] [ track-interface interface-type interface-number ]

-

IPv6网络)

bfd static session-name peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] source-ipv6 ipv6-address [ discriminator { auto |local local-value remote remote-value }  ] [ track-interface interface-type interface-number ]

-

(可选)指定静态BFD会话的本地标识符和远端标识符

discriminator { local local-value | remote remote-value }

缺省情况下,未指定静态BFD会话的本地标识符和远端标识符

本命令仅用于创建静态BFD会话时未指定静态BFD会话标识符的场景

 

1.4.4  配置单跳检测的BFD会话参数

表1-7 控制报文方式配置(单跳检测)

操作

命令

说明

进入系统视图

system-view

-

配置BFD会话建立前的运行模式

bfd session init-mode { active | passive }

缺省情况下,BFD会话建立前的运行模式为主动模式

BFD版本0不支持本命令,配置不生效

进入接口视图或静态BFD会话视图(二选一)

进入接口视图

interface interface-type interface-number

-

进入静态BFD会话视图

bfd static session-name

配置静态BFD的单跳检测会话参数时,需要进入相应的BFD会话视图

(可选)配置单跳BFD控制报文进行认证的方式

bfd authentication-mode { m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string }

缺省情况下,单跳BFD控制报文不进行认证

BFD版本0不支持本命令,配置不生效

当系统的工作模式为专家模式时,仅支持simple 认证方式。

配置BFD会话为查询模式

bfd demand enable

缺省情况下,BFD会话为异步模式

BFD版本0不支持本命令,配置不生效

本命令仅支持在接口视图下配置

配置接收echo报文的最小时间间隔

bfd min-echo-receive-interval interval

缺省情况下,接收echo报文的最小时间间隔为400毫秒

配置发送单跳BFD控制报文的最小时间间隔

bfd min-transmit-interval interval

缺省情况下,发送单跳BFD控制报文的最小时间间隔为400毫秒

配置接收单跳BFD控制报文的最小时间间隔

bfd min-receive-interval interval

缺省情况下,接收单跳BFD控制报文的最小时间间隔为400毫秒

配置单跳BFD检测时间倍数

bfd detect-multiplier interval

缺省情况下,单跳BFD检测时间倍数为5

(可选)配置BFD会话无法建立时,通知上层协议BFD会话down的超时时间

bfd init-fail-timer seconds

缺省情况下,BFD会话无法建立时,不会通知上层协议BFD会话down

 

配置本命令后,对于由于配置原因(比如对端设备没有使能BFD,或者两端的BFD认证配置不一致等)造成BFD会话无法进入up状态的情况,如果配置了本定时器,会导致上层协议作出错误的处理,所以,请谨慎使用本命令。

1.4.5  配置多跳检测的BFD会话参数

表1-8 控制报文方式配置(多跳检测)

操作

命令

说明

进入系统视图

system-view

-

配置BFD会话建立前的运行模式

bfd session init-mode { active | passive }

缺省情况下,BFD会话建立前的运行模式为主动模式

BFD版本0不支持本命令,配置不生效

(可选)进入静态BFD会话视图

bfd static session-name

配置静态BFD的多跳检测会话参数时,需要进入相应的BFD会话视图

(可选)配置多跳BFD控制报文进行认证的方式

bfd multi-hop authentication-mode { m-md5 | m-sha1 | md5 | sha1 | simple } key-id { cipher cipher-string | plain plain-string }

缺省情况下,多跳BFD控制报文不进行认证

BFD版本0不支持本命令,配置不生效

当系统的工作模式为专家模式时,仅支持simple 认证方式。

配置多跳BFD控制报文的目的端口号

bfd multi-hop destination-port port-number

缺省情况下,多跳BFD控制报文的目的端口号为4784

当设备系统工作模式配置成专家模式后,不支持配置该功能

本命令仅支持在系统视图下配置

配置多跳BFD检测时间倍数

bfd multi-hop detect-multiplier value

缺省情况下,多跳BFD检测时间倍数为5

配置接收多跳BFD控制报文的最小时间间隔

bfd multi-hop min-receive-interval interval

缺省情况下,接收多跳BFD控制报文的最小时间间隔为400毫秒

配置发送多跳BFD控制报文的最小时间间隔

bfd multi-hop min-transmit-interval interval

缺省情况下,发送多跳BFD控制报文的最小时间间隔为400毫秒

(可选)配置BFD会话无法建立时,通知上层协议BFD会话down的超时时间

bfd init-fail-timer seconds

缺省情况下,BFD会话无法建立时,不会通知上层协议BFD会话down

 

配置本命令后,对于由于配置原因(比如对端设备没有使能BFD,或者两端的BFD认证配置不一致等)造成BFD会话无法进入up状态的情况,如果配置了本定时器,会导致上层协议作出错误的处理,所以,请谨慎使用本命令。

1.4.6  配置BFD回声功能

使用异步模式的BFD会话检测直连网段的连通性时,可以使用BFD回声功能辅助进行故障检测。使能BFD回声功能后,会话的一端周期性地发送echo报文,同时自动降低控制报文的接收速率,减少对带宽资源的消耗。对端不对echo报文进行处理,只将此报文转发回发送端。如果发送端连续几个echo报文都没有接收到,会话状态将变为DOWN。

仅单跳检测支持回声功能。

回声功能对接口状态与BFD联动的会话无效。

表1-9 配置BFD回声功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图或静态BFD会话视图(二选一)

进入接口视图

interface interface-type interface-number

-

进入静态BFD会话视图

bfd static session-name

静态BFD会话必须已经存在

使能回声功能

bfd echo [ receive | send ] enable

缺省情况下,回声功能处于关闭状态

 

1.4.7  配置接口状态与BFD联动

配置接口状态与BFD联动后,系统将通过发送BFD控制报文来协商建立单跳检测的BFD会话,实现对链路的快速检测。当检测到链路故障时,将接口链路层协议状态置为“DOWN(BFD)”,从而帮助依赖接口链路层协议状态的应用快速收敛。系统发送的BFD控制报文中的源地址为用户手工指定的IP地址,目的地址固定为224.0.0.184。对于有IP地址的接口,建议将源地址指定为该接口的IP地址;如果接口没有IP地址,建议将源地址指定为0.0.0.0以外的单播地址。

支持与BFD联动的接口类型为:

·     三层聚合接口的成员端口

·     普通三层以太网接口

·     二层聚合接口的成员端口

·     普通二层以太网接口

回声功能对接口状态与BFD联动的会话无效。

表1-10 配置接口状态与BFD联动

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口状态与BFD联动

bfd detect-interface source-ip ip-address [ discriminator local local-value remote remote-value ] [ template template-name ]

当对端设备不支持通过自动协商的方式获取BFD会话的标识符时,必须指定discriminator参数,且两端都需要指定该参数,否则,BFD会话无法up

(可选)配置首次建立检测接口状态的BFD会话失败时,通知数据链路层BFD会话down的超时时间

bfd detect-interface first-fail-timer seconds

缺省情况下,首次建立检测接口状态的BFD会话失败时,不会通知数据链路层BFD会话down

(可选)开启对检测接口状态的BFD会话进行特殊处理的功能

bfd detect-interface special-processing [ admin-down | authentication-change | session-up ] *

缺省情况下,对检测接口状态的BFD会话进行特殊处理的功能处于关闭状态

 

1.4.8  配置BFD报文的TTL值

1. 功能简介

我司设备与其他厂商设备互通时,如果BFD会话两端设备上BFD报文的TTL值不同,则可能会导致BFD会话协商失败。使用本功能将本端发送BFD报文的TTL值调整为和对端一致,可以解决上述问题。

配置本功能后,当设备接收到对端发送的BFD报文时,如果BFD报文中携带的状态字段取值为DOWN或INIT,则本端会检查报文中的TTL值,具体机制如下:

·     对于单跳BFD会话,如果本端接收到的BFD报文的TTL值与通过bfd ttl命令设置的ttl-value不同,本端将丢弃该报文。

·     对于多跳BFD会话,如果本端接收到的BFD报文的TTL值大于通过bfd ttl命令设置的ttl-value,本端将丢弃该报文。

如果在配置本功能前BFD会话已经协商UP,配置本功能后,本端将BFD会话的状态置为AdminDown,触发BFD会话重新协商。

2. 配置限制和指导

使用bfd ttl命令设置BFD报文的TTL值时,需要注意:

·     bfd ttl命令对echo报文方式的BFD会话不生效,不会改变此类会话报文的TTL值。

·     bfd ttl命令不会改变SBFD报文的TTL值。设备也不会检查SBFD会话报文中的TTL值。

·     如果bfd ttl命令指定的多个IPv4或IPv6地址范围中都包括某个IPv4地址或IPv6地址,则设备使用最长匹配方式为该IPv4或IPv6地址的BFD会话报文选择TTL值。

·     对于同一个IPv4网段或IPv6网段,配置的单跳BFD报文TTL值必须大于多跳BFD报文TTL值。

3. 配置步骤

表1-11 配置BFD报文的TTL值

操作

命令

说明

进入系统视图

system-view

-

配置BFD报文的TTL值

bfd { peer-ip ipv4-address mask-length | peer-ipv6 ipv6-address prefix-length } ttl { single-hop | multi-hop } ttl-value

缺省情况下,单跳BFD报文TTL值为255,多跳BFD报文TTL值为64

 

1.5  开启BFD会话震荡抑制功能

BFD检测到链路故障时,会拆除BFD会话,并通知上层协议邻居不可达。当上层协议重新建立邻居关系后,BFD会话重新up。当链路频繁发生故障并故障恢复时,将导致BFD会话震荡,引发设备不断执行上述操作,这会占用大量的系统资源并影响网络的稳定性。可配置本功能通过如下惩罚机制对BFD会话震荡进行抑制。

BFD会话震荡的惩罚机制通过initial-intervalsecondary-intervalmaximum-interval参数来进行抑制:

·     在抑制时间间隔内,不允许建立BFD会话;在抑制时间间隔超时后,允许建立BFD会话。抑制时间最大不超过maximum-interval

·     BFD会话第二次down后,在initial-interval时间间隔内,不允许重新建立BFD会话。

·     BFD会话第三次down后,在secondary-interval时间间隔内,不允许重新建立BFD会话。

·     BFD会话第四次或更多次down后,按照如下规则抑制BFD会话的建立:

¡     secondary-interval×2n-3(n为BFD会话震荡的次数,初始值为4)小于或等于maximum-interval时,在secondary-interval×2n-3时间间隔内,不允许重新建立BFD会话。

¡     secondary-interval×2n-3(n为BFD会话震荡的次数,初始值为4)大于maximum-interval时,在maximum-interval时间间隔内,不允许重新建立BFD会话。

表1-12 开启BFD会话震荡抑制功能

操作

命令

说明

进入系统视图

system-view

-

开启BFD会话震荡抑制功能

bfd dampening [ maximum maximum-interval initial initial-interval secondary secondary-interval ]

缺省情况下,不会对BFD会话的建立进行抑制

initial-intervalsecondary-interval配置值不允许大于maximum-interval

 

1.6  配置M-LAG组网中M-LAG设备通过peer-link链路发送特定的BFD echo报文

1. 功能简介

通常情况下,使用echo报文方式的静态BFD会话时,不需要配置会话的远端标识符,仅需配置会话的本地标识符。在M-LAG组网中,其中一台M-LAG设备使用echo报文方式的静态BFD检测本地与下行设备之间的链路时,如果报文的目的IP与另外一台M-LAG设备的IP地址相同,则可能会出现BFD会话状态异常的问题。使用本功能可以解决上述问题。

例如,如图1-5所示,在用户侧设备通过M-LAG双归接入OSPF网络的场景中,M-LAG设备作为网关进行三层转发。不同M-LAG设备上的网关接口(例如VLAN接口)具有相同的IP地址和MAC地址。在每个M-LAG设备上创建echo报文方式的静态BFD会话,对本机与用户侧之间的链路进行检测,且M-LAG设备发送的BFD echo报文的目的IP为网关地址。Device C收到M-LAG 1发送的BFD echo报文后,可能会将该报文转发给M-LAG 2。M-LAG 2收到此类BFD echo报文后,由于报文的目的IP为本机IP,则M-LAG 2不会将报文发送给M-LAG 1。这样,将会导致M-LAG 1无法收到Device C转发的BFD echo报文,引发M-LAG 1上BFD会话状态异常。

为了解决上述问题,需要在M-LAG 2上配置远端标识符,配置的远端标识符为M-LAG 1上BFD会话的本地标识符。M-LAG 2收到标识符属于本端配置的远端标识符范围内的BFD echo报文后,会通过peer-link链路将报文发送给M-LAG 1,保证M-LAG 1上BFD会话能够正常UP。相似地,在M-LAG 1上配置远端标识符,配置的远端标识符为M-LAG 2上BFD会话的本地标识符,保证M-LAG 2上BFD会话能够正常UP。

图1-5 M-LAG组网中的BFD

 

2. 配置准备

建议用户合理规划M-LAG组网中M-LAG设备的BFD会话标识符,保证两台设备上BFD会话的标识符不会重叠。

3. 配置步骤

表1-13 配置M-LAG组网中M-LAG设备通过peer-link链路发送特定的BFD echo报文

操作

命令

说明

进入系统视图

system-view

-

配置本地的BFD会话远端标识符

bfd forwarding match remote-discriminator discr-value-list { discr-value1 [ to discr-value2 ] } &<1-10>

缺省情况下,未配置本地的BFD会话远端标识符

 

1.7  开启告警功能

开启BFD模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。(有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。)

表1-14 开启告警功能

操作

命令

说明

进入系统视图

system-view

-

开启BFD的告警功能

snmp-agent trap enable bfd

缺省情况下,BFD的告警功能处于开启状态

 

1.8  BFD显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后BFD的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除BFD会话的统计信息。

表1-15 BFD显示和维护

操作

命令

显示BFD会话信息

display bfd session [ discriminator local local-value | static session-name | verbose ]

display bfd session [ [ dynamic ] [ control | echo ] [ ip ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] ] [ verbose ] ]

display bfd session [ [ dynamic ] [ control | echo ] [ ipv6 ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ] [ verbose ] ]

display bfd session [ [ dynamic ] [ control | echo ] [ lsp | te | pw ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] ] | [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ] ] [ verbose ] ]

display bfd session [ [ static ] [ ip ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ip ipv4-address [ vpn-instance vpn-instance-name ] ] [ verbose ]

display bfd session [ [ static ] [ ipv6 ] [ state { down | admin-down | init | up } ] [ discriminator remote remote-value ] [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] ] [ verbose ]

显示BFD报文TTL值的配置信息

display bfd ttl

清除BFD会话统计信息

reset bfd session statistics

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们