静态路由的双向转发检测
了解静态路由的 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 显示了示例网络。
拓扑
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
设备 B
set interfaces ge-1/2/0 unit 0 description B->D set interfaces ge-1/2/0 unit 0 family inet address 172.16.1.1/24 set interfaces lo0 unit 57 family inet address 10.0.0.1/32 set interfaces lo0 unit 57 family inet address 10.0.0.2/32 set routing-options static route 192.168.47.0/24 next-hop 172.16.1.2 set routing-options static route 192.168.47.0/24 bfd-liveness-detection minimum-interval 1000 set routing-options static route 192.168.47.0/24 bfd-liveness-detection description Site-xxx set protocols bfd traceoptions file bfd-trace set protocols bfd traceoptions flag all
设备 D
set interfaces ge-1/2/0 unit 1 description D->B set interfaces ge-1/2/0 unit 1 family inet address 172.16.1.2/24 set interfaces lo0 unit 2 family inet address 192.168.47.5/32 set interfaces lo0 unit 2 family inet address 192.168.47.6/32 set routing-options static route 0.0.0.0/0 next-hop 172.16.1.1 set routing-options static route 0.0.0.0/0 bfd-liveness-detection minimum-interval 1000 set protocols bfd traceoptions file bfd-trace set protocols bfd traceoptions flag all
程序
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要为静态路由配置 BFD,请执行以下操作:
在设备 B 上,配置接口。
[edit interfaces] user@B# set ge-1/2/0 unit 0 description B->D user@B# set ge-1/2/0 unit 0 family inet address 172.16.1.1/24 user@B# set lo0 unit 57 family inet address 10.0.0.1/32 user@B# set lo0 unit 57 family inet address 10.0.0.2/32
在设备 B 上,创建静态路由并设置下一跃点地址。
[edit routing-options] user@B# set static route 192.168.47.0/24 next-hop 172.16.1.2
在设备 B 上,为静态路由配置 BFD。
[edit routing-options] user@B# set static route 192.168.47.0/24 bfd-liveness-detection minimum-interval 1000 set routing-options static route 192.168.47.0/24 bfd-liveness-detection description Site-xxx
在设备 B 上,配置 BFD 的跟踪操作。
[edit protocols] user@B# set bfd traceoptions file bfd-trace user@B# set bfd traceoptions flag all
如果已完成设备 B 的配置,请提交配置。
[edit] user@B# commit
在设备 D 上,配置接口。
[edit interfaces] user@D# set ge-1/2/0 unit 1 description D->B user@D# set ge-1/2/0 unit 1 family inet address 172.16.1.2/24 user@D# set lo0 unit 2 family inet address 192.168.47.5/32 user@D# set lo0 unit 2 family inet address 192.168.47.6/32
在设备 D 上,创建静态路由并设置下一跃点地址。
[edit routing-options] user@D# set static route 0.0.0.0/0 next-hop 172.16.1.1
在设备 D 上,为静态路由配置 BFD。
[edit routing-options] user@D# set static route 0.0.0.0/0 bfd-liveness-detection minimum-interval 1000
在设备 D 上,配置 BFD 的跟踪操作。
[edit protocols] user@D# set bfd traceoptions file bfd-trace user@D# set bfd traceoptions flag all
如果已完成设备 D 的配置,请提交配置。
[edit] user@D# commit
结果
通过发出 show interfaces
、 show protocols
和 show routing-options
命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
设备 B
user@B# show interfaces ge-1/2/0 { unit 0 { description B->D; family inet { address 172.16.1.1/24; } } } lo0 { unit 57 { family inet { address 10.0.0.1/32; address 10.0.0.2/32; } } }
user@D# show protocols bfd { traceoptions { file bfd-trace; flag all; } }
user@B# show routing-options static { route 192.168.47.0/24 { next-hop 172.16.1.2; bfd-liveness-detection { description Site- xxx; minimum-interval 1000; } } }
设备 D
user@D# show interfaces ge-1/2/0 { unit 1 { description D->B; family inet { address 172.16.1.2/24; } } } lo0 { unit 2 { family inet { address 192.168.47.5/32; address 192.168.47.6/32; } } }
user@D# show routing-options static { route 0.0.0.0/0 { next-hop 172.16.1.1; bfd-liveness-detection { description Site - xxx; minimum-interval 1000; } } }
验证
确认配置工作正常。
验证 BFD 会话是否已启动
目的
验证 BFD 会话是否已启动,并查看有关 BFD 会话的详细信息。
行动
在操作模式下,输入 show bfd session extensive
命令。
user@B> show bfd session extensive Detect Transmit Address State Interface Time Interval Multiplier 172.16.1.2 Up lt-1/2/0.0 3.000 1.000 3 Client Static, description Site-xxx, TX interval 1.000, RX interval 1.000 Session up time 00:14:30 Local diagnostic None, remote diagnostic None Remote state Up, version 1 Replicated, routing table index 172 Min async interval 1.000, min slow interval 1.000 Adaptive async TX interval 1.000, RX interval 1.000 Local min TX interval 1.000, minimum RX interval 1.000, multiplier 3 Remote min TX interval 1.000, min RX interval 1.000, multiplier 3 Local discriminator 2, remote discriminator 1 Echo mode disabled/inactive 1 sessions, 1 clients Cumulative transmit rate 1.0 pps, cumulative receive rate 1.0 pps
仅在 description Site- <xxx> SRX 系列防火墙上受支持。
如果每个客户端都有多个描述字段,则会显示“及更多”以及第一个描述字段。
user@D> show bfd session extensive Detect Transmit Address State Interface Time Interval Multiplier 172.16.1.1 Up lt-1/2/0.1 3.000 1.000 3 Client Static, TX interval 1.000, RX interval 1.000 Session up time 00:14:35 Local diagnostic None, remote diagnostic None Remote state Up, version 1 Replicated, routing table index 170 Min async interval 1.000, min slow interval 1.000 Adaptive async TX interval 1.000, RX interval 1.000 Local min TX interval 1.000, minimum RX interval 1.000, multiplier 3 Remote min TX interval 1.000, min RX interval 1.000, multiplier 3 Local discriminator 1, remote discriminator 2 Echo mode disabled/inactive 1 sessions, 1 clients Cumulative transmit rate 1.0 pps, cumulative receive rate 1.0 pps
意义
输出表示 TX interval 1.000, RX interval 1.000
使用语句配置的 minimum-interval
设置。所有其他输出表示 BFD 的默认设置。要修改默认设置,请在语句下 bfd-liveness-detection
包含可选语句。
查看详细的 BFD 事件
目的
如果需要,查看 BFD 跟踪文件的内容以帮助进行故障排除。
行动
在操作模式下,输入 file show /var/log/bfd-trace
命令。
user@B> file show /var/log/bfd-trace Nov 23 14:26:55 Data (9) len 35: (hex) 42 46 44 20 70 65 72 69 6f 64 69 63 20 78 6d 69 74 20 72 Nov 23 14:26:55 PPM Trace: BFD periodic xmit rt tbl index 172 Nov 23 14:26:55 Received Downstream TraceMsg (22) len 108: Nov 23 14:26:55 IfIndex (3) len 4: 0 Nov 23 14:26:55 Protocol (1) len 1: BFD Nov 23 14:26:55 Data (9) len 83: (hex) 70 70 6d 64 5f 62 66 64 5f 73 65 6e 64 6d 73 67 20 3a 20 Nov 23 14:26:55 PPM Trace: ppmd_bfd_sendmsg : socket 12 len 24, ifl 78 src 172.16.1.1 dst 172.16.1.2 errno 65 Nov 23 14:26:55 Received Downstream TraceMsg (22) len 93: Nov 23 14:26:55 IfIndex (3) len 4: 0 Nov 23 14:26:55 Protocol (1) len 1: BFD Nov 23 14:26:55 Data (9) len 68: (hex) 42 46 44 20 70 65 72 69 6f 64 69 63 20 78 6d 69 74 20 74
意义
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 会话上配置身份验证需要执行以下步骤:
指定静态路由的 BFD 身份验证算法。
将认证密钥链与静态路由关联。
配置相关的安全认证密钥链。这必须在主路由器上配置。
如果要从未经身份验证的会话转换到经过身份验证的会话,我们建议您指定松散身份验证检查。
[edit] user@host> set routing-options static route ipv4 bfd-liveness-detection authentication loose-check
图 2 显示了示例网络。
拓扑
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
设备 B
set interfaces ge-1/2/0 unit 0 description B->D set interfaces ge-1/2/0 unit 0 family inet address 172.16.1.1/24 set interfaces lo0 unit 57 family inet address 10.0.0.1/32 set interfaces lo0 unit 57 family inet address 10.0.0.2/32 set routing-options static route 192.168.47.0/24 next-hop 172.16.1.2 set routing-options static route 192.168.47.0/24 bfd-liveness-detection minimum-interval 1000 set routing-options static route 192.168.47.0/24 bfd-liveness-detection description Site-xxx set routing-options static route 192.168.47.0/24 bfd-liveness-detection authentication key-chain bfd-kc4 set routing-options static route 192.168.47.0/24 bfd-liveness-detection authentication algorithm keyed-sha-1 set security authentication-key-chains key-chain bfd-kc4 key 5 secret "$ABC123$ABC123$ABC123" set security authentication-key-chains key-chain bfd-kc4 key 5 start-time "2011-1-1.12:00:00 -0800"
设备 D
set interfaces ge-1/2/0 unit 1 description D->B set interfaces ge-1/2/0 unit 1 family inet address 172.16.1.2/24 set interfaces lo0 unit 2 family inet address 192.168.47.5/32 set interfaces lo0 unit 2 family inet address 192.168.47.6/32 set routing-options static route 0.0.0.0/0 next-hop 172.16.1.1 set routing-options static route 0.0.0.0/0 bfd-liveness-detection minimum-interval 1000 set routing-options static route 0.0.0.0/0 bfd-liveness-detection authentication key-chain bfd-kc4 set routing-options static route 0.0.0.0/0 bfd-liveness-detection authentication algorithm keyed-sha-1 set security authentication-key-chains key-chain bfd-kc4 key 5 secret "$ABC123$ABC123$ABC123" set security authentication-key-chains key-chain bfd-kc4 key 5 start-time "2011-1-1.12:00:00 -0800"
程序
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要为静态路由配置 BFD,请执行以下操作:
在设备 B 上,配置接口。
[edit interfaces] user@B# set ge-1/2/0 unit 0 description B->D user@B# set ge-1/2/0 unit 0 family inet address 172.16.1.1/24 user@B# set lo0 unit 57 family inet address 10.0.0.1/32 user@B# set lo0 unit 57 family inet address 10.0.0.2/32
在设备 B 上,创建静态路由并设置下一跃点地址。
[edit routing-options] user@B# set static route 192.168.47.0/24 next-hop 172.16.1.2
在设备 B 上,为静态路由配置 BFD。
[edit routing-options] user@B# set static route 192.168.47.0/24 bfd-liveness-detection minimum-interval 1000 set routing-options static route 192.168.47.0/24 bfd-liveness-detection description Site-xxx
在设备 B 上,指定用于静态路由上的 BFD 身份验证的算法(keyed-md5、keyed-sha-1、meticous-keyed-md5、meticous-keyed-sha-1 或简单密码)。
[edit routing-options] user@B# set static route 192.168.47.0/24 bfd-liveness-detection authentication algorithm keyed-sha-1
注意:一丝不苟的密钥 md5 和一丝不苟的密钥 sha-1 身份验证算法不支持不间断活动路由 (NSR)。使用这些算法的 BFD 会话可能会在切换后关闭。
-
在设备 B 上,指定用于将指定路由上的 BFD 会话与唯一安全认证密钥链属性相关联的密钥链。
这应该与在层次结构级别配置的
[edit security authentication key-chains]
钥匙串名称匹配。[edit routing-options] user@B# set static route 192.168.47.0/24 bfd-liveness-detection authentication key-chain bfd-kc4
在设备 B 上,指定 BFD 会话的唯一安全认证信息:
-
步骤 5 中指定的匹配钥匙串名称。
至少一个键,即 介于 0 和 63 之间的唯一整数。创建多个密钥允许多个客户端使用 BFD 会话。
用于允许访问会话的机密数据。
身份验证密钥变为活动状态的时间,格式 yyyy-mm-dd.hh:mm:ss为 。
[edit security authentication-key-chains key-chain bfd-kc4] user@B# set key 5 secret "$ABC123$ABC123$ABC123" user@B# set key 5 start-time "2011-1-1.12:00:00 -0800"
-
如果已完成设备 B 的配置,请提交配置。
[edit] user@B# commit
在设备 D 上重复配置。
必须在 BFD 会话的两端配置算法和钥匙串,并且它们必须匹配。配置中的任何不匹配都会阻止创建 BFD 会话。
结果
通过发出 show interfaces
、 show routing-options
和 show security
命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
设备 B
user@B# show interfaces ge-1/2/0 { unit 0 { description B->D; family inet { address 172.16.1.1/24; } } } lo0 { unit 57 { family inet { address 10.0.0.1/32; address 10.0.0.2/32; } } }
user@B# show routing-options static { route 192.168.47.0/24 { next-hop 172.16.1.2; bfd-liveness-detection { description Site- xxx; minimum-interval 1000; authentication { key-chain bfd-kc4; algorithm keyed-sha-1; } } } }
user@B# show security authentication-key-chains { key-chain bfd-kc4 { key 5 { secret "$ABC123$ABC123$ABC123"; ## SECRET-DATA start-time "2011-1-1.12:00:00 -0800"; } } }
验证
确认配置工作正常。
验证 BFD 会话是否已启动
目的
验证 BFD 会话是否已启动。
行动
在操作模式下,输入 show bfd session
命令。
user@B> show bfd session Detect Transmit Address State Interface Time Interval Multiplier 172.16.1.2 Up ge-1/2/0.0 3.000 1.000 3 1 sessions, 1 clients Cumulative transmit rate 1.0 pps, cumulative receive rate 1.0 pps
意义
命令输出显示 BFD 会话已启动。
查看有关 BFD 会话的详细信息
目的
查看有关 BFD 会话的详细信息,并确保已配置身份验证。
行动
在操作模式下,输入 show bfd session detail
命令。
user@B> show bfd session detail Detect Transmit Address State Interface Time Interval Multiplier 172.16.1.2 Up ge-1/2/0.0 3.000 1.000 3 Client Static, TX interval 1.000, RX interval 1.000, Authenticate Session up time 00:53:58 Local diagnostic NbrSignal, remote diagnostic None Remote state Up, version 1 Logical system 9, routing table index 22 1 sessions, 1 clients Cumulative transmit rate 1.0 pps, cumulative receive rate 1.0 pps
意义
在命令输出中,将显示 身份验证 以指示已配置 BFD 身份验证。
查看大量 BFD 会话信息
目的
查看有关 BFD 会话的更多详细信息。
行动
在操作模式下,输入 show bfd session extensive
命令。
user@B> show bfd session extensive Address State Interface Time Interval Multiplier 172.16.1.2 Up ge-1/2/0.0 3.000 1.000 3 Client Static, description Site-xxx, TX interval 1.000, RX interval 1.000, Authenticate keychain bfd-kc4, algo keyed-sha-1, mode strict Session up time 01:39:45 Local diagnostic NbrSignal, remote diagnostic None Remote state Up, version 1 Logical system 9, routing table index 22 Min async interval 1.000, min slow interval 1.000 Adaptive async TX interval 1.000, RX interval 1.000 Local min TX interval 1.000, minimum RX interval 1.000, multiplier 3 Remote min TX interval 1.000, min RX interval 1.000, multiplier 3 Local discriminator 3, remote discriminator 4 Echo mode disabled/inactive Authentication enabled/active, keychain bfd-kc4, algo keyed-sha-1, mode strict 1 sessions, 1 clients Cumulative transmit rate 1.0 pps, cumulative receive rate 1.0 pps
意义
在命令输出中,将显示 身份验证 以指示已配置 BFD 身份验证。命令的 extensive
输出提供会话中每个客户端的密钥链名称、身份验证算法和模式。
仅在 description Site- <xxx> SRX 系列防火墙上受支持。
如果每个客户端都有多个描述字段,则会显示“及更多”以及第一个描述字段。
示例:在静态路由中的合格下一跃点上启用 BFD 以进行路由选择
此示例说明如何配置具有多个可能的下一跃点的静态路由。每个下一跃点都启用了双向转发检测 (BFD)。
要求
在此示例中,不需要除设备初始化之外的特殊配置。
概述
在此示例中,设备 B 具有静态路由 192.168.47.0/24 ,并具有两个可能的下一跃点。接下来的两个跃点是使用两个 qualified-next-hop
语句定义的。每个下一跃点都启用了 BFD。
在设备 D 上也启用了 BFD,因为必须在连接的两端启用 BFD。
如果 BFD 会话启动,则下一跃点将包含在路由表中。如果 BFD 会话关闭,则会从路由表中删除下一跃点。
参见 图 3。
拓扑
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
设备 B
set interfaces fe-0/1/0 unit 2 description secondary-B->D set interfaces fe-0/1/0 unit 2 family inet address 192.168.2.1/24 set interfaces ge-1/2/0 unit 0 description B->D set interfaces ge-1/2/0 unit 0 family inet address 172.16.1.1/24 set routing-options static route 192.168.47.0/24 qualified-next-hop 192.168.2.2 bfd-liveness-detection minimum-interval 60 set routing-options static route 192.168.47.0/24 qualified-next-hop 172.16.1.2 bfd-liveness-detection minimum-interval 60
设备 D
set interfaces fe-0/1/0 unit 3 description secondary-D->B set interfaces fe-0/1/0 unit 3 family inet address 192.168.2.2/24 set interfaces ge-1/2/0 unit 1 description D->B set interfaces ge-1/2/0 unit 1 family inet address 172.16.1.2/24 set routing-options static route 0.0.0.0/0 qualified-next-hop 192.168.2.1 set routing-options static route 0.0.0.0/0 qualified-next-hop 172.16.1.1 set routing-options static route 0.0.0.0/0 bfd-liveness-detection minimum-interval 60
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 Junos OS CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要使用两个可能的下一跃点(均启用了 BFD)配置静态路由:
在设备 B 上,配置接口。
[edit interfaces fe-0/1/0] user@B# set unit 2 description secondary-B->D user@B# set unit 2 family inet address 192.168.2.1/24 [edit interfaces ge-1/2/0] user@B# set unit 0 description B->D user@B# set unit 0 family inet address 172.16.1.1/24
在设备 B 上,使用两个下一跃点配置静态路由,这两个跃点都启用了 BFD。
[edit routing-options static route 192.168.47.0/24] user@B# set qualified-next-hop 192.168.2.2 bfd-liveness-detection minimum-interval 60 user@B# set qualified-next-hop 172.16.1.2 bfd-liveness-detection minimum-interval 60
在设备 D 上,配置接口。
[edit interfaces fe-0/1/0] user@D# set unit 3 description secondary-D->B user@D# set unit 3 family inet address 192.168.2.2/24 [edit interfaces ge-1/2/0] user@D# set unit 1 description D->B user@D# set unit 1 family inet address 172.16.1.2/24
在设备 D 上,配置启用 BFD 的默认静态路由,其中包含到提供商网络的两个下一跃点。
在这种情况下,BFD 在路由上启用,而不是在下一跃点上启用。
[edit routing-options static route 0.0.0.0/0] user@D# set qualified-next-hop 192.168.2.1 user@D# set qualified-next-hop 172.16.1.1 user@D# set bfd-liveness-detection minimum-interval 60
结果
通过发出 show interfaces
和 show routing-options
命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@B# show interfaces fe-0/1/0 { unit 2 { description secondary-B->D; family inet { address 192.168.2.1/24; } } } ge-1/2/0 { unit 0 { description B->D; family inet { address 172.16.1.1/24; } } }
user@B# show routing-options static { route 192.168.47.0/24 { qualified-next-hop 192.168.2.2 { bfd-liveness-detection { minimum-interval 60; } } qualified-next-hop 172.16.1.2 { bfd-liveness-detection { minimum-interval 60; } } } }
user@D# show interfaces fe-0/1/0 { unit 3 { description secondary-D->B; family inet { address 192.168.2.2/24; } } } ge-1/2/0 { unit 1 { description D->B; family inet { address 172.16.1.2/24; } } }
user@D# show routing-options static { route 0.0.0.0/0 { qualified-next-hop 192.168.2.1; qualified-next-hop 172.16.1.1; bfd-liveness-detection { minimum-interval 60; } } }
如果完成设备配置,请从配置模式输入 提交 。
验证
确认配置工作正常。
检查路由表
目的
确保静态路由显示在设备 B 上的路由表中,并带有两个可能的下一跃点。
行动
user@B> show route 192.168.47.0 extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 192.168.47.0/24 (1 entry, 1 announced) TSI: KRT in-kernel 192.168.47.0/24 -> {192.168.2.2} *Static Preference: 5 Next hop type: Router Address: 0x9334010 Next-hop reference count: 1 Next hop: 172.16.1.2 via ge-1/2/0.0 Next hop: 192.168.2.2 via fe-0/1/0.2, selected State: <Active Int Ext> Age: 9 Task: RT Announcement bits (1): 3-KRT AS path: I
意义
将列出两个下一跃点。下一跃点 192.168.2.2 是所选路由。
验证 BFD 会话
目的
确保 BFD 会话已启动。
行动
user@B> show bfd session Detect Transmit Address State Interface Time Interval Multiplier 172.16.1.2 Up ge-1/2/0.0 0.720 0.240 3 192.168.2.2 Up fe-0/1/0.2 0.720 0.240 3 2 sessions, 2 clients Cumulative transmit rate 8.3 pps, cumulative receive rate 8.3 pps
意义
输出显示 BFD 会话已启动。
从设备 D 中移除 BFD
目的
演示当两个下一跃点的 BFD 会话关闭时会发生什么情况。
行动
停用设备 D 上的 BFD。
[edit routing-options static route 0.0.0.0/0] user@D# deactivate bfd-liveness-detection user@D# commit
在设备 B 上重新运行
show bfd session
该命令。user@B> show bfd session Detect Transmit Address State Interface Time Interval Multiplier 172.16.1.2 Down ge-1/2/0.0 3.000 1.000 3 192.168.2.2 Down fe-0/1/0.2 3.000 1.000 3 2 sessions, 2 clients Cumulative transmit rate 2.0 pps, cumulative receive rate 2.0 pps
在设备 B 上重新运行
show route 192.168.47.0
该命令。user@B> show route 192.168.47.0
意义
正如预期的那样,当 BFD 会话关闭时,静态路由将从路由表中删除。
从一个下一跃点中删除 BFD
目的
演示当只有一个下一跃点启用了 BFD 时会发生什么情况。
行动
如果尚未停用,请在设备 D 上停用 BFD。
[edit routing-options static route 0.0.0.0/0] user@D# deactivate bfd-liveness-detection user@D# commit
在设备 B 上的下一跃点之一上停用 BFD。
[edit routing-options static route 192.168.47.0/24 qualified-next-hop 172.16.1.2] user@B# deactivate bfd-liveness-detection user@B# commit
在设备 B 上重新运行
show bfd session
该命令。user@B> show bfd session Detect Transmit Address State Interface Time Interval Multiplier 192.168.2.2 Down fe-0/1/0.2 3.000 1.000 3
在设备 B 上重新运行
show route 192.168.47.0 extensive
该命令。user@B> show route 192.168.47.0 extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 192.168.47.0/24 (1 entry, 1 announced) TSI: KRT in-kernel 192.168.47.0/24 -> {172.16.1.2} *Static Preference: 5 Next hop type: Router, Next hop index: 624 Address: 0x92f0178 Next-hop reference count: 3 Next hop: 172.16.1.2 via ge-1/2/0.0, selected State: <Active Int Ext> Age: 2:36 Task: RT Announcement bits (1): 3-KRT AS path: I
意义
正如预期的那样,192.168.2.2 下一跃点的 BFD 会话已关闭。172.16.1.2 下一跃点保留在路由表中,路由保持活动状态,因为 BFD 不是此下一跃点保持有效的条件。
bfd-liveness-detection
包含描述字段。描述是对象下
bfd-liveness-detection 的属性,仅在 SRX 系列防火墙上受支持。此字段仅适用于静态路由。