静态链路聚合

网络工程 IEEE-802.1ax
2021-07-31 12:51:33

我已将交换机的两个端口分组到一个通道中,并根据源和目标 MAC 地址指定负载平衡。不明白交换机怎么做负载均衡,用什么hash算法,请举例说明?开关是 CTS FOS-3124

1个回答

LACP 现在在 IEEE802.1AXbk-2012 中。摘要内容如下:

链路聚合允许将一个或多个链路聚合在一起以形成链路聚合组,以便媒体访问控制 (MAC) 客户端可以将链路聚合组视为单个链路。为此,它规定了数据终端设备 (DTE) 到 DTE 逻辑链路的建立,由 N 个并行实例的全双工、点对点链路以相同的数据速率运行。MAC 独立的链路聚合能力,以及与支持链路聚合的特定 MAC 类型相关的一般信息,在本标准中进行了定义。

它标准化了设备之间的连接和通信,但没有描述设备内部如何处理数据包。实际算法是制造商专有的,通常包括功能在内的设备设计是公司的机密。如果不是,您很可能会在设备手册或其他文档中找到它。

LACP 没有实际的负载平衡智能,它在决定将流量转发到哪里时不考虑现有链路负载。参与 LACP 聚合的设备也不交换有关转发决策的信息,它是在每个交换机上的每个对话中独立完成的。这通常是如何工作的:

.-------.   .-------.   .-------.   
|client1|---|       |   |       |    
'-------'   |       |   |       |   .------. 
.-------.   |       |---|       |   |      |        
|client1|---|switch1|   |switch2|---|server|
'-------'   |       |---|       |   |      | 
.-------.   |       |   |       |   '------' 
|client1|---|       |   |       |    
'-------'   '-------'   '-------'   

Client1 连接到服务器

  • Switch1 决定使用基于 sa/da 的算法将此对话分配给第 1 段(顶部链接)
  • 服务器响应,switch2决定把这个会话分配给link 2

Client2 连接到服务器

  • Switch1 将此对话分配给第 2 段
  • 服务器响应,switch2将此会话分配给leg 2

Client3 连接到服务器

  • Switch1 将此对话分配给第 2 段
  • 服务器响应,switch2 将此会话分配给leg 1

请注意,我们现在处于这样一种情况:第 1 段有 2 个对话,第 2 段有 4 个对话。这是正常行为,因为在任何时候都不考虑现有负载。然而,您在网络中运行的对话越多,流量通常分布得就越均匀。

“这将如何帮助”是一个悬而未决的问题。许多制造商提供他们自己的专有聚合方法,通常是无协议的。这些往往在制造商之间协同工作,但没有标准化。

所以这是 LACP 的一个优势 - 它是一种标准,因此您知道设备应该如何工作。您可以将您的交换机配置为静态 LACP 并将其连接到具有类似配置的另一台交换机(或连接到服务器 NIC 团队 - 他们通常也具有 LACP 功能),如果一切配置正确,您将拥有一个有效的聚合链接。

另一个优点是您可以将 LACP 配置为动态的。在这种模式下,您有一个主动和被动的合作伙伴。例如,您可以为主动 LACP 配置所有核心交换机端口,为被动 LACP 配置边缘交换机端口。如果边缘交换机链路上的带宽不足,您唯一需要做的就是在设备之间连接另一条电缆,它们将形成聚合链路,无需任何其他配置。动态模式的缺点是,由于在连接电缆之前聚合链路实际上并不存在,因此您无法将其分配给给定的 VLAN。动态 LACP 链路通常会丢弃到默认 VLAN。