什么是链路聚合?
链路聚合(Link Aggregation)是将多条物理链路捆绑在一起成为一条逻辑链路,从而增加链路带宽及冗余的技术。
根据是否启用链路聚合控制协议LACP,链路聚合分为”静态”和“动态(LACP)”两种聚合模式。
- 静态聚合:Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与,所有活动参与流量分担,又称手工负载分担模式。
- 动态聚合:基于IEEE802.3ad标准的LACP,链路聚合控制协议是一种实现链路动态聚合与解聚合的协议。LACP通过链路聚合控制协议数据单元LACPDU与对端交互信息。
而今天我要讲的主角是“静态聚合”,配置静态聚合绕不开的是聚合算法。主要有:基于目的IP、基于目的MAC、基于源目的IP、基于源目的MAC、基于源IP、基于源MAC。
那么有个经典的问题:交换机链路聚合,两端算法不一致会不会有问题?如下图所示:
问题分析
先说下答案:
我们简单了解下算法逻辑:交换机会将数据帧中的MAC、IP地址字段HASH成HASH-KEY值,然后在汇聚转发表中找物理出接口发出去。保证同一数据流在同一条物理链路的转发,为什么必须一致?为了防止对端地址表漂移。
所以交换机的汇聚算法只会决定TX(发送)而与RX(接收)无关,如下图:
PC1和PC2通信时,SW1可以根据算法不同将PC1的数据从不同的出接口转发给SW2;
SW2不会管你是1口还是2口过来,它只会关心PC1去往PC2的数据流是否持续保持在同一条物理链路上。否则你想,PC1一会从1口来、一会儿2口来,SW2的地址表不就紊乱了么?紊乱的直接结果就是通信异常;
同理,SW2将PC2的数据转交给SW1时,SW1也不会管你到底从哪个口给的我,它只关心“你能不能一直从这个物理口给到我”。
因此,交换机的标准汇聚算法下,两端算法不一致是不会影响通信的。