概述
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
