Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

聚合以太网接口的负载平衡

负载均衡在第 2 层跨成员链路完成,从而更好地配置而不会产生拥塞并保持冗余。以下主题讨论负载平衡概述、基于 MAC 地址和 LAG 链路配置负载平衡,以及通过弹性散列了解一致性。

基于 MAC 地址配置负载平衡

用于负载平衡的哈希密钥机制使用第 2 层媒体访问控制 (MAC) 信息,例如帧源和目标地址。要根据第 2 层 MAC 信息对流量进行负载均衡,请在 或 [edit chassis fpc slot number pic PIC number hash-key] 层次结构级别包含multiservice[edit forwarding-options hash-key]以下语句:

要在哈希键中包含目标地址 MAC 信息,请包含该 destination-mac 选项。要在哈希键中包含源地址 MAC 信息,请包含该 source-mac 选项。

注意:

具有相同源地址和目标地址的任何数据包都将通过同一路径发送。

注意:

您可以配置按数据包的负载均衡,以优化跨多个路径的 EVPN 流量。

注意:

聚合以太网成员链路现在将使用物理 MAC 地址作为 802.3ah OAM 数据包中的源 MAC 地址。

示例:配置组播负载平衡以用于 EX8200 交换机上的聚合 10 千兆以太网接口

EX8200 交换机支持链路聚合组 (LAG) 上的组播负载平衡。组播负载平衡通过 LAG 均匀分配第 3 层路由组播流量,您最多可以聚合 12 个 10 千兆以太网链路以形成一个 120 千兆虚拟链路或 LAG。MAC 客户端可以将此虚拟链路视为单个链路,以增加带宽,在发生链路故障时提供正常的降级,并提高可用性。在 EX8200 交换机上,默认情况下启用组播负载平衡。但是,如果显式禁用,则可以重新启用它。.

注意:

已配置 IP 地址的接口不能构成 LAG 的一部分。

注意:

只有具有 10 千兆链路的 EX8200 独立交换机支持组播负载平衡。虚拟机箱不支持组播负载平衡。

此示例说明如何配置 LAG 并重新启用组播负载平衡:

要求

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

  • 两台 EX8200 交换机,一台用作接入交换机,另一台用作分布式交换机

  • 适用于 EX 系列交换机的 Junos OS 12.2 或更高版本

准备工作:

概述和拓扑

组播负载平衡使用七种哈希算法之一来平衡 LAG 中各个 10 千兆位链路之间的流量。有关散列算法的说明,请参阅 组播负载平衡。默认的哈希算法是crc-sgip。您可以尝试不同的散列算法,直到确定最能平衡第 3 层路由组播流量的算法。

当 EX8200 交换机上需要大于 10 GB 的链路时,您最多可以组合 12 个 10 千兆位链路以创建更多带宽。此示例使用链路聚合功能将分布交换机上的四个 10 千兆链路组合成一个 40 千兆链路。此外,还启用了组播负载平衡,以确保在 40 千兆链路上均匀分配第 3 层路由组播流量。在 图 2 所示的示例拓扑中,分布层中的 EX8200 交换机连接到接入层中的 EX8200 交换机。

注意:

链路速度会根据配置的 LAG 大小自动确定。例如,如果 LAG 由四个 10 千兆位链路组成,则链路速度为每秒 40 千兆位)。

注意:

默认散列算法 crc-sgip 涉及组播数据包源和组 IP 地址的循环冗余检查。

图 2:由四个 10 千兆链路 40-Gigabit LAG Composed of Four 10-Gigabit Links组成的 40 千兆 LAG

您需要在每台交换机上配置 LAG,并重新启用组播负载平衡。重新启用后,组播负载平衡将自动在 LAG 上生效,LAG 中每个链路的速度设置为每秒 10 千兆位。40 千兆 LAG 的链路速度会自动设置为每秒 40 千兆位。

配置

程序

CLI 快速配置

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

分步过程

要配置 LAG 并重新启用组播负载平衡,请执行以下操作:

  1. 指定要创建的聚合以太网接口数量:

  2. 指定要标记为up的聚合以太网接口 (aex)(即 LAG)的最小链路数:

    注意:

    默认情况下,只需启动一条链路即可标记 LAG。up

  3. 指定要包含在 LAG 中的四个成员:

  4. 重新启用组播负载平衡:

    注意:

    您无需像对不使用组播负载平衡的 LAG 那样设置链路速度。链路速度在 40 千兆位 LAG 上自动设置为每秒 40 千兆位。

  5. 您可以选择更改组播负载均衡语句中选项的值hash-mode以尝试不同的算法,直到找到最能分配第 3 层路由组播流量的算法。

    如果在禁用组播负载平衡时更改散列算法,则新算法将在重新启用组播负载平衡后生效。

结果

检查配置结果:

验证

要确认配置工作正常,请执行以下任务:

验证 LAG 接口的状态

目的

验证是否已在交换机上创建链路聚合组 (LAG) (ae0)。

行动

验证是否已创建 ae0 LAG:

意义

接口名称 aex 表示这是一个 LAG。 A 代表聚合, E 代表以太网。该数字区分了各种 LAG。

验证组播负载平衡

目的

检查流量是否在路径之间均等地进行负载均衡。

行动

验证四个接口之间的负载平衡:

意义

接口应承载大致相同数量的流量。

动态负载平衡

负载平衡用于确保网络流量在给定 ECMP(等价多路径路由)或 LAG(链路聚合组)中的成员之间尽可能均匀地分配。通常,负载平衡分为静态或动态。静态负载平衡 (SLB) 仅根据数据包内容(例如,源 IP、目标 IP 等)计算哈希。SLB 的最大优点是保证数据包排序,因为给定流的所有数据包都采用相同的路径。但是,由于 SLB 机制不考虑路径或链路负载,网络经常会遇到以下问题:

  • 链路带宽利用率差

  • 单个链接上的大象流完全将老鼠流落在其上。

动态负载平衡 (DLB) 是在 SLB 之上的一项改进。

对于 ECMP,您可以全局配置 DLB,而对于 LAG,您可以为每个聚合以太网接口配置 DLB。您可以根据配置在选定的 以太类型 (IPv4、IPv6 和 MPLS)上应用 DLB。如果您没有配置任何 以太类型,则 DLB 将应用于所有以太类型。请注意,您必须显式配置 DLB 模式,因为没有默认模式。

注意:
  • 从 Junos OS 22.3R1-EVO 版开始,QFX5130-32CD 交换机支持 ECMP 和 LAG 的动态负载平衡。

  • 从 Junos OS 19.4R1 版开始,QFX5120-32C 和 QFX5120-48Y 交换机支持 ECMP 和 LAG 的动态负载平衡。对于 LAG,必须基于每个聚合以太网接口配置 DLB。

  • 从 Junos OS 演进版 19.4R2 开始,QFX5220交换机支持 ECMP 的动态负载平衡 (DLB)。对于 ECMP,必须全局配置 DLB。

  • 不能同时配置 DLB 和弹性散列。否则,将引发提交错误。

  • DLB 仅适用于单播流量。

  • 当 LAG 是出口 ECMP 成员之一时,不支持 DLB。

  • 远程 LAG 成员不支持 DLB。

  • 虚拟机箱和虚拟机箱交换矩阵 (VCF) 不支持 DLB。

  • LAG 和 HiGig-trunk 上的 DLB 不支持同时运行。

  • QFX5220 交换机不支持 LAG 上的 DLB。

表 2:支持 ECMP/LAG 动态负载平衡的平台

平台

针对 ECMP 的 DLB 支持

针对 LAG 的 DLB 支持

QFX5120-32C

是的

是的

QFX5120-48Y

是的

是的

QFX5220

是的

您可以使用以下 DLB 模式对流量进行负载均衡:

  • 按数据包模式

    在此模式下,将为流中的每个数据包启动 DLB。此模式可确保数据包始终分配到质量最好的成员端口。但是,在此模式下,DLB 可能会遇到由于延迟偏差而引起的数据包重新排序问题。

  • 小水流模式

    此模式依赖于基于 流而不是流 分配链接。实际应用程序流量依赖于上层传输协议(如 TCP)的流控制机制,这些机制会限制传输速率。结果,将创建小流。您可以将小流视为同一流的多个突发,这些突发之间隔开一段不活动期 — 此不活动期称为非活动间隔。不活动间隔用作识别新 Flowlet 的分界标准,并在 DLB 配置下作为用户可配置的语句提供。在此模式下,每个流启动 DLB,即,针对新流以及已长时间处于非活动状态(已配置 inactivity-interval)的现有流。每数据包模式的重新排序问题在此模式下得到解决,因为 Flowlet 中的所有数据包都采用相同的链路。如果将该 inactivity-interval 值配置为高于所有 ECMP 路径中的最大延迟偏差,则可以避免跨 Flowlet 重新排序数据包,同时提高所有可用 ECMP 链路的链路利用率。

  • 分配流模式

    您可以使用分配的流模式在一段时间内有选择地禁用重新平衡,以隔离问题源。您不能将此模式用于实时 DLB,也不能预测将使用此模式选择的出口端口,因为分配的流模式不考虑端口负载和队列大小。

注意:

以下是 DLB 的一些重要行为:

  • DLB 仅适用于传入的以太类型。

  • 从 DLB 的角度来看,第 2 层和第 3 层链路聚合组 (LAG) 捆绑包被视为相同。

  • 如果在非对称捆绑包中使用动态负载平衡(即在具有不同成员容量的 ECMP 链路上),则链路利用率将不是最佳的。

  • 使用 DLB 时,在每个数据包和分配的流模式中添加新链路时,不会重新分配流。这可能会导致在链路抖动方案中使用效果欠佳,在这些情况下,如果抖动后未看到新的流动或小流,则在经历抖动后,已使用的链接可能不会被利用。

好处

  • DLB 会考虑成员带宽利用率以及数据包内容,以便进行成员选择。因此,我们基于实时链路负载实现了更好的链路利用率。

  • DLB确保被大象流占用的链接不会被老鼠流使用。因此,通过使用 DLB,我们避免了 SLB 发生的哈希冲突丢弃。也就是说,使用 DLB 时,链路是分散的,从而避免了冲突和随之而来的数据包丢弃。

配置动态负载平衡

本主题介绍如何在 Flowlet 模式下配置动态负载平衡 (DLB)。

从 Junos OS 19.4R1 版开始,QFX5120-32C 和 QFX5120-48Y 交换机支持 ECMP 和 LAG 的动态负载平衡。对于 LAG,必须基于每个聚合以太网接口配置 DLB。

从 Junos OS 演进版 19.4R2 开始,QFX5220交换机支持 ECMP 的动态负载平衡 (DLB)。对于 ECMP,必须全局配置 DLB。

为 ECMP 配置 DLB(小流模式)

要为具有 Flowlet 模式(QFX5120-32C、QFX5120-48Y 和 QFX5220 交换机)的 ECMP 配置动态负载平衡:

  1. 使用小流模式启用动态负载平衡:
  2. (可选)配置 inactivity-interval 链路重新分配的值 - 最小不活动间隔(以微秒为单位):
  3. (可选)使用以下命令 ether-type配置动态负载平衡:
  4. (可选)您可以使用命令查看 show forwarding-options enhanced-hash-key 为 ECMP 上的动态负载平衡配置的选项。

同样,您可以使用 按数据包分配的流 模式为 ECMP 配置 DLB。

为 LAG 配置 DLB(小流模式)

在开始之前,通过将一组路由器接口配置为聚合以太网并使用特定的聚合以太网 (AE) 组标识符来创建聚合以太网 (AE) 捆绑包。

要使用小流模式(QFX5120-32C 和 QFX5120-48Y)为 LAG 配置动态负载平衡:

  1. 使用小流模式启用动态负载平衡:

  2. (可选) inactivity-interval 配置值 - 链路重新分配的最小非活动间隔(以微秒为单位):

  3. (可选)使用以下命令 ether-type配置动态负载平衡:

  4. (可选)您可以使用命令查看 show forwarding-options enhanced-hash-key 为 LAG 上的动态负载平衡配置的选项。

同样,您可以使用 按数据包分配的流 模式为 LAG 配置 DLB。

示例:配置动态负载平衡

此示例说明如何配置动态负载平衡。

要求

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

  • 两个 QFX5120-32C 或 QFX5120-48Y 交换机

  • 在所有设备上运行的 Junos OS 19.4R1 或更高版本

概述

动态负载平衡 (DLB) 是在 SLB 之上的一项改进。

对于 ECMP,您可以全局配置 DLB,而对于 LAG,您可以为每个聚合以太网接口配置 DLB。您可以根据配置在选定的 以太网类型 (如 IPv4、IPv6 和 MPLS)上应用 DLB。如果您没有配置任何 以太类型,则 DLB 将应用于所有以太类型。请注意,您必须显式配置 DLB 模式,因为没有默认模式。

注意:
  • 从 Junos OS 19.4R1 版开始,QFX5120-32C 和 QFX5120-48Y 交换机支持 ECMP 和 LAG 上的动态负载平衡。

  • 不能同时配置 DLB 和弹性哈希。否则,将引发提交错误。

拓扑

在此拓扑中,R0 和 R1 都已连接。

图 3:动态负载平衡 Dynamic Load Balancing
注意:

此示例显示静态配置。您还可以使用动态协议添加配置。

配置

CLI 快速配置

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

R0

R1

为 LAG(QFX5120-32C 和 QFX5120-48Y)配置动态负载平衡

分步过程

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

要配置 R0 路由器:

注意:

修改每个路由器的相应接口名称、地址和任何其他参数后,对其他路由器重复此过程。

  1. 配置链路聚合组 (LAG)。

    配置 LAG 后,在验证部分中,执行在 LAG 上配置动态负载平衡功能之前验证 流量负载部分中的步骤,以在配置 DLB 之前检查配置或流量负载。

  2. 使用 LAG 的按数据包模式配置动态负载平衡。

    配置 DLB 后,在验证部分中,执行在 LAG 上配置动态负载平衡功能后验证 流量负载部分中的步骤,以在配置 DLB 之前检查配置或流量负载。

为 ECMP(QFX5120-32C、QFX5120-48Y 和 QFX5220 交换机)配置动态负载平衡

分步过程

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

要配置 R0 路由器:

注意:

修改每个路由器的相应接口名称、地址和任何其他参数后,对其他路由器重复此过程。

  1. 配置从 R0 连接到 R1 的千兆以太网接口链路。

  2. 创建静态路由:

  3. 应用负载平衡策略。动态负载平衡功能要求转发表中存在多个 ECMP 下一跃点。

  4. 为 ECMP 配置具有按数据包模式的动态负载平衡。

  5. 在 R1 上,配置千兆以太网接口链路。

验证

确认配置工作正常。

在 LAG 上配置动态负载平衡功能之前验证流量负载
目的

在链路聚合组上配置 DLB 功能之前进行验证。

行动

在操作模式下,运行 show interfaces interface-name | match pps 命令。

在 LAG 上配置动态负载平衡功能后验证流量负载
目的

验证在 R0 上收到的数据包是否已实现负载平衡。

行动

在操作模式下,运行 show interfaces interface-name 命令。

意义

具有每数据包模式的动态负载平衡成功工作。在LAG上应用动态负载平衡功能后,负载在网络中平均分担。

验证

确认配置在 R0 上工作正常。

验证 R0 上的动态负载平衡

目的

验证在 R0 上收到的数据包是否已实现负载平衡。

行动

在操作模式下,运行 run show route forwarding-table destination destination-address 命令。

意义

验证 R1 上的负载平衡

目的

确认配置在 R1 上工作正常。

行动

在操作模式下,运行 show route 命令。

意义

具有每数据包模式的动态负载平衡成功工作。在 ECMP 上应用动态负载均衡功能后,负载在网络中平均分担。

更改历史记录表

功能支持由您使用的平台和版本决定。使用功能资源管理器确定您的平台是否支持某个 功能

释放
描述
19.4R2-EVO
从 Junos OS 演进版 19.4R2 开始,QFX5220交换机支持 ECMP 的动态负载平衡 (DLB)。对于 ECMP,必须全局配置 DLB。
19.4R1
从 Junos OS 19.4R1 版开始,QFX5120-32C 和 QFX5120-48Y 交换机支持 ECMP 和 LAG 的动态负载平衡。对于 LAG,必须基于每个聚合以太网接口配置 DLB。
10.1
从 Junos OS 10.1 版开始,您还可以将第 2 层流量的负载平衡哈希密钥配置为使用该语句使用 payload 第 3 层和第 4 层标头中的字段。