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 小时。

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

了解切换后内核计时器自动生成 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 流

  • 路由目标

  • 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) 功能,请在层次结构级别包含[edit protocols bgp graceful-restart]long-lived receiver enable语句。除了在全局或系统范围内启用 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]或 [edit protocols bgp group-group-name neighbor-address graceful-restart] 。禁用 LLGR 会停用所有 NLRI 系列的所有 LLGR 功能(接收器和重启模式)。此属性由组从全局配置继承,并由邻接方从组配置继承。

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

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

由于clear bgp neighbor neighbor-address stale-routes平稳重启 (GR) 或长期平稳重启 (LLGR) 接收器模式操作,导致指定邻接方当前保留的任何过时路由。该clear bgp neighbor neighbor-address gracefully命令与 (默认clear bgp neighbor值) 相同clear bgp neighbor hard,但它不在发送的 Notify 和 Cease 消息上使用新的 Hard Reset 子代码。这允许邻接方进入 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 末尾的时间)以及 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 表示以下内容:

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

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

show route detail 命令(带和不带 receive-protocol bgp 选项)得到了增强,以识别处于长期失效状态的路由。该 LongLivedStale 标志表示,在 LLGR 接收器模式操作过程中,路由已被此路由器标记为 LLGR 失效。该 LongLivedStaleImport 标志表示,当路由从对等方或导入策略接收时,已将路由标记为 LLGR 过时。可以为路线显示这些标志中的一个或两个。这些标志都不会与陈旧(普通 GR 陈旧)标志同时显示。当路由因长期过时而取消首选时,show route detail 命令输出中的 Inactive reason 字段会显示 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) 功能,请在层次结构级别包含[edit protocols bgp graceful-restart]long-lived receiver enable语句。除了在全局或系统范围内启用 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]或 [edit protocols bgp group-group-name neighbor-address graceful-restart] 。禁用 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 功能的邻接方,请在层次结构级别包含advertise-to-non-llgr-neighbor[edit protocols bgp graceful-restart long-lived][edit protocols bgp group group-name graceful-restart long-lived][edit protocols bgp group group-name neighbor neighbor-address graceful-restart long-lived]语句。此设置适用于此路由器标记为 LLGR 过时的路由,以及从邻接方接收的 LLGR 过时路由。理想情况下,自治系统中的所有路由器在启用之前都支持 IETF 规范草案。但是,为了便于增量部署,在以下情况下,可能需要将过时路由播发给尚未播发长期平滑重启功能的邻接方: 邻接方必须是内部(IBGP 或联合体)邻接方。NO_EXPORT社区必须连接到过时的路由。过时路由的 LOCAL_PREF 属性必须设置为零。如果将此技术用于部分部署,则必须将整个自治系统中的所有 LLGR 路由LOCAL_PREF设置为零。此配置为了支持和不支持此规范的路由器之间的一致性,会牺牲灵活性的小幅下降(竞争的 LLGR 路由之间可能不会保留排序)。由于路由选择的一致性对于防止转发环路非常重要,因此后者将首先考虑不支持此规范的路由器。

为避免将无导出 BGP 社区自动添加到播发至外部 BGP 邻接方(假定为 客户边缘路由器)的路由中,请在层次结构级别包含 omit- no-export 该语句 [edit protocols bgp graceful-restart long-lived][edit protocols bgp group group-name graceful-restart long-lived][edit protocols bgp group group-name neighbor neighbor-address graceful-restart long-lived] 。例如,在 VPN 部署中,BGP 通常用作 PE-客户边缘协议。在此类部署中,可能需要与无法轻易升级为支持此类规范的 CE 进行互操作。在确保“过时”路由信息不会泄露到支持这些过程的路由器外围外(如果一个或多个 IBGP 路由器未升级),这一要求会导致出现问题。在 VPN PE-客户边缘 的情况下,使用的协议是 EBGP,而使用 LOCAL_PREF(仅限 IBGP 的路径属性)。限制“过时”路由信息传播的主要动机是防止其在离开 BGP 联合边界后无限制地传播。VPN 部署通常受拓扑约束,无需担心。因此,在显式配置时,实施可能会通过 PE-客户边缘会话播发过时的路由。在这种情况下,默认情况下,实施必须将NO_EXPORT社区附加到相关路由,作为防止过时路由无限制传播的额外保护。可以明确禁用NO_EXPORT社区的附件以适应特殊情况。在某些 VPN 部署中,可能需要将过时路由播发至客户边缘,即使该 客户边缘 不支持此规范也是如此。在这种情况下,如果将 PE 路由器配置为播发此类路由,则必须通知接收路由的客户边缘的运维人员,并且必须将客户边缘配置为取消对路由的优先级。典型的 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 社区可作为静态路由定义的社区属性或策略选项社区定义中的其他符号性众所周知社区(如无通告、无导出和无导出子confed)在任何配置层级中使用。两个新社区如下:

  • llgr-stale— 在重新播发时将社区添加到长期过时路由中。

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

您可以将 和 llgr-stale no-llgr 选项与语句一起 community name members 添加,以便将 BGP 社区信息与以下层级的静态、聚合或生成路由相关联:

要配置 BGP 长期平滑重启社区以用于路由策略匹配条件:

配置 LLGR 不需要同时配置 BGP 平滑重启。llgr-stale 和无 llgr 知名社区的值分别为 0xFFFF0006 和 0xFFFF0007。权限与协议 bgp 相同。long-lived-graceful-restart 部分仅对 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 通知草案中指定的用于调用平稳重启接收器模式的新规则,并禁用硬重置子代码的传输。在通知或停止消息中收到时,将继续观察硬重置子代码。

要禁用 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 平滑重启。long-lived-graceful-restart 部分仅对 l2vpn、inet 标记单播、inet 流和路由目标家族可见。禁止使用 inet-mvpn、inet6-mvpn 和 inet-mdt。它对其他家庭来说是隐藏的。

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

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

[<周>周][<天>天][<小时>小时][<分钟>分钟][<秒>秒]例如,您可以将 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 帮助路由器或对等方有关保留路由的信息

Junos OS支持在发生故障BGP 对等体后保留BGP路由详细信息的时间比使用BGP平滑重启功能维护此类路由信息的持续时间更长的机制。

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

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

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

要在全局级别配置转发状态标志协商:

要在组级别配置转发状态标志协商:

要在邻接方或对等方组级别配置转发状态标志协商:

除了转发状态位的全局设置外,还可以为各个族指定转发状态位行为。更改 forwarding-state-bit 设置不会影响任何现有会话。要为特定地址族指定转发状态位,请在forwarding-state-bit (set | 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]该语句。添加了按系列的 BGP 配置选项,以控制平稳重启和长期平稳重启功能播发中的转发状态位。可以为默认逻辑系统或特定逻辑系统以及主路由实例或特定路由实例指定它们。该per-family forwarding-state-bit属性将覆盖用于设置转发状态位的默认规则或全局配置。该set 选项强制将转发状态位设置为 1。该from-fib选项使根据关联 FIB 的状态设置值。更改 per-family forwarding-state-bit 设置不会影响任何现有会话。

以下是完整的配置层次结构级别,您可以在其中包含该 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) 功能,请在层次结构级别包含[edit protocols bgp graceful-restart]long-lived receiver enable语句。除了在全局或系统范围内启用 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]或 [edit protocols bgp group-group-name neighbor-address graceful-restart] 。禁用 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 平滑重启。long-lived-graceful-restart 部分仅对 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 邻接方的信息。