双向转发检测路由

本章介绍如何配置 ASA 以使用双向转发检测 (BFD) 路由协议。

关于 BFD 路由

BFD 是一个检测协议,旨在为媒体类型、封装、拓扑和路由协议提供快速转发路径故障检测时间。BFD 可以在单播、点对点模式下对正在两系统之间转发的任何数据协议上运行。数据包在适用于媒体和网络的封装协议负载中携带。

除了快速转发路径故障检测外,BFD 还为网络管理员提供一致的故障检测方法。由于网络管理员可以使用 BFD 按照统一的速率检测转发路径故障,而不是为不同的路由协议呼叫机制采用不同的速率,因此网络分析和计划更简单,重新聚合时间一致且可预测。

BFD 异步模式和回应功能

不管是否启用回应功能,BFD 均可在异步模式下运行。

异步模式

在异步模式下,系统之间会定期发送 BFD 控制数据包,如果某一行中有大量此类数据包未被其他系统接收,则会话将宣布关闭。纯异步模式(无回应功能)很有用,因为它达到特定检测时间所需的数据包数量是回应功能所需数据包数量的一半。

BFD 回应功能

BFD 回应功能将回应数据包从转发引擎发送至直连单跳 BFD 邻居。回应数据包由转发引擎负责发送,并沿同一条路径重新进行转发,以执行检测。另一端的 BFD 会话不参与回应包的实际转发。回应功能和转发引擎负责检测进程,BFD 邻居之间发出的 BFD 控制数据包数量将减少。此外,由于转发引擎在远程邻居系统上测试转发路径,并未涉及远程系统,因此数据包间的延迟差异增大了。这会导致故障检测时间缩短。

启用回应功能后,BFD 可以使用较慢的计时器降低异步会话的速度并减少 BFD 邻居之间发送的 BFD 控制数据包的数量,从而降低处理开销,同时提高故障检测速度。


注


IPv4 多跳或 IPv6 单跳 BFD 邻居不支持回应功能。


您可以在接口级别和路由协议级别启用 BFD。您必须在两个系统(BFD 对等体)上配置 BFD。在接口上并且在相应路由协议的路由器级别启用 BFD 后,将会创建 BFD 会话,协商 BFD 计时器,并且 BFD 对等体在协商的级别互相发送 BFD 控制数据包。

BFD 会话建立

以下示例显示 ASA 和运行边界网关协议 (BGP) 的相邻路由器。当两台设备启动时,二者之间不会建立 BFD 会话。

图 1. 建立的 BFD 会话


BGP 识别其 BGP 邻居后,会使用邻居的 IP 地址通过引导程序启动 BFD 进程。BFD 不是动态发现其对等体。它依靠配置的路由协议告知它要使用的 IP 地址以及要形成的对等体关系。

路由器上的 BFD 和 ASA 上的 BFD 共同形成 BFD 控制数据包,并开始以一秒的间隔向彼此发送数据包,直到 BFD 会话建立为止。来自任一系统的初始控制数据包都非常相似,例如 Vers、Diag,H、D、P 和 F 位都设置为零,State 设置为 Down。My Discriminator 字段设置为一个在传输设备上唯一的值。Your Discriminator 字段设置为零,因为 BFD 会话尚未建立。TX 和 RX 计时器设置为在设备配置中找到的值。

远程 BFD 设备在会话初始阶段收到 BFD 控制数据包后,会将 My Discriminator 字段中的值复制到其自己的 Your Discriminator 字段中,并从 Down 状态过度到 Init 状态,最终进入 Up 状态。一旦两个系统都在各自控制数据包中看到自己的 Discriminator,会话即正式建立。

下图显示了建立的 BFD 连接。

图 2. 未建立 BFD 会话的 BGP


BFD 计时器协商

BFD 设备必须协商 BFD 计时器,以控制和同步 BFD 控制包的发送速率。设备需要确保以下条件,才能协商 BFD 计时器:

  • 其对等设备看到包含本地设备的建议计时器的数据包

  • 它发送 BFD 控制包的速度永远不会超过被配置为接收这些数据包的对等体

  • 对等体发送 BFD 控制包的速度永远不会超过被配置为接收这些数据包的本地系统

Your Discriminator 字段和 H 位的设置足以使远程设备在首次计时器交换期间看到本地设备的数据包。在接收 BFD 控制包后,每个系统都将获得所需最小接收间隔,并将该间隔与其自己的所需最小发送间隔进行比较,然后取两个值中较大者(速度较慢者),并将该值用作其 BFD 数据包的传输速率。两个系统中速度较慢者将决定传输速率。

在协商这些计时器后,可在会话期间随时重新协商它们,而不会导致会话重置。更改其计时器的设备将在所有后续 BFD 控制包上设置 P 位,直到其收到通过远程系统设置了 F 位的 BFD 控制包为止。这种位的交换可以保护数据包,否则它们可能会在传输过程中丢失。


注


远程系统设置 F 位,并不意味着它将接受新建议的计时器。它表示远程系统已经看到已经更改其中的计时器的数据包。


BFD 故障检测

如果 BFD 会话和计时器已经过协商,则 BFD 对等体按照协商的间隔互相发送 BFD 控制数据包。这些控制数据包作为检测信号,这非常类似于 IGP 呼叫协议,不同之处是速率得到了显著加速。

只要每个 BFD 对等体在配置的检测间隔(所需的最小 RX 间隔)内接收到 BFD 控制数据包,则 BFD 会话会保持,并且与 BFD 关联的任何路由协议均保持其邻接关系。如果 BFD 对等未在此间隔内收到控制数据包,则会向参与该 BFD 会话的所有客户端通知故障情况。路由协议可确定对该信息的适当响应。典型的响应是终止路由协议对等会话和重新收敛,从而绕过出现故障的对等体。

每次 BFD 对等体在 BFD 会话中成功接收到 BFD 控制数据包时,该会话的检测计时器都会重置为零。因此故障检测取决于接收的数据包,而不是接收方上次何时传输数据包。

BFD 部署场景

以下内容介绍了 BFD 在这些特定场景中如何运行。

故障转移

在故障转移场景中,将在主用设备与邻居设备之间建立和保留 BFD 会话。备用设备不会通过邻居保留任何 BFD 会话。当发生故障转移时,新主用设备必须通过邻居发起会话建立,因为主用设备与备用设备之间的会话信息没有同步。

对于无中断重新启动/NSF 场景,客户端 (BGP IPv4/IPv6) 负责通知其邻居关于事件的信息。当邻居收到该信息时,它将保留 RIB 表,直到故障转移完成为止。在故障转移期间,设备上的 BFD 和 BGP 会话将关闭。在故障转移完成后,当 BGP 会话启动时,将在邻居之间建立新的 BFD 会话。

跨网络 EtherChannel 和 L2 集群

在跨网络 EtherChannel 集群场景中,将在主设备与其邻居之间建立和保留 BFD 会话。从属设备不会通过邻居保留任何 BFD 会话。如果由于交换机上的负载均衡而将 BFD 数据包路由到从属设备,则该从属设备必须通过集群链路将此数据包转发到主设备。当发生集群故障恢复时,新主设备必须通过邻居发起会话建立,因为主设备与从属设备之间的会话信息没有同步。

单个接口模式和 L3 集群

在单个接口模式集群场景中,单个设备将通过其邻居保留其 BFD 会话。

BFD 路由准则

情景模式准则

支持单一和多情景模式。

防火墙模式准则

在路由防火墙模式下受支持;支持独立、故障转移和集群模式。在故障转移和集群接口上不支持 BFD。在集群中,仅在主设备上支持此功能。在透明模式下不支持 BFD。

IPv6 准则

IPv6 不支持回送模式。

其他准则

支持 BGP IPv4和 BGP IPv6 协议。

不支持 OSPFv2、OSPFv3、IS-IS 和 EiGRP 协议。

不支持用于静态路由的 BFD。

不支持传输和隧道上的 BFD。

配置 BFD

本节介绍如何在系统中启用和配置 BFD 路由进程。

过程


步骤 1

创建 BFD 模板。

步骤 2

配置 BFD 接口。

步骤 3

配置 BFD 映射。


创建 BFD 模板

本节介绍创建 BFD 模板和进入 BFD 配置模式所需的步骤。

BFD 模板指定一组 BFD 间隔值。BFD 模板中配置的 BFD 间隔值并不是特定于单个接口。此外,还可以为单跳和多跳会话配置身份验证。可以仅在单跳上启用回应。

过程


步骤 1

在 ASDM 中,依次选择配置 >  设备设置 >  路由 >  BFD >  模板。

步骤 2

点击 Add 或 Edit。

使用 Add BFD Template 对话框可创建新的 BFD 模板。使用 Edit BFD Template 对话框可更改现有的参数。

步骤 3

在 Template 选项卡上,配置以下选项:

  • Template Name - 此 BFD 模板的名称。必须分配一个名称,才能配置模板中的其余参数。模板名称不能包含空格。

  • Configuration Mode - 从下拉列表中选择 single-hop 或 multi-hop。

  • Enable Echo -(可选)为单跳模板启用回应。

如果未协商回应功能,BFD 控制数据包将以高速率发送以符合检测时间。如果已协商回应功能,BFD 控制数据包将以较慢的协商速率发送,而自定向的回应数据包将以高速率发送,我们建议您尽可能地使用回应模式。

步骤 4

在间隔选项卡上,配置以下选项:

  1. 从 Interval Type 下拉列表中,选择 None、Both、Microseconds 或 Milliseconds。

  2. 如果选择了 Both,请配置以下选项:

    • Multiplier Values - 用于计算保持时间的值。指定在 BFD 声明对等体不可用并通知第 3 层 BFD 对等体相关故障之前必须错过来自该 BFD 对等体的连续 BFD 控制数据包数。范围为 3 到 50。默认值为 3。

    • Both Transmit and Receive Values - 最低传输和接收间隔功能。范围介于 50 到 999 毫秒之间。

  3. 如果选择了 Microseconds,可以点击 Both 单选按钮并配置以下选项:

    • Multiplier Values - 用于计算保持时间的值。指定在 BFD 声明对等体不可用并通知第 3 层 BFD 对等体相关故障之前必须错过来自该 BFD 对等体的连续 BFD 控制数据包数。范围为 3 到 50。默认值为 3。

    • Minimum Transmit Values - 最低传输间隔功能。范围介于 50,000 到 999,000 微秒之间。

    • Minimum Receive Values - 最低接收间隔功能。范围介于 50,000 到 999,000 微秒之间。

  4. 如果选择了 Milliseconds,请配置以下选项:

    • Multiplier Values - 指定在 BFD 声明对等体不可用并通知第 3 层 BFD 对等体相关故障之前必须错过来自该 BFD 对等体的连续 BFD 控制数据包数。范围为 3 到 50。

    • Minimum Transmit Values - 最小传输间隔功能。范围是从 50 到 999 毫秒。

    • Minimum Receive Values - 最低接收间隔功能。范围介于 50 到 999 毫秒之间。

步骤 5

在 Authentication 选项卡上,配置以下选项:

  • Authentication Type - 从下拉列表中选择 NONE、md5、meticulous-sha-1、meticulous-md5 或 sha-1。

  • Key Value - 使用正在验证的路由协议在数据包中必须发送和接收的身份验证字符串。有效值是包含 1 到 17 个大小写字母数字字符的字符串,但第一个字符不能为数字。

  • Key ID - 匹配密钥值的共享密钥 ID。

步骤 6

点击确定。

步骤 7

点击 Apply 以保存 BFD 模板配置。


配置 BFD 接口

您可以将 BFD 模板绑定至接口,按接口配置基准 BFD 会话参数,然后按接口启用回应模式。

过程


步骤 1

在 ASDM 主窗口中,依次选择配置 > 设备设置 > 路由 > BFD > 接口。

步骤 2

点击添加 (Add)或编辑 (Edit)。

使用 Add Interface 对话框配置新的 BFD 接口。使用 Edit Interface 对话框更改现有参数。

步骤 3

从 Interface 下拉列表中,选择要为其配置 BFD 的接口。

步骤 4

选中 Template Name 复选框,然后从下拉列表中选择 BFD 模板。

步骤 5

配置以下 BFD 间隔:

  • Minimum Transmit Values - 最小传输间隔功能。范围是从 50 到 999 毫秒。

  • Minimum Receive Values - 最小接收间隔功能。范围是从 50 到 999 毫秒。

  • Multiplier - 指定在 BFD 声明对等体不可用且通知第 3 层 BFD 对等体发生故障之前,必须从 BFD 对等体丢失的连续 BFD 控制数据包数。范围为 3 到 50。

步骤 6

(可选)如果您要对此接口启用回应模式,请选中 Echo 复选框。只能在单跳模板上启用回应。

步骤 7

点击确定 (OK)。


配置 BFD 映射

您可以创建包含可与多跳模板关联的目标的 BFD 映射。您必须已配置多跳 BFD 模板。

过程


步骤 1

在主 ASDM 窗口中,依次选择配置 > 设备设置 > 路由 > BFD > 映射。

步骤 2

点击 Add 或 Edit。

使用 Add Map 对话框配置新的 BFD 映射。使用 Edit Map 对话框更改现有参数。

步骤 3

从 Template Name 下拉列表中,选择一个 BFD 模板。

步骤 4

配置以下 BFD 间隔:

  • Minimum Transmit Values - 最小传输间隔功能。范围是从 50 到 999 毫秒。

  • Minimum Receive Values - 最小接收间隔功能。范围是从 50 到 999 毫秒。

  • Multiplier - 指定在 BFD 声明对等体不可用且通知第 3 层 BFD 对等体发生故障之前,必须从 BFD 对等体丢失的连续 BFD 控制数据包数。范围为 3 到 50。

步骤 5

点击确定 (OK)。


BFD 路由历史记录

表 1. BFD 路由的功能历史记录

功能名称

平台版本

功能信息

BFD 路由支持

9.6(2)

ASA 现在支持 BFD 路由协议。添加了对配置 BFD 模板、接口和映射的支持。还添加了对 BGP 路由协议使用 BFD 的支持。

引入或修改了以下菜单项:

Configuration > Device Setup > Routing > BFD > Template

Configuration > Device Setup > Routing > BFD > Interface

Configuration > Device Setup > Routing > BFD > Map

Configuration > Device Setup > Routing > BGP > IPv6 Family > Neighbor