Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

静态路由的双向转发检测

了解静态路由的 BFD 以加快网络故障检测速度

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

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

默认情况下,单跃点静态路由支持 BFD。

注意:

在 MX 系列设备上,如果静态路由配置了多个下一跃点,则静态路由不支持多跳 BFD。当静态路由需要多跳 BFD 时,建议您避免使用多个下一跃点。

要启用故障检测,请将语句 bfd-liveness-detection 包含在静态路由配置中。

注意:

从 Junos OS 版本 15.1X49-D70 和 Junos OS 版本 17.3R1 开始,命令 bfd-liveness-detection 包含描述字段。描述是对象下 bfd-liveness-detection 的属性,仅在 SRX 系列防火墙上受支持。此字段仅适用于静态路由。

在 Junos OS 9.1 及更高版本中,IPv6 静态路由支持 BFD 协议。静态路由支持全局单播和链路本地 IPv6 地址。组播或任播 IPv6 地址不支持 BFD 协议。对于 IPv6,BFD 协议仅支持静态路由,并且仅在 Junos OS 9.3 版及更高版本中支持。eBGP 协议还支持 IPv6 for BFD。

要为 IPv6 静态路由配置 BFD 协议,请在层次结构级别包含 bfd-liveness-detection 语句 [edit routing-options rib inet6.0 static route destination-prefix]

在 Junos OS 8.5 版及更高版本中,您可以配置抑制间隔,以指定在发送状态更改通知之前 BFD 会话必须保持开启的时间。

要指定抑制间隔,请在 BFD 配置中包含该 holddown-interval 语句。您可以配置 0 到 255,000 毫秒范围内的数字。默认值为 0。如果 BFD 会话关闭,然后在抑制间隔期间重新启动,计时器将重新启动。

注意:

如果单个 BFD 会话包含多个静态路由,则使用具有最高值的抑制间隔。

要指定故障检测的最小传输和接收间隔,请将语句 minimum-interval 包含在 BFD 配置中。

此值表示本地路由设备传输 hello 数据包的最小间隔,以及路由设备期望从已建立 BFD 会话的邻接方接收回复的最小间隔。您可以配置 1 到 255,000 毫秒范围内的数字。或者,您可以使用传输间隔最小间隔和语句分别配置 最小传输 间隔和 minimum-receive-interval 接收间隔,而不是使用此语句。

注意:

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

注意:

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

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

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

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

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

要指定故障检测的最小接收间隔,请在 BFD 配置中包含该minimum-receive-interval语句。此值表示路由设备期望从已与其建立 BFD 会话的邻接方接收回复的最小间隔。您可以配置 1 到 255,000 毫秒范围内的数字。(可选)您可以使用语句在层次结构级别配置最小接收间隔,而不是使用此语句minimum-interval[edit routing-options static route destination-prefix bfd-liveness-detection]

要指定邻接方未收到的导致始发接口声明关闭的 hello 数据包数,请将该 multiplier 语句包含在 BFD 配置中。默认值为 3。您可以配置 1 到 255 范围内的数字。

要指定检测检测时间适应性的阈值,请将语句 threshold 包含在 BFD 配置中。

当 BFD 会话检测时间适应等于或高于阈值的值时,将发送单个陷阱和系统日志消息。检测时间基于最小间隔或最小接收间隔值的乘数。阈值必须高于这些配置值之一的乘数。例如,如果最小接收间隔为 300 毫秒,乘数为 3,则总检测时间为 900 毫秒。因此,检测时间阈值的值必须大于 900。

要指定故障检测的最小传输间隔, transmit-interval minimum-interval 请在 BFD 配置中包含该语句。

此值表示本地路由设备将 hello 数据包传输到已与其建立 BFD 会话的邻接方的最小间隔。您可以配置 1 到 255,000 毫秒范围内的值。或者,您可以使用语句在层次结构级别配置最小传输间隔,而不是使用此语句minimum-interval[edit routing-options static route destination-prefix bfd-liveness-detection]

要指定调整传输间隔的阈值,请将语句 transmit-interval threshold 包含在 BFD 配置中。

阈值必须大于传输间隔。当 BFD 会话传输时间适应大于阈值的值时,将发送单个陷阱和系统日志消息。检测时间基于 最小间隔 的值乘 minimum-receive-interval 数或层次结构级别的语句 [edit routing-options static route destination-prefix bfd-liveness-detection] 。阈值必须高于这些配置值之一的乘数。

要指定 BFD 版本,请在 BFD 配置中包含该 version 语句。默认设置是自动检测版本。

要包含 BFD 会话下一跃点的 IP 地址,请将该 neighbor 语句包含在 BFD 配置中。

注意:

如果指定的下一跃点是接口名称,则必须配置该 neighbor 语句。如果将 IP 地址指定为下一跃点,则该地址将用作 BFD 会话的邻居地址。

在 Junos OS 9.0 及更高版本中,您可以将 BFD 会话配置为不适应不断变化的网络条件。要禁用 BFD 适配,请在 BFD 配置中包含该 no-adaptation 语句。

注意:

我们建议您不要禁用 BFD 适配,除非您的网络中 最好不要 进行 BFD 适配。

注意:

如果仅在静态路由的一端配置 BFD,则该路由将从路由表中删除。在静态路由的两端配置 BFD 时,BFD 将建立会话。

静态路由中的 ISO 地址族不支持 BFD。BFD 确实支持 IS-IS。

如果与 BFD 同时配置 平滑路由引擎切换 (GRES),则 GRES 不会在故障转移期间保留 BFD 状态信息。

示例:为静态路由配置 BFD 以更快地检测网络故障

此示例说明如何为静态路由配置双向转发检测 (BFD)。

要求

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

概述

静态路由有许多实际应用。静态路由通常用于网络边缘,以支持与短截网络的连接,鉴于其单一入口和出口点,非常适合静态路由的简单性。在 Junos OS 中,静态路由的全局优先级为 5。如果可以访问指定的下一跃点,则会激活静态路由。

在此示例中,您将使用下一跃点地址 172.16.1.2 配置从提供商网络到客户网络的静态路由 192.168.47.0/24。您还可以使用下一跃点地址 172.16.1.1 配置从客户网络到提供商网络的静态默认路由 0.0.0.0/0。

出于演示目的,在设备 B 和设备 D 上配置了一些环路接口。这些环路接口提供 ping 地址,从而验证静态路由是否正常工作。

图 1 显示了示例网络。

图 1:连接到服务提供商 Customer Routes Connected to a Service Provider的客户路由

拓扑

配置

CLI 快速配置

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

设备 B

设备 D

程序

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器

要为静态路由配置 BFD,请执行以下操作:

  1. 在设备 B 上,配置接口。

  2. 在设备 B 上,创建静态路由并设置下一跃点地址。

  3. 在设备 B 上,为静态路由配置 BFD。

  4. 在设备 B 上,配置 BFD 的跟踪操作。

  5. 如果已完成设备 B 的配置,请提交配置。

  6. 在设备 D 上,配置接口。

  7. 在设备 D 上,创建静态路由并设置下一跃点地址。

  8. 在设备 D 上,为静态路由配置 BFD。

  9. 在设备 D 上,配置 BFD 的跟踪操作。

  10. 如果已完成设备 D 的配置,请提交配置。

结果

通过发出 show interfacesshow protocolsshow routing-options 命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

设备 B

设备 D

验证

确认配置工作正常。

验证 BFD 会话是否已启动

目的

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

行动

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

注意:

仅在 description Site- <xxx> SRX 系列防火墙上受支持。

如果每个客户端都有多个描述字段,则会显示“及更多”以及第一个描述字段。

意义

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

查看详细的 BFD 事件

目的

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

行动

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

意义

BFD 消息正在写入跟踪文件。

了解静态路由安全性的 BFD 身份验证

双向转发检测 (BFD) 可以快速检测相邻系统之间的通信故障。默认情况下,BFD 会话的身份验证处于禁用状态。但是,当您通过网络层协议运行 BFD 时,服务攻击的风险可能很大。

注意:

如果您通过多个跃点或通过不安全的隧道运行 BFD,我们强烈建议使用身份验证。

从 Junos OS 9.6 版开始,Junos OS 支持对通过 IPv4 和 IPv6 静态路由运行的 BFD 会话进行身份验证。MPLS OAM 会话不支持 BFD 身份验证。BFD 身份验证仅在加拿大和美国版本的 Junos OS 映像中受支持,在导出版本中不可用。

注意:

EX3300 仅支持静态路由上的 BFD。

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

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

BFD 认证算法

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

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

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

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

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

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

注意:

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

注意:

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

安全认证钥匙串

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

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

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

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

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

示例:配置 BFD 身份验证以保护静态路由

此示例说明如何为静态路由配置双向转发检测 (BFD) 身份验证。

要求

Junos OS 9.6 或更高版本(加拿大和美国版本)。

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

概述

您可以为通过 IPv4 和 IPv6 静态路由运行的 BFD 会话配置身份验证。还支持路由实例和逻辑系统。

在 BFD 会话上配置身份验证需要执行以下步骤:

  1. 指定静态路由的 BFD 身份验证算法。

  2. 将认证密钥链与静态路由关联。

  3. 配置相关的安全认证密钥链。这必须在主路由器上配置。

提示:

如果要从未经身份验证的会话转换到经过身份验证的会话,我们建议您指定松散身份验证检查。

图 2 显示了示例网络。

图 2:连接到服务提供商 Customer Routes Connected to a Service Provider的客户路由

拓扑

配置

CLI 快速配置

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

设备 B

设备 D

程序

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器

要为静态路由配置 BFD,请执行以下操作:

  1. 在设备 B 上,配置接口。

  2. 在设备 B 上,创建静态路由并设置下一跃点地址。

  3. 在设备 B 上,为静态路由配置 BFD。

  4. 在设备 B 上,指定用于静态路由上的 BFD 身份验证的算法(keyed-md5、keyed-sha-1、meticous-keyed-md5、meticous-keyed-sha-1简单密码)。

    注意:

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

  5. 在设备 B 上,指定用于将指定路由上的 BFD 会话与唯一安全认证密钥链属性相关联的密钥链。

    这应该与在层次结构级别配置的 [edit security authentication key-chains] 钥匙串名称匹配。

  6. 在设备 B 上,指定 BFD 会话的唯一安全认证信息:

    • 步骤 5 中指定的匹配钥匙串名称。

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

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

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

  7. 如果已完成设备 B 的配置,请提交配置。

  8. 在设备 D 上重复配置。

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

结果

通过发出 show interfacesshow routing-optionsshow security 命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

设备 B

验证

确认配置工作正常。

验证 BFD 会话是否已启动

目的

验证 BFD 会话是否已启动。

行动

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

意义

命令输出显示 BFD 会话已启动。

查看有关 BFD 会话的详细信息

目的

查看有关 BFD 会话的详细信息,并确保已配置身份验证。

行动

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

意义

在命令输出中,将显示 身份验证 以指示已配置 BFD 身份验证。

查看大量 BFD 会话信息

目的

查看有关 BFD 会话的更多详细信息。

行动

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

意义

在命令输出中,将显示 身份验证 以指示已配置 BFD 身份验证。命令的 extensive 输出提供会话中每个客户端的密钥链名称、身份验证算法和模式。

注意:

仅在 description Site- <xxx> SRX 系列防火墙上受支持。

如果每个客户端都有多个描述字段,则会显示“及更多”以及第一个描述字段。

示例:在静态路由中的合格下一跃点上启用 BFD 以进行路由选择

此示例说明如何配置具有多个可能的下一跃点的静态路由。每个下一跃点都启用了双向转发检测 (BFD)。

要求

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

概述

在此示例中,设备 B 具有静态路由 192.168.47.0/24 ,并具有两个可能的下一跃点。接下来的两个跃点是使用两个 qualified-next-hop 语句定义的。每个下一跃点都启用了 BFD。

在设备 D 上也启用了 BFD,因为必须在连接的两端启用 BFD。

如果 BFD 会话启动,则下一跃点将包含在路由表中。如果 BFD 会话关闭,则会从路由表中删除下一跃点。

参见 图 3

图 3:在合格的下一跃点 BFD Enabled on Qualified Next Hops上启用 BFD

拓扑

配置

程序

CLI 快速配置

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

设备 B

设备 D

分步过程

以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 Junos OS CLI 用户指南中的在配置模式下使用 CLI 编辑器

要使用两个可能的下一跃点(均启用了 BFD)配置静态路由:

  1. 在设备 B 上,配置接口。

  2. 在设备 B 上,使用两个下一跃点配置静态路由,这两个跃点都启用了 BFD。

  3. 在设备 D 上,配置接口。

  4. 在设备 D 上,配置启用 BFD 的默认静态路由,其中包含到提供商网络的两个下一跃点。

    在这种情况下,BFD 在路由上启用,而不是在下一跃点上启用。

结果

通过发出 show interfacesshow routing-options 命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。

如果完成设备配置,请从配置模式输入 提交

验证

确认配置工作正常。

检查路由表

目的

确保静态路由显示在设备 B 上的路由表中,并带有两个可能的下一跃点。

行动
意义

将列出两个下一跃点。下一跃点 192.168.2.2 是所选路由。

验证 BFD 会话

目的

确保 BFD 会话已启动。

行动
意义

输出显示 BFD 会话已启动。

从设备 D 中移除 BFD

目的

演示当两个下一跃点的 BFD 会话关闭时会发生什么情况。

行动
  1. 停用设备 D 上的 BFD。

  2. 在设备 B 上重新运行 show bfd session 该命令。

  3. 在设备 B 上重新运行 show route 192.168.47.0 该命令。

意义

正如预期的那样,当 BFD 会话关闭时,静态路由将从路由表中删除。

从一个下一跃点中删除 BFD

目的

演示当只有一个下一跃点启用了 BFD 时会发生什么情况。

行动
  1. 如果尚未停用,请在设备 D 上停用 BFD。

  2. 在设备 B 上的下一跃点之一上停用 BFD。

  3. 在设备 B 上重新运行 show bfd session 该命令。

  4. 在设备 B 上重新运行 show route 192.168.47.0 extensive 该命令。

意义

正如预期的那样,192.168.2.2 下一跃点的 BFD 会话已关闭。172.16.1.2 下一跃点保留在路由表中,路由保持活动状态,因为 BFD 不是此下一跃点保持有效的条件。

版本历史记录表
释放
描述
15.1X49-D70
从 Junos OS 版本 15.1X49-D70 和 Junos OS 版本 17.3R1 开始,命令 bfd-liveness-detection 包含描述字段。描述是对象下 bfd-liveness-detection 的属性,仅在 SRX 系列防火墙上受支持。此字段仅适用于静态路由。