当前位置:首页 > 交换机 > 正文

【Juniper】LAG 和 ECMP 组上的弹性哈希

  • 交换机
  • 2022-11-18
  • 2096
  • 更新:2022-11-18 22:01:51

弹性哈希有助于在负载平衡系统中最小化跨等价多路径(ECMP)组和LAG的流重映射。以下主题讨论了链路聚合组(LAG)和ECMP组上弹性哈希的工作原理、使用和配置。

了解使用弹性哈希来最小化 LAG/ECMP 组中的流重新映射

您可以使用弹性哈希来最小化负载平衡系统中LAG/ECMP组成员之间的流重映射。您可以在链路聚合组(LAG)和等价多路径(ECMP)组中配置弹性哈希。

为什么您可能想要使用弹性哈希以及它如何与静态哈希一起工作

弹性哈希的限制和注意事项

LAG 上的弹性哈希

ECMP 上的弹性哈希

为什么您可能想要使用弹性哈希以及它如何与静态哈希一起工作

弹性哈希与默认的静态哈希算法结合使用。在 LAG/ECMP 组中添加或删除成员时,静态哈希算法可能会重新映射目标路径。使用弹性哈希,如果流的路径不受 LAG/ECMP 组成员更改的影响,则流被重新映射的可能性很小。当流受到成员更改的影响时,数据包转发引擎通过重新编程流表来重新平衡流。

因此,弹性哈希提供了以下好处:

当成员添加到组或从组中删除时,最大限度地减少 LAG/ECMP 组成员之间的流量分配不均衡。

当添加新成员或从组中删除现有成员时,将对绑定到未受影响成员的流的影响降至最低。

在普通的基于哈希的负载均衡中,单独使用静态哈希算法,通过数学 mod (%) 运算将流分配给成员。组成员数量的任何增加或减少都会导致流完全重新映射到成员 ID,如以下示例所示:

Member ID = Hash (key) mod (组内成员数)

例子:

   Hash (key) = 10

   10 mod 5 = 0(选择ID为0的成员进行流向)

   10 mod 4 = 2(成员数减1时,同流选择ID为2的成员)

当添加或删除 LAG/ECMP 组中的成员时,弹性哈希最小化目标路径重新映射。

当流受到组中成员变化的影响时,弹性哈希通过重新编程流表来重新平衡流。

表 1:在 LAG 中添加或删除成员时静态哈希和弹性哈希的目标路径结果

LAG/ECMP 组大小 正常(静态)哈希结果 弹性哈希结果 笔记
4个 Hash(10) % 4 = 2,流分配给成员 ID 2。 基于流表条目将流分配给四个组成员之一。 原始 LAG/ECMP 组大小为 4。
3个 Hash(10) % 3 = 1流分配给成员 ID 1。 流被分配给与前一种情况相同的成员。 从原始 LAG/ECMP 组中删除一个成员。LAG/ECMP 组大小为 3。
5个 Hash(10) % 5 = 0流分配给成员 ID 0。 从其他成员到这个新添加的成员的流量重新分配最少。 将一名成员添加到原始 LAG 组。LAG/ECMP 组大小为 5。

弹性哈希的限制和注意事项

请注意弹性哈希功能的以下限制和注意事项:

弹性哈希仅适用于单播流量。

弹性哈希最多支持 1024 个 LAG,每个组最多有 256 个成员。

弹性哈希并不能保证流量在所有组成员之间均匀分布——它取决于流量模式和硬件中弹性哈希流表的组织。当成员添加到组或从组中删除时,弹性哈希 最小化流到目标链接的重新映射。

如果在LAG或ECMP组上启用了弹性哈希,并且如果使用了带有 set forwarding-options enhanced-hash-key 选项的哈希模式、inet、inet6或layer2之一的设置,则某些流可能会更改目标链接,因为新的哈希参数可能会为流生成新的哈希索引,从而生成新的目标链接。

虚拟机箱端口 (VCP,Virtual Chassis port) 链路不支持弹性哈希。

QFX5200 和 QFX5210 交换机不支持基于 LAG 的弹性哈希。这些交换机支持基于 ECMP 的弹性哈希。

LAG 上的弹性哈希

LAG 组合以太网接口(成员)以形成逻辑点对点链路,从而增加带宽、提供可靠性并允许负载平衡。在 LAG 中添加或删除新成员时,弹性哈希可最大限度地减少目标重新映射行为。

LAG 上的弹性哈希配置是基于每个聚合以太网接口的。

ECMP 上的弹性哈希

路由的 ECMP 组包含路由表中相同目的地的多个下一跳等价地址。(等价路由具有相同的偏好和度量值。)

Junos OS 使用静态哈希算法选择 ECMP 组中的一个下一跳地址安装在转发表中。弹性哈希通过在 ECMP 组中添加或删除新成员时最小化目标重新映射行为来增强 ECMP。

ECMP 上的弹性哈希配置是全局的——它适用于所有 ECMP 组。

为 LAG/ECMP 组配置弹性哈希

您使用弹性哈希来最小化负载均衡系统中 LAG/ECMP 组成员之间的流量重新映射。您可以在链路聚合组 (LAG) 和等价多路径 (ECMP) 集中配置弹性哈希。

本主题包括:

在 LAG 上配置弹性哈希

在 ECMP 组上配置弹性哈希

在 LAG 上配置弹性哈希

注意:QFX5200 和 QFX5210 交换机不支持基于 LAG 的弹性哈希。这些交换机支持基于 ECMP 的弹性哈希。

要为 LAG 启用弹性哈希:

在聚合以太网接口上配置弹性哈希:

  1. [edit interfaces]
  2. user@switch# set aex aggregated-ether-options resilient-hash

(可选)为弹性哈希种子配置特定值。该值将仅适用于 HASH2 引擎:

  1. [edit]
  2. user@switch# set forwarding-options enhanced-hash-key resilient-hash-seed seed-value

在 ECMP 组上配置弹性哈希

为 ECMP 组启用弹性哈希:

为 ECMP 配置弹性哈希:

  1. [edit forwarding-options]
  2. user@switch# set enhanced-hash-key ecmp-resilient-hash

注意:当添加或删除弹性哈希时,给定流在 ECMP 组所有成员之间的流量分布将重新编程,因此,某些流可能会重新映射到新的 ECMP 组成员。

参考资料

https://www.juniper.net/documentation/us/en/software/junos/interfaces-ethernet-switches/topics/topic-map/switches-interface-resilient-hashing.html

声明:本文素材来源于网络,仅供学习使用,如有侵权请联系网站删除(ngdcn_admin@163.com)。

有话要说...