- play_arrow 配置接口
- play_arrow 交换机的端口速度
- play_arrow 灵活的以太网服务封装
- play_arrow 监控和故障排除信息
- play_arrow 配置语句和操作命令
聚合以太网接口的负载平衡
在第 2 层跨成员链路进行负载均衡,从而改善配置,而不会出现拥塞并保持冗余。以下主题讨论负载平衡概述,如何基于 MAC 地址和 LAG 链路配置负载平衡,以及如何通过弹性散列来了解一致性。
负载平衡和以太网链路聚合概述
您可以为一组以太网端口创建链路聚合组 (LAG)。第 2 层桥接流量在此组的成员链路之间是负载均衡的,因此该配置对于拥塞问题和冗余具有吸引力。每个 LAG 捆绑包最多包含 16 个链路。(平台是否支持取决于设备安装的 Junos OS 版本。)
对于 LAG 捆绑包,散列算法决定了如何将进入 LAG 捆绑包的流量放置到该捆绑包的成员链路上。散列算法尝试通过对捆绑包中的成员链路上的所有传入流量进行均匀负载均衡来管理带宽。默认情况下,散列算法的散列模式设置为第 2 层有效负载。当散列模式设置为第 2 层有效负载时,散列算法将使用 IPv4 和 IPv6 有效负载字段进行散列。您还可以使用语句为第 2 层流量配置负载平衡哈希密钥,以使用第 3 层和第 4 层标头 payload
中的字段。但请注意,负载均衡行为是特定于平台的,并基于适当的哈希密钥配置。
有关更多信息,请参阅 在 LAG 链路上配置负载平衡。在第 2 层交换机中,一条链路被过度利用,其他链路未得到充分利用。
基于 MAC 地址配置负载平衡
用于负载平衡的哈希密钥机制使用第 2 层媒体访问控制 (MAC) 信息,例如帧源和目标地址。要基于第 2 层 MAC 信息对流量进行负载均衡,请在[edit forwarding-options hash-key]
[edit chassis fpc slot number pic PIC number hash-key]
或 层级添加multiservice
语句:
multiservice { source-mac; destination-mac; payload { ip { layer3-only; layer-3 (source-ip-only | destination-ip-only); layer-4; inner-vlan-id; outer-vlan-id; } } }
使用 Feature Expolorer 确认平台和版本对特定功能的支持。
查看特定 于平台的 MAC 地址基于负载均衡行为 部分,了解与您的平台相关的说明。
要在哈希密钥中包含目标地址 MAC 信息,请包含该 destination-mac
选项。要在哈希密钥中包含源地址 MAC 信息,请包含该 source-mac
选项。
具有相同源地址和目标地址的任何数据包都将通过同一路径发送。
您可以配置按数据包的负载平衡,以优化跨多个路径的 EVPN 流量。
聚合以太网成员链路现在将使用物理 MAC 地址作为 802.3ah OAM 数据包中的源 MAC 地址。
基于特定平台 MAC 地址的负载均衡行为
平台 | 差异 |
---|---|
ACX 系列 | ACX7000 系列路由器支持对称散列。例如,您需要在“多服务”选项下同时 关于在 ACX7000 系列路由器上进行散列,请注意以下几点:
|
另见
在 LAG 链路上配置负载平衡
您可以使用语 payload
句为第 2 层流量配置负载平衡哈希密钥,以使用帧有效负载内第 3 层和第 4 层标头中的字段来实现负载平衡。您可以将语句配置为查看 第 3 层 ( 以及仅源 IP 或 仅目标 IP 数据包标头字段)或 第 4 层 字段。您可以在 [edit forwarding-options hash-key family multiservice]
层次结构级别上配置此语句。
您可以配置第 3 层和第 4 层选项,或同时配置两者。 source-ip-only 或 destination-ip-only 选项是互斥的。该 layer-3-only
语句在 MX 系列路由器上不可用。
默认情况下,Junos 实施的 802.3ad 会根据数据包中携带的第 3 层信息来平衡聚合以太网捆绑包内成员链路之间的流量。
有关链路聚合组 (LAG) 配置的详细信息,请参阅 路由设备的 Junos OS 网络接口库。
示例:在 LAG 链路上配置负载平衡
此示例将负载平衡哈希密钥配置为使用源第 3 层 IP 地址选项和第 4 层标头字段,以及源和目标 MAC 地址,以便在链路聚合组 (LAG) 链路上进行负载平衡:
[edit] forwarding-options { hash-key { family multiservice { source-mac; destination-mac; payload { ip { layer-3 { source-ip-only; } layer-4; } } } } }
哈希密钥配置中的任何更改都需要重新启动 FPC 才能使更改生效。
了解针对 EX8200 交换机上的路由组播流量,在聚合 10 千兆链路上的组播负载平衡
流媒体视频技术于 1997 年推出。随后开发了组播协议,以减少数据复制和网络过载。使用组播,服务器可以向一组收件人发送单个流,而不是发送多个单播流。虽然流媒体视频技术的使用以前仅限于偶尔的公司演示,但多播推动了该技术的发展,导致电影、实时数据、新闻剪辑和业余视频源源不断地流向计算机、电视、平板电脑和手机。然而,所有这些流很快超出了网络硬件的容量,并增加了带宽需求,导致传输过程中出现不可接受的卡顿和卡顿。
为了满足不断增长的带宽需求,多个链路以虚拟方式聚合在一起,形成更大的逻辑点对点链路通道,用于数据流。这些虚拟链路组合称为组播接口,也称为链路聚合组 (LAG)。
组播负载平衡涉及管理每个 LAG 中的各个链路,以确保每个链路都得到有效利用。散列算法会持续评估数据流,调整 LAG 中链路上的流分布,以确保链路不会未得到充分利用或过度利用。默认情况下,瞻博网络 EX8200 以太网交换机上会启用组播负载平衡。
本主题包括:
以 10 GB 的增量创建用于组播的 LAG
EX8200 交换机上的最大链路大小为 10 千兆。如果需要在 EX8200 交换机上使用更大的链路,则最多可以组合 12 个 10 千兆链路。在 图 1 所示的示例拓扑中,四个 10 千兆链路被聚合成每个 40 千兆链路。
何时应使用组播负载平衡?
当您需要大于 10 GB 的下游链路时,使用具有组播负载平衡功能的 LAG。当您充当服务提供商或向大量观众组播视频时,经常会出现这种需求。
要使用组播负载平衡,您需要满足以下条件:
EX8200 交换机 — 独立交换机支持组播负载平衡,而 虚拟机箱 则不支持。
第 3 层路由组播设置 — 有关配置组播的信息,请参阅 Junos OS 路由协议配置指南。
LAG 中的聚合 10 千兆链路 — 有关使用组播负载平衡配置 LAG 的信息,请参阅配置组播负载平衡以用于 EX8200 交换机上的聚合 10 千兆以太网链路(CLI 过程)。
组播负载平衡的工作原理是什么?
当流量可以使用多个成员链路时,属于同一流的流量必须始终位于同一链路上。
组播负载平衡使用七种可用散列算法中的一种和一种称为队列洗牌(在两个队列之间交替)的技术来分配和平衡数据,将流引导到所有可用的聚合链路上。配置组播负载平衡时,您可以从七种算法中选择一种,也可以使用默认算法 crc-sgip,该算法对组播数据包的组 IP 地址使用循环冗余校验 (CRC) 算法。我们建议您从 crc-sgip 默认值开始,如果此算法不能均匀分布第 3 层路由的组播流量,则尝试其他选项。其中六种算法基于 IP 地址(IPv4 或 IPv6)的哈希值,每次使用时都会产生相同的结果。只有平衡模式选项才能生成根据添加流的顺序而有所不同的结果。有关详细信息,请参阅 表 1 。
散列算法 | 基于 | 最佳使用 |
---|---|---|
CRC-SGIP | 组播数据包的源和组 IP 地址的循环冗余校验 | 默认 — 对 10 千兆以太网网络上的 IP 流量进行高性能管理。每次都可预测地分配给同一链路。此模式很复杂,但会产生良好的分布式哈希。 |
CRC-GIP | 组播数据包组 IP 地址的循环冗余校验 | 每次都可预测地分配给同一链路。当 crc-sgip 未均匀分布第 3 层路由组播流量且组 IP 地址不同时,请尝试此模式。 |
CRC-SIP | 组播数据包源 IP 地址的循环冗余校验 | 每次都可预测地分配给同一链路。当 crc-sgip 不能均匀分布第 3 层路由的组播流量且流源各不相同时,请尝试此模式。 |
简单-SGIP | 组播数据包的源和组 IP 地址的异或计算 | 每次都可预测地分配给同一链路。这是一种简单的散列方法,可能不会像 crc-sgip 那样产生均匀的分布。当 crc-sgip 未均匀分配第 3 层路由的组播流量时,请尝试此模式。 |
简单 - GIP | 组播数据包组 IP 地址的异或计算 | 每次都可预测地分配给同一链路。这是一种简单的散列方法,可能不会像 crc-gip 那样产生均匀的分布。当 crc-gip 不能均匀分布第 3 层路由的组播流量且组 IP 地址不同时,请尝试执行此操作。 |
简单啜饮 | 组播数据包源 IP 地址的异或计算 | 每次都可预测地分配给同一链路。这是一种简单的散列方法,可能不会像 crc-sip 那样产生均匀的分布。当 crc-sip 不能均匀分布第 3 层路由的组播流量且流源各不相同时,请尝试此模式。 |
平衡 | 用于识别流量最少的组播链路的轮询计算方法 | 实现了最佳平衡,但您无法预测哪个链接将始终被使用,因为这取决于流上线的顺序。每次重新启动后不需要一致的分配时使用。 |
如何在 EX8200 交换机上实施组播负载平衡?
要在 EX8200 交换机上以优化的吞吐量级别实施组播负载平衡,请遵循以下建议:
在聚合链路中留出 25% 的未使用带宽,以适应由于共享组播接口导致的链路更改所导致的任何动态不平衡。
对于下游链路,请尽可能使用相同大小的组播接口。此外,对于下游聚合链路,当聚合链路的成员属于同一设备时,吞吐量会得到优化。
对于上游聚合链路,请尽可能使用第 3 层链路。此外,对于上游聚合链路,当聚合链路的成员属于不同设备时,吞吐量会得到优化。
另见
示例:配置组播负载平衡以用于 EX8200 交换机上的聚合 10 千兆以太网接口
EX8200 交换机支持链路聚合组 (LAG) 上的组播负载平衡。组播负载平衡可通过 LAG 均匀分配第 3 层路由的组播流量 您最多可以聚合 12 个 10 千兆以太网链路,以形成一个 120 千兆虚拟链路 (LAG)。MAC 客户端可以将此虚拟链路视为单个链路来增加带宽,在发生链路故障时提供正常的降级并提高可用性。在 EX8200 交换机上,组播负载平衡默认处于启用状态。但是,如果显式禁用它,则可以重新启用它。.
已配置 IP 地址的接口不能构成 LAG 的一部分。
只有具有 10 千兆链路的 EX8200 独立交换机才支持组播负载平衡。虚拟机箱不支持组播负载平衡。
此示例说明如何配置 LAG 并重新启用组播负载平衡:
要求
此示例使用以下硬件和软件组件:
两台 EX8200 交换机,一台用作接入交换机,另一台用作分布交换机
EX 系列交换机使用的 Junos OS 12.2 或更高版本
开始之前:
在 EX8200 分布式交换机上配置四个 10 千兆接口:xe-0/1/0、xe-1/1/0、xe-2/1/0 和 xe-3/1/0。请参阅配置千兆以太网接口(CLI 过程)。
概述和拓扑
组播负载平衡使用七种散列算法之一来平衡 LAG 中各个 10 千兆链路之间的流量。有关散列算法的说明,请参阅 multicast-loadbalance。默认散列算法为 crc-sgip。您可以试验不同的散列算法,直到确定哪种算法最能平衡第 3 层路由的组播流量。
当 EX8200 交换机上需要大于 10 千兆位的链路时,您最多可以组合 12 个 10 千兆链路以创建更多带宽。此示例使用链路聚合功能在分布式交换机上将四个 10 千兆链路合并为一个 40 千兆链路。此外,还启用了组播负载平衡,以确保在 40 千兆链路上均匀分布第 3 层路由的组播流量。在 图 2 所示的示例拓扑中,分布层中的 EX8200 交换机连接到接入层中的 EX8200 交换机。
根据配置的 LAG 大小自动确定链路速度。例如,如果一个 LAG 由四个 10 千兆链路组成,则链路速度为每秒 40 千兆位)。
默认散列算法 crc-sgip 涉及组播数据包源和组 IP 地址的循环冗余校验。
您将在每台交换机上配置一个 LAG,并重新启用组播负载平衡。重新启用后,组播负载平衡将自动对 LAG 生效,并且 LAG 中每个链路的速度设置为每秒 10 千兆位。40 千兆 LAG 的链路速度会自动设置为每秒 40 千兆。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中。
set chassis aggregated-devices ethernet device-count 1 set interfaces ae0 aggregated-ether-options minimum-links 1 set interfaces xe-0/1/0 ether-options 802.3ad ae0 set interfaces xe-1/1/0 ether-options 802.3ad ae0 set interfaces xe-2/1/0 ether-options 802.3ad ae0 set interfaces xe-3/1/0 ether-options 802.3ad ae0 set chassis multicast-loadbalance hash-mode crc-gip
分步过程
要配置 LAG 并重新启用组播负载平衡,请执行以下操作:
指定要创建的聚合以太网接口数量:
content_copy zoom_out_map[edit chassis] user@switch#
set aggregated-devices ethernet device-count 1
指定聚合以太网接口 (aex) 的最小链路数,即 LAG,
up
标记为:注意:默认情况下,只需运行一个链路即可为 LAG 进行标记
up
。content_copy zoom_out_map[edit interfaces] user@switch#
set ae0 aggregated-ether-options minimum-links 1
指定要包含在 LAG 中的四个成员:
content_copy zoom_out_map[edit interfaces] user@switch#
set xe-0/1/0 ether-options 802.3ad ae0
user@switch#set xe-1/1/0 ether-options 802.3ad ae0
user@switch#set xe-2/1/0 ether-options 802.3ad ae0
user@switch#set xe-3/1/0 ether-options 802.3ad ae0
重新启用组播负载平衡:
content_copy zoom_out_map[edit chassis] user@switch# set multicast-loadbalance
注意:您无需像为不使用组播负载平衡的 LAG 那样设置链路速度。在 40 千兆位 LAG 上,链路速度会自动设置为每秒 40 千兆位。
您可以选择性地更改 multicast-loadbalance 语句中选项
hash-mode
的值,以尝试不同的算法,直到找到最能分配第 3 层路由组播流量的算法。如果在禁用组播负载平衡时更改散列算法,则新算法将在重新启用组播负载平衡后生效。
结果
检查配置结果:
user@switch> show configuration chassis aggregated-devices { ethernet { device-count 1; } } multicast-loadbalance { hash-mode crc-gip; } interfaces xe-0/1/0 { ether-options { 802.3ad ae0; } } xe-1/1/0 { ether-options { 802.3ad ae0; } } xe-2/1/0 { ether-options { 802.3ad ae0; } } xe-3/1/0 { ether-options { 802.3ad ae0; } } ae0 { aggregated-ether-options { minimum-links 1; } } }
验证
要确认配置工作正常,请执行以下任务:
验证 LAG 接口的状态
目的
验证交换机上是否已创建链路聚合组 (LAG) (ae0)。
行动
验证是否已创建 ae0 LAG:
user@switch> show interfaces ae0 terse
Interface Admin Link Proto Local Remote ae0 up up ae0.0 up up inet 10.10.10.2/24
意义
接口名称 aex 表示这是 LAG。 A 代表聚合, E 代表以太网。该数字区分了各种 LAG。
验证组播负载平衡
目的
检查流量在各路径之间的负载是否均衡。
行动
验证四个接口之间的负载平衡:
user@switch> monitor interface traffic
Bytes=b, Clear=c, Delta=d, Packets=p, Quit=q or ESC, Rate=r, Up=^U, Down=^D ibmoem02-re1 Seconds: 3 Time: 16:06:14 Interface Link Input packets (pps) Output packets (pps) xe-0/1/0 Up 2058834 (10) 7345862 (19) xe-1/1/0 Up 2509289 (9) 6740592 (21) xe-2/1/0 Up 8625688 (90) 10558315 (20) xe-3/1/0 Up 2374154 (23) 71494375 (9)
意义
接口承载的流量应大致相同。
动态负载平衡
负载平衡用于确保网络流量尽可能均匀地分布在给定 ECMP(等价多路径路由)或 LAG(链路聚合组)中的成员之间。通常,负载平衡分为静态或动态。静态负载平衡 (SLB) 仅根据数据包内容(例如,源 IP、目标 IP 等)计算散列。负载均衡的最大优势在于,给定流量的所有数据包都采用相同的路径,因此可以保证数据包的排序。但是,由于 SLB 机制不考虑路径或链路负载,网络经常会遇到以下问题:
链路带宽利用率低
单个链路上的大象流完全丢弃了鼠标流。
动态负载平衡 (DLB) 是在 SLB 基础上的一项改进。
对于 ECMP,您可以全局配置 DLB,而对于 LAG,您需要为每个聚合以太网接口配置它。您可以根据配置对选定 的以太类型(动态负载平衡)( IPv4、IPv6 和 MPLS)应用 DLB。如果未配置任何 ether-type(动态负载均衡),则 DLB 将应用于所有 EtherTypes。请注意,由于没有默认模式,因此必须显式配置 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、QFX5230-64CD 和 QFX5240 交换机不支持 LAG 上的 DLB。
平台 | ECMP 的 DLB 支持 | DLB 对 LAG 的支持 |
---|---|---|
QFX5120-32C型 | 是的 | 是的 |
QFX5120-48Y | 是的 | 是的 |
QFX5220 | 是的 | 不 |
QFX5230-64CD | 是的 | 不 |
QFX5240 | 是的 | 不 |
您可以使用以下 DLB 模式对流量进行负载均衡:
按数据包模式
在此模式下,将为流中的每个数据包启动 DLB。此模式可确保数据包始终被分配到质量最佳的成员端口。但是,在这种模式下,DLB 可能会遇到由于延迟偏差而引起的数据包重新排序问题。
Flowlet 模式
此模式依赖于基于 Flowlet 而非 Flows 分配链路。实际应用流量依赖于上层传输协议(如 TCP)的流控制机制,这些机制会限制传输速率。结果,创建了 Flowlet。您可以将 Flowlet 视为同一流量的多个脉冲,由这些脉冲之间的非活动期隔开 — 此非活动期称为非活动区间。非活动间隔用作识别新 Flowlet 的分界标准,并在 DLB 配置下作为用户可配置的语句提供。在此模式下,DLB 将按 flowlet 启动,即,对于新流程以及处于足够长时间(配置
inactivity-interval
)处于非活动状态的现有流程。此模式解决了每个数据包模式的重新排序问题,因为 Flowlet 中的所有数据包采用相同的链路。如果将inactivity-interval
该值配置为高于所有 ECMP 路径的最大延迟偏差,则可以避免跨 Flowlet 对数据包进行重新排序,同时提高所有可用 ECMP 链路的链路利用率。分配流模式
您可以使用分配的流模式在一段时间内选择性地禁用重新平衡,以隔离问题来源。您无法将此模式用于实时 DLB,也无法预测将使用此模式选择的出口端口,因为分配的流模式不考虑端口负载和队列大小。
以下是 DLB 的一些重要行为:
DLB 仅适用于传入的 EtherTypes。
从 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 模式)
要为采用流模式的 ECMP(QFX5120-32C、QFX5120-48Y 和 QFX5220 交换机)配置动态负载平衡:
同样,您可以使用 “按数据包 ”或 “分配流 ”模式为 ECMP 配置 DLB。
为 LAG 配置 DLB(Flowlet 模式)
开始之前,通过将一组路由器接口配置为聚合以太网并使用特定的聚合以太网 (AE) 组标识符来创建聚合以太网 (AE) 捆绑包。
要使用 flowlet 模式(QFX5120-32C 和 QFX5120-48Y)为 LAG 配置动态负载平衡:
使用 Flowlet 模式启用动态负载平衡:
content_copy zoom_out_map[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet
(选答)配置 inactivity-interval 值 - 链路重新分配的最小非活动间隔(以微秒为单位):
content_copy zoom_out_map[edit interfaces ae-x aggregated-ether-options] user@router# set dlb flowlet inactivity-interval (micro seconds)
(选答)配置
ether-type
动态负载平衡:content_copy zoom_out_map[edit forwarding-options enhanced-hash-key] user@router# set lag-dlb ether-type mpls
(选答)您可以使用命令查看为 LAG
show forwarding-options enhanced-hash-key
上的动态负载平衡配置的选项。
同样,您可以使用 “按数据包 ”或 “分配的流 ”模式为 LAG 配置 DLB。
另见
示例:配置动态负载平衡
此示例说明如何配置动态负载平衡。
要求
此示例使用以下硬件和软件组件:
两台 QFX5120-32C 或 QFX5120-48Y 交换机
在所有设备上运行的 Junos OS 19.4R1 或更高版本
概述
动态负载平衡 (DLB) 是在 SLB 基础上的一项改进。
对于 ECMP,您可以全局配置 DLB,而对于 LAG,您需要为每个聚合以太网接口配置它。您可以根据配置在选定 的以太类型(动态负载平衡) 上应用 DLB,例如 IPv4、IPv6 和 MPLS。如果未配置任何 ether-type(动态负载均衡),则 DLB 将应用于所有 EtherTypes。请注意,由于没有默认模式,因此必须显式配置 DLB 模式。
从 Junos OS 19.4R1 版开始,QFX5120-32C 和 QFX5120-48Y 交换机支持在 ECMP 和 LAG 上进行动态负载平衡。
您不能同时配置 DLB 和弹性散列。否则,将引发提交错误。
拓扑学
在此拓扑中,R0 和 R1 均已连接。
此示例显示静态配置。您还可以使用动态协议添加配置。
配置
- CLI 快速配置
- 为 LAG(QFX5120-32C 和 QFX5120-48Y)配置动态负载平衡
- 为 ECMP(QFX5120-32C、QFX5120-48Y 和 QFX5220 交换机)配置动态负载平衡
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层 [edit]
级的 CLI 中。
R0
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24 set forwarding-options enhanced-hash-key ecmp-dlb per-packet set policy-options policy-statement loadbal then load-balance per-packet set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3 set routing-options forwarding-table export loadbal
R1
set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
为 LAG(QFX5120-32C 和 QFX5120-48Y)配置动态负载平衡
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置 R0 路由器,请执行以下操作:
在修改每个路由器的相应接口名称、地址和任何其他参数后,对其他路由器重复此过程。
配置链路聚合组 (LAG)。
content_copy zoom_out_map[edit interfaces]
user@R0# set interfaces xe-0/0/0 ether-options 802.3ad ae0 user@R0# set interfaces xe-0/0/10 ether-options 802.3ad ae0 user@R0# set interfaces ae0 aggregated-ether-options lacp active user@R0# set interfaces ae0 unit 0 family inet address 10.1.0.2/24 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3配置 LAG 后,在验证部分中,执行在 LAG 上配置动态负载平衡功能之前验证流量负载 部分中的步骤,以在配置 DLB 之前检查配置或流量负载。
为 LAG 配置按数据包模式的动态负载平衡。
content_copy zoom_out_map[edit]
user@R0# set interfaces ae0 aggregated-ether-options dlb per-packet配置 DLB 后,在验证部分,执行在 LAG 上配置动态负载平衡功能后验证流量负载 部分中的步骤,在配置 DLB 之前检查配置或流量负载。
为 ECMP(QFX5120-32C、QFX5120-48Y 和 QFX5220 交换机)配置动态负载平衡
分步过程
下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 在配置模式下使用 CLI 编辑器。
要配置 R0 路由器,请执行以下操作:
在修改每个路由器的相应接口名称、地址和任何其他参数后,对其他路由器重复此过程。
配置从 R0 连接到 R1 的千兆以太网接口链路。
content_copy zoom_out_map[edit interfaces]
user@R0# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.2/24 user@R0# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.2/24 user@R0# set interfaces xe-0/0/54:0 unit 0 family inet address 10.10.10.2/24创建静态路由:
content_copy zoom_out_map[edit interfaces]
user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.0.3 user@R0# set routing-options static route 20.0.1.0/24 next-hop 10.1.1.3应用负载均衡策略。动态负载平衡功能要求转发表中存在多个 ECMP 下一跃点。
content_copy zoom_out_map[edit interfaces]
user@R0# set policy-options policy-statement loadbal then load-balance per-packet user@R0# set routing-options forwarding-table export loadbal为 ECMP 配置按数据包模式的动态负载平衡。
content_copy zoom_out_map[edit interfaces]
user@R0# set forwarding-options enhanced-hash-key ecmp-dlb per-packet在 R1 上,配置千兆以太网接口链路。
content_copy zoom_out_map[edit interfaces]
user@R2# set interfaces xe-0/0/0 unit 0 family inet address 10.1.0.3/24 user@R2# set interfaces xe-0/0/10 unit 0 family inet address 10.1.1.3/24 user@R2# set interfaces xe-0/0/52:0 unit 0 family inet address 20.0.0.2/16
验证
确认配置工作正常。
在 LAG 上配置动态负载平衡功能之前验证流量负载
目的
在链路聚合组上配置 DLB 功能之前进行验证。
行动
在操作模式下,运行 show interfaces interface-name | match pps
命令。
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 1240 bps (1 pps) Output rate : 1024616 bps (1000 pps) ## all traffic in one link. user@R0>show interfaces xe-0/0/10 | match pps Input rate : 616 bps (0 pps) Output rate : 1240 bps (1 pps)<< Output rate : 1240 bps (1 pps) ## no traffic
在 LAG 上配置动态负载平衡功能后验证流量负载
目的
验证 R0 上接收的数据包是否负载均衡。
行动
在操作模式下,运行 show interfaces interface-name
命令。
user@R0>show interfaces xe-0/0/0 | match pps Input rate : 616 bps (0 pps) Output rate : 519096 bps (506 pps)<< Output rate : 519096 bps (506 pps) ## load equally shared user@R0>show interfaces xe-0/0/10 | match pps Input rate : 1232 bps (1 pps) Output rate : 512616 bps (500 pps)<< Output rate : 512616 bps (500 pps) ## load equally shared
意义
动态负载平衡,按数据包模式成功工作。在 LAG 上应用动态负载平衡功能后,负载在网络中平均分担。
验证
确认配置在 R0 处工作正常。
验证 R0 上的动态负载平衡
目的
验证 R0 上接收的数据包是否负载均衡。
行动
在操作模式下,运行 run show route forwarding-table destination destination-address
命令。
user@R0>show route forwarding-table destination 20.0.1.0/24 inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 20.0.1.0/24 *[Static/5] 1d 03:35:12 > to 10.1.0.3 via xe-0/0/0.0 to 10.1.1.3 via xe-0/0/10.0 user@R0>show route 20.0.1.0/24 inet.0: 178 destinations, 178 routes (178 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 20.0.1.0/24 *[Static/5] 1d 03:35:12 > to 10.1.0.3 via xe-0/0/0.0 to 10.1.1.3 via xe-0/0/10.0
意义
验证 R1 上的负载均衡
目的
确认配置在 R1 上工作正常。
行动
在操作模式下,运行 show route
命令。
user@R1>show route 20.0.1.25 inet.0: 146 destinations, 146 routes (146 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 20.0.0.0/16 *[Direct/0] 1d 03:37:11 > via xe-0/0/52:0.0
意义
动态负载平衡,按数据包模式成功工作。在 ECMP 上应用动态负载平衡功能后,负载在网络中平均分担。
在 DLB Flowlet 模式下配置 Flowset 表大小
概述
动态负载平衡 (DLB) 是一种负载平衡技术,可根据链路质量选择最佳出口链路,使流量均匀分布。您(网络管理员)可以在 Flowlet 模式下配置 DLB。
在 flowlet 模式下,DLB 通过记录最近看到的时间戳和 DLB 根据最佳链路质量选择的出口接口来跟踪流量。DLB 将此信息记录在分配给每个 ECMP 组的流集表中。DLB 算法在特定链路上维护给定流量,直到最后看到的时间戳超过非活动计时器。当特定流的非活动计时器过期时,DLB 会重新检查该链路是否仍适用于该流。如果链路不再最佳,DLB 将选择新的出口链路,并使用新链路和流的最后一个已知时间戳更新流集表。如果链路仍然处于最佳状态,则 flowset 表将继续使用相同的出口链路。
您(网络管理员)可以增加流程集表的大小,以更改流程集表条目在 ECMP 组之间的分布。ECMP 组在流集表中的条目越多,ECMP 组可以容纳的流量就越多。在 AI-ML 数据中心等必须处理大量流量的环境中,DLB 使用更大的流量集表特别有用。当每个 ECMP 组都可以容纳大量流量时,DLB 可以在 ECMP 成员链路中实现更好的流量分布。
flowset 表总共包含 32,768 个条目,这些条目在 DLB ECMP 组之间平均分配。每个 ECMP 组的流量集表大小范围为 256 到 32,768。使用以下公式计算 ECMP 组数:
32,768/(flowset size) = Number of ECMP groups
默认情况集大小为 256 个条目,因此默认情况下有 128 个 ECMP 组。
好处
改善出口链路上的负载分配。
对流进行分组,以最大程度地减少 DLB 必须为每个流进行的计算次数。
自定义流程集表条目分配,实现最高效率。
提高 flowlet 模式的效率。
配置
配置 flowset 表大小时,请注意以下事项:
更改流集大小时,ECMP DLB 组的规模也会发生变化。分配大于 256 的流集表大小会减少支持 DLB 的 ECMP 组的数量。
提交此配置时,流量可能会在配置更改期间丢弃。
当链路聚合组 (LAG) 是 ECMP 的出口成员之一时,不支持 DLB。
只有底层交换矩阵支持 DLB。
QFX5240速度低于 50 Gbps 的交换机端口不支持 DLB。
平台支持
请参阅 功能浏览器 ,了解平台和版本支持。
相关主题
被动路径重新平衡
概述
动态负载平衡 (DLB) 是处理 AI-ML 数据中心交换矩阵中固有的大型数据流(也称为“大象流”)的重要工具。 响应路径重新平衡 是对现有 DLB 功能的增强。
在 DLB 的 Flowlet 模式中,您(网络管理员)配置非活动间隔。流量使用分配的传出(出口)接口,直到流量暂停的时间长于非活动计时器。如果传出链路质量逐渐下降,则流中的暂停可能不会超过配置的非活动计时器。在这种情况下,传统的 flowlet 模式不会将流量重新分配给其他链路,因此流量无法利用质量更好的链路。响应式路径重新平衡解决了这一限制,使用户能够在启用流模式时将流量移动到质量更好的链路。
设备会根据流经链路的流量,为每个等价多路径 (ECMP) 出口成员链路分配一个质量频段。质量带取决于端口负载和队列缓冲区。端口负载是传输的出口字节数。队列缓冲区是等待从出口端口传输的字节数。您可以根据流经 ECMP 的流量模式自定义这些属性。
好处
链路降级的可扩展解决方案
针对大型数据流优化使用带宽
避免由于长期流动而导致的负载平衡效率低下
配置
配置概述
质量条带从 0 到 7 编号,其中 0 表示最低质量,7 表示最高质量。根据成员端口负载和队列大小,DLB 会为成员端口分配一个质量带值。端口到质量的频段映射会根据瞬时端口负载和队列大小而变化。
当满足以下两个条件时,反应性路径重新平衡会将流量重新分配给质量更高的成员链路:
质量更好的成员链路可用,其质量范围等于或大于当前成员的质量范围加上配置的重新分配 质量增量 值。质量增量是两个质量带之间的差值。使用
quality-delta
语句配置质量增量值。系统生成的数据包随机值低于重新分配 概率阈值 。使用
prob-threshold
语句配置概率阈值。
使用此功能时,请注意以下事项:
无功路径重新平衡是一种全局配置,适用于系统中的所有 ECMP DLB 配置。
除了被动路径重新平衡之外,您还可以配置出口量化来控制流量重新分配。
当流量从一个端口移动到另一个端口时,可能会发生数据包重新排序。当将流重新分配给新链路时,配置反应式路径重新平衡可能会导致暂时的乱序问题。
拓扑学
在此拓扑中,设备有三个入口端口和两个出口端口。其中两个入口流是第 2 层 (L2) 流量,一个是第 3 层 (L3) 流量。该图显示了将流量转发到每个出口端口的表条目。所有入口和出口端口的速度相同。
在此拓扑中,响应式路径重新平衡的工作原理如下:
配置的质量增量为 2。
L2 流 1 (
mac 0x123
) 以 10% 的速率进入入口端口 et-0/0/0。它通过 et-0/0/10 退出。et-0/0/10 的出口链路利用率为 10%,质量带值为 6。L3 流以 50% 的速率进入端口 et-0/0/1。它通过 et-0/0/11 退出,并从 ECMP 成员列表中选择最佳链路。et-0/0/11 的出口链路利用率为 50%,质量带值为 5。
L2 流 2 (
mac 0x223
) 以 40% 的速率进入端口 et-0/0/2。它也通过et-0/0/11退出。这会进一步将 et-0/0/11 链路质量带值降低到 4。现在,两个 ECMP 成员链路的质量带值相差 2。无功路径平衡算法现在可运行,因为端口 et-0/0/10 和 et-0/0/11 的质量带值之差等于或高于配置的质量增量 2。该算法将 L3 流从 et-0/0/11 移动到质量更好的成员链路,在本例中为 et-0/0/10。
在 L3 蒸汽移动到 et-0/0/10 后,et-0/0/10 链路利用率增加到 60%,质量带值降低到 5。L2 流 2 继续通过 et-0/0/11 退出。et-0/0/11 链路利用率保持在 40%,质量频段值增加到 5。
配置响应式路径重新平衡
平台支持
请参阅 功能浏览器 ,了解平台和版本支持。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。
payload
句使用第 3 层和第 4 层标头中的字段。