Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

了解 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 以这种方式进行配置时,某些地址系列可能会获得比他人更高的优先级。