Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BGP 路由优先级

了解 BGP 路由优先级

虽然 BGP 是当今经常使用的最广泛部署的路由协议之一,不仅采用网络层可达性信息(NLRI),还采用多种类型的 VPN 可访问性信息,因此很明显,协议不会指定信息的在 BGP 更新消息中订购。此决定留给实施。

在大规模系统中,BGP 在系统之间交换路由信息可能需要很长时间。在 BGP 启动、路由更新操作和协助平滑重新启动时,尤其如此。为了处理大量需要处理的信息,BGP 路由处理是通过使用队列来完成的。出站路由放在输出队列中进行处理。Junos OS 版本16.1 中引入 BGP 路由优先级,作为一种允许用户对 BGP 更新消息进行明确优先级的方式。BGP 路由优先级是一个严格在输出队列上运行的进程。,帮助订购发送到 BGP 对等体路由器的信息。

在默认配置中,即当不output-queue-priority存在重写优先级的配置或策略时,路由协议进程(rpd) enqueues BGP 路由到每个路由信息库(筋)的输出队列中。筋也称为路由表,与特定地址族(如 inet)和路由实例表(如 vrf)相对应。 inet. 0。处理输出队列时,BGP 更新代码将刷新当前筋的输出队列,然后再移至具有非空输出队列的下一个筋。

由于默认行为,在处理期间继续增长的任何特定筋可能会在其他肋条中导致超过(缺少路由更新处理)。这也意味着,比其他 NLRI 更重要的特定 NLRI 可能会在其他路由处理工作的较长列表后面排队。

注:
  • 即使有理论上可能这样做,也不会尝试自动优先排列路由。因此,区分各个路由的优先级是完全留给用户。

  • 如果为对等方组更改了 BGP 路由优先级,BGP 对等体会话将重新设置。

BGP 路由优先级的用例

表 1显示了将从路由优先顺序中受益的路由类型,以及有关他们将从中受益的原因的一些说明。还包括这些类型的路由示例。在给定大规模环境中确定这些路由的优先级可帮助路由器更快地对重要路由更改做出反应。

表 1: BGP 路由优先级的用例

路由或更新类型

备注

例子

用于解析 BGP 下一跃点到即时转发下一跳跃的前缀

应尽快对这些前缀进行更改。

  • 主机路由

  • 属于递归解析要求的前缀

用于通道端点的路由

GRE 或 MPLS 等通道端点通常用作 BGP 下一跃点。

标记为单播路由的 BGP

对协议功能操作至关重要的路由类型

对于某些 VPN 协议,某些路由类型用于触发协议内的时间敏感性更改。必须尽快对这些路由进行更改。

  • MVPN 源主动自动发现(类型5)

  • 多宿主 VPLS 站点

服务提供商基础架构路由

这些路由对于服务提供商的业务经营能力至关重要。如果没有准确而最新的路由,服务提供商可能无法提供部分服务产品。

  • 内部管理网络

  • 网络运营前缀

  • DNS 资源

网络拓扑更改

这些应优先于简单路由刷新。

  • 添加到网络的新路由器

  • 从网络中移除的路由器

地址族优先级

有些服务提供商与其他人相比,与地址族优先级不同。

您可能更喜欢在互联网筋之前融合第3层 Vpn。另一个服务提供商可能希望互联网筋首先汇聚。

BGP 路由优先级的属性

Junos OS 中 BGP 路由优先级采用由用户可配置的标记机制服务的17组优先性(编号)输出队列来实施。本节介绍优先顺序的输出队列、令牌系统的操作以及到队列的路由分配。

优先的输出队列

表 2显示了优先级系统中可用的输出队列及其功能。优先级系统在传统的低、中、高优先级范围下工作,1为最低优先级,16为最高优先级。

表 2: 优先的输出队列

排列

功能

加急

这是最高优先级的输出队列。此类中的路由在刷新输出队列时保证了输出队列处理的一部分。此队列没有编号,并由其名称在配置中引用。

1(最低优先级)

这是优先级最低的输出队列。这是默认优先级队列,这意味着默认情况下,不会在此队列中放置自动协议确定或用户策略中的无显式队列分配的路由。默认情况下,路由更新消息放置在此队列中。

2-16 (低-高优先级)

这些输出队列的优先级为从最低优先级(2)到最高优先级(16)。根据用户策略或 BGP 对等体配置为它们分配路由。优先级更高的输出队列中的路由可抢占优先级较低的队列中的路由。

路由分配到队列

通过设置和分配 BGP 导出策略,可以完成将路由分配给各个队列。这意味着每个 BGP 对等体组以及 BGP 对等体组内的特定邻接配置中的路由优先级可能各不相同。您还可以使用策略语句的操作部分将路由分配给队列。通过策略语句的操作将路由分配给队列将覆盖 BGP 配置所做的分配。

工作标记机制

标记对应于创建 BGP 更新消息的工作。所有队列都分配了存储在 bucket 中的标记。给定 bucket 中的令牌数量可由用户配置。通过这种方式,用户可以制定允许按所需的比例处理其路由的策略。优先级计划程序的配置在[edit protocols bgp]层次结构级别 BGP 内全局完成。默认情况下,所有优先级队列在其存储桶中至少有1个令牌,以确保配置不当的优先级不 starve。

了解队列优先级和公平

BGP 路由优先级侧重于两个元素的方案:公平和优先事项:

  • 公平意味着,当在任何给定的队列中进行工作时,其他队列都保证能够在某个时候完成一些工作。每个队列允许完成多少工作取决于分配给每个优先级的令牌数量。

  • 优先级意味着当存在竞争对手的工作和公平保证时,始终选择更重要的工作。

例如,假定三类优先级:低、中和高。它们可分别分配给队列1、2和3。或者,可以将它们分配给队列3、6和9。为公平,如果决定是高优先级的可用工作的 50%,则 "中" 获取 35%,"低" 表示剩余 15%,可将令牌分配为50到高、35到中、15到低。或者,标记可分配为5到高、4到中、2到低。您可以将17个队列中的任何一个值分配到1和100之间。单个队列中的标记数与所有队列中的总令牌数之比给每个队列中要完成的工时百分比。

当工作计划程序将标记放在其他队列中时,当工作出现在队列中时,优先级最重要。表 3显示了此示例的起始点。

表 3: 队列和令牌

优先级队列(队列编号)

分配给队列的令牌数

队列中剩余的标记数

队列中的条目数

高(9)

50

50

0

中(6)

35

15

5000

低(3)

15

15

10000

如果我们假设工作计划程序正在处理媒体队列(队列编号为6)并占用了20个令牌,则会有15个令牌留出在中型队列中的其余条目上,还有15个令牌留在低优先级队列中。如果在下一次运行工作计划之前,在加速队列中到达5个条目,则会首先发送5个条目,因为在加急队列中仍留有50标记。

队列维护过程

队列维护过程每个 BGP 对等体组运行,每个组维护自己的令牌桶。

  • 每个优先级的令牌桶均以配置的令牌数量或1的默认值开始完整。

  • 每次从队列中抽取路由条目以开始 BGP 更新时,都会从该队列中减去令牌。

  • 虽然加急队列有标记,但每个其他队列条目都从加急队列中提取,并受路由包装规则的制约。

  • 条目取自具有最高优先级的队列。这意味着如果在队列服务机制运行之间将条目添加到更高优先级队列中,并且该更高优先级队列中有可用标记,则较高优先级队列中的新条目将最先发送,从而降低较低的条目优先级队列。如果较高优先级队列没有在新条目到达时可用的工作令牌,则新条目将不会发送至下一次令牌刷新。

  • 为所有优先级队列提供服务(任何队列中都没有剩余条目)或所有标记都已耗尽时,将刷新令牌。

地址族优先级

默认情况下,任何给定地址族都不存在对 NLRI 的优先处理。此外,默认情况下,路由刷新和拓扑更改更新被视为最低优先级(1)。您可以将单个地址族配置为在更高优先级上输出、刷新或提取,方法是将其分配到各自配置层次结构中的特定输出队列。地址族优先顺序[edit protocols bgp 以这种方式进行配置时,某些地址系列可能会获得比他人更高的优先级。

示例:配置 BGP 输出优先级计划程序和全局地址族优先级

此示例演示如何配置和测试系统范围 BGP 路由优先级计划程序。

要求

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

  • 运行 Junos OS 16.1 或更高版本的 MX 系列路由器(R1)

在配置 BGP 路由优先级计划程序之前,请确保 BGP 协议正在路由器上运行。

概述

BGP 路由优先级计划程序用于控制路由优先级系统的17个输出队列中完成的工作量量。该系统使用一组17个优先级输出队列,其中分配了工作令牌的每个路由实例。默认情况下,所有17个优先顺序输出队列(1-16 和加急)都分配了一个令牌。1和100之间的任意数量的令牌均可分配给17个队列中的每一个。为队列分配令牌可让您平衡队列内对路由执行的工作量。此外,通过将每个关键字分配给特定编号的输出队列,可配置高、中、低优先级队列的默认设置。在此示例中,我们将使用不同数量的工作令牌配置17个优先级队列中的每一个,并且我们还为 inet 单播路由配置全局输出优先级,并通过设置一些 BGP 组来覆盖全局优先级来证明继承关系设置。

配置

  • 分配update-tokens给17个输出队列中的每一个。

  • 指定将哪些编号队列用作默认值highmediumlow优先级队列。

  • inet unicast路由配置全局输出优先级。

  • 配置将显示组覆盖功能的名为 test1 的 BGP 组。

  • 配置将显示全局继承的名为 test2 的 BGP 组。

CLI 快速配置

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

配置各个输出优先级队列

分步过程

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

  1. 将更新令牌分配给17个优先级别的输出队列中的每一个

配置要用于高、中和低优先级路由更新的默认队列

分步过程

成果

要确认配置,请从操作show bgp output-scheduler模式发出命令:

配置路由系列的全局输出优先级

操作

分步过程
  1. output-queue-priority路由配置inet unicast全局:

配置名为 test1 的 BGP 组

操作

分步过程
  1. 将组test1配置为覆盖全局输出优先级,并包括一个重写组的邻居和一个不存在的邻居。

配置名为 test2 的 BGP 组

分步过程
  1. 将 BGP 组test2配置为接受全局默认值。

针对

验证 BGP 输出时间表配置

用途

要验证 BGP 输出调度器的配置,请从操作show bgp output-scheduler模式发出命令。

行动

含义

输出显示,输出时间表配置已成功将正确数量的令牌应用于每个输出队列,并且为正确的输出队列分配了高、中和低优先级关键字。

验证组配置、组重写和邻居替代

用途

要验证已配置的组是否展示组覆盖、相邻节点重写和继承show bgp group group-name ,请从操作模式发出命令。

行动
含义

输出显示对等224.223.2.2 的输出队列优先级为7,路由刷新优先级为8,并加速撤消优先级。虽然邻接224.223.1.1 的输出队列优先级为4,但路由刷新优先级为6,而收回优先级是族inet unicast的默认设置,即3。

验证全局优先级设置中的继承

用途

要验证未配置为重写全局 BGP 路由优先级设置的组,请在操作级别show bgp group group-name发出命令。

行动
含义

输出显示, inet unicasttest2组中路由的默认路由优先级与全局配置一致。

示例:使用 BGP 路由优先级控制路由表融合

下面的示例配置 BGP 路由优先级,以便允许inet labeled-unicast路由在路由之前inet unicast汇聚。

要求

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

  • 运行 Junos OS 版本16.1 或更高版本的 MX 系列路由器(R1)将是本示例的重点。

  • 另一个路由器(R2)配置为具有 R1 的内部 BGP 对等体。

  • 将用于填充 R1 路由表的 BGP 路由反射器(RR)。在此示例中,我们不会配置路由反射器。

概述

BGP 路由优先级功能旨在允许对路由器中的出站 BGP 更新消息进行优先级划分。通过使用 BGP 路由优先级,用户可以确保更重要的 BGP 路由更新(如 GRE 或 MPLS 通道端点更改)在不太重要的 BGP 路由更新(如路由刷新更新)之前发出。

在此示例中,我们将配置 R1, inet labeled-unicast以将路由更新视为高于inet unicast路由更新的优先级。为此,我们会将 R2 路由器配置为同时inet unicast接受其对inet labeled-unicast等路由器(R1)和路由。然后, inet.3我们将从inet.0路由反射器在 R1 上填充路由表,并使用labeled-unicastrib-group import 将该表的一部分导入表中。当路由在 R1 上排队时,我们可以通过观察在inet.3inet.0筋中其余的路由之前是否刷新筋中的路由来验证操作。

配置 BGP 路由优先级

将 R2 配置为 BGP 对等体 R1。

在 R1 上:

  • 将路由器 R2 配置为路由器 R1 对等方。

  • 创建一个称为反射器的 BGP 组,将用于从路由反射器获取 Internet 路由。

  • 创建一个名为 internal 的 BGP 组,用于将标记为单播的流量分配给更高优先级的输出队列。

  • 创建将从反射器接收的路由导入其中的 RIB 组。

  • 创建确定哪些inet.0筋部分导入 RIB 组的策略。

CLI 快速配置

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

路由器 R2

路由器 R1

操作

分步过程

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

要配置 R2:

  1. 配置名为 internal 的 BGP 组。

分步过程

要配置 R1:

  1. 配置从 RR 接收路由的名为反射的 BGP 组。

  2. 配置名为 internal 的 BGP 组

  3. 配置名为 into3 的 RIB 组

  4. 配置名为 match 的路由策略-长

  5. 配置名为 match 的路由策略-all

针对

验证邻居更新的优先级是否正确

用途

以确认路由更新放在正确的队列中并且队列正在更新。

行动

要查看排队等候 BGP 相邻192.0.2.2 的路由更新,请从操作模式发出show bgp neighbor output-queue 192.0.2.2命令

含义

输出show bgp neighbor output-queue 192.0.2.2显示,标记的单播路由更新放在优先级2输出队列中,优先级2的输出队列在优先级1输出队列中的单播路由更新之前被清空。