用于 MPLS 的双向转发检测 (BFD)
为 MPLS 配置双向转发检测(CLI 过程)
您可以在 EX8200 独立交换机和 EX8200 虚拟机箱上配置双向转发检测 (BFD) 协议,以检测 MPLS 标签交换机路径 (LSP) 中的故障。BFD 协议是一种简单的发送机制,用于检测网络故障。Hello 数据包将按指定的定期发送间隔发送。当路由设备在指定间隔后停止接收来自邻接方的答复时,将检测到邻接方故障。BFD 适用于各种网络环境和拓扑结构。与静态路由的故障检测机制相比,BFD 的故障检测计时器具有更短的时间限制,因此检测速度更快。这些计时器也是自适应的。例如,如果邻接失败,计时器可以适应更高的值,或者邻接方可以协商高于配置的值。
本主题介绍如何配置提供商边缘 (PE) 交换机和提供商交换机以支持基于 LDP 的 LSP 和基于 RSVP 的 LSP。
本主题包括:
在提供商边缘和提供商交换机上配置 BFD,以实现基于 LDP 的 LSP
您可以为基于 LDP 的 LSP 或与特定转发等效类 (FEC) 关联的基于 RSVP 的 LSP 启用 BFD。或者,您也可以配置操作管理和维护 (OAM) 入口策略,以在一系列 FEC 地址上启用 BFD。
为基于 LDP 的 LSP 配置 BFD 之前,您必须为 MPLS 网络配置基本组件:
配置两台 PE 交换机。请参阅 使用 IP over-MPLS 在提供商边缘交换机上配置 MPLS。
配置一个或多个提供商交换机。请参阅 在 EX8200 和 EX4500 提供商交换机上配置 MPLS。
在 PE 和提供商交换机上配置 BFD:
在提供商边缘和提供商交换机上配置 BFD,以实现基于 RSVP 的 LSP
为入口交换机上的基于 RSVP 的 LSP 配置 BFD 时,在主路径和该 LSP 的所有备用辅助路径上都会启用 BFD。您可以为交换机上的所有 LSP 或特定 LSP 启用 BFD。如果为特定的 LSP 配置 BFD,则为 BFD 全局配置的任何值都会覆盖该 LSP。BFD 会话仅从入口交换机发起,在出口交换机终止。
为基于 RSVP 的 LSP 配置 BFD 之前,您必须为 MPLS 网络配置基本组件:
配置两台 PE 交换机。请参阅 使用 IP over-MPLS 在提供商边缘交换机上配置 MPLS。
配置一个或多个提供商交换机。请参阅 在 EX8200 和 EX4500 提供商交换机上配置 MPLS。
在 PE 和提供商交换机上配置 BFD:
BFD 触发的本地修复,实现快速融合
了解 BFD 触发的本地保护
链路或节点发生故障后,网络融合所需的时间可能会因网络规模、使用的协议和网络设计等多种因素而显著不同。但是,虽然每个特定融合事件都不同,但融合过程基本一致。检测到故障,在网络中报告(泛洪)故障,为流量找到替代路径,并更新转发平面以在新路径上传递流量。
本概述讨论双向转发检测 (BFD) 触发的本地修复如何缩短恢复时间,以实现 MPLS 网络中快速融合。
BFD 触发的本地修复的目的
在 Junos OS 中,由多个补充机制提供针对 RSVP 信号标签交换路径 (LSP) 故障的常规 MPLS 流量保护。这些保护机制包括本地保护(快速重新路由、链路保护和节点链路保护)和路径保护(主路径和辅助路径)。本地保护与路径保护相结合,可以为 LSP 提供最少的丢包,并控制发生故障后 LSP 重新路由的方式。传统上,这两种类型的保护都依赖于在物理级别快速检测连接故障。但是,对于没有快速物理级别检测的传输介质,Junos OS 支持 BFD 和 MPLS ping,以实现快速故障检测。
借助路由器之间的链路,当路由中断时,路由协议进程会重新计算下一个最佳路径。启用 MPLS 快速重新路由 (FRR) 后,ifl 消息将泛洪到所有灵活 PIC 集中器 (FPC)。边缘 FPC 支持旁路 MPLS LSP 隧道。最后,所有路由都会被修复并通过旁路 MPLS LSP 隧道发送。修复所有路由所需的时间与路由数量成比例。
当交换机位于两个链路之间时,这种维修场景变得更加困难。请参阅图 1。

当远程链路中断时,在内部网关协议 (IGP) 关闭之前,不会在本地端检测到故障。等待路由协议进程重新计算下一个最佳路径需要太多时间。
启用 BFD 触发的本地修复后,数据包转发引擎首先使用绕过 MPLS LSP 隧道(预配置和安装隧道),然后通知路由协议进程重新计算新路由。通过这样做,当主 MPLS LSP 隧道关闭时,FPC 可以间歇性地立即通过旁路 MPLS LSP 隧道将流量转移到 FPC。
以这种方式使用本地修复可缩短不到 50 毫秒的恢复时间。
配置 BFD 触发的本地修复
BFD 触发的本地修复不可配置,但属于默认配置的一部分。
BFD 触发的本地修复适用于传统 Junos OS,其功能包括 MPLS-FRR、适用于 IGP 的 BFD 和无环路替代项 (LFA)。
禁用 BFD 触发的本地修复
默认情况下,所有路由接口均会启用 BFD 触发的本地修复。如果需要,可以在 [edit routing-options] 层次结构级别禁用 BFD 触发的本地修复。
要显式禁用 BFD 触发的本地修复:
将
no-bfd-triggered-local-repair
语句包含在 [编辑路由选项] 层次结构级别:user@host# set no-bfd-triggered-local-repair
(可选)使用
show routing-options
命令提交配置设置之前,先验证您的配置设置。user@host# run show routing-options
发出命令以确认 show routing-options 您的配置。
user@host# show routing-options ... no-bfd-triggered-local-repair; }
禁用此功能时,还必须包含 IGP 的语句来 graceful-restart 重新启动路由。例如,对于 OSPF,可以通过在 graceful-restart 层次结构级别包含语句 [edit protocols ospf]
来实现。
为 MPLS IPv4 LSP 配置 BFD
您可以按照互联网草案 draft-ietf-bfd-mpls-mpls-02.txt,在 MPLS IPv4 LSP 上配置双向转发检测 (BFD) 协议。BFD 用作 LSP 的定期操作、管理和维护 (OAM) 功能,用于检测 LSP 数据平面故障。您可以为使用 LDP 或 RSVP 作为信令协议的 LSP 配置 BFD。
MPLS IPv4 LSP 的 BFD 基于路由引擎,非分布式。因此,支持的最小 BFD 计时器间隔为每一个 LSP 会话 (100 毫秒 * 3),对于缩放的 LSP 会话,支持的最小 BFD 计时器间隔为 (300 毫秒 * 3)。随着使用 BFD 增加 LSP 会话数,还必须增加(扩展)间隔计时器以支持网络。
对于支持不间断主动路由 (NSR) 的路由引擎切换实例,支持的最小 BFD 计时器间隔为(2.5 秒 * 3)。
您还可以使用 LSP ping
命令检测 LSP 数据平面故障。但是,BFD 有几个好处:与 LSP ping
命令相比,它所需的计算机处理更少,可以快速检测大量 LSP 中的故障(必须为每个 LSP ping
单独发出 LSP 命令)。另一方面,BFD 不能用于验证控制平面与出口 LSR 的数据平面,这在 LSP ping
回显请求与转发等效类 (FEC) 相关联时是可能的。
BFD 故障检测计时器是自适应的,可以调整为或多或少主动。例如,如果邻接失败,计时器可以适应更高的值,或者邻接方可以协商计时器比配置的值更高的值。当 BFD 会话翻动在 15 秒内发生三次以上时,计时器会适应更高的值。如果本地 BFD 实例是会话翻动的原因,则回退算法将接收 (Rx) 间隔增加 2。如果远程 BFD 实例是会话翻动的原因,则传输 (Tx) 间隔将增加 2。您可以使用 clear bfd adaptation
命令将 BFD 间隔计时器返回到其配置的值。命令 clear bfd adaptation
是无中断的,这意味着命令不会影响路由设备上的流量。
从 Junos OS 13.2R4、13.3R2 和 14.1 版开始,您可以分别设置 LSP ping 消息与 LSP ping 响应数之间的时间间隔,在此之后,双向转发检测 (BFD) 会话将被关闭。为此,您可以在层次结构级别配置 lsp-ping-interval
语句和 lsp-ping-multiplier
语句 [edit protocols mpls oam]
。
有关 LDP 信号 LSP 的配置说明,请参阅 为 LDP LSP 配置 BFD。有关 RSVP 信号 LSP 的配置说明,请参阅以下部分。
为 RSVP 信号 LSP 配置 BFD
用于 RSVP 的 BFD 支持单播 IPv4 LSP。为入口路由器上的 RSVP LSP 配置 BFD 时,它将在主路径和该 LSP 的所有备用辅助路径上启用。MPLS BFD 会话出口端的传出 BFD 数据包的源 IP 地址基于传出接口 IP 地址。您可以为路由器上的所有 LSP 或特定 LSP 启用 BFD。如果为特定的 LSP 配置 BFD,则为 BFD 全局配置的任何值都会被覆盖。BFD 会话仅从入口路由器发出,在出口路由器终止。
只要路径的 BFD 会话失败,就会记录错误。以下示例显示 RSVP LSP 日志消息的 BFD:
RPD_MPLS_PATH_BFD_UP: MPLS BFD session for path path1 up on LSP R0_to_R3 RPD_MPLS_PATH_BFD_DOWN: MPLS BFD session for path path1 down on LSP R0_to_R3
您可以为路由器上的所有 RSVP LSP、特定 LSP 或特定 LSP 的主路径配置 BFD。要为 RSVP LSP 配置 BFD,请添加 oam
和 bfd-liveness-detection
语句。
oam { bfd-liveness-detection { failure-action { make-before-break teardown-timeout seconds; teardown; } failure-action teardown; minimum-interval milliseconds; minimum-receive-interval milliseconds; minimum-transmit-interval milliseconds; multiplier detection-time-multiplier; } lsp-ping-interval time-interval; lsp-ping-multiplier multiplier; }
您可以在以下层级配置此语句:
[edit protocols mpls]
[edit protocols mpls label-switched-path lsp-name]
[edit protocols mpls label-switched-path lsp-name primary path-name]
语句 bfd-liveness-detection
包含以下选项:
minimum-interval
- 指定最小传输和接收间隔。minimum-receive-interval
- 指定最小接收间隔。范围为 1 到 255,000 毫秒。minimum-transmit-interval
- 指定最小传输间隔。范围为 1 到 255,000 毫秒。lsp-ping-multiplier
- 指定检测时间倍增器。范围从 1 到 255。注:为避免触发误报,请配置比快速重新路由时间更长的 BFD 故障检测时间。
您还可以配置选项来 lsp-ping-interval
调整 LSP ping 之间的时间间隔。RSVP 信号 LSP 的 LSP ping 命令是 ping mpls rsvp
。有关命令的详细信息 ping mpls rsvp
,请参阅 CLI 浏览器。
在 RSVP LSP 上为 BFD 会话配置故障操作
当 RSVP LSP 的 BFD 会话关闭时,LSP 会关闭并重新关闭。流量可以切换到备用 LSP,也可以直接拆除 LSP 路径。执行的任何操作都会被记录。
当 RSVP LSP 路径的 BFD 会话关闭时,您可以将 Junos OS 配置为重新调整 LSP 路径或仅禁用 LSP 路径。备用 LSP 路径可配置为在主 LSP 路径不可用时处理流量。路由器可以从 BFD 检测到的 LSP 故障中自动恢复。默认情况下,如果 BFD 会话失败,则只需记录事件。
要使 Junos OS 能够在发生 BFD 事件时撕毁 RSVP LSP 路径,请添加以下 failure-action
语句:
failure-action { make-before-break teardown-timeout seconds; teardown; }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
您可以配置或teardown
make-before-break
选项:
teardown
- 导致 LSP 路径立即关闭并重新关闭。make-before-break
- 使 Junos OS 尝试向新 LSP 路径发出信号,然后再拆除旧 LSP 路径。您还可以将选项配置为在teardown-timeout
指定的时间段之后,如果尝试在间隔内teardown-timeout
使 LSP 重新操作失败时自动撕毁 LSP。如果为teardown-timeout
间隔指定值 0,LSP 将立即关闭并重新调整(行为与配置teardown
选项时的行为相同)。
要为所有 RSVP LSP 配置故障操作,请在 failure-action
层级添加语句 [edit protocols mpls oam bfd-liveness-detection]
。要为特定的 RSVP LSP 配置故障操作,请在 failure-action
层级添加语句 [edit protocols mpls label-switched-path lsp-name oam bfd-liveness-detection]
。
要为特定主路径配置故障操作,请在 failure-action
层次结构级别添加语句 [edit protocols mpls label-switched path lsp-name primary path-name oam bfd-liveness-detection]
。要为特定的辅助 LSP 路径配置故障操作,请在 failure-action
层级添加语句 [edit protocols mpls label-switched-path lsp-name secondary path-name oam bfd-liveness-detection]
。