概述
Link Aggregation Group(LAG)又称为Trunk Group,链路聚合是一种将多个物理端口"捆绑"为一个逻辑端口的技术手段,遵循IEEE 802.3ad Link Aggregation协议规范。
三层交换机一般将多个上联口聚合成Trunk组使用,其作用为:
1)提高带宽,实现均摊模式;
2)提供链路冗余备份,当Trunk组某个成员端口链路出现故障时,可以最大限度地减轻网络故障。
Trunk组
BCM56440芯片最多支持128个Trunk组,每个Trunk组最多8个成员端口,且同时支持同芯片聚合组和跨芯片的HiGig+/HiGig2聚合组。
BCM56440芯片的TRUNK_GROUP表包含128个表项,以TGID为索引。每个TRUNK_GROUP表项包含TG_SIZE、RTAG、BASE_PTR三个字段:
1)TG_SIZE表示Trunk组成员端口个数;
2)RTAG配置Hash模式(均摊模式),即选择出口报文的哪些字段(MAC DA, MAC SA, VLAN, EtherType, IP DA, and IP SA)来计算Hash值,计算出来的8位Hash值用来选择BASE_PTR指向的TRUNK_MEMBER表项中的具体成员端口作为报文出端口;
3)BASE_PTR指向TRUNK_MEMBER表项,即Trunk组成员端口列表。
均摊模式
Trunk组的均摊模式是使用Hash算法实现。
RTAG 0~6根据报文的MAC DA, MAC SA, VLAN, EtherType, IP DA, and IP SA字段计算Hash值,一般情况下,交换机都是配置IP DA + IP SA或者MAC DA + MAC SA两种方式之一。
RTAG 7为增强型Hash模式,主要用来实现负载均摊。这种方式下,根据两部分信息计算Hash值——packet header(用来识别microflows)以及静态物理配置(如源和目的端口数)。其Hash过程如下:
1)Hash Field Selection: Based on EtherType and packet parsing
2)Hashing Computation: Based on configuration
3)Hash Bits Seletion: 针对应用场景配置
常用命令
BCM.0> trunk Usage (TRUNK): Usages: trunk init 创建Trunk组 - Initialize trunking function trunk deinit - Deinitialize trunking function trunk add <Id=val> <Rtag=val> <Pbmp=val> 添加Trunk组成员端口 - Add ports to a trunk trunk remove <Id=val> <Pbmp=val> 移除Trunk组 - Remove ports from a trunk trunk show [<Id=val>] 查看Trunk组 - Display trunk information trunk egress [<Id=val>] <Pbmp=val> - Set egress ports for trunk trunk mcast <Id=val> <Mac=val> <Vlan=val> - Join multicast to a trunk trunk hash set <Pbmp=val> <HashValue=val> - Set ingress port hash value to select egress port of a trunk trunk hash get <Pbmp=val> - Get ingress port programmable hash value trunk psc <Id=val> <Rtag=val> 设置RTAG模式 - Change Rtag (for testing ONLY