配置 PIM 和双向转发检测 (BFD) 协议
了解 PIM 的双向转发检测身份验证
双向转发检测 (BFD) 可以快速检测相邻系统之间的通信故障。默认情况下,BFD 会话的身份验证处于禁用状态。但是,当您通过网络层协议运行 BFD 时,服务攻击的风险可能很大。如果您通过多个跃点或通过不安全的隧道运行 BFD,我们强烈建议使用身份验证。
从 Junos OS 9.6 版开始,Junos OS 支持对通过 PIM 运行的 BFD 会话进行身份验证。BFD 身份验证仅在加拿大和美国版本的 Junos OS 映像中受支持,在导出版本中不可用。
要对 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 会话可能会在切换后关闭。
安全认证钥匙串
安全认证密钥链定义用于认证密钥更新的认证属性。配置安全认证密钥链并通过密钥链名称与协议关联时,可以在不中断路由和信令协议的情况下进行身份验证密钥更新。
认证钥匙串包含一个或多个钥匙串。每个钥匙串包含一个或多个密钥。每个密钥都保存机密数据和密钥生效的时间。必须在 BFD 会话的两端配置算法和钥匙串,并且它们必须匹配。配置中的任何不匹配都会阻止创建 BFD 会话。
BFD 允许每个会话使用多个客户端,并且每个客户端都可以定义自己的密钥链和算法。为避免混淆,我们建议仅指定一个安全认证钥匙串。
SRX 系列防火墙不支持安全认证密钥链。
严格身份验证与松散身份验证
默认情况下,启用严格身份验证,并在每个 BFD 会话的两端检查身份验证。(可选)要从未经身份验证的会话顺利迁移到经过身份验证的会话,您可以配置 松散检查。配置松散检查后,将接受数据包,而不会在会话的每一端检查身份验证。此功能仅适用于过渡期。
参见
为 PIM 配置 BFD
双向转发检测 (BFD) 协议是一种检测网络中故障的简单你好机制。BFD 适用于各种网络环境和拓扑结构。一对路由设备交换 BFD 数据包。Hello 数据包按指定的定期间隔发送。当路由设备在指定间隔后停止接收回复时,将检测到邻接方故障。BFD 故障检测计时器的时间限制比协议无关组播 (PIM) 你好保持时间短,因此检测速度更快。
BFD 故障检测计时器是自适应的,可以调整为更快或更慢。BFD 故障检测计时器值越低,故障检测越快,反之亦然。例如,如果邻接失败(即,计时器检测故障的速度较慢),计时器可以适应更高的值。或者,邻居可以为计时器协商比配置的值更高的值。当 BFD 会话抖动在 15 秒内出现三次以上时,计时器会适应更高的值。如果本地 BFD 实例是会话抖动的原因,则退避算法会将接收 (Rx) 间隔增加 2。如果远程 BFD 实例是会话抖动的原因,则传输 (Tx) 间隔增加 2。您可以使用命令将 clear bfd adaptation
BFD 间隔计时器返回到其配置的值。该 clear bfd adaptation
命令是无中断的,这意味着该命令不会影响路由设备上的流量。
必须指定最小传输间隔和最小接收间隔才能在 PIM 上启用 BFD。
要启用故障检测,请执行以下操作:
参见
为 PIM 配置 BFD 身份验证
指定 PIM 协议的 BFD 身份验证算法。
将身份验证密钥链与 PIM 协议关联。
配置相关的安全认证密钥链。
从 Junos OS 9.6 版开始,您可以为通过协议无关组播 (PIM) 运行的双向转发检测 (BFD) 会话配置身份验证。还支持路由实例。
以下各节提供了有关在 PIM 上配置和查看 BFD 身份验证的说明:
配置 BFD 身份验证参数
BFD 身份验证仅在加拿大和美国版本的 Junos OS 映像中受支持,在导出版本中不可用。
要配置 BFD 身份验证,请执行以下操作:
查看 BFD 会话的身份验证信息
您可以使用和show bfd session extensive
命令查看show bfd session detail
现有的 BFD 身份验证配置。
以下示例显示了为 ge-0/1/5 接口配置的 BFD 身份验证。它指定密钥化 SHA-1 身份验证算法和密钥链名称 bfd-pim。身份验证钥匙串配置了两个密钥。密钥 1 包含机密数据“$ABC 123/”,开始时间为太平洋标准时间 2009 年 6 月 1 日上午 9:46:02。密钥 2 包含机密数据“$ABC 123/”,开始时间为太平洋标准时间 2009 年 6 月 1 日下午 3:29:20。
[edit protocols pim] interface ge-0/1/5 { family inet { bfd-liveness-detection { authentication { key-chain bfd-pim; algorithm keyed-sha-1; } } } } [edit security] authentication key-chains { key-chain bfd-pim { key 1 { secret “$ABC123/”; start-time “2009-6-1.09:46:02 -0700”; } key 2 { secret “$ABC123/”; start-time “2009-6-1.15:29:20 -0700”; } } }
如果将这些更新提交到配置,则会看到类似于以下示例的输出。在命令的 show bfd session detail
输出中,将显示 身份验证 以指示已配置 BFD 身份验证。有关配置的更多信息,请使用 show bfd session extensive
命令。此命令的输出提供密钥链名称、会话中每个客户端的身份验证算法和模式,以及整体 BFD 身份验证配置状态、密钥链名称以及身份验证算法和模式。
显示 BFD 会话详细信息
user@host# show bfd session detail Detect Transmit Address State Interface Time Interval Multiplier 192.0.2.2 Up ge-0/1/5.0 0.900 0.300 3 Client PIM, TX interval 0.300, RX interval 0.300, Authenticate Session up time 3d 00:34 Local diagnostic None, remote diagnostic NbrSignal Remote state Up, version 1 Replicated
显示 BFD 会话广泛
user@host# show bfd session extensive Detect Transmit Address State Interface Time Interval Multiplier 192.0.2.2 Up ge-0/1/5.0 0.900 0.300 3 Client PIM, TX interval 0.300, RX interval 0.300, Authenticate keychain bfd-pim, algo keyed-sha-1, mode strict Session up time 00:04:42 Local diagnostic None, remote diagnostic NbrSignal Remote state Up, version 1 Replicated Min async interval 0.300, min slow interval 1.000 Adaptive async TX interval 0.300, RX interval 0.300 Local min TX interval 0.300, minimum RX interval 0.300, multiplier 3 Remote min TX interval 0.300, min RX interval 0.300, multiplier 3 Local discriminator 2, remote discriminator 2 Echo mode disabled/inactive Authentication enabled/active, keychain bfd-pim, algo keyed-sha-1, mode strict
示例:为 PIM IPv6 配置 BFD 活动检测
此示例说明如何为为协议无关组播 (PIM) 拓扑配置的 IPv6 接口配置双向转发检测 (BFD) 活动检测。BFD 是一种检测网络中故障的简单你好机制。
配置 BFD 活动检测需要执行以下步骤:
配置接口。
配置相关的安全认证密钥链。
指定 PIM 协议的 BFD 身份验证算法。
配置 PIM,将身份验证密钥链与所需协议相关联。
为路由实例配置 BFD 身份验证。
您必须在 BFD 会话的两端执行这些步骤。
要求
此示例使用以下硬件和软件组件:
两个对等路由器。
Junos OS 12.2 或更高版本。
概述
在此示例中。设备 R1 和设备 R2 是对等方。每个路由器都运行 PIM,通过公共介质连接。
拓扑学
图 1 显示了此示例中使用的拓扑。

假设路由器初始化。尚未建立 BFD 会话。对于每个路由器,PIM 会通知 BFD 进程监控路由协议中配置的邻接方的 IPv6 地址。地址不是动态学习的,必须进行配置。
在 [编辑协议 pim] 层次结构级别为每个路由器配置 IPv6 地址和 BFD 活动检测。
[edit protocols pim] user@host# set interface interface-name family inet6 bfd-liveness-detection
在 [编辑路由实例instance-name 协议 pim 接口所有系列 inet6] 层次结构级别为路由实例配置 BFD 活动检测(此处为 instance-name instance1:
[edit routing-instances instance1 protocols pim] user@host# set bfd-liveness-detection
您还将配置 BFD 的身份验证算法和身份验证密钥链值。
在 BFD 配置的网络中,当客户端启动与对等方的 BFD 会话时,BFD 开始发送缓慢的定期 BFD 控制数据包,其中包含您在配置 BFD 对等方时指定的间隔值。这称为初始化状态。在此状态下,BFD 不会生成任何启动或关闭通知。当另一个 BFD 接口确认 BFD 控制数据包时,会话将进入上升状态,并开始更快地发送定期控制数据包。如果发生数据路径故障,并且 BFD 在配置的时间内未收到控制数据包,则数据路径将被声明为关闭,BFD 会通知 BFD 客户端。然后,BFD 客户端可以执行必要的操作来重新路由流量。对于不同的 BFD 客户端,此过程可能有所不同。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
设备 R1
set interfaces ge-0/1/5 unit 0 description toRouter2 set interfaces ge-0/1/5 unit 0 family inet6 set interfaces ge-0/1/5 unit 0 family inet6 address e80::21b:c0ff:fed5:e4dd set protocols pim interface ge-0/1/5 family inet6 bfd-liveness-detection authentication algorithm keyed-sha-1 set protocols pim interface ge-0/1/5 family inet6 bfd-liveness-detection authentication key-chain bfd-pim set routing-instances instance1 protocols pim interface all family inet6 bfd-liveness-detection authentication algorithm keyed-sha-1 set routing-instances instance1 protocols pim interface all family inet6 bfd-liveness-detection authentication key-chain bfd-pim set security authentication key-chain bfd-pim key 1 secret "v" set security authentication key-chain bfd-pim key 1 start-time "2012-01-01.09:46:02 -0700" set security authentication key-chain bfd-pim key 2 secret "$ABC123abc123" set security authentication key-chain bfd-pim key 2 start-time "2012-01-01.15:29:20 -0700"
设备 R2
set interfaces ge-1/1/0 unit 0 description toRouter1 set interfaces ge-1/1/0 unit 0 family inet6 address e80::21b:c0ff:fed5:e5dd set protocols pim interface ge-1/1/0 family inet6 bfd-liveness-detection authentication algorithm keyed-sha-1 set protocols pim interface ge-1/1/0 family inet6 bfd-liveness-detection authentication key-chain bfd-pim set routing-instances instance1 protocols pim interface all family inet6 bfd-liveness-detection authentication algorithm keyed-sha-1 set routing-instances instance1 protocols pim interface all family inet6 bfd-liveness-detection authentication key-chain bfd-pim set security authentication key-chain bfd-pim key 1 secret "$ABC123abc123" set security authentication key-chain bfd-pim key 1 start-time "2012-01-01.09:46:02 -0700" set security authentication key-chain bfd-pim key 2 secret "$ABC123abc123" set security authentication key-chain bfd-pim key 2 start-time "2012-01-01.15:29:20 -0700"
程序
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要为设备 R1 上的 PIM IPv6 接口配置 BFD 活动检测,请执行以下操作:
此过程适用于设备 R1。修改相应的接口名称、地址和任何其他参数后,对设备 R2 重复此过程。
配置接口,使用语句指定
inet6
这是 IPv6 地址。[edit interfaces] user@R1# set ge-0/1/5 unit 0 description toRouter2 user@R1# set ge-0/1/5 unit 0 family inet6 address e80::21b:c0ff:fed5:e4dd
指定 PIM 协议的 BFD 身份验证算法和密钥链。
密钥链用于将指定 PIM 路由或路由实例上的 BFD 会话与唯一安全认证密钥链属性相关联。此钥匙串名称应与在层次结构级别配置的
[edit security authentication]
钥匙串名称匹配。[edit protocols] user@R1# set pim interface ge-0/1/5.0 family inet6 bfd-liveness-detection authentication algorithm keyed-sha-1 user@R1# set pim interface ge-0/1/5 family inet6 bfd-liveness-detection authentication key-chain bfd-pim
注意:必须在 BFD 会话的两端配置算法和钥匙串,并且它们必须匹配。配置中的任何不匹配都会阻止创建 BFD 会话。
配置路由实例(此处为 instance1),指定 BFD 身份验证并关联安全身份验证算法和钥匙串。
[edit routing-instances] user@R1# set instance1 protocols pim interface all family inet6 bfd-liveness-detection authentication algorithm keyed-sha-1 user@R1# set instance1 protocols pim interface all family inet6 bfd-liveness-detection authentication key-chain bfd-pim
指定 BFD 会话的唯一安全身份验证信息:
步骤 2 中指定的匹配钥匙串名称。
至少一个键,即 介于 0 和 63 之间的唯一整数。创建多个密钥允许多个客户端使用 BFD 会话。
用于允许访问会话的机密数据。
身份验证密钥变为活动状态的时间,格式为 YYYY-MM-DD.hh:mm:ss。
[edit security authentication] user@R1# set key-chain bfd-pim key 1 secret "$ABC123abc123" user@R1# set key-chain bfd-pim key 1 start-time "2012-01-01.09:46:02 -0700" user@R1# set key-chain bfd-pim key 2 secret "$ABC123abc123" user@R1# set key-chain bfd-pim key 2 start-time "2012-01-01.15:29:20 -0700"
结果
通过发出 show interfaces
、 show protocols
、 show routing-instances
和 show security
命令来确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明以更正配置。
user@R1# show interfaces ge-0/1/5 { unit 0 { description toRouter2; family inet6 { address e80::21b:c0ff:fed5:e4dd { } } } }
user@R1# show protocols pim { interface ge-0/1/5.0 { family inet6; bfd-liveness-detection { authentication { algorithm keyed-sha-1; key-chain bfd-pim; } } } }
user@R1# show routing-instances instance1 { protocols { pim { interface all { family inet6 { bfd-liveness-detection { authentication { algorithm keyed-sha-1; key-chain bfd-pim; } } } } } } }
user@R1# show security authentication { key-chain bfd-pim { key 1 { secret “$ABC123abc123”; start-time “2012-01-01.09:46:02 -0700”; } key 2 { secret “$ABC123abc123”; start-time “2012-01-01.15:29:20 -0700”; } } }
验证
确认配置工作正常。
验证 BFD 会话
目的
验证是否启用了 BFD 活动检测。
行动
user@R1# run show pim neighbors detail Instance: PIM.master Interface: ge-0/1/5.0 Address: fe80::21b:c0ff:fed5:e4dd, IPv6, PIM v2, Mode: Sparse, sg Join Count: 0, tsg Join Count: 0 Hello Option Holdtime: 65535 seconds Hello Option DR Priority: 1 Hello Option Generation ID: 1417610277 Hello Option LAN Prune Delay: delay 500 ms override 2000 ms Join Suppression supported Address: fe80::21b:c0ff:fedc:28dd, IPv6, PIM v2, sg Join Count: 0, tsg Join Count: 0 Secondary address: beef::2 BFD: Enabled, Operational state: Up Hello Option Holdtime: 105 seconds 80 remaining Hello Option DR Priority: 1 Hello Option Generation ID: 1648636754 Hello Option LAN Prune Delay: delay 500 ms override 2000 ms Join Suppression supported
意义
命令显示 show pim neighbors detail
的显示显示 BFD:已启用、操作状态:Up,指示 BFD 正在两个 PIM 邻接方之间运行。有关 BFD 会话的其他信息(包括会话 ID 号),请使用 show bfd session extensive
命令。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。