Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

静态路由的双向转发检测

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

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

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

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

注意:

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

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

注意:

bfd-liveness-detection 命令包含描述字段。在支持此功能的设备上,说明是对象下的 bfd-liveness-detection 属性。此字段仅适用于静态路由。

IPv6 静态路由支持 BFD 协议。静态路由支持全局单播和链路本地 IPv6 地址。组播或任播 IPv6 地址不支持 BFD 协议。对于 IPv6,BFD 协议仅支持静态路由。eBGP 协议还支持用于 BFD 的 IPv6。

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

您可以配置抑制间隔,以指定在发送状态更改通知之前,BFD 会话必须保持开启多长时间。

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

注意:

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

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

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

注意:

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

  • 集中式 BFD 的建议最小间隔为 300 毫秒,a multiplier 为 3,分布式 BFD 的建议最小间隔为 100 毫秒,a multiplier 为 3。

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

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

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

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

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

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

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

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

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

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

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

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

注意:

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

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

注意:

除非最好不要在网络中安装 BFD 适配,否则建议不要禁用 BFD 适配。

注意:

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

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

如果在配置 平滑路由引擎切换 (GRES) 和 BFD 的同时配置,则 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 快速配置

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

设备 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 身份验证算法:

  • 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 和简单密码更安全,但可能需要额外的时间来对会话进行身份验证。

注意:

meticulous-keyed-md5 和 meticulous-keyed-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 快速配置

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

设备 B

设备 D

过程

分步程序

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

要为静态路由配置 BFD:

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

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

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

  4. 在设备 B 上,指定用于静态路由上 BFD 身份验证的算法(keyed-md5keyed-sha-1meticulous-keyed-md5meticulous-keyed-sha-1simple-password)。

    注意:

    meticulous-keyed-md5 和 meticulous-keyed-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

意义

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

查看广泛的 BFD 会话信息

目的

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

行动

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

意义

在命令输出中,将显示 Authenticate ,表示已配置 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 快速配置

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

设备 B

设备 D

分步程序

下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用CLI编辑器

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

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

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

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

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

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

结果

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

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

验证

确认配置工作正常。

检查路由表

目的

确保静态路由显示在设备 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 不是此下一跃点保持有效的条件。