链路聚合在现实中是如何工作的?

网络工程 VLAN 带宽 端口通道 上行链路
2021-07-24 07:09:23

我担心我误解了聚合器在以下场景中的工作方式:

我有一个项目,我需要交换机之间的 40 Gbps 链接。我的计划是让我的三台交换机使用所有四个 10Gb 上行链路端口连接到第四个“聚合器交换机”,这样我就有必要的带宽来连接到聚合器的总共 12 个 10Gb 链路。

链路聚合真的像聚合链路一样工作吗?这是我想要在交换机之间实现 40Gb 上行链路的方式吗?

根据 IEEE 802.1ad 规范,我觉得它更多是关于故障安全/故障转移,而不是使用多个链接来实现更大的管道。

如果这不是正确的方法,有人可以提出更好、更常见的方法吗?

2个回答

真正发生的是任何一个流只使用其中一个链接。根据散列算法将不同的流分配给不同的链路,因此,总的来说,您可以获得组合链路的全部带宽,但任何一个流都只会获得单个链路的带宽。

您不希望将单个流分布在多个链接上,因为这会导致无序数据包传输出现问题。像 TCP 这样的协议可以解决这个问题,但它会减慢它们的速度。UDP 等其他协议无法处理这种情况,这对使用 UDP 的实时协议(例如语音或视频)来说完全是致命的。

它也确实提供了冗余,但您确实获得了通道中所有链路的全部带宽,但在所有流中汇总。

如果这对您不起作用,那么您需要获得具有 40 或 100 Gbps 接口的设备。

除了 Ron 的出色回答之外,绝大多数交换机都有三种不同的散列算法:MAC 地址 (L2)、IP 地址 (L3) 和 IP 地址加端口号 (L4)。

该算法将源地址和目标地址结合在一起,并以自己的特殊方式(有时记录在案)将它们混合在一起,以选择一个有点随机但一致的转发端口,该端口在整个 MAC/IP/L4 会话中保持不变。

例如,交换机可以使用源 IP 地址和目标 IP 地址的低六位,对它们进行异或并将结果用作中继内端口的索引。

简而言之,您可以很好地使用单个 10G 链路连接两个具有 1G 端口的交换机,并期望获得十个全速流。但是,如果您在两台交换机之间中继四个 10G 链路,您就不能指望它们始终全速传递四个不同的 10G 流——只有当您非常幸运或者您已经亲自挑选了地址来优化流时并确切知道哪些流量同时发生。