用户对网络的带宽、可靠性要求越来越高。
- 传统解决方案通过部署冗余链路并辅以STP协议实现高可靠,但是灵活度低、故障恢复时间长、配置复杂等。为保证设备间链路可靠性,在设备间部署多条物理线路(本意是想提升带宽),为防止环路STP只保留一条转发流量,其余链路成为备份链路。
- 现在解决方案:链路聚合技术与堆叠、集群技术实现网络带宽提升与高可靠性保障。
设备之间存在多条链路时,由于STP的存在,实际只会有一条链路转发流量,设备间链路带宽无法得到提升。
提升链路带宽——以太网链路聚合(增加带宽,链路备份)
- 定义:Eth-Trunk,简称链路聚合,通过将多个物理接口捆绑成为一个逻辑接口,可以在不进行硬件升级的条件下,达到增加链路带宽的目的。前提:接口速率一样。

- 基本术语/概念
- 聚合组(Link Aggregation Group, LAG):若干条链路捆绑在一起所形成的逻辑链路(虚拟)。每个聚合组唯一对应着一个逻辑接口,这个逻辑接口又被称为链路聚合接口或Eth-Trunk接口。
- 成员接口和成员链路:组成Eth-Trunk接口的各个物理接口称为成员接口。成员接口对应的链路称为成员链路。
- 活动接口和活动链路:活动接口又叫选中(selected)接口,是参与数据转发的成员接口。活动接口对应的链路被称为活动链路(Active link)。
- 非活动接口和非活动链路:又叫非选中(Unselected)接口,是不参与转发数据的成员接口。非活动接口对应的链路被称为非活动链路(Inactive link)。很少设置非活动接口。
- 聚合模式:根据是否开启LACP(Link Aggregation Control Protocol,链路聚合控制协议),链路聚合可以分为手工模式和LACP模式
- 活动接口上限阈值和活动接口下限阈值

- 聚合模式-手工模式
- 设备老旧、低端、不支持LACP协议
- Eth-Trunk的建立、成员接口的加入均由手动配置,双方系统之间不使用LACP进行协商。
- 正常情况下所有链路都是活动链路,该模式下所有活动链路都参与数据的转发,平均分担流量,如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。
- 当聚合的两端设备中存在一个不支持LACP协议时,可以使用手工模式。
- 举例,
- 当前状态 :

- 聚合过程
- 一个设备可以设置多个聚合口,编号0-63,区分不同聚合口
- 创建聚合口,设置聚合口编号:
- 查看聚合口的模式。默认是手工模式 manual:

- 把物理接口加入到创建的聚合口中:trunkport g0/0/x

- 聚合后Maximal BW:2G(华为设备,接口默认BW是1G)


- 问题:状态status-up,LSW1还没配置,状态就up了会出现问题,因为是手动设置的,没有什么协商,所以不管LSW1有没有聚合,自己先活动起来。现在LSW2只有一个聚合接口了,对于生成树STP来说,这两条链路就是一根线了。

- 其他创建方式:两边聚合口编号可以不一样



LSW1之前有个接口是alte(阻塞状态),现在两个接口聚合,成了root接口,没有环路,就不用阻塞端口。


- 一个设备可以设置多个聚合口,编号0-63,区分不同聚合口
- 总结:方式1,先创建一个聚合口,进入到聚合口中,添加需要聚合的物理接口;方式2,先创建一聚合口,退出聚合口,进入到对应的物理接口中,加入到聚合口中。
- 缺陷:
- 为了使链路聚合接口正常工作,必须保证本端链路聚合接口中所有成员接口的对端接口:属于同一设备;加入同一链路聚合接口。
- 手工模式下,设备间没有报文交互,只能通过管理员人工确认。只管本端配置完毕,不管对端,即使对端聚合到其他接口,本端也是up状态,通过本端的流量到对端可能就丢包了。
- 当前状态 :
- 聚合模式-LACP模式

- 创建聚合口:

- 修改聚合模式为-LACP:

- 把物理接口添加到聚合口


- 查看聚合口状态, down,current BW是0M:


- 另一端同样操作,配置成功后,在来看SW1的状态:up了,current BW:2G

- LACPDU:设备间通过链路聚合控制协议数据单元(LACP Data Unit)进行交互,通过协议协商确保对端是同一台设备、同一个聚合接口的成员接口。LACPDU报文中包含设备优先级、MAC地址、接口优先级、接口号等。
- 系统优先级:
- LACP模式下,两端设备所选择的活动接口数目必须保持一致,否则链路聚合组无法建立。可以使其中一端成为主动端(哪些接口转转发流量,哪些接口做备份),另一端(被动端)根据主动端选择活动接口。
- 通过LACP优先级确定主动端,值越小优先级越高,默认32768。
- 优先级一致,LACP通过比较MAC地址选择主动端,MAC地址越小越优先。
- 接口优先级
- 选出主动端后,在主动端配置活动接口数量,被动端不用配置,优先级高的接口将优先被选为活动接口,接口LACP优先级值越小,优先级越高。默认32768.
- 优先级一致,LACP通过接口编号选择活动接口,越小越优先。
- 选优先级,举例

- 详细信息查看,接口状态、接口优先级、接口编号;系统优先级等信息

- g1和g2转发流量,g3做备份接口
- 配置系统优先级,决定主动端(两个交换机,选择一个主动端),优先级数值没有要求

- 进入到聚合接口中:

- 配置最大活动接口数量为2,接口优先级都一样,根据接口编号,g3被选为备选接口

- 查看确认信息,g3接口的status-unselect


- 配置系统优先级,决定主动端(两个交换机,选择一个主动端),优先级数值没有要求
- 详细信息查看,接口状态、接口优先级、接口编号;系统优先级等信息
- 创建聚合口:
- 总结:
- 两种模式配置方式,LACP多了一步修改模式的步骤,mode lacp-static,默认是manual(手动)模式,其他是一样的。
- 抓包数据显示,手动模式下只有stp协议,错连检测不出来;
- LACP模式下,会有LACP协议,包含本端的mac地址,也知道对端的mac地址,如果有连错设备的情况,mac地址对不上,那错连的线路不会转发流量。
- LACP根据[接口优先级]信息,控制哪些接口可以转发流量,哪些接口做备份。手动模式下无法操作
- 本端和对端的聚合口号可以不一样
做链路聚合,最终目的是让流量做负载分担:
- Load Balance,在有多条等价路径(两条ISP线路、两条路由路径)的网络中,为了充分利用带宽、避免单条路径拥塞,需要将流量分散到所有可用链路上。
- 基于包的负载分担。 网络特别通畅的情况下。

- 在转发每一个数据包时,都独立地为其选择一条路径。选择方式可以是简单的轮询(第一个包走路径A,第二个包走路径B……循环往复)。
- 每个数据包即使和前一个包属于同一个TCP连接,也被独立对待。
- 缺点:如果每个数据包在不同的链路上转发,则有可能一条链路拥塞,导致数据帧到达对端时间不一致,从而引起数据乱序。
- 应用场景:静态文件传输(如FTP)、对乱序不敏感的UDP大流量、或聚合后仍是单一链路的场景。
- 基于流的负载分担

- Eth-Trunk推荐采用逐流负载分担。一条相同的流负载到一条链路,既保证同一数据流的数据帧在同一条物理链路转发,又实现了流量在聚合组内各物理链路上的负载分担。
- 一个流通常由一组具有相同特征的报文组成:源IP地址、目的IP地址、传输层协议(TCP/UDP)、源MAC地址、目的MAC地址。五个值相同,属于同一个流。
- 使用一个哈希算法,根据流的特征计算出一个哈希值,决定这个流的所有数据包走哪一条路径。一旦路径选定,这个流的所有后续数据包都走同一条路径。
- 同一流的所有包路径一致,到达对端的顺序与发送顺序一致,不会产生乱序。哈希值计算结果可能一样,就会走同一个链路,可能会导致有的链路空闲,负载分担不均衡。
- 应用场景:互联网访问,企业多WAN,数据中心ECMP
- 根据业务模型选择合适的方式。
- 默认情况下是SIP-XOR-DIP,源、目IP。

- 可以修改计算方式:基于目的IP,目的MAC,源目IP,源目MAC,源IP,源MAC


- 默认情况下是SIP-XOR-DIP,源、目IP。
重新学习:
- alte:Alternate Port 替代端口。 desi: Designated Port 指定端口
- forwarding:转发状态,发送/接收数据帧+发送/接收BPDU。
- discarding:丢弃状态,只接收BPDU,不学习MAC地址,不转发任何数据帧。
- BW: Bandwidth 带宽





