负载平衡概述
了解聚合以太网接口上的负载平衡,以及如何根据 MAC 地址配置负载平衡。它通过在多个接口之间划分流量来减少网络拥塞。
第 2 层上的负载平衡将跨成员链路分配流量。这种方法可以在保持冗余的同时防止拥塞。以下主题介绍负载平衡的基础知识,以及如何根据 MAC 地址、LAG 链路上对其进行配置,以及如何使用弹性散列来实现一致性。
负载平衡和以太网链路聚合概述
您可以为一组以太网端口创建 LAG。L2 桥接流量在该组的成员链路上实现负载均衡,因此该配置在拥塞问题和冗余方面都很有吸引力。每个 LAG 束最多包含 16 个链路。平台支持取决于设备安装的 Junos OS 版本。
对于 LAG 捆绑包,散列算法确定进入 LAG 捆绑包的流量如何放置到捆绑包的成员链路上。散列算法尝试通过跨捆绑包中的成员链路平均均衡所有传入流量来管理带宽。默认情况下,散列算法的散列模式设置为 L2 有效负载。当散列模式设置为 L2 有效负载时,散列算法将使用 IPv4 和 IPv6 有效负载字段进行散列。您还可以使用 该 payload 语句为 L2 流量配置负载平衡哈希密钥,以使用 L3 和第 4 层标头中的字段。但是,请注意,负载平衡行为是特定于平台的,并且基于适当的哈希密钥配置。
有关更多信息,请参阅 在 LAG 链路上配置负载均衡。在 L2 交换机中,一个链路未得到充分利用,其他链路未得到充分利用。
基于 MAC 地址配置负载均衡
用于负载平衡的散列密钥机制使用 L2 MAC 信息,例如帧源和目标地址。要根据 L2 MAC 信息对流量进行负载均衡,请在 或 [edit chassis fpc slot number pic PIC number hash-key] 层次结构级别包含[edit forwarding-options 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;
}
}
}
使用 功能资源管理器 确认平台和版本对特定功能的支持。
查看 基于平台的 MAC 地址负载平衡行为 部分,了解与平台相关的注意事项。
要在哈希密钥中包含目标地址 MAC 信息,请包括该 destination-mac 选项。要在哈希密钥中包含源地址 MAC 信息,请包括该 source-mac 选项。
-
具有相同源地址和目标地址的任何数据包都将通过同一路径发送。
-
您可以配置按数据包的负载平衡,以优化跨多个路径的 EVPN 流量。
-
聚合以太网成员链路现在将使用物理 MAC 地址作为 802.3ah OAM 数据包中的源 MAC 地址。
基于平台特定的 MAC 地址的负载平衡行为
| 平台 |
差异 |
|---|---|
| ACX 系列 |
|
也可以看看
在 LAG 链路上配置负载均衡
您可以使用该语句配置 payload L2 流量的负载平衡哈希密钥,以使用帧有效负载内的 L3 和第 4 层标头中的字段来实现负载平衡。您可以将该语句配置为查看 第 3 层 和仅 限源 IP 或仅 限目标 IP 的数据包标头字段。您还可以查看 第 4 层 字段。您可以在层次结构级别配置 [edit forwarding-options hash-key family multiservice] 此语句。
您可以配置 L3 或第 4 层选项,或同时配置两者。 source-ip-only 或 destination-ip-only 选项是互斥的。该 layer-3-only 语句不适用于 MX 系列路由器。
默认情况下,802.3ad 的 Junos 实施会根据数据包中传输的 L3 信息,在聚合以太网捆绑包内的成员链路上均衡流量。
有关 LAG 配置的更多信息,请参阅适用于 路由设备的 Junos OS 网络接口库。
例:
此示例将负载均衡哈希密钥配置为使用源 L3 IP 地址选项和第 4 层标头字段。此示例还包括用于在 LAG 链路上进行负载平衡的源和目标 MAC 地址。
[edit]
forwarding-options {
hash-key {
family multiservice {
source-mac;
destination-mac;
payload {
ip {
layer-3 {
source-ip-only;
}
layer-4;
}
}
}
}
}
哈希密钥配置中的任何更改都需要重新启动 FPC,更改才会生效。
示例:在 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 中的每个单独链路都能得到有效利用。它使用散列算法不断评估数据流并调整其在链路上的分布方式。这可以防止任何单个链路过载或未充分利用。在瞻博网络 EX8200 以太网交换机上,默认情况下会启用组播负载平衡。
本主题包括:
以 10 GB 的增量创建用于组播的 LAG
EX8200 交换机上的最大链路大小为 10 千兆位。如果需要在 EX8200 交换机上使用更大的链路,最多可组合 12 个 10 千兆链路。在 图 1 所示的示例拓扑中,聚合了四个 10 千兆链路,形成每个 40 千兆链路。
上的 40 千兆 LAG
何时应使用组播负载平衡?
当需要大于 10 千兆位的下游链路时,将 LAG 与组播负载平衡相结合。当您作为服务提供商或将视频组播到大量观众时,经常会出现这种需求。
要使用组播负载平衡,您需要以下内容:
-
EX8200 交换机 - 独立交换机支持组播负载平衡,而 虚拟机箱 不支持。
-
L3 路由组播设置 — 有关配置组播的信息,请参阅 Junos OS 路由协议配置指南。
-
LAG 中的聚合 10 千兆链路 — 有关使用组播负载平衡配置 LAG 的信息,请参阅配置组播负载平衡以与 EX8200 交换机上的聚合 10 千兆以太网链路一起使用(CLI 过程)。
组播负载平衡的工作原理是什么?
当流量可以使用多个成员链路时,属于同一流的流量必须始终位于同一链路上。
组播负载平衡使用七种散列算法之一,在所有可用的聚合链路上高效分配数据流。它还使用一种称为队列洗牌的技术来平衡流量。
您可以选择特定算法,也可以使用默认值 crc-sgip。此默认算法对组播数据包的组 IP 地址使用循环冗余校验 (CRC)。建议您从默认设置开始,只有在发现 L3 流量分配不均匀时才尝试其他选项。
了解散列算法
七种算法中有六种基于 IP 地址的散列值,并且始终为相同的数据流产生相同的结果。但是,平衡模式选项是唯一的,因为其结果可能会根据添加流的顺序而变化。
有关详细信息,请参阅 表 1 。
| 散列算法 |
基于 |
最佳用途 |
|---|---|---|
| CRC-SGIP |
组播数据包源和组IP地址的循环冗余校验 |
默认 — 10 千兆以太网网络上的 IP 流量高性能管理。每次都可预测地分配到同一条链路。这种模式很复杂,但会产生良好的分布式哈希值。 |
| CRC-GIP |
组播数据包组 IP 地址的循环冗余校验 |
每次都可预测地分配到同一条链路。当 crc-sgip 未均匀分配 L3 路由组播流量且组 IP 地址不同时,请尝试此模式。 |
| CRC-SIP |
组播数据包源 IP 地址的 CRC |
每次都可预测地分配到同一条链路。当 crc-sgip 未均匀分配 L3 路由组播流量且流源不同时,请尝试此模式。 |
| 简单 SGiP |
组播数据包的源和组 IP 地址的异或计算 |
每次都可预测地分配到同一条链路。这是一种简单的散列方法,可能不会像 crc-sgip 那样产生均匀的分布。当 crc-sgip 未均匀分配 L3 路由组播流量时,请尝试此模式。 |
| 简单 GIP |
组播数据包组 IP 地址的 XOR 计算 |
每次都可预测地分配到同一条链路。这是一种简单的散列方法,可能不会像 crc-gip 那样产生均匀的分布。当 crc-gip 未均匀分配 L3 路由的组播流量,并且组 IP 地址不同时,请尝试此作。 |
| 简单 SIP |
组播数据包源 IP 地址的异或计算 |
每次都可预测地分配到同一条链路。这是一种简单的散列方法,可能不会像 crc-sip 那样产生均匀的分布。当 crc-sip 不均匀分配 L3 路由组播流量且流源不一时,请尝试此模式。 |
| 平衡 |
轮询计算方法,用于识别流量最小的组播链路 |
实现了最佳平衡,但无法预测将始终使用哪个链接,因为这取决于流联机的顺序。在每次重新启动后不需要一致分配时使用。 |
如何在 EX8200 交换机上实施组播负载平衡?
要在 EX8200 交换机上以优化的吞吐量级别实施组播负载平衡,请遵循以下建议:
-
在聚合链路中允许 25% 的未使用带宽,以适应由于共享组播接口引起的链路变化所导致的任何动态不平衡。
-
对于下游链路,请尽可能使用相同大小的组播接口。此外,对于下游聚合链路,当聚合链路的成员属于同一设备时,吞吐量会得到优化。
-
对于上游聚合链路,请尽可能使用 L3 链路。此外,对于上游聚合链路,当聚合链路的成员属于不同的设备时,吞吐量会得到优化。
也可以看看
示例:配置组播负载均衡,以便与 EX8200 交换机上的聚合 10 千兆以太网接口配合使用
EX8200 交换机支持 LAG 上的组播负载平衡。组播负载平衡可在 LAG 上均匀分配 L3 路由组播流量,您最多可以聚合 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 千兆链路之间的流量。有关散列算法的说明,请参阅 组播负载均衡。默认散列算法为 crc-sgip。您可以尝试不同的散列算法,直到确定最能平衡 L3 路由组播流量的算法。
当 EX8200 交换机上需要大于 10 GB 的链路时,您最多可以组合 12 个 10 千兆链路来创建更多带宽。此示例使用链路聚合功能在分布式交换机上将四个 10 千兆链路合并为一个 40 千兆链路。此外,还启用了组播负载平衡,以确保第 3 层路由组播流量在 40 千兆链路上均匀分配。在 图 2 所示的示例拓扑中,分布层中的 EX8200 交换机连接到接入层中的 EX8200 交换机。
链路速度会根据配置的 LAG 大小自动确定。例如,如果 LAG 由四个 10 千兆链路组成,则链路速度为 40 Gbps。
默认散列算法 crc-sgip 涉及对组播数据包源和组 IP 地址的循环冗余校验 (CRC)。
您需要在每台交换机上配置一个 LAG,并重新启用组播负载平衡。重新启用后,组播负载平衡将自动在LAG上生效,LAG中每个链路的速度设置为10 Gbps。40 千兆 LAG 的链路速度会自动设置为 40 Gbps。
配置
程序
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 并重新启用组播负载平衡,请执行以下作:
指定要创建的聚合以太网接口 (aex) 数量:
[edit chassis] user@switch#
set aggregated-devices ethernet device-count 1指定要标记的
upaex(即 LAG)的最小链路数:默认情况下,只需有一个链路即可将 LAG 标记为
up。[edit interfaces] user@switch#
set ae0 aggregated-ether-options minimum-links 1指定要包含在 LAG 中的四个成员:
[edit interfaces] user@switch#
set xe-0/1/0 ether-options 802.3ad ae0user@switch#set xe-1/1/0 ether-options 802.3ad ae0user@switch#set xe-2/1/0 ether-options 802.3ad ae0user@switch#set xe-3/1/0 ether-options 802.3ad ae0重新启用组播负载平衡:
[edit chassis] user@switch# set multicast-loadbalance您无需像对不使用组播负载平衡的 LAG 那样设置链路速度。链路速度在 40 千兆 LAG 上自动设置为 40 Gbps。
您可以选择性地更改 组播-loadbalance 语句中选项
hash-mode的值,以尝试不同的算法,直到找到最适合分配 L3 路由组播流量的算法。禁用组播负载平衡时,如果更改散列算法,则重新开启组播负载平衡后,新算法生效。
结果
检查配置结果:
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)
意义
接口承载的流量应大致相同。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
payload 第 2 层流量配置负载平衡散列密钥,以使用第 3 层和第 4 层标头中的字段。