Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解 BGP 的平稳重启

了解长期存在的 BGP 平稳重启功能

Junos OS 支持将 BGP 路由详细信息从发生故障的 BGP 对等方保留更长时间的机制,而不是使用 BGP 平稳重启功能维护此类路由信息的持续时间。

从历史上看,路由协议和BGP的设计尤其注重正确性,其中“正确性”的一个重要方面是每个网元的转发状态尽快收敛到网络的当前状态。出于这个原因,该协议旨在尽快删除路由器通告的状态(从 BGP 角度来看)。使用 RFC 4724 中定义的 BGP 平稳重启,快速融合功能尝试从网络中快速消除“过时”状态。

在一段时间内,有两个促成因素导致这种快速删除陈旧状态的方法被修改和增强。首先是隧道转发基础架构的广泛采用,例如 MPLS。此类基础结构消除了逐跳转发中可能出现的某些类型的转发环路的风险,从而降低了转发元素之间强一致性的动机之一。其次是越来越多地使用 BGP 作为与数据包转发关联的数据的传输,而不是最初的情况。示例包括使用 BGP 进行自动发现 (VPLS [RFC4761]) 和过滤器编程 (FLOWSPEC [RFC5575])。在这些情况下,BGP 数据采用与传统路由不一致的特征。

当 BGP 控制平面因某种原因发生故障时,让网络运营商能够选择将 BGP 数据保留更长时间,这一点非常重要。尽管 BGP 平滑重启的属性接近此将 BGP 信息保留更长时间的所需要求,但存在一些差距,最明显的是可以保留“过时”信息的最长时间 — 平稳重启施加了 4095 秒的上限限制。Junos OS 支持称为长期平稳重启功能的 BGP 功能,以便在会话重置过程中将陈旧信息保留更长时间。它还支持新的 BGP 社区“LLGR_STALE”来标记此类信息。此类过时信息将被视为最不优先的信息,其播发仅限于支持新功能的 BGP 发言人。

BGP 长期平稳重启 (LLGR) 允许网络运营商选择将故障 BGP 对等方的过时路由信息维护时间长于现有 BGP 平稳重启工具。此将 BGP 路由保留较长时间的功能符合 IETF 草案支持 长期 BGP 平稳重启 - draft-uttaro-idr-bgp-persistence-03。根据该草案,必须根据NLRI显式配置长期优雅重启(LLGR),并且它包括防止将过时信息传播到无法识别和验证LLGR的其他对等方的规定。LLGR 会导致以下好处和操作:

  • 来自故障节点的路由将保留配置的时间段(按天为单位)。

  • 可以使用适当的 show 命令检查每个 NLRI LLGR 协商状态。

  • 您可以查看 LLGR 当前是否对等方有效,如果有效,则查看其到期期限。

  • LLGR 保留的过时路由在命令输出 show bgp neighbor 中显式标记。

  • 从其他邻居获知的过时路由会在命令输出 show bgp neighbor 中显式标记(使用定义明确的社区)。

虽然LLGR方法可以应用于许多不同的场景,但一个特定的场景是此功能的突出目标。如果路由反射器和客户端之间的连接丢失,包括间歇性连接,这可能导致在整个 RIB 传输之前重置连接,则此类故障不会导致重新启动。此外,这种现象并不意味着客户端与路由反射器通告的下一跃点之间存在任何类型的连接问题。预计典型的长期重启时间为 12 小时左右。

支持适用于LLGR的IETF草案 draft-uttaro-idr-bgp-persistence-03中描述的所有行为指南和操作点。此外,还支持向后兼容 15.1 版之前的版本中的现有 Junos OS 功能,特别是平稳重启和不间断路由 (NSR)。配置 LLGR 后,平滑重启将以现有方式运行,除非在互联网草案中明确说明。您还可以同时配置 LLGR 和 NSR,并实现完整的 LLGR 功能。作为 LLGR 的先决条件,实现了对 IETF 草案的支持,即 对 BGP 平稳重启的通知消息支持 - draft-ietf- idr-bgp-gr-notification-01。该草案扩展了普通遗传资源的行为,使其能够防止通信中断和协议错误。

了解切换后内核计时器自动生成 BGP 激活的最大周期配置

在 Junos OS 中,不间断主动路由 (NSR) 使用与平稳路由引擎切换 (GRES) 相同的基础架构来保留接口和内核信息。但是,NSR 还通过在备份路由引擎上运行路由协议进程 (rpd) 来保存路由协议信息。通过保存这些附加信息,NSR 是独立的,不依赖于帮助路由器(或交换机)来帮助路由平台恢复路由协议信息。NSR 在邻居路由器(或交换机)不支持平稳重启协议扩展的网络中具有优势。由于这一增强的功能,NSR 自然可以替代平稳重启。

不间断活动路由自动合并是套接字复制的内核组件之一。切换时,此组件会自动将套接字对从备份合并到主路由引擎。当 rpd 为每个辅助套接字对发出合并调用以将它们合并到单个套接字时,就会发生从备份到主套接字的 NSR 切换,这可能会导致延迟。为了避免这种延迟,内核中的自动合并模块将辅助套接字合并与 rpd 分离,并在切换时自动合并辅助套接字,以便 rpd 高优先级线程利用这一点并生成更快的激活以维持切换时的 TCP 连接。

默认情况下,BGP 不会在从备份切换到主数据库的事件之后立即注册内核提供的自动激活生成服务。为此,您需要在 [edit routing-options] 层次结构级别启用nonstop-routing-options该语句,并在 BGP 中配置精确计时器。在 BGP 中配置精确计时器允许 BGP 使用内核提供的自动激活生成服务注册其所有会话。注册后,内核会代表 BGP 使用其计时器自动生成激活,以便在从备份到主节点的切换事件之后为其控制会话生成激活。这允许在切换事件期间使用非常小的计时器为控制会话生成更可靠的激活。

通过 BGP 实现功能互操作 长期平稳重启

本主题包含以下部分,这些部分介绍了使用 BGP 长期平稳重新启动的不同功能的工作行为以及各种系统条件:

从 Junos OS 15.1 版开始,Junos OS 支持以下机制:从出现故障的 BGP 对等方保留 BGP 路由详细信息的时间比使用 BGP 平稳重启功能维护此类路由信息的持续时间更长。

对受支持的 NLRI 的限制

以下 BGP 网络层可达性信息 (NLRI) 系列支持 LLGR 配置和功能协商:

  • L2VPN

  • inet 标记-单播

  • 伊内特流

  • 路由目标

  • INET-VPN 单播

  • inet-vpn 流

  • INET6-VPN 单播

阻止以下系列的 LLGR 配置和功能协商:

  • inet-mvpn

  • inet6-mvpn

  • inet-mdt

对于阻止其 LLGR 功能的 NLRI 系列,它表示尝试提交包含这些系列的 LLGR 配置的配置将被拒绝,并且不会保存此类设置。与这些系列关联的 NLRI 不包括在 LLGR 功能播发中,并且在收到的 LLGR 功能播发中被忽略。

允许对其他系列进行 LLGR 配置和功能协商,但将其隐藏。

NSR 下的 LLGR 重启器模式

当 NSR 和 LLGR 一起配置时,路由器会以常规方式协商 LLGR 功能,包括在其对等方中触发 LLGR 接收器模式的长期过时时间。但是,完整的LLGR重启器功能(延迟RIB结束标记的传输,直到从所有对等方接收到EoR)在NSR下不起作用。在完整系统(两个路由引擎)重新启动期间,路由协议守护程序 (rpd) 在发送自己的 EoR 之前不会等待来自其他对等方的 EoR。一旦传输了当前的 RIB 内容,它就会传输 EoR。这种情况可能会导致网络重新收敛时出现暂时性中断。NSR 被认为足以处理所有单路由引擎重新启动情况。重新启动器模式限制仅影响两个路由引擎(或 rpd 的两个副本)同时重新启动的情况。NSR 未启用普通重启器模式配置。

NSR 仍然不支持普通平稳重新启动重新启动器模式配置。

全局、BGP 组和 BGP 邻居级别的 LLGR 功能

默认情况下启用长期平稳重新启动接收器模式,除非禁用了普通平稳重新启动接收器模式。要启用 BGP 长期平稳重启 (LLGR) 功能,请在层次结构级别包含 long-lived receiver enable 语句 [edit protocols bgp graceful-restart] 。除了在全局或系统范围级别启用 BGP LLGR 之外,您还可以在 [edit protocols bgp group group-name graceful- restart] 层次结构级别包含长期接收方启用语句,以便为特定 BGP 组配置 LLGR,并在 [edit protocols bgp group group-name neighbor neighbor-address graceful-restart] 层次结构级别包含为特定 BGP 邻居配置 LLGR。要禁用 BGP LLGR 机制,请包括 long-lived receiver disable[edit protocols bgp graceful-restart][edit protocols bgp group group-name graceful-restart]或 [编辑协议 bgp 组-组-名称邻居-地址正常重启] 层次结构级别选项。禁用 LLGR 会停用所有 NLRI 系列的所有 LLGR 功能(接收器和重启器模式)。此属性由全局配置中的组和组配置中的邻居继承。

监控和管理 BGP 长期平稳重启

本文介绍操作命令及其意义,方便您分析和查看BGP长效重启相关参数。您可以分析与任何流量丢失相关的统计计数器和指标,并采取适当的纠正措施。show 命令输出中显示的字段有助于诊断和调试网络性能和流量处理效率问题。

clear bgp neighbor neighbor-address stale-routes 会导致当前为指定邻接方保留任何过时路由,因为平稳重新启动 (GR) 或长期平稳重新启动 (LLGR) 接收器模式操作。该 clear bgp neighbor neighbor-address gracefully 命令与 ( clear bgp neighbor hardclear bgp neighbor默认值) 相同,但它不会对发送的“通知”和“停止”消息使用新的“硬重置”子代码。这允许邻居进入 GR 或 LLGR 帮助程序模式(如果协商)。此路由器上的会话仍处于清除状态,并且此路由器不会进入 GR 或 LLGR 帮助程序模式。

为用于调试目的的 BGP 长期平稳重启功能添加了隐藏 clear 命令:

clear bgp neighbor neighbor-address socket

此命令会中断已建立的对等会话的 TCP 连接。这是命令的唯一直接含义,所有其他含义都是连接中断的副作用。结果的效果是(除非已禁用 GR 通知扩展),如果协商,连接的两端都将进入 GR 或 LLGR 帮助程序模式,并且将重新建立 TCP 连接。

命令的 show bgp neighbor 输出已增强,可显示以下附加信息:

  • 长期平稳重启选项

  • 对等方协商的 LLGR 参数

  • 重新启动路由器已协商的 LLGR 参数

  • 使用路由协议守护程序 (rpd) %#0T 格式显示时间:

    <weeks>w<days>d <hours>:<minutes>:<seconds>

    省略零前导元素,例如,小于一周的值不包括周。

如果对邻接方完全禁用了长期平稳重新启动,则会显示以下内容:

如果邻居不完全支持 LLGR,则显示以下内容:

当 LLGR 接收器模式处于活动状态(协商 LLGR 的对等方已断开连接且尚未重新连接)时,命令的 show bgp neighbor 输出会显示距离 LLGR 过期的剩余时间、GR 过时计时器上的剩余时间以及 RIB 详细信息:

当邻接方的 BGP 平稳重新启动接收器模式处于活动状态时,命令输出 show bgp neighbor 中将显示其他信息。这些详细信息包括保留过时路由的 NLRI 列表(NLRI 我们为字段保存过时路由)、重新启动计时器的剩余时间(删除过时路由或成为长期过时字段的时间)、过时计时器的剩余时间(对于过时路由,假定到肋骨结束的时间)以及 RIB 详细信息。时间以协调世界时 (UTC) 格式 (YYYY-MM-DD-HH:MM:SS) 显示。请注意,当会话处于活动状态时,也会显示过时的计时器显示(“假定到肋骨结束的时间”),但邻居尚未发送所有肋骨末端指示。

当平稳重新启动或 LLGR 帮助程序模式处于活动状态时,命令现在会显示 show bgp summary RIB 信息。如果在主路由设备上建立了 BGP 会话,则该字段将显示从邻接方接收并显示在 inet.0(主)和 inet.2(组播)路由表中的活动、已接收、已接受和阻尼路由的数量。例如,8/10/10/2 和 2/4/4/0 表示以下内容:

  • 来自 BGP 对等方的 8 个活动路由、10 个已接收路由、10 个接受路由和 2 个阻尼路由显示在 inet.0 路由表中。

  • inet.2 路由表中显示 2 个活动路由、4 个已接收路由、4 个接受路由,并且没有来自 BGP 对等方的阻尼路由。

命令 show route detail (带和不带 receive-protocol bgp 选项)得到增强,可以识别处于长期过时状态的路由。该 LongLivedStale 标志指示路由被此路由器标记为 LLGR 过时,作为 LLGR 接收器模式操作的一部分。该 LongLivedStaleImport 标志指示路由在从对等方接收时或通过导入策略标记为 LLGR 过时。可以为路由显示其中一个或两个标志。这两个标志都不会与过时(普通 GR 过时)标志同时显示。当路由因长期过时而被取消优先级时,show route detail 命令输出中的 非活动原因 字段将显示 LLGR 过时。新的 LLGR 过时非活动原因适合首选项和本地首选项之间的路由选择层次结构。

提示:

根据瞻博网络技术支持中心 (JTAC) 的说法,一个有用的命令是命令,可帮助 show route table bgp.l2vpn.0 detail hidden 解决与 BGP 长期正常重启相关的问题。命令的输出可帮助您检测 BGP 会话结束后 BGP 路由是否仍然存在。hidden使用该选项,您可以查看事件发生期间和之后的路由,并发现解释路由隐藏原因的信息。可帮助您排除此故障的其他线索包括出现过时的 BGP 日志条目(如 bgp_mark_route_stale),以及命令输出 show bgp summary 中显示的隐藏路由。

通过 BGP 长期平稳重启,增加在缓慢重启的对等方之间保留 BGP 路由的持续时间

Junos OS 支持将 BGP 路由详细信息从发生故障的 BGP 对等方保留更长时间的机制,而不是使用 BGP 平稳重启功能维护此类路由信息的持续时间。

默认情况下启用长期平稳重新启动接收器模式,除非禁用了普通平稳重新启动接收器模式。要启用 BGP 长期平稳重启 (LLGR) 功能,请在层次结构级别包含 long-lived receiver enable 语句 [edit protocols bgp graceful-restart] 。除了在全局或系统范围级别启用 BGP LLGR 之外,您还可以在 [edit protocols bgp group group-name graceful-restart] 层次结构级别包含长期接收方启用语句,以便为特定 BGP 组配置 LLGR,并在 [edit protocols bgp group group-name neighbor neighbor-address graceful-restart] 层次结构级别包含为特定 BGP 邻居配置 LLGR。要禁用 BGP LLGR 机制,请包括 long-lived receiver disable[edit protocols bgp graceful-restart][edit protocols bgp group group-name graceful-restart]或 [编辑协议 bgp 组-组-名称邻居-地址正常重启] 层次结构级别选项。禁用 LLGR 会停用所有 NLRI 系列的所有 LLGR 功能(接收器和重启器模式)。此属性由全局配置中的组和组配置中的邻居继承。

可以在以下层次结构级别配置 BGP 邻接方:

  • [edit protocols bgp group group-name]- 默认逻辑系统和默认路由实例。

  • [edit routing-instances instance-name protocols bgp group group-name]- 具有指定路由实例的默认逻辑系统。

  • [edit logical-systems logical-system-name protocols bgp group group-name]— 配置的逻辑系统和默认路由实例。

  • [edit logical-systems logical-system-name routing-instances instance-name protocols bgp group group-name]- 使用指定路由实例配置的逻辑系统。

这将 long-lived receiver enable 覆盖从配置中更高级别继承的禁用选项。它不会为所有系列启用长期平稳重新启动重新启动器模式 — 必须为每个系列显式配置重新启动器模式。

要允许将 LLGR 过时的路由通告给不通告 LLGR 功能的邻居,请在 、 [edit protocols bgp group group-name graceful-restart long-lived][edit protocols bgp group group-name neighbor neighbor-address graceful-restart long-lived]层次结构级别包含advertise-to-non-llgr-neighbor[edit protocols bgp graceful-restart long-lived]该语句。此设置适用于被此路由器标记为 LLGR 过时的路由,以及从邻接方接收的 LLGR 过时路由。理想情况下,自治系统中的所有路由器在启用 IETF 草案规范之前都支持该规范。但是,为了便于增量部署,在以下情况下,可能需要将过时的路由通告给尚未播发长期平稳重启功能的邻居:邻居必须是内部(IBGP 或联盟)邻居。NO_EXPORT社区必须附加到过时的路由上。过时路由的 LOCAL_PREF 属性必须设置为零。如果将此技术用于部分部署,则必须将整个自治系统中的所有 LLGR 路由LOCAL_PREF设置为零。此配置牺牲了灵活性的小幅降低(在竞争的 LLGR 路由之间可能不会保留排序),以实现支持和不支持此规范的路由器之间的一致性。由于路由选择的一致性对于防止转发环路非常重要,因此在考虑不支持此规范的路由器之前。

为避免将无导出 BGP 社区自动添加到播发至外部 BGP 邻接方(假定为客户边缘路由器)的路由中,请在 、 [edit protocols bgp group group-name graceful-restart long-lived][edit protocols bgp group group-name neighbor neighbor-address graceful-restart long-lived]层次结构级别包含omit- no-export[edit protocols bgp graceful-restart long-lived]该语句。例如,在 VPN 部署中,BGP 通常用作 PE-CE 协议。在此类部署中,实际需要适应与无法轻松升级以支持此类规范的 CE 的互操作。此要求会导致问题,同时确保“过时”路由信息不会泄漏到支持这些过程的路由器外围之外(其中一个或多个 IBGP 路由器未升级)。在 VPN PE-CE 案例中,使用的协议是 EBGP,而LOCAL_PREF是仅 IBGP 的路径属性。限制“过时”路由信息传播的主要动机是防止它在离开 BGP 联合边界后无限制地传播的原因。VPN 部署通常受到拓扑限制,因此消除了此问题。因此,显式配置后,实现可能会通过 PE-CE 会话通告过时的路由。在这种情况下,默认情况下,实现必须将NO_EXPORT社区附加到有问题的路由,作为对陈旧路由无限制传播的额外保护。可以显式禁用NO_EXPORT社区的附加以适应特殊情况。在某些 VPN 部署中,可能需要向 CE 播发过时的路由,即使 CE 不支持此规范也是如此。在这种情况下,如果将 PE 路由器配置为通告此类路由,则必须通知运营商接收路由的客户边缘,并且必须将 CE 配置为弃用路由。典型的 BGP 实现通过在LLGR_STALE社区上进行匹配并将匹配路由的LOCAL_PREF设置为零来执行此操作。

启用或禁用 LLGR 接收器模式时,将重置会话。此行为允许将新功能值发送到邻居。启用或禁用该 advertise-to-non-llgr-neighbor 选项时,将重新评估导出策略,并且可能会播发或撤销 LLGR 过时的路由。添加或删除选项 omit-no-export 时,将重置会话。会话的其余部分允许在有或没有无导出社区(在导出策略之外添加)的情况下重新播发 LLGR 过时的路由。

要在系统或全局级别启用 BGP 长期平稳重新启动功能并配置其属性,请执行以下操作:

要在 BGP 组级别启用 BGP 长期平稳重新启动功能并配置其属性,请执行以下操作:

要在邻接方或对等方组级别启用 BGP 长期平稳重新启动功能并配置其属性,请执行以下操作:

在路由策略中配置 BGP 长期平稳重启社区

Junos OS 支持将 BGP 路由详细信息从发生故障的 BGP 对等方保留更长时间的机制,而不是使用 BGP 平稳重启功能维护此类路由信息的持续时间。

引入了两个新的知名社区。这些新的 BGP 社区可以在任何配置层次结构级别中使用,作为静态路由定义的社区属性或策略选项社区定义中的其他符号已知社区(例如 no-advertise、no-export 和no-export-subconfed)。两个新社区如下:

  • llgr-stale- 在重新播发社区时将社区添加到长期存在的陈旧路由中。

  • no-llgr— 标记 BGP 发送方不希望 LLGR 保留的路由。通知消息功能没有任何关联的配置参数。

您可以在语句中包含 community name membersno-llgr 选项llgr-stale,以将 BGP 社区信息与以下层次结构级别的静态、聚合或生成的路由相关联:

要配置 BGP 长期平稳重启社区以在路由策略匹配条件中使用,请执行以下操作:

配置 LLGR 不需要同时配置 BGP 平稳重启。llgr 陈旧和无 llgr 知名社区的值分别是0xFFFF0006和0xFFFF0007。权限与协议 bgp 的权限相同。长期平稳重启部分仅对家庭 l2vpn、inet 标记单播、inet 流和路由目标可见。禁止用于 inet-mvpn、inet6-mvpn 和 inet-mdt。它对其他家庭是隐藏的。

Junos OS 还支持配置与路由状态匹配的 BGP 导出策略,以实现 BGP 长期平稳重启。您可以将之前定义的社区与路由策略中的地址前缀列表相关联,以有选择地接受或拒绝路由,以便对指定前缀进行长时间的正常重新启动,如下所示:

在 ] 层次结构级别下 [edit protocols bgp graceful-restart为全局、组级别和邻居组级别配置添加了两个隐藏的配置语句。

disable-notification-flag[edit protocols bgp group group-name graceful-restart][edit protocols bgp group group-name neighbor neighbor-address graceful-restart]层次结构级别的语句[edit protocols bgp graceful-restart]禁用在平稳重启功能协商中传输 N 标志。disable-notification-extensions[edit protocols bgp group group-name graceful-restart][edit protocols bgp group group-name neighbor neighbor-address graceful-restart]层次结构级别的语句[edit protocols bgp graceful-restart]也会禁用平稳重启功能协商中 N 标志的传输,但除此之外,它还禁用了 IETF bgp-gr-notification 草案中指定的用于调用平稳重启接收器模式的新规则,并禁用硬重置子代码的传输。在通知或停止消息中收到时,将继续观察硬重置子代码。

要禁用 N 个标志的传输,并禁用在全局或系统范围内触发正常重新启动的规则,请执行以下操作:

要禁用 N 个标志的传输并禁用在组级别触发正常重新启动的规则,请执行以下操作:

要禁用 N 个标志的传输并禁用在邻接方或对等方级别触发正常重新启动的规则,请执行以下操作:

为逻辑系统和路由实例中的特定地址族配置长期平稳重启器模式协商

Junos OS 支持将 BGP 路由详细信息从发生故障的 BGP 对等方保留更长时间的机制,而不是使用 BGP 平稳重启功能维护此类路由信息的持续时间。

您还可以为特定地址族配置 BGP 长期平稳重启器模式协商机制,而不是为系统、逻辑系统或路由实例中的所有地址族配置此功能。要为特定地址族启用 BGP LLGR,请在以下层次结构级别之一包含 graceful-restart long-lived restarter stale-time interval 该语句。

每个路由表由协议族或地址族指示器 (AFI) 和后续地址族标识符 (SAFI) 标识。AFI 参数可以是协议之一 (l2vpn | inet | route-target) ,SAFI 参数可以是 inet 系列的协议之一 (flow | labeled-unicast) ,也可以是 L2VPN 系列的协议之一 (auto-discovery-mspw | auto-discovery-only | signaling)

配置 LLGR 不需要同时配置 BGP 平稳重启。长期平稳重启部分仅对家庭 l2vpn、inet 标记单播、inet 流和路由目标可见。禁止用于 inet-mvpn、inet6-mvpn 和 inet-mdt。它对其他家庭是隐藏的。

每个系列的平滑重启长期重启器配置部分中的节可为全局 BGP 或组或邻居启用 LLGR 重启器模式协商。这些值由全局配置中的组继承,并由组配置中的邻居继承。禁用属性用于覆盖从更高级别继承的配置。它不会禁用 LLGR 接收器模式;您必须根据需要为所有系列显式禁用 LLGR 接收器模式。隐藏 enable 属性可用于覆盖继承的禁用属性。在邻居级别配置平稳重启长期重启器(如果未在包含组级别或全局配置时)会导致内部组被拆分。当为一个家庭启用或禁用 LLGR 重新启动器或更改过时时间时,会话将被重置,以便可以将新功能发送到邻居。

陈旧时间的值范围为 1 到 16777215 (2^24 – 1) 秒。默认情况下,该值是给出秒数的简单整数,但也可以使用以下表示法指定:

[<周>周][<天>d][<小时>小时][<分钟>米][<秒>秒]例如,您可以将 27 天指定为 27d、648h、38880m 或 2332800s。90 分钟可以配置为 1h30m、90m 或 5400s。指定的天数乘以 86400,小时数乘以 3600,分钟数乘以 60;这些被添加到秒数中以获得总数。允许使用不同时间段单位(如 1d36h)中的天数和小时的组合格式,前提是指定的总计不超过最长过时时间。

此外,还可以使用以下表示法配置时间:<小时>:<分钟>:<秒> 例如,12:00:00 指定 12 小时。小时和分钟是可选的。

这两种表示法可以组合使用,例如,2w1d 12:00:02 指定两周、一天、十二小时和两秒(1339202 秒)。(请注意,CLI 要求在此类带有空格的值两边加上双引号。在此表示法中表示,最长过时时间为 27w5d 04:20:15(27 周 5 天 4 小时 20 分 15 秒)。虽然 show configuration 命令显示实际配置的值,但当关联的计时器显示在运行时 show 命令(如 show bgp neighbor)中时,这些值将被规范化,例如 1d36h 变为 2d 12:00:00。显示规范化 LLGR 时间的完整规则取决于 clear bgp neighbor neighbor-address gracefully 命令配置。

要在全局级别为逻辑系统或路由实例配置 BGP 按地址族和按后续地址族的 BGP 长期平稳重启特征,请执行以下操作:

在全局级别为逻辑系统配置每个地址族的 BGP 长期平稳重启

在全局级别为路由实例配置每个地址族的 BGP 长期平稳重启

要在 BGP 组级别为逻辑系统或路由实例配置 BGP 长期平稳重启特征(每个地址族和后续地址族):

在逻辑系统的 BGP 组级别为每个地址族配置 BGP 长期平稳重启

在 BGP 组级别为路由实例配置 BGP 长期平稳重启每个地址族

要在 BGP 邻居组级别为逻辑系统或路由实例配置 BGP 长期平稳重启特征(按地址族和后续地址族):

在逻辑系统的 BGP 邻居组级别为每个地址族配置 BGP 长期平稳重启

在 BGP 邻居组级别为路由实例配置 BGP 长期平稳重启

通过为所有地址族和特定地址族配置转发状态位,通知 BGP 帮助程序路由器或对等方有关保留路由的信息

Junos OS 支持将 BGP 路由详细信息从发生故障的 BGP 对等方保留更长时间的机制,而不是使用 BGP 平稳重启功能维护此类路由信息的持续时间。

在 BGP 会话关闭后和重新建立会话之前,过时的路由最多可以连续保留两个时间段,分别由重启时间和长期陈旧时间参数控制。在第一个时间段内,路由修改将被阻止,但可能会对流量进行空路由过滤。在第二个时间段内,可能会减少对流量进行空路由过滤,但在整个网络中可以看到路由更改。在您的网络环境中,特定应用的相关参数的设置必须考虑权衡、网络动态和潜在的故障场景。如有必要,可以通过本地配置或将平稳重新启动功能中的重新启动时间设置为零来绕过第一个时间段,而不在该功能中列出地址族指示器 (AFI) 和后续地址族标识符 (SAFI)。

F 位(以及随附 GR 功能的“转发状态”位)的设置部分取决于部署注意事项。F 位可以解释为指示帮助程序路由器需要刷新关联的路由(如果该位保持清除)。使用 LLGR 的一个重要方案是用于更类似于配置而不是传统路由的路由(逐跳转发而不是基于隧道的路由)。对于此类路由,无论其他注意事项如何,始终设置 F 位可能会很有用。同样,对于不参与转发平面的仅控制平面实体(如专用路由反射器),最好始终设置 F 位。总体而言,要采用的准则是,如果可以合理地预期重新启动路由器上的状态丢失会导致转发环路或空路由,则必须根据状态是否已保留来明智地设置 F 位。您可以根据部署需求和配置的设置确定是否需要设置 F 位。在某些 VPN 部署中,可能需要向 CE 播发过时的路由,即使 CE 不支持此规范也是如此。在这种情况下,配置其 PE 以通告此类路由的网络运营商必须通知运营商接收路由的 CE,并且必须将 CE 配置为弃用路由。通常,BGP 实现通过在LLGR_STALE社区上进行匹配并将匹配路由的LOCAL_PREF设置为零来执行此行为。

您可以为任何逻辑系统或路由实例指定转发状态位,这是一个 BGP 配置选项,可以在全局、组和邻居级别定义。要在全局、BGP 组或 BGP 邻居级别指定转发状态位,请在 、 [edit protocols bgp group-group-name graceful-restart][edit protocols bgp group-group-name neighbor neighbor-address graceful-restart]层次结构级别包含forwarding-state-bit (as-rr-client | from-fib)[edit protocols bgp graceful-restart]语句。转发状态位属性控制如何在平稳重启和长期平稳重启功能播发中设置转发状态位。默认情况下,该值取决于邻接方是否为路由反射器客户端。如果邻接方不是路由反射器客户端,则根据符合 RFC 4724 的关联 FIB 的状态设置该值。如果邻居是路由反射器客户端,则除 inet 单播和 inet6 单播之外的所有系列的值都设置为 1,它们使用关联 FIB 的状态。该 as-rr-client 选项将所有地址族的行为设置为与路由反射器客户端的功能相同。该 from-fib 选项强制所有地址族的行为与非路由反射器客户端的行为相同。

要在全局级别配置转发状态标志协商,请执行以下操作:

要在组级别配置转发状态标志协商,请执行以下操作:

要在邻接方或对等组级别配置转发状态标志协商,请执行以下操作:

除了“转发状态”位的全局设置之外,还可以为单个系列指定“转发状态”位行为。更改转发状态位设置不会影响任何现有会话。要为特定地址族指定转发状态位,请在逻辑系统和路由实例的 、 [edit protocols bgp group-group-name graceful-restart family address-family subsequent-address-family][edit protocols bgp group-group-name neighbor neighbor-address graceful-restart family address-family subsequent-address-family]层次结构级别包含[edit protocols bgp graceful-restart family address-family subsequent-address-family]forwarding-state-bit (set | from-fib)语句。添加了每系列 BGP 配置选项,以控制平稳重启和长期平稳重启功能播发中的转发状态位。可以为默认逻辑系统或特定逻辑系统,以及为主路由实例或特定路由实例指定它们。该 per-family forwarding-state-bit 属性将覆盖用于设置转发状态位的默认规则或全局配置。该 set 选项强制将转发状态位设置为 1。该 from-fib 选项导致根据关联 FIB 的状态设置该值。更改每个系列的转发状态位设置不会影响任何现有会话。

以下是完整的配置层次结构级别,您可以在其中包含 forwarding-state-bit (set | from-fib) 用于配置每个地址族的转发状态位的语句:

要在全局级别为逻辑系统或路由实例的 BGP 长期平稳重新启动每个地址系列和每个后续地址系列配置转发状态位,请执行以下操作:

在全局级别为逻辑系统配置每个地址族的转发状态位数

在全局级别为路由实例配置每个地址族的转发状态位

要在 BGP 组级别为逻辑系统或路由实例的 BGP 长期平稳重新启动每个地址族和每个后续地址族配置转发状态位,请执行以下操作:

在逻辑系统的 BGP 组级别配置每个地址族的转发状态位

在 BGP 组级别为路由实例配置每个地址族的转发状态位

要在 BGP 邻居组级别为逻辑系统或路由实例的 BGP 长期平稳重新启动每个地址族和每个后续地址族配置转发状态位,请执行以下操作:

在逻辑系统的 BGP 邻居组级别配置每个地址族的转发状态位

在 BGP 邻居组级别为路由实例配置每个地址族的转发状态位

示例:使用 BGP 长期平稳重启保留慢速和潜在 BGP 对等方的路由详细信息

Junos OS 支持将 BGP 路由详细信息从发生故障的 BGP 对等方保留更长时间的机制,而不是使用 BGP 平稳重启功能维护此类路由信息的持续时间。

从历史上看,路由协议和BGP的设计尤其注重正确性,其中“正确性”的一个重要方面是每个网元的转发状态尽快收敛到网络的当前状态。出于这个原因,该协议旨在尽快删除路由器通告的状态(从 BGP 角度来看)。使用 RFC 4724 中定义的 BGP 平稳重启,快速融合功能尝试从网络中快速消除“过时”状态。

BGP 长期平稳重启 (LLGR) 允许网络运营商选择将故障 BGP 对等方的过时路由信息维护时间长于现有 BGP 平稳重启工具。此将 BGP 路由保留较长时间的功能符合 IETF 草案支持 长期 BGP 平稳重启 - draft-uttaro-idr-bgp-persistence-03。根据该草案,必须根据NLRI显式配置长期优雅重启(LLGR),并且它包括防止将过时信息传播到无法识别和验证LLGR的其他对等方的规定。

此示例介绍如何在 MX 系列路由器上配置 BGP 长期平稳重启功能,并包含以下部分:

要求

此示例使用以下硬件和软件组件:

  • 一台带 MPC 的 MX 系列路由器。

  • 适用于 MX 系列路由器的 Junos OS 15.1R1 或更高版本

在配置 BGP 长期平稳重启之前,请确保:

  1. 配置设备接口。

  2. 配置 BGP。

概述

平稳重启允许正在进行重启的路由设备将情况通知其相邻邻接方和对等方。在平稳重启期间,重新启动的设备及其邻居会继续转发数据包,而不会中断网络性能。由于相邻设备协助重新启动(这些邻居称为 帮助路由器),因此重新启动设备可以快速恢复完全操作,而无需重新计算算法。

默认情况下启用长期平稳重新启动接收器模式,除非禁用了普通平稳重新启动接收器模式。要启用 BGP 长期平稳重启 (LLGR) 功能,请在层次结构级别包含 long-lived receiver enable 语句 [edit protocols bgp graceful-restart] 。除了在全局或系统范围级别启用 BGP LLGR 之外,您还可以在 [edit protocols bgp group group-name graceful-restart] 层次结构级别包含长期接收方启用语句,以便为特定 BGP 组配置 LLGR,并在 [edit protocols bgp group group-name neighbor neighbor-address graceful-restart] 层次结构级别包含为特定 BGP 邻居配置 LLGR。要禁用 BGP LLGR 机制,请包括 long-lived receiver disable[edit protocols bgp graceful-restart][edit protocols bgp group group-name graceful-restart]或 [编辑协议 bgp 组-组-名称邻居-地址正常重启] 层次结构级别选项。禁用 LLGR 会停用所有 NLRI 系列的所有 LLGR 功能(接收器和重启器模式)。此属性由全局配置中的组和组配置中的邻居继承。

拓扑学

考虑一个示例场景,在该场景中,您希望增加为地址为 1.2.3.4 的 BGP 对等方或邻居维护过时路由的时间段。除了指定为过时会话以及正常重启对等方时必须保留路由的持续时间外,您还可以将某些地址前缀的 BGP 路由器配置为在定义长期平稳重启机制时忽略。您可以定义要在路由策略语句中使用的 IPv4 或 IPv6 地址前缀列表,以及要包含在路由策略中的 BGP 社区。如果将操作修饰符设置为拒绝来自特定前缀的路由,则在增加的时间段内不会维护此类 BGP 路由。

您还可以为特定地址族配置 BGP 长期平稳重启器模式协商机制,而不是为系统、逻辑系统或路由实例中的所有地址族配置此功能。要为特定地址族启用 BGP LLGR,请在以下层次结构级别之一包含 graceful-restart long-lived restarter stale-time interval 该语句。

每个路由表由协议族或地址族指示器 (AFI) 和后续地址族标识符 (SAFI) 标识。AFI 参数可以是协议之一 (l2vpn | inet | route-target) ,SAFI 参数可以是 inet 系列的协议之一 (flow | labeled-unicast) ,也可以是 L2VPN 系列的协议之一 (auto-discovery-mspw | auto-discovery-only | signaling)

配置 LLGR 不需要同时配置 BGP 平稳重启。长期平稳重启部分仅对家庭 l2vpn、inet 标记单播、inet 流和路由目标可见。禁止用于 inet-mvpn、inet6-mvpn 和 inet-mdt。它对其他家庭是隐藏的。

配置

CLI 快速配置

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

配置地址前缀列表、BGP 社区和 BGP 路由策略

配置 BGP 组、NLRI 和长期平稳重启

配置 BGP 邻居组

为重启器模式配置长期平稳重启

分步过程

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

  1. 配置 BGP 路由策略的地址前缀列表、BGP 社区以及匹配条件和操作修饰符。

  2. 在流的过时时间下,为重启器模式配置 BGP 组、地址族和长期平稳重启功能。

  3. 配置 BGP 邻居组。

结果

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

验证

确认配置工作正常。

验证是否启用了长期平稳重启功能

目的

验证为 BGP 邻居级别配置的 BGP 长期平稳重启功能

操作

当 LLGR 接收器模式处于活动状态(协商 LLGR 的对等方已断开连接且尚未重新连接)时,命令的 show bgp neighbor 输出会显示距离 LLGR 过期的剩余时间、GR 过时计时器上的剩余时间以及 RIB 详细信息:

意义

输出显示有关 BGP 邻接方的信息。