10 您所在的位置:网站首页 bfd技术 10

10

2024-07-15 19:47| 来源: 网络整理| 查看: 265

目  录

1 BFD

1.1 BFD简介

1.1.1 BFD的基本原理

1.1.2 单跳检测和多跳检测

1.1.3 BFD会话的工作方式

1.1.4 硬件BFD

1.1.5 BFD支持的应用

1.1.6 协议规范

1.2 BFD配置限制和指导

1.3 BFD配置任务简介

1.4 配置echo报文方式的BFD会话

1.4.1 BFD会话建立方式

1.4.2 配置限制和指导

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

1.4.4 调整BFD检测时间

1.5 配置控制报文方式的BFD会话

1.5.1 BFD会话建立方式

1.5.2 配置限制和指导

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

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

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

1.5.6 调整BFD检测时间

1.5.7 配置BFD会话认证信息

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

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

1.5.10 配置BFD回声功能

1.5.11 配置接口状态与BFD联动

1.6 配置BFD模板

1.7 开启告警功能

1.8 BFD显示和维护

2 SBFD

2.1 SBFD简介

2.2 SBFD配置限制和指导

2.3 SBFD配置任务简介

2.4 配置Initiator

2.4.1 配置限制和指导

2.4.2 配置Initiator(检测SRv6 TE Policy)

2.5 配置Reflector

2.6 配置BFD模板

2.7 SBFD显示和维护

 

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的流程为:

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

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

(3)     本地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会话通过echo报文和控制报文实现。

1. echo报文方式

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

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

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

当BFD会话工作于echo报文方式时,仅在MPLS TE隧道和VXLAN隧道的场景中支持多跳检测,其他应用的BFD会话仅支持单跳检测,两种应用均不受检测模式的控制。

2. 控制报文方式

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

1.1.4  硬件BFD

软件BFD是指BFD检测过程中的报文收发、BFD会话状态机的维护完全依赖CPU来处理。软件BFD会极大的消耗CPU能力。同时,受CPU性能影响,能够支持的BFD会话规格较小,无法用于大规格BFD会话需求的应用场景。

硬件BFD把过度消耗CPU资源的会话处理转移到芯片,这样CPU可以及时处理其他重要任务。硬件BFD会话处理的性能不受限于CPU的性能。相较于软件BFD,硬件BFD能够支持大规格的BFD会话。

用户通过display bfd session verbose命令显示信息中的Hardware mode字段能够判断会话由软件维护还是由硬件维护:Hardware mode字段取值为Disabled,说明会话由软件维护;Hardware mode字段取值为Enabled,说明会话由硬件维护。

对于由硬件维护的BFD会话,触发会话切换为软件维护的常见操作包括:

·     拔出支持硬件BFD的单板

由硬件维护的BFD会话切换为软件维护时,可能会导致会话震荡,请谨慎配置。

本特性的支持情况与设备的型号有关,请以设备的实际情况为准。

型号

说明

MPU-60

不支持

MPU-100

不支持

MPU-100-X1

支持

MPU-100-G

不支持

 

1.1.5  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”

SDWAN使用BFD检测隧道连通性

“SDWAN配置指导”中的“SDWAN”

 

1.1.6  协议规范

与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 5884:Bidirectional Forwarding Detection (BFD) for MPLS Label Switched Paths (LSPs)

·     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配置限制和指导

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

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

对于建立在跨板聚合接口上的BFD会话,当负责收发BFD报文的单板被拔出或异常重启时,备用单板接替收发BFD报文的工作需要一定的时间,如果BFD会话检测时间较短或者会话数量较多,可能会出现BFD会话震荡的情况。(IRF模式)

 

1.3  BFD配置任务简介

(1)     配置echo报文方式的BFD会话

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

¡     调整BFD检测时间

(2)     配置控制报文方式的BFD会话

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

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

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

¡     调整BFD检测时间

¡     配置BFD会话认证信息

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

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

¡     配置BFD回声功能

¡     配置接口状态与BFD联动

(3)     配置BFD模板

(4)     开启告警功能

1.4  配置echo报文方式的BFD会话 1.4.1  BFD会话建立方式

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

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

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

1.4.2  配置限制和指导

在已配置uRPF功能的设备上,需要注意:

·     配置应用程序与echo方式的BFD联动时,设备会将对端转发回来的echo报文丢弃。可以配置ACL允许echo报文源地址通过,并将此ACL应用于uRPF,从而抑制报文丢弃。

·     配置echo报文方式的静态BFD会话时,为了避免设备将对端转发回来的echo报文丢弃,需要保证静态BFD会话中指定的源IPv4/IPv6地址能够通过uRPF检查。

关于uRPF功能的详细介绍请参见“安全配置指导”中的“uRPF”。

建议配置echo报文的源IPv4/IPv6地址不属于该设备任何一个接口所在网段,原因如下:

·     避免对端发送大量的ICMP重定向报文造成网络拥塞。

·     本端开启畸形报文检测与防范功能的情况下,从对端返回的echo报文会被当做畸形报文过滤掉,导致本端无法建立BFD会话。关于畸形报文检测与防范功能的详细介绍,请参见“安全配置指导”中的“攻击检测与防范”。

不支持使用echo报文方式的BFD会话跨NAT设备进行路径检测。

1.4.3  通过bfd static命令手工创建静态BFD会话 1. 功能简介

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

2. 配置限制和指导

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

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

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

echo报文方式的静态BFD会话选取报文源地址的规则如下:

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

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

(3)     如果未通过(1)或(2)指定报文的源地址,echo报文方式的静态BFD会话将使用destination-ip/destination-ipv6参数指定的IPv4/IPv6地址作为报文的源IPv4/IPv6地址。

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

(1)     进入系统视图。

system-view

(2)     (可选)配置echo报文源IP地址。

¡     配置echo报文源IPv4地址。

bfd echo-source-ip ip-address

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

¡     配置echo报文源IPv6地址。

bfd echo-source-ipv6 ipv6-address

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

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

(3)     创建静态BFD会话,并进入静态BFD会话视图。

(IPv4网络)

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

(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 { local local-value | auto } ]

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

(1)     进入系统视图。

system-view

(2)     (可选)配置echo报文源IP地址。

¡     配置echo报文源IPv4地址。

bfd echo-source-ip ip-address

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

¡     配置echo报文源IPv6地址。

bfd echo-source-ipv6 ipv6-address

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

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

(3)     创建静态BFD会话,并进入静态BFD会话视图。

(IPv4网络)

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

(IPv6网络)

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

1.4.4  调整BFD检测时间 1. 功能简介

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

2. 配置限制和指导

多个上层应用关联同一个BFD会话,即会话的“源IP地址+目的IP地址+会话所在的接口+VPN+目的端口号”信息完全相同,检测时间参数的优选顺序如下:

(1)     静态BFD会话视图下设置的检测时间参数、上层应用引用的BFD模板设置的检测时间参数、上层应用单独设置的检测时间参数中的最小值。

(2)     接口视图或系统视图下设置的检测时间参数。

(3)     缺省值。

一个BFD会话仅被一个上层应用关联,检测时间参数的优选顺序如下:

(1)     上层应用是否支持引用BFD模板、是否支持单独设置检测时间参数会影响检测时间参数的优选顺序,具体如下:

¡     如果上层应用既支持引用BFD模板,也支持单独设置检测时间参数,则上层应用既引用了BFD模板、又单独设置了检测时间参数时,上层协议优先使用引用的BFD模板中的检测时间参数。

¡     如果上层应用支持引用BFD模板、不支持单独设置检测时间参数,则上层应用引用BFD模板后,使用该BFD模板中的检测时间参数。

¡     如果上层协议支持单独设置检测时间参数、不支持引用BFD模板,则上层应用单独设置检测时间参数后,使用这些单独设置的检测时间参数。

(2)     接口视图或系统视图下设置的检测时间参数。

(3)     缺省值。

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

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置接收单跳echo报文的最小时间间隔。

bfd min-echo-receive-interval interval

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

(4)     配置单跳检测的BFD检测时间倍数。

bfd detect-multiplier interval

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

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

(1)     进入系统视图。

system-view

(2)     配置接收多跳echo报文的最小时间间隔。

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

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

(3)     配置多跳检测的BFD检测时间倍数。

bfd multi-hop detect-multiplier value

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

1.5  配置控制报文方式的BFD会话 1.5.1  BFD会话建立方式

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

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

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

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

¡     应用程序与BFD联动时,由用户手工指定会话的本地标识符和远端标识符。

·     动态BFD会话的本端标识符由本端设备分配,远端标识符在BFD会话协商建立过程中获取。应用程序与BFD联动时,如果用户未指定会话的本地标识符和远端标识符,则建立的会话为动态BFD会话。

1.5.2  配置限制和指导

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

·     bfd session init-mode

·     bfd authentication-mode

·     bfd demand enable

·     bfd echo enable

1.5.3  配置BFD会话建立前的运行模式 1. 功能简介

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

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

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

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置BFD会话建立前的运行模式。

bfd session init-mode { active | passive }

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

1.5.4  配置BFD会话建立后的运行模式 1. 功能简介

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

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

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

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

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置BFD会话为查询模式。

bfd demand enable

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

1.5.5  通过bfd static命令手工创建静态BFD会话 1. 功能简介

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

2. 配置限制和指导

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

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

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

3. 配置检测设备间网络层连通性的静态BFD会话(单跳检测)

(1)     进入系统视图。

system-view

(2)     创建静态BFD会话,并进入静态BFD会话视图。

(IPv4网络)

bfd static session-name peer-ip ipv4-address interface interface-type interface-number source-ip ipv4-address discriminator 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 local local-value remote remote-value

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

4. 配置检测设备间数据链路层连通性的静态BFD会话(单跳检测)

(1)     进入系统视图。

system-view

(2)     创建静态BFD会话,并进入静态BFD会话视图。

bfd static session-name peer-ip default-ip interface interface-type interface-number source-ip ip-address discriminator local discr-value remote discr-value

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

(3)     (可选)配置接口状态与静态BFD会话联动。

process-interface-status

缺省情况下,接口状态不与静态会话联动,即静态BFD会话状态的改变不会影响接口数据链路层协议状态。

(4)     (可选)配置首次建立检测数据链路层连通性的静态BFD会话失败时,通知数据链路层BFD会话down的超时时间。

first-fail-timer seconds

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

配置process-interface-status命令后,本命令才会生效。

(5)     (可选)开启对检测数据链路层连通性的静态BFD会话进行特殊处理的功能。

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

缺省情况下,对检测数据链路层连通性的静态BFD会话进行特殊处理的功能处于关闭状态。

5. 创建多跳检测的静态BFD会话

(1)     进入系统视图。

system-view

(2)     创建静态BFD会话,并进入静态BFD会话视图。

(IPv4网络)

bfd static session-name peer-ip ipv4-address [ vpn-instance vpn-instance-name ] source-ip ipv4-address discriminator local local-value remote remote-value

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

(IPv6网络)

bfd static session-name peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] source-ipv6 ipv6-address discriminator local local-value remote remote-value

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

1.5.6  调整BFD检测时间 1. 功能简介

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

2. 配置限制和指导

多个上层应用关联同一个BFD会话,即会话的“源IP地址+目的IP地址+会话所在的接口+VPN+目的端口号”信息完全相同,检测时间参数的优选顺序如下:

(1)     静态BFD会话视图下设置的检测时间参数、上层应用引用的BFD模板设置的检测时间参数、上层应用单独设置的检测时间参数中的最小值。

(2)     接口视图或系统视图下设置的检测时间参数。

(3)     缺省值。

一个BFD会话仅被一个上层应用关联,检测时间参数的优选顺序如下:

(1)     上层应用是否支持引用BFD模板、是否支持单独设置检测时间参数会影响检测时间参数的优选顺序,具体如下:

¡     如果上层应用既支持引用BFD模板,也支持单独设置检测时间参数,则上层应用既引用了BFD模板、又单独设置了检测时间参数时,上层协议优先使用引用的BFD模板中的检测时间参数。

¡     如果上层应用支持引用BFD模板、不支持单独设置检测时间参数,则上层应用引用BFD模板后,使用该BFD模板中的检测时间参数。

¡     如果上层协议支持单独设置检测时间参数、不支持引用BFD模板,则上层应用单独设置检测时间参数后,使用这些单独设置的检测时间参数。

(2)     接口视图或系统视图下设置的检测时间参数。

(3)     缺省值。

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

(1)     进入系统视图。

system-view

(2)     进入接口视图或静态BFD会话视图。

¡     进入接口视图。

interface interface-type interface-number

¡     进入静态BFD会话视图。

bfd static session-name

静态BFD会话必须已经存在。

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

bfd min-transmit-interval interval

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

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

bfd min-receive-interval interval

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

(5)     配置单跳检测的BFD检测时间倍数。

bfd detect-multiplier interval

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

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

(1)     进入系统视图。

system-view

(2)     配置多跳检测的BFD检测时间倍数。

bfd multi-hop detect-multiplier value

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

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

bfd multi-hop min-receive-interval interval

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

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

bfd multi-hop min-transmit-interval interval

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

1.5.7  配置BFD会话认证信息 1. 功能简介

通过配置BFD会话认证信息,包括认证算法、认证密钥,提高BFD会话的安全性。

2. 配置单跳BFD的认证方式

(1)     进入系统视图。

system-view

(2)     进入接口视图或静态BFD会话视图。

¡     进入接口视图。

interface interface-type interface-number

¡     进入静态BFD会话视图。

bfd static session-name

静态BFD会话必须已经存在。

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

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

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

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

3. 配置多跳BFD的认证方式

(1)     进入系统视图。

system-view

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

bfd static session-name

静态BFD会话必须已经存在。

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

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

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

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

1.5.8  配置多跳BFD控制报文的目的端口号 1. 功能简介

IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将端口号4784分配给BFD,用于BFD控制报文多跳检测。缺省情况下,H3C设备多跳BFD控制报文的目的端口号为4784。与多跳BFD控制报文目的端口号为3784的其他厂商设备互通时,建议两端使用相同的多跳BFD控制报文端口号,否则可能会导致BFD会话协商失败。

2. 配置限制和指导

配置本功能后,只有此后新创建的控制报文方式的多跳BFD会话,才会使用本功能设置的端口块作为发送报文的目的端口号。对于配置本功能前已经Up的控制报文方式的多跳BFD会话,不会使用本功能设置的端口号作为发送报文的目的端口号。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置多跳BFD控制报文的目的端口号。

bfd multi-hop destination-port port-number

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

1.5.9  配置BFD会话无法建立时,通知上层协议BFD会话down的超时时间 1. 功能简介

缺省情况下,控制报文工作方式的BFD会话无法建立时,不会通知上层协议BFD会话down。某些情况下,需要将BFD会话无法建立的消息通知给上层协议,以使上层协议作出正确的处理。比如在聚合链路中,由于链路故障等原因,BFD会话无法进入up状态,从而导致聚合模块无法及时将成员端口的选中状态修改为非选中状态,配置本命令可避免上述情况的发生。

2. 配置限制和指导

本功能对echo报文方式的BFD会话无效。

3. 配置步骤

(1)     进入系统视图。

system-view

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

bfd init-fail-timer seconds

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

注意

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

 

1.5.10  配置BFD回声功能 1. 功能简介

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

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

2. 配置限制和指导

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图或静态BFD会话视图。

¡     进入接口视图。

interface interface-type interface-number

¡     进入静态BFD会话视图。

bfd static session-name

静态BFD会话必须已经存在,且必须是检测设备间数据链路层连通性的静态BFD会话。

(3)     使能回声功能。

bfd echo [ receive | send ] enable

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

1.5.11  配置接口状态与BFD联动 1. 功能简介

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

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

·     三层以太网接口及其子接口。请不要在三层以太网接口和该三层以太接口创建的子接口上同时使用该功能,否则,将导致主接口或子接口的BFD检测功能失效。

·     三层聚合接口、三层聚合接口的子接口以及三层聚合口的成员端口,其中三层聚合口的成员端口全部为三层以太网接口。请不要在三层聚合接口、该三层聚合接口的子接口以及该三层聚合口的成员端口上同时使用此功能,否则可能导致BFD检测功能失效。

·     VLAN接口

2. 配置限制和指导

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

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     配置接口状态与BFD联动。

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

缺省情况下,接口状态不与BFD联动,即BFD检测到链路故障时,不会将接口链路层协议状态置为“DOWN(BFD)。

(4)     (可选)配置接口与BFD联动的会话首次建立失败时,通知数据链路层BFD会话down的超时时间。

bfd detect-interface first-fail-timer seconds

缺省情况下,接口与BFD联动的会话首次建立失败时,不会通知数据链路层BFD会话down。

(5)     (可选)开启接口与BFD联动的会话进行特殊处理的功能。

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

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

1.6  配置BFD模板 1. 功能简介

对于未指定出接口的会话,无法通过会话出接口配置BFD会话参数。使用BFD全局多跳可以配置,但是缺乏灵活性。通过BFD模板可以对参数进行灵活配置,LSP以及PW的BFD检测关联到BFD模板即可指定会话参数。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建BFD模板,并进入BFD模板视图。

bfd template template-name

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

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

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

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

(4)     配置BFD检测时间倍数。

bfd detect-multiplier value

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

(5)     配置接收echo报文的最小时间间隔。

bfd min-echo-receive-interval interval

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

(6)     配置接收BFD控制报文的最小时间间隔。

bfd min-receive-interval interval

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

(7)     配置发送BFD控制报文的最小时间间隔。

bfd min-transmit-interval interval

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

1.7  开启告警功能 1. 功能简介

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启BFD的告警功能。

snmp-agent trap enable bfd

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

1.8  BFD显示和维护

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

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

表1-2 BFD显示和维护

操作

命令

显示BFD会话信息

display bfd session [ discriminator local local-value | static name 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会话统计信息

reset bfd session statistics

 

2 SBFD 2.1  SBFD简介

SBFD(Seamless BFD,无缝BFD)是一种单向的故障检测机制,简化了BFD的状态机(SBFD仅支持UP、DOWN两个状态),缩短了会话协商时间,其检测速度比BFD更快速。SBFD适用于仅一端需要进行链路状态检测的情况。

SBFD会话中,节点的角色分为发起端(Initiator)和响应端(Reflector):

·     Initiator:SBFD会话的发起者,负责维护SBFD会话的状态。Initiator周期性发送SBFD控制报文。

·     Reflector:监听到达本地节点的SBFD控制报文,并判断是否需要生成SBFD响应报文。Reflector无需维护SBFD会话状态。

SBFD的检测机制如下:

(1)     Initiator周期性向Reflector发送SBFD控制报文。

(2)     Reflector收到Initiator发送的SBFD报文后,检查报文中携带的远端标识符是否与本地节点为Reflector指定的标识符一致。如果一致,Reflector将向Initiator发送SBFD响应报文。如果不一致,Reflector将丢弃收到的SBFD报文。

(3)     Initiator在检测时间超时前收到响应报文,则认为链路可达。否则,认为链路不可达。

2.2  SBFD配置限制和指导

一个节点可以同时作为不同SBFD会话的Initiator和Reflector。

目前仅支持采用静态方式建立SBFD会话,即通过命令行手工指定远端的标识符,根据指定的标识符建立SBFD会话。

2.3  SBFD配置任务简介

(1)     配置Initiator

¡     配置Initiator(检测SRv6 TE Policy)

(2)     配置Reflector

(3)     (可选)配置BFD模板

2.4  配置Initiator 2.4.1  配置限制和指导

Initiator发送的SBFD控制报文中携带的远端标识符必须为Reflector上通过sbfd local-discriminator命令指定的标识符,当Reflector收到Initiator发送的SBFD控制报文后,发现报文中携带的远端标识符不是自己的本地标识符时,不会发送响应报文给Initiator。

2.4.2  配置Initiator(检测SRv6 TE Policy) 1. 功能简介

SBFD可以用来检测SRv6 TE Policy的连通性,为其提供毫秒级的故障检测速度,并实现快速的故障切换。一个SRv6 TE Policy中,优先级最高的有效路径为主路径,优先级次高的有效路径为备份路径。SBFD对SRv6 TE Policy的主、备路径进行检测。如果主、备路径中存在多个SID列表,SBFD会对所有SID列表进行检测。当SBFD检测到SRv6 TE Policy主路径的所有SID列表均无效时,SBFD通知SRv6 TE Policy切换到备份路径。

如图2-1所示,在Device A上配置SRv6 TE Policy,并使用SBFD检测该SRv6 TE Policy。SBFD检测SRv6 TE Policy的过程如下:

(1)     头节点作为Initiator发送SBFD报文,SBFD报文封装SRv6 TE Policy中主路径或备份路径对应的SID列表,分别对主、备路径进行检测。

(2)     作为Reflector的尾节点收到SBFD报文后,检查报文中携带的远端标识符是否与本地配置的标识符一致。如果一致,Reflector将通过IPv6路由向Initiator发送SBFD响应报文。如果不一致,Reflector将丢弃收到的SBFD报文。

(3)     如果头节点在检测时间超时前能够收到SBFD响应报文,则认为SRv6 TE Policy的SID列表正常。否则,头节点认为SID列表故障。如果主路径下的所有SID列表都发生故障,则SBFD触发主备路径切换。

图2-1 SBFD for SRv6 TE Policy检测过程

 

2. 配置限制和指导

SRv6-TE视图和SRv6 TE Policy视图下均可以配置SRv6 TE Policy的SBFD功能。SRv6-TE视图的配置对所有SRv6 TE Policy都有效,而SRv6 TE Policy视图的配置只对当前SRv6 TE Policy有效。对于一个SRv6 TE Policy来说,优先采用该SRv6 TE Policy内的配置,只有该SRv6 TE Policy内未进行配置时,才采用SRv6-TE视图的配置。

SRv6 TE Policy通知SBFD创建会话时,会将报文的源地址、目的地址等信息通告给SBFD。其中,源地址为sbfd source-ipv6命令指定的地址。需要确保远端设备上存在到达sbfd source-ipv6命令指定的地址的路由。

目前,支持通过BFD echo报文和SBFD两种方式检测SRv6 TE Policy。在同一SRv6 TE Policy下同时配置以上两种检测方式时,SBFD检测生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     (可选)配置SBFD检测时间倍数。

bfd multi-hop detect-multiplier value

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

(3)     (可选)配置发送SBFD控制报文的最小时间间隔。

bfd multi-hop min-transmit-interval interval

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

(4)     配置Initiator发送SBFD报文使用的源IPv6地址。

sbfd source-ipv6 ipv6-address

缺省情况下,未配置Initiator发送SBFD报文使用的源IPv6地址。

(5)     进入SRv6视图。

segment-routing ipv6

(6)     进入SRv6-TE视图。

traffic-engineering

(7)     全局开启SRv6 TE Policy的SBFD功能并配置相关参数。

srv6-policy sbfd remote remote-id [ template template-name ] [ backup-template backup-template-name ]

缺省情况下,SRv6 TE Policy的SBFD功能处于关闭状态。

(8)     进入SRv6 TE Policy视图。

policy policy-name

(9)     配置SRv6 TE Policy的SBFD功能。

sbfd { disable | enable [ remote remote-id ] [ template template-name ] [ backup-template backup-template-name ] [ oam-sid sid ] }

缺省情况下,未配置SRv6 TE Policy的SBFD功能,以SRv6-TE视图下的配置为准。

关于本命令的详细介绍,请参见“Sgment Routeing命令参考”中的“SRv6 TE Policy”。

2.5  配置Reflector 1. 配置限制和指导

在SBFD会话的Reflector端配置IPv4地址形式的本地标识符后,设备会自动转换为整数形式的本地标识符。IPv4地址形式的本地标识符用于和其他厂商互通,通常情况下,建议配置整数形式的本地标识符。

Reflector收到Initiator发送的SBFD控制报文中携带的远端标识符为Reflector上通过sbfd local-discriminator命令指定的任意一个标识符时,Reflector均会发送响应报文给Initiator。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     在SBFD会话的Reflector端配置本地标识符。

sbfd local-discriminator { ipv4-address | integer-value }

缺省情况下,未配置SBFD会话的Reflector端的本地标识符。

多次执行本命令,可以为Reflector端配置多个本地标识符。

2.6  配置BFD模板 1. 功能简介

通过BFD模板可以对SBFD会话的参数进行灵活配置。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建BFD模板,并进入BFD模板视图。

bfd template template-name

(3)     配置SBFD检测时间倍数。

bfd detect-multiplier value

本命令的缺省情况与设备的型号有关,具体请参见命令参考。

(4)     配置发送SBFD控制报文的最小时间间隔。

bfd min-transmit-interval interval

缺省情况下,发送SBFD控制报文的最小时间间隔为1000毫秒。

2.7  SBFD显示和维护

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

表2-1 SBFD显示和维护

操作

命令

显示SBFD会话信息

display sbfd session { initiator | reflector } [ discriminator value | verbose ]

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有