标题：端口聚合
简介
端口聚合  端口聚合也叫做以太通道（ethernet channel），主要用于交换机之间连接。由于两个交换机之间有多条冗余链路的时候，STP会将其中的几条链路关闭，只保留一条，这样可以避免二层的环路产生。但是，失去了路径冗余的优点，因为STP的链路切换会很慢，在50s左右。使用以太通道的话，交换机会把一组物理端口联合起来，做为一个逻辑的通道，也就是channel－group，这样交换机会认为这个逻辑通道为一个端口。端口汇聚端口汇聚是将多个端口聚合在一起形成1个汇聚组，以实现出负荷在各成员端口中的分担，同时也提供了更高的连接可靠性。端口汇聚可以分为手工汇聚、动态lacp汇聚和静态lacp汇聚。同一个汇聚组中端口的基本配置应该保持一致，即如果某端口为trunk端口，则其他端口也配置为trunk端口；如该端口的链路类型改为access端口，则其他端口的链路类型也改为access端口。
端口的基本配置主要包括stp、qos、vlan、端口属性等相关配置。其中stp配置包括：端口的stp使能/关闭、与端口相连的链路属性（如点对点或非点对点）、stp优先级、路径开销、报文发送速率限制、是否环路保护、是否根保护、是否为边缘端口。qos配置包括：流量限速、优先级标记、缺省的802.1p优先级、带宽保证、拥塞避免、流重定向、流量统计等。vlan配置包括：端口上允许通过的vlan、端口缺省vlan id。端口属性配置包括：端口的链路类型，如trunk、hybrid、access属性、绑定侦测组配置。一台s9500系列路由交换机最多可以配置920个汇聚组，其中1～31为手工或者静态聚合组；32～64为预留组号；65～192为routed trunk；193～920为动态聚合组。系统中存在mpls vpn单板时，只支持7个负载分担聚合组，没有mpls vpn单板时，可以支持31组负载分担组，对于fe单板（采用ex芯片），只支持7个负载分担聚合组。目前s9500还支持跨接口板聚合，跨接口板跟本板的聚合是一样的。lacp协议基于IEEE 802.3ad标准的lacp（link aggregation control protocol，链路聚合控制协议）是一种实现链路动态聚合与解聚合的协议。lacp协议通过lacpdu（link aggregation control protocol data unit，链路聚合控制协议数据单元）与对端交互信息。使用某端口的lacp协议后，该端口将通过发送lacpdu向对端通告自己的系统优先级、系统mac、端口优先级、端口号和操作key。对端接收到这些信息后，将这些信息与其它端口所保存的信息比较以选择能够聚合的端口，从而双方可以对端口加入或退出某个动态聚合组达成一致。操作key是在端口聚合时，lacp协议根据端口的配置（即速率、双工、基本配置、管理key）生成的一个配置组合。其中，动态聚合端口在使能lacp协议后，其管理key缺省为零。静态聚合端口在使能lacp后，端口的管理key与聚合组id相同。对于动态聚合组而言，同组成员一定有相同的操作key，而手工和静态聚合组中，selected的端口有相同的操作key。
技术优点:
带宽增加带宽相当于组成组的端口的带宽总和。增加冗余只要组内不是所有的端口都down掉，两个交换机之间仍然可以继续通信。负载均衡可以在组内的端口上配置，使流量可以在这些端口上自动进行负载均衡。
端口聚合它可将多物理连接当作一个单一的逻辑连接来处理，它允许两个交换器之间通过多个端口并行连接同时传输数据以提供更高的带宽、更大的吞吐量和可恢复性的技术。 一般来说，两个普通交换器连接的最大带宽取决于媒介的连接速度（100BAST-TX双绞线为200M），而使用Trunk技术可以将4个200M的端口捆绑后成为一个高达800M的连接。这一技术的优点是以较低的成本通过捆绑多端口提高带宽，而其增加的开销只是连接用的普通五类网线和多占用的端口，它可以有效地提高子网的上行速度，从而消除网络访问中的瓶颈。另外Trunk还具有自动带宽平衡，即容错功能：即使Trunk只有一个连接存在时，仍然会工作，这无形中增加了系统的可靠性。
汇聚类型
人为配制聚合手工聚合和静态lacp聚合都是人为配置的聚合组，不允许系统自动添加或删除手工或静态聚合端口。手工或静态聚合组必须包含至少一个端口，当聚合组只有一个端口时，只能通过删除聚合组的方式将该端口从聚合组中删除。手工聚合端口的lacp协议为关闭状态，禁止用户使能手工聚合端口的lacp协议。静态聚合端口的lacp协议为使能状态，当一个静态聚合组被删除时，其成员端口将形成一个或多个动态lacp聚合，并保持lacp使能。禁止用户关闭静态聚合端口的lacp协议。
在手工和静态聚合组中，稳定时端口可能处于两种状态：selected和standby，聚合过程中可能会有短暂的unselected状态。其中，只有selected状态的端口能够收发用户业务报文，而standby状态的端口不能收发用户业务报文，unselected状态只是一个中间状态，不需要关心。在一个聚合组中，处于selected状态的端口中的最小端口是聚合组的主端口，其他的作为成员端口。
在手工聚合组中，系统按照以下原则设置端口处于selected或者standby状态：端口因存在硬件限制（如不能跨板聚合）无法聚合在一起，而无法与处于selected状态的最小端口聚合的端口将处于standby状态。
在静态聚合组中，系统按照以下原则设置端口处于selected或者standby状态：
系统按照端口全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序，选择优先次序最高的端口处于selected状态，其他端口则处于standby状态。
与处于selected状态的最小端口所连接的对端设备不同，或者连接的是同一个对端设备但端口在不同的聚合组内的端口将处于standby状态。
端口因存在硬件限制（如不能跨板聚合）无法聚合在一起，而无法与处于selected状态的最小端口聚合的端口将处于standby状态。
与处于selected状态的最小端口的基本配置不同的端口将处于standby状态。
由于设备所能支持的聚合组中的最大端口数有限制，如果处于selected状态的端口数超过设备所能支持的聚合组中的最大端口数，系统将按照端口号从小到大的顺序选择一些端口为selected端口，其他则为standby端口。selected端口和standby端口都能收发lacp协议，但是standby端口不能转发用户的业务报文。
s9500支持不同速率的端口进行手工聚合，但是不建议在与其他设备对接时使用。动态lacp聚合动态lacp聚合是一种系统自动创建/删除的聚合，不允许用户增加或删除动态lacp聚合中的成员端口，即使只有一个端口也可以创建动态聚合，此时为单端口聚合。动态聚合端口的lacp协议为使能状态。只有速率和双工属性相同、连接到同一个设备、有相同的基本配置的端口才能被动态聚合在一起。
由于设备所能支持的聚合组中的最大端口数有限制，如果当前的成员端口数量超过最大端口数的限制，则选择设备id（系统优先级+系统mac地址）小，且端口id（端口优先级+端口号）小的端口为selected端口，剩余端口为standby端口；若成员端口数量未超过最大selected端口数限制，所有成员端口都是selected端口。selected端口和standby端口都能收发lacp协议，但是standby端口不能转发用户的业务报文。在一个聚合组中，selected端口中的最小端口是聚合组的主端口，其他的作为成员端口。在设备id比较时，先比较系统优先级，如果相同则再比较系统mac，值小的一方将被认为优；比较端口id时，先比较端口优先级，如果相同则再比较端口号，值小的一方将被认为优。如果设备id由原来的不优变为优，则聚合组成员的selected和standby状态由本设备的端口优先级确定。用户可以通过设置系统优先级和端口优先级来调整端口为selected端口还是standby端口。
类型
聚合组状态聚合组按负载分担类型分为两种：负载分担聚合和非负载分担聚合。我司85产品对于ip报文负载分担是按照目的ip和源ip的，对于非ip报文，负载分担是根据源mac和目的mac的。对于是否使用ip还是mac，检查协议类型来区别，以太网字段etype为0800的报文是ip报文。一般情况下，系统中的负载分担式聚合资源数量有限，因此需要在手工聚合组、静态聚合组、lacp动态聚合组、及包含需要硬件聚合资源的特殊端口的聚合组之间进行合理分配负载分担聚合资源。系统将始终为优先级高的聚合组分配硬件聚合资源，当聚合资源分配完后，所创建的聚合将为非负载分担聚合。负载分担聚合资源的优先级顺序如下：
包含需要硬件聚合资源的特殊端口的聚合组，如非限速10ge端口。
聚合组获得聚合资源后可能还潜在速率最高的聚合组。
当聚合组获得聚合资源后可能达到的速率相等时，主端口号最小的聚合组。
手工聚合优先权比静态聚合高，静态聚合又比动态聚合高。
所有条件相同情况下，已经占有资源的聚合组优先权比等待资源的聚合组优先权高。
当有优先级更高的聚合组出现时，优先级低的聚合组应释放其硬件资源。单端口的聚合组不占用聚合资源，可以正常收发报文。端口状态析在汇聚组中，端口可能处于两种状态：selected和standby。其中，只有selected状态的端口能够收发用户业务报文，而standby状态的端口不能收发用户业务报文。在一个汇聚组中，处于selected状态的端口中的最小端口是汇聚组的主端口，其他的作为成员端口（也称为从端口）。
系统按照以下原则设置端口处于selected或者standby状态：
系统按照端口全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序，选择优先次序最高的端口处于selected状态，其他端口则处于standby状态。
端口因存在硬件限制无法聚合在一起，而无法与汇聚组的主端口聚合的端口将处于standby状态。
与汇聚组主端口的基本配置不同的端口将处于standby状态。
由于设备所能支持的聚合组中的最大端口数有限制，如果处于selected状态的端口数超过设备所能支持的聚合组中的最大端口数，系统将按照端口号从小到大的顺序选择一些端口为selected端口，其他则为standby端口。selected端口可以转发用户的业务报文，而standby端口不能转发用户的业务报文。
负载分担聚合组中可有多个selected端口，而非负载分担聚合组中最多只有一个selected端口，其余均为standby端口。端口发挥重要作用。
应用
端口汇聚是将多个端口聚合在一起形成1 个汇聚组，以实现出/入负荷在各成员端口中的分担，同时也提供了更高的连接可靠性。端口汇聚可以分为手工汇聚、动态LACP 汇聚和静态LACP 汇聚。同一个汇聚组中端口的基本配置应该保持一致，即如果某端口为Trunk 端口，则其他端口也配置为Trunk 端口；如该端口的链路类型
改为Access 端口，则其他端口的链路类型也改为Access 端口。端口的基本配置主要包括STP、QoS、VLAN、端口等相关配置。其中STP 配置包括：端口的STP 使能/关闭、与端口相连的链路属性（如点对点或非点对点）、STP优先级、路径开销、报文发送速率限制、是否环路保护、是否根保护、是否为边缘端口。QoS 配置包括：流量限速、优先级标记、缺省的802.1p 优先级、带宽保证、拥塞避免、流重定向、流量统计等。VLAN 配置包括：端口上允许通过的VLAN、端口缺省VLAN ID。端口配置包括：端口的链路类型，如Trunk、Hybrid、Access属性。
端口汇聚可以分为手工汇聚、动态LACP 汇聚和静态LACP 汇聚。手工聚合和静态LACP 聚合手工聚合和静态LACP 聚合都是人为配置的聚合组，不允许系统自动添加或删除手工或静态聚合端口。手工或静态聚合组必须包含一个端口，当聚合组只有一个端口时，只能通过删除聚合组的方式将该端口从聚合组中删除。手工聚合端口的LACP协议为关闭状态，禁止用户使能手工聚合端口的LACP 协议。静态聚合端口的LACP协议为使能状态，当一个静态聚合组被删除时，其成员端口将形成一个或多个动态
LACP 聚合，并保持LACP 使能。禁止用户关闭静态聚合端口的LACP 协议。在手工和静态聚合组中，端口可能处于两种状态：Active 和Inactive。其中，只有Active 状态的端口能够收发用户业务报文，而Inactive 状态的端口不能收发用户业务报文。在一个聚合组中，处于Active 状态的端口中的最小端口是聚合组的主端口，
其他的作为成员端口。在手工聚合组中，系统按照以下原则设置端口处于Active 或者Inactive 状态：􀁺 系统按照端口全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序，选择优先次序最高的端口处于Active 状态，其他端口则处于
lnactive 状态。􀁺 端口因存在硬件限制（如不能跨板聚合）无法聚合在一起，而无法与处于Active
状态的最小端口聚合的端口将处于Inactive 状态。􀁺 与处于Active 状态的最小端口的基本配置不同的端口将处于Inactive 状态。在静态聚合组中，系统按照以下原则设置端口处于Active 或者Inactive 状态：
􀁺 系统按照端口全双工/高速率、全双工/低速率、半双工/高速率、半双工/低速率的优先次序，选择优先次序最高的端口处于Active 状态，其他端口则处于
lnactive 状态。􀁺 与处于Active 状态的最小端口所连接的对端设备不同，或者连接的是同一个对
端设备但端口在不同的聚合组内的端口将处于Inactive 状态。
􀁺 端口因存在硬件限制（如不能跨板聚合）无法聚合在一起，而无法与处于Active状态的最小端口聚合的端口将处于Inactive 状态。􀁺 与处于Active 状态的最小端口的基本配置不同的端口将处于Inactive 状态。由于设备所能支持的聚合组中的最大端口数有限制，如果处于Active 状态的端口数
超过设备所能支持的聚合组中的最大端口数，系统将按照端口号从小到大的顺序选择一些端口为Active 端口，其他则为Inactive 端口。Active 端口和Inactive 端口都能收发LACP 协议，但是Inactive 端口不能转发用户的业务报文。动态LACP 聚合动态LACP 聚合是一种系统自动创建/删除的聚合，不允许用户增加或删除动态LACP 聚合中的成员端口，即使只有一个端口也可以创建动态聚合，此时为单端口聚合。动态聚合端口的LACP 协议为使能状态。只有速率和双工属性相同、连接到同一个设备、有相同的基本配置的端口才能被动态聚合在一起。由于设备所能支持的聚合组中的最大端口数有限制，如果当前的成员端口数量超过最大端口数的限制，则选择设备ID（系统优先级+系统MAC 地址）小，且端口ID（端口优先级+端口号）小的端口为Active 端口，剩余端口为Inactive 端口；若成员端口数量未超过最大Active 端口数限制，所有成员端口都是Active 端口。Active端口和Inactive 端口都能收发LACP 协议，但是Inactive 端口不能转发用户的业务报文。在一个聚合组中，Active 端口中的最小端口是聚合组的主端口，其他的作为成员端口。在设备ID 比较时，先比较系统优先级，如果相同则再比较系统MAC，值小的一方将被认为优；比较端口ID 时，先比较端口优先级，如果相同则再比较端口号，值小的一方将被认为优。如果设备ID 由原来的不优变为优，则聚合组成员的Active 和Inactive 状态由本设备的端口优先级确定。用户可以通过设置系统优先级和端口优先级来调整端口为Active 端口还是Inactive 端口。以太网端口汇聚配置举例1. 组网需求
交换机Switch A 用3 个端口聚合接入交换机Switch B，Switch A 的接入端口为Ethernet2/1/1～Ethernet2/1/3。从而实现出/入负荷在各成员端口中的进行分担。
配置步骤
以下只列出了Switch A 的配置，Switch B 上应作相应的配置，汇聚才能实际有效：
(1) 采用手工聚合方式
# 创建汇聚组1。
[Quidway] link-aggregation group 1 mode manual
# 将以太网端口Ethernet2/1/1 至Ethernet2/1/3 加入聚合组1。
[Quidway] interface ethernet2/1/1
[Quidway-Ethernet2/1/1] port link-aggregation group 1
[Quidway-Ethernet2/1/1] interface ethernet2/1/2
[Quidway-Ethernet2/1/2] port link-aggregation group 1
[Quidway-Ethernet2/1/2] interface ethernet2/1/3
[Quidway-Ethernet2/1/3] port link-aggregation group 1
# 当聚合组端口序号连续时，可以直接把多个端口聚成一组，组号由系统自行分配。
[Quidway] link-aggregation ethernet2/1/1 to ethernet2/1/3 both
(2) 采用静态LACP 聚合方式
# 创建静态汇聚组1。
[Quidway] link-aggregation group 1 mode static
# 将以太网端口Ethernet2/1/1 至Ethernet2/1/3 加入聚合组1。
[Quidway] interface ethernet2/1/1
[Quidway-Ethernet2/1/1] port link-aggregation group 1
[Quidway-Ethernet2/1/1] interface ethernet2/1/2
[Quidway-Ethernet2/1/2] port link-aggregation group 1
[Quidway-Ethernet2/1/2] interface ethernet2/1/3
[Quidway-Ethernet2/1/3] port link-aggregation group 1
(3) 采用动态LACP 聚合方式
# 开启以太网端口Ethernet2/1/1 至Ethernet2/1/3 的LACP 协议。
[Quidway] interface ethernet2/1/1
[Quidway-Ethernet2/1/1] lacp enable
[Quidway-Ethernet2/1/1] interface ethernet2/1/2
[Quidway-Ethernet2/1/2] lacp enable
[Quidway-Ethernet2/1/2] interface ethernet2/1/3
[Quidway-Ethernet2/1/3] lacp enable
只有端口的基本配置、速率、双工等参数一致时，上述端口在开启LACP 协议之后
才能聚合到同一个动态聚合组内，实现端口的负载分担。