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

10-可靠性配置指导

目录

09-BFD配置

本章节下载 09-BFD配置  (316.24 KB)

09-BFD配置


1 BFD

1.1  BFD简介

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

1.1.1  BFD会话的建立与拆除

BFD本身并没有发现机制,而是靠被服务的上层协议通知来建立会话。上层协议在建立新的邻居关系后,将邻居的参数及检测参数(包括目的地址和源地址等)通告给BFD;BFD根据收到的参数建立BFD会话。

当网络出现故障时:

(1)     BFD检测到链路故障后,拆除BFD会话,通知上层协议邻居不可达;

(2)     上层协议中止邻居关系;

(3)     如果网络中存在备用路径,设备将选择备用路径进行通信。

1.1.2  单跳检测和多跳检测

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

·     单跳检测:是指对两个直连设备进行IP连通性检测,这里所说的“单跳”是IP的一跳。

·     多跳检测:BFD可以检测两个设备间任意路径的链路情况,这些路径可能跨越很多跳。

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

BFD会话通过echo报文和控制报文实现。

1. echo报文方式

echo报文封装在UDP报文中传送,其UDP目的端口号为3785。

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

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

2. 控制报文方式

控制报文封装在UDP报文中传送,对于单跳检测其UDP目的端口号为3784,对于多跳检测其UDP目的端口号为4784。

链路两端通过周期性发送控制报文建立BFD会话,对链路进行检测。

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

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

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

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

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

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

·     查询模式:设备周期性发送BFD控制报文,但是对端(缺省为异步模式)会停止周期性发送BFD控制报文。如果通信双方都是查询模式,则双方都停止周期性发送BFD控制报文。当需要验证连接性的时候,设备会以协商的周期连续发送几个P比特位置1的BFD控制报文。如果在检测时间内没有收到返回的报文,就认为会话down;如果收到对方回应的F比特位置1的报文,就认为连通,停止发送报文,等待下一次触发查询。

1.1.4  BFD支持的应用

表1-1 BFD支持的应用

应用

参见信息

静态路由

IS-IS

OSPF

RIP

BGP

IP快速重路由

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

IPv6静态路由

OSPFv3

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

PIM

“IP组播配置指导”

RSVP

MPLS

MPLS L3VPN

MPLS OAM

“MPLS配置指导”

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 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的相关参数(例如最小发送间隔、最小接收间隔、初始模式、报文认证等),两端协议通过发送相应的协商报文后采用新的参数,不影响会话的当前状态。

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

1.3  echo报文方式配置

1. 配置限制和指导

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置echo报文源IP地址。请至少选择以下一项进行配置。

¡     配置echo报文源IPv4地址。

bfd echo-source-ip ip-address

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

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

¡     配置echo报文源IPv6地址。

bfd echo-source-ipv6 ipv6-address

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

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

(3)     (可选)配置echo报文方式的BFD参数。

a.     进入接口视图。

interface interface-type interface-number

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

bfd min-echo-receive-interval interval

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

c.     配置BFD检测时间倍数。

bfd detect-multiplier interval

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

1.4  控制报文方式配置

1.4.1  配置限制和指导

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

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

·     bfd session init-mode

·     bfd authentication-mode

·     bfd demand enable

·     bfd echo enable

1.4.2  配置单跳检测

(1)     进入系统视图。

system-view

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

bfd session init-mode { active | passive }

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

(3)     进入接口视图。

interface interface-type interface-number

(4)     (可选)配置单跳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控制报文不进行认证。

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

bfd demand enable

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

(6)     (可选)使能echo功能。

bfd echo [ receive | send ] enable

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

使能echo功能并且会话up后,设备周期性发送echo报文检测链路连通性,同时降低控制报文的接收速率。

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

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

bfd min-transmit-interval interval

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

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

bfd min-receive-interval interval

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

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

bfd detect-multiplier interval

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

(9)     (可选)创建一个检测本接口状态的BFD会话。

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

缺省情况下,不存在检测本接口状态的BFD会话。

本功能实现了接口状态与BFD会话状态的快速联动。当检测到链路故障时,将接口链路层协议状态置为“DOWN(BFD)”,从而帮助依赖接口链路层协议状态的应用快速收敛。

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

bfd detect-interface first-fail-timer seconds

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

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

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

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

1.4.3  配置多跳检测

(1)     进入系统视图。

system-view

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

bfd session init-mode { active | passive }

缺省情况下,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控制报文不进行认证。

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

bfd multi-hop destination-port port-number

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

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

bfd multi-hop detect-multiplier value

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

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

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

bfd multi-hop min-transmit-interval interval

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

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

bfd multi-hop min-receive-interval interval

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

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

1. 功能简介

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会话。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启BFD会话震荡抑制功能。

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

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

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

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

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

(5)     配置发送和接收BFD控制报文的最小时间间隔。

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

bfd min-transmit-interval interval

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

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

bfd min-receive-interval interval

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

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 value | verbose ]

清除BFD会话统计信息

reset bfd session statistics

 


2 SBFD

2.1  SBFD简介

SBFD(Seamless BFD,无缝BFD)是一种单向的故障检测机制,其检测速度比BFD更快速,适用于仅一端需要进行链路状态检测的情况,如MPLS TE隧道和使用LDP动态建立LSP的场景。关于SRLSP的详细介绍,请参见“Segment Routing配置指导”中的“MPLS SR”;关于利用LDP动态建立LSP的详细介绍,请参见“MPLS配置指导”中的“LDP”。

SBFD会话中,设备的角色分为Initiator和Reflector:

·     Initiator通过周期性发送SBFD控制报文来检测网络节点到远端实体的链路是否可达。Initiator将SBFD报文注入到MPLS TE隧道或LDP LSP中,由Initiator发起SBFD会话并维护SBFD会话的状态信息。

·     Reflector监听到达本地实体的SBFD控制报文,并发送SBFD控制报文类型的响应报文给Initiator。

图2-1所示,在基于SR建立的MPLS TE隧道中,作为Initiator的Router A只要能够收到作为Reflector的Router E发送的SBFD控制报文,即认为从Router A到Router E的SRLSP路径可达。

图2-1 SBFD的Initiator和Reflector

 

2.2  SBFD配置限制和指导

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

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

2.3  SBFD配置任务简介

(1)     配置Initiator

¡     配置Initiator(检测LDP LSP)

¡     配置Initiator(检测MPLS TE隧道)

(2)     配置Reflector

(3)     配置BFD模板

2.4  配置Initiator

2.4.1  配置限制和指导

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

2.4.2  配置Initiator(检测LDP LSP)

(1)     进入系统视图。

system-view

(2)     使能MPLS与BFD联动功能。

mpls bfd enable

缺省情况下,MPLS与BFD联动功能处于关闭状态。

关于本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。

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

bfd multi-hop detect-multiplier value

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

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

bfd multi-hop min-transmit-interval interval

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

(5)     配置使用SBFD检测指定FEC对应LSP的连通性。

mpls sbfd dest-addr mask-length [ nexthop nexthop-address ] remote remote-id [ template template-name ]

缺省情况下,未使用SBFD检测FEC对应LSP的连通性。

关于本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。

2.4.3  配置Initiator(检测MPLS TE隧道)

(1)     进入系统视图。

system-view

(2)     使能MPLS与BFD联动功能。

mpls bfd enable

缺省情况下,MPLS与BFD联动功能处于关闭状态。

关于本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。

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

bfd multi-hop detect-multiplier value

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

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

bfd multi-hop min-transmit-interval interval

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

(5)     进入MPLS TE隧道对应的Tunnel接口视图。

interface tunnel number [ mode mpls-te ]

(6)     配置使用SBFD检测隧道接口对应MPLS TE隧道的连通性

mpls sbfd remote remote-id [ template template-name ]

缺省情况下,未使用SBFD检测隧道接口对应MPLS TE隧道的连通性。

关于本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS OAM”。

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会话的参数进行灵活配置。使用SBFD检测LDP LSP或MPLS TE隧道时,指定关联的BFD参数模式,即可指定SBFD会话参数。

2. 配置步骤

(1)     进入系统视图。

system-view

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

bfd template template-name

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

bfd detect-multiplier value

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

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

bfd min-transmit-interval interval

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

2.7  SBFD显示和维护

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

表2-1 SBFD显示和维护

操作

命令

显示SBFD会话信息

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

 

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

新华三官网
联系我们