Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 会话的 BFD

了解用于 BGP 的 BFD

双向转发检测 (BFD) 协议是一种检测网络中故障的简单呼叫机制。Hello 数据包按指定的定期间隔发送。当路由设备在指定间隔后停止接收回复时,将检测到邻接方故障。BFD 适用于各种网络环境和拓扑结构。BFD 的故障检测计时器比 BGP 的默认故障检测机制具有更短的时间限制,因此它们提供更快的检测。

注:

在同一设备上为 BGP 配置 BFD 和平稳重启会适得其反。当接口出现故障时,BFD 会立即检测到这一点,停止流量转发,BGP 会话也会关闭,而尽管接口出现故障,正常重启仍会转发流量,因此此行为可能会导致网络问题。因此,我们不建议在同一设备上同时配置 BFD 和平稳重启。

注:

EX4600 交换机不支持小于 1 秒的最小间隔值。

注:

QFX5110、QFX5120、QFX5200 和 QFX5210 交换机支持多跳双向转发检测 (BFD) 内联保持活动状态支持,这将使会话配置在 1 秒以内。性能可能因系统负载而异。支持 10 个内联 BFD 会话,可配置 150 x 3 毫秒的计时器。还支持单跃点会话。

BFD 故障检测计时器可以调整为更快或更慢。BFD 故障检测计时器值越低,故障检测越快,反之亦然。例如,如果邻接失败(即,计时器检测故障的速度较慢),计时器可以适应更高的值。或者,邻居可以为计时器协商比配置的值更高的值。当 BFD 会话抖动在 15 秒(15000 毫秒)内发生三次以上时,计时器会适应更高的值。如果本地 BFD 实例是会话抖动的原因,则退避算法会将接收 (Rx) 间隔增加 2。如果远程 BFD 实例是会话抖动的原因,则传输 (Tx) 间隔增加 2。您可以使用命令将 BFD 间隔计时器返回到其配置的值。clear bfd adaptation 该命令是无中断的,这意味着该 命令不会影响路由设备上的流量。clear bfd adaptation

注:

在所有 SRX 系列防火墙上,由于 CPU 密集型命令和 SNMP 遍历等原因触发的高 CPU 利用率会导致 BFD 协议在处理大型 BGP 更新时发生抖动。(平台是否支持取决于设备安装的 Junos OS 版本。)

从 Junos OS 版本 15.1X49-D100 开始,SRX340、SRX345 和 SRX1500 设备支持专用 BFD。

从 Junos OS 版本 15.1X49-D100 开始,SRX300 和 SRX320 设备支持实时 BFD。

从 Junos OS 15.1X49-D110 版开始,SRX550M 设备支持专用 BFD。

在 Junos OS 8.3 及更高版本中,内部 BGP (IBGP) 和多跳外部 BGP (EBGP) 会话以及单跳 EBGP 会话支持 BFD。在 Junos OS 9.1 版到 Junos OS 11.1 版中,BFD 仅支持静态路由中的 IPv6 接口。在 Junos OS 11.2 版及更高版本中,BFD 支持带有 BGP 的 IPv6 接口。

示例:在内部 BGP 对等会话上配置 BFD

此示例说明如何使用双向转发检测 (BFD) 协议配置内部 BGP (IBGP) 对等会话,以检测网络中的故障。

要求

在配置此示例之前,不需要除设备初始化之外的特殊配置。

概述

在 IBGP 会话上启用 BFD 的最低配置是将该 语句包含在参与 BFD 会话的所有邻接方的 BGP 配置中。bfd-liveness-detection minimum-interval 该 语句指定故障检测的最小传输和接收间隔。minimum-interval 具体而言,此值表示本地路由设备传输 hello 数据包的最小间隔,以及路由设备期望从已建立 BFD 会话的邻接方接收回复的最小间隔。您可以配置 1 到 255,000 毫秒之间的值。

或者,您可以使用 和 语句分别指定最小传输和接收间隔。transmit-interval minimum-intervalminimum-receive-interval 有关这些语句和其他可选 BFD 配置语句的信息,请参见 。bfd-liveness-detection

注:

BFD 是一种消耗系统资源的密集型协议。为基于路由引擎的会话指定 BFD 的最小间隔小于 100 毫秒,为分布式 BFD 会话指定小于 10 毫秒的最小间隔可能会导致意外的 BFD 抖动。

根据您的网络环境,以下附加建议可能适用:

  • 为防止在常规路由引擎切换事件期间发生 BFD 抖动,请为基于路由引擎的会话指定 5000 毫秒的最小间隔。此最小值是必需的,因为在常规路由引擎切换事件期间,RPD、MIBD 和 SNMPD 等进程利用的 CPU 资源超过指定的阈值。因此,由于缺乏 CPU 资源,BFD 处理和调度会受到影响。

  • 要使 BFD 会话在双机箱群集控制链路方案期间保持正常运行,当第一个控制链路发生故障时,请指定 6000 毫秒的最小间隔,以防止 LACP 在基于路由引擎的会话的辅助节点上抖动。

  • 对于具有大量 BFD 会话的大规模网络部署,请为基于路由引擎的会话指定 300 毫秒的最小间隔,为分布式 BFD 会话指定 100 毫秒的最小间隔。

  • 对于具有大量 BFD 会话的超大规模网络部署,请联系瞻博网络客户支持以获取更多信息。

  • 当配置了不间断活动路由 (NSR) 时,要在路由引擎切换事件期间保持开启的 BFD 会话,请为基于路由引擎的会话指定 2500 毫秒的最小间隔。对于配置了 NSR 的分布式 BFD 会话,最小间隔建议保持不变,仅取决于您的网络部署。

默认路由实例(主路由器)、路由实例和逻辑系统支持 BFD。此示例显示了逻辑系统上的 BFD。

图 1 显示了具有内部对等会话的典型网络。

图 1: 具有 IBGP 会话的典型网络具有 IBGP 会话的典型网络

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI 中。[edit]

设备 A

设备 B

设备 C

配置设备 A

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要配置设备 A:

  1. 将 CLI 设置为逻辑系统 A。

  2. 配置接口。

  3. 配置 BGP。

    设备 B 和设备 C 都包含这些 语句,即使设备 A 未直接连接到设备 C。neighbor

  4. 配置 BFD。

    您必须在连接对等方上配置相同的最小间隔。

  5. (可选)配置 BFD 跟踪。

  6. 配置 OSPF。

  7. 配置接受直接路由的策略。

    此方案的其他有用选项可能是接受通过 OSPF 或本地路由获知的路由。

  8. 配置路由器 ID 和自治系统 (AS) 编号。

  9. 如果完成设备配置,请从配置模式输入 commit重复这些步骤以配置设备 B 和设备 C。

成果

在配置模式下,输入 show interfacesshow policy-optionsshow protocolsshow routing-options 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。

验证

确认配置工作正常。

验证是否已启用 BFD

目的

验证是否在 IBGP 对等方之间启用了 BFD。

操作

在操作模式下,输入 show bgp neighbor 命令。您可以使用 过滤器缩小输出范围。| match bfd

意义

输出显示逻辑系统 A 有两个启用了 BFD 的邻接方。如果未启用 BFD,则输出将显示 ,并且 该选项不存在。BFD: disabled, down<BfdEnabled> 如果启用了 BFD 并且会话关闭,则输出将显示 。BFD: enabled, down 输出还显示,由于配置了跟踪操作,因此与 BFD 相关的事件正在写入日志文件。

验证 BFD 会话是否已启动

目的

验证 BFD 会话是否已启动,并查看有关 BFD 会话的详细信息。

操作

在操作模式下,输入 show bfd session extensive 命令。

意义

输出表示 使用语句配置的 设置。TX interval 1.000, RX interval 1.000minimum-interval 所有其他输出表示 BFD 的默认设置。要修改默认设置,请在语句下 包含可选语句。bfd-liveness-detection

查看详细的 BFD 事件

目的

如果需要,查看 BFD 跟踪文件的内容以帮助进行故障排除。

操作

在操作模式下,输入 file show /var/log/A/bgp-bfd 命令。

意义

在建立路由之前, 消息将显示在输出中。No route to host 建立路由后,最后两行显示两个 BFD 会话都已启动。

停用和重新激活环路接口后查看详细的 BFD 事件

目的

检查关闭路由器或交换机然后重新启动后会发生什么情况。要模拟路由器或交换机停机,请停用逻辑系统 B 上的环路接口。

操作
  1. 从配置模式,输入 deactivate logical-systems B interfaces lo0 unit 2 family inet 命令。

  2. 在操作模式下,输入 file show /var/log/A/bgp-bfd 命令。

  3. 从配置模式,输入 activate logical-systems B interfaces lo0 unit 2 family inet 命令。

  4. 在操作模式下,输入 file show /var/log/A/bgp-bfd 命令。

了解 BGP 的 BFD 身份验证

双向转发检测协议 (BFD) 可以快速检测相邻系统之间的通信故障。默认情况下,BFD 会话的身份验证处于禁用状态。但是,当您通过网络层协议运行 BFD 时,服务攻击的风险可能很大。如果您通过多个跃点或通过不安全的隧道运行 BFD,我们强烈建议使用身份验证。从 Junos OS 9.6 版开始,Junos OS 支持对通过 BGP 运行的 BFD 会话进行身份验证。MPLS OAM 会话不支持 BFD 身份验证。BFD 身份验证仅在加拿大和美国版本的 Junos OS 映像中受支持,在导出版本中不可用。

要对 BFD 会话进行身份验证,请指定身份验证算法和密钥链,然后使用该密钥链名称将该配置信息与安全身份验证密钥链相关联。

以下部分介绍支持的身份验证算法、安全密钥链和可配置的身份验证级别:

BFD 认证算法

Junos OS 支持以下 BFD 身份验证算法:

  • simple-password- 纯文本密码。1 到 16 字节的纯文本用于验证 BFD 会话。可以配置一个或多个密码。此方法最不安全,仅当 BFD 会话不受数据包拦截限制时才应使用。

  • keyed-md5— 用于传输和接收间隔大于 100 毫秒的会话的密钥消息摘要 5 哈希算法。要验证 BFD 会话,密钥 MD5 使用一个或多个密钥(由算法生成)以及定期更新的序列号。使用此方法,如果其中一个密钥匹配且序列号大于或等于收到的最后一个序列号,则在会话的接收端接受数据包。虽然比简单密码更安全,但此方法容易受到重放攻击。提高序列号的更新速率可以降低此风险。

  • meticulous-keyed-md5— 细致的键控消息摘要 5 哈希算法。此方法的工作方式与键控 MD5 相同,但序列号随每个数据包一起更新。尽管此方法比密钥 MD5 和简单密码更安全,但此方法可能需要更多时间来验证会话。

  • keyed-sha-1— 密钥安全散列算法 I,用于传输和接收间隔大于 100 毫秒的会话。要对 BFD 会话进行身份验证,密钥 SHA 使用一个或多个密钥(由算法生成)以及定期更新的序列号。密钥不在数据包中携带。使用此方法,如果其中一个密钥匹配且序列号大于收到的最后一个序列号,则在会话的接收端接受数据包。

  • meticulous-keyed-sha-1—一丝不苟的密钥安全哈希算法 I.此方法的工作方式与键控 SHA 相同,但序列号随每个数据包一起更新。尽管此方法比密钥化 SHA 和简单密码更安全,但此方法可能需要更多时间来验证会话。

注:

一丝不苟密钥 md5 和一丝不苟密钥 sha-1 身份验证算法不支持不间断活动路由 (NSR)。使用这些算法的 BFD 会话可能会在切换后关闭。

注:

QFX5000 系列交换机和 EX4600 交换机不支持小于 1 秒的最小间隔值。

安全认证钥匙串

安全认证密钥链定义用于认证密钥更新的认证属性。配置安全认证密钥链并通过密钥链名称与协议关联时,可以在不中断路由和信令协议的情况下进行身份验证密钥更新。

认证钥匙串包含一个或多个钥匙串。每个钥匙串包含一个或多个密钥。每个密钥都保存机密数据和密钥生效的时间。必须在 BFD 会话的两端配置算法和钥匙串,并且它们必须匹配。配置中的任何不匹配都会阻止创建 BFD 会话。

BFD 允许每个会话使用多个客户端,并且每个客户端都可以定义自己的密钥链和算法。为避免混淆,我们建议仅指定一个安全认证钥匙串。

严格身份验证与松散身份验证

默认情况下,将启用严格身份验证,并在每个 BFD 会话的两端检查身份验证。(可选)要从未经身份验证的会话顺利迁移到经过身份验证的会话,您可以配置 松散检查。配置松散检查后,将接受数据包,而不会在会话的每一端检查身份验证。此功能仅适用于过渡期。

示例:为 BGP 配置 BFD 身份验证

从 Junos OS 9.6 版开始,您可以为通过 BGP 运行的 BFD 会话配置身份验证。在 BFD 会话上配置身份验证只需三个步骤:

  1. 指定 BGP 协议的 BFD 身份验证算法。

  2. 将身份验证密钥链与 BGP 协议关联。

  3. 配置相关的安全认证密钥链。

以下部分提供了在 BGP 上配置和查看 BFD 身份验证的说明:

配置 BFD 身份验证参数

可以为整个 BGP 协议或特定 BGP 组、邻居或路由实例配置 BFD 身份验证。

下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。在配置模式下使用 CLI 编辑器https://www.juniper.net/documentation/en_US/junos/information-products/pathway-pages/junos-cli/junos-cli.html

要配置 BFD 身份验证,请执行以下操作:

  1. 指定要使用的算法(、 、 、 或 )。keyed-md5keyed-sha-1meticulous-keyed-md5meticulous-keyed-sha-1simple-password
    注:

    一丝不苟密钥 md5 和一丝不苟密钥 sha-1 身份验证算法不支持不间断活动路由。使用这些算法的 BFD 会话可能会在切换后关闭。

  2. 指定用于将 BGP 上的 BFD 会话与唯一安全认证密钥链属性相关联的密钥链。

    您指定的钥匙串名称必须与在层次结构级别配置 的钥匙串名称匹配。[edit security authentication key-chains]

    注:

    必须在 BFD 会话的两端配置算法和钥匙串,并且它们必须匹配。配置中的任何不匹配都会阻止创建 BFD 会话。

  3. 指定 BFD 会话的唯一安全身份验证信息:
    • 步骤 中指定的匹配钥匙串名称。2

    • 至少一个键,即介于 和 之间的唯一整数。063 创建多个密钥允许多个客户端使用 BFD 会话。

    • 用于允许访问会话的机密数据。

    • 身份验证密钥变为活动状态的时间,格式 为 。yyyy-mm-dd.hh:mm:ss

  4. (可选)如果要从未经身份验证的会话转换到经过身份验证的会话,请指定松散身份验证检查。
  5. (可选)使用 or 命令查看配置。show bfd session detailshow bfd session extensive
  6. 重复这些步骤以配置 BFD 会话的另一端。
注:

BFD 身份验证仅在加拿大和美国版本的 Junos OS 映像中受支持,在导出版本中不可用。

查看 BFD 会话的身份验证信息

您可以使用和命令查看现有的 BFD 身份验证配置。show bfd session detailshow bfd session extensive

以下示例显示了为 BGP 组配置的 BFD 身份验证。bgp-gr1 它指定键控 SHA-1 身份验证算法和密钥链名称 。bfd-bgp 身份验证钥匙串配置了两个密钥。密钥 包含机密数据 “”,开始时间为 2009 年 6 月 1 日上午 9:46:02(太平洋标准时间)。1$ABC123$ABC123 密钥 包含机密数据 “”,开始时间为 2009 年 6 月 1 日下午 3:29:20(太平洋标准时间)。2$ABC123$ABC123

如果将这些更新提交到配置,则会看到类似于以下内容的输出。在命令的 输出中,将显示以 指示已配置 BFD 身份验证。show bfd session detailAuthenticate 有关配置的更多信息,请使用 命令。show bfd session extensive 此命令的输出提供密钥链名称、会话中每个客户端的身份验证算法和模式,以及整体 BFD 身份验证配置状态、密钥链名称以及身份验证算法和模式。

显示 BFD 会话详细信息

显示 BFD 会话广泛

变更历史表

是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。

版本
说明
15.1X49-D100
从 Junos OS 版本 15.1X49-D100 开始,SRX340、SRX345 和 SRX1500 设备支持专用 BFD。
15.1X49-D100
从 Junos OS 版本 15.1X49-D100 开始,SRX300 和 SRX320 设备支持实时 BFD。
11.2
在 Junos OS 11.2 版及更高版本中,BFD 支持带有 BGP 的 IPv6 接口。
9.1
在 Junos OS 9.1 版到 Junos OS 11.1 版中,BFD 仅支持静态路由中的 IPv6 接口。
8.3
在 Junos OS 8.3 及更高版本中,内部 BGP (IBGP) 和多跳外部 BGP (EBGP) 会话以及单跳 EBGP 会话支持 BFD。