1. 概念
链路聚合是将设备直连链路进行逻辑捆绑,形成一个虚拟逻辑接口用于增加可用带宽。华为的聚合接口用eth-trunk标识,思科的用port-channel标识。
目前华为设备支持手工和LACP配置聚合接口,思科支持手工,LACP和PAgP配置,厂商允许绑定链路数量如下表所示。
模式 | 思科 | 华为 |
---|---|---|
手工 | 最多8条 | 最多8条 |
LACP | 最多16条,但活动链路最多8条 | 最多8条 |
PAgP | 最多8条 | 不支持协议 |
2. 华为
华为设备链路加入聚合接口eth-trunk必须满足:端口的双工模式和速率必须一致;端口恢复到默认配置(hybrid模式下)。在工作中配置eth-trunk的步骤最好如下所示:
1.关闭选取的链路接口,然后恢复接口到默认设置。
2.设备两端创建eth-trunk接口(不同设备eth-trunk编号可以不同,只要互联端口配置对即可),加入链路接口,选择mode 为manual或lacp。
3.在eth-trunk接口中配置trunk模式, pivd和允许通过的vlan。两端必须一致。
4.将物理接口开启,然后查看eth-trunk运行情况。
2.1 手工
在手工模式下,华为设备所有活动链路端口都必须参与到数据转发,不能做链路备份。
1.创建eth-trunk端口
[SW1]int Eth-Trunk 1
[SW1-Eth-Trunk1] shutdown
2.加入物理端口,选择mode
[SW1-Eth-Trunk1]trunkport GigabitEthernet 0/0/1 to 0/0/3--->加入之前已经全部恢复默认配置并关闭
[SW1-Eth-Trunk1]mode manual load-balance
3.配置trunk模式
[SW1-Eth-Trunk1]port link-type trunk
[SW1-Eth-Trunk1]port trunk pivd vlan 100
[SW1-Eth-Trunk1]port trunk allow-pass vlan all
4.开启物理端口
[SW1-Eth-Trunk1] undo shutdown ---->在前面关闭eth-trunk后,再打开即可将所有物理端口和eth-trunk开启
可选命令
[SW1-Eth-Trunk1]load-balance src-dst-ip ------->有好几种选择
2.2 LACP
LACP模式可以工作的前提是两端设备都必须支持LACP模式,设备都开启LACP模式后,双方互相发送LACP 报文,根据系统ID选出主动方。然后主动方根据接口ID选举出本端活动接口。
选举规则:
系统ID越小越优先,系统ID=系统优先级(2字节)+MAC(6字节)。
接口ID越小越优先,接口ID=接口优先级(2字节)+编号(2字节)。
华为设备LACP模式下的eth-trunk接口可以对物理链路进行M:N备份,M代表最大活动链路数量,N代表备份的数量。所以需要选举活动接口来决定哪些链路是备份状态,备份状态的链路不发送数据。
2.LACP与手工不同的就是2步骤中的mode选择,并根据下面可选命令进行配置
[SW1-Eth-Trunk1]mode lacp-static
可选命令1 全局模式
[SW1-]lacp priority xx ------->配置系统优先级
可选命令2 物理接口模式
[SW1-GigabitEthernet0/0/4]lacp priority xxx ---->接口模式下配置接口优先级
可选命令3 eth-trunk接口下配置
[SW1-Eth-Trunk1]max active-linknumber 2------>设置最大活动链路M值
[SW1-Eth-Trunk1]lacp preempt enable ------->设置lacp抢占,高优先级故障链路修复后可变成活动接口
建议华为的M:N备份别用,浪费带宽。
3. 思科
思科支持手工,LACP和PAgP三种方法配置port-channel,针对LACP和PAGP设计了两种协商模式,如下表所示。
模式 | 手工 | LACP | PAgP |
---|---|---|---|
主动 | 不协商使用on | active,主动协商 | desirable,主动协商 |
被动 | 不协商使用on | passive,等对面协商 | auto,等对面协商 |
要求 | 速率/双工 | 工作模式 | 封装协议 | 允许vlan | 本征vlan | 端口镜像 | STP cost |
---|---|---|---|---|---|---|---|
access聚合 | 一致 | 都是access | 一致 | 一致 | 一致 | 不能配置 | 一致 |
trunk聚合 | 一致 | 都是trunk | 一致 | 一致 | 一致 | 不能配置 | 一致 |
思科在创建一个新的port-channel时,interface port-channel也会自动创建。该interface port-channel会继承第一个添加到port-channel中的物理端口配置,后面所有要加入的端口都需要与interface port-channel的配置做比较,如果相同则认为物理端口为活动的组成员,如果不同则不能成为组成员,进而导致端口进入暂停状态。工程师在修改interface port-channel时,只会将配置同步到其活动组成员。
由于以上的原因,思科在创建interface port-channel时最好遵循以下几点建议:
1.创建新的port-channel前,不手工创建interface port-channel。
2.物理端口加入interface port-channel前,确保配置与port-channel一致。
3.移除port-channel时,interface port-channel也手动清除,这样重新创建使用相同编号的port-channel才不会报错。
3.1 手工
思科所谓的手工模式就是LACP和PAgP的on模式,on模式下设备无条件形成port-channel,不进行协商。拓扑图如图所示,请最好按照下面的配置步骤顺序创建port-channel,尽最大可能保证不会报错。
1.选择相关端口,执行shutdown操作。
2.配置相同的trunk模式,封装协议,允许vlan和本征vlan,本征vlan如果没要求可以使用默认值。
3.两端设备port-channel都必须选择on模式。
4.物理端口执行no shutdown操作。
5.监控是否有报错,执行查看命令确保正常。
1.选择物理端口
sw1(config)#int range eth0/0 -1
sw1(config-if-range)#shutdown
2.配置trunk,为了与其他厂商设备通信,最好选择do1q封装和trunk链路
sw1(config-if-range)#switchport trunk encapsulation dot1q
sw1(config-if-range)#switchport mode trunk
sw1(config-if-range)#switchport nonegotiate ----->DTP最好关了
sw1(config-if-range)#switchport trunk native vlan 100
3.配置聚合协议
sw1(config-if-range)#channel-group 1 mode on ---->这里使用port-channel命令,隐式创建了interface port-channel。
4.开启物理端口
sw1(config-if-range)#no shutdown
5.查看
sw1#show etherchannel summary
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) - Et0/0(P) Et0/1(P)
当成员是P状态,聚合端口是SU状态,并且设备不会报错或警告,则代表运行正常。
3.2 LACP
思科LACP支持捆绑16条链路,但同时最多8条处于活跃工作状态,所以也可以通过设置系统和物理接口优先级来决定LACP主动方和活跃链路,主动方用于选择链路,选举规则与华为一致:
系统ID越小越优先,系统ID=系统优先级(2字节)+MAC(6字节)。
接口ID越小越优先,接口ID=接口优先级(2字节)+编号(2字节)。
但其实生产环境中,LACP的系统和接口优先级几乎用不到,因为链路聚合目的就是为了增加带宽,你要是再用华为的M:N备份和思科的链路备份限制带宽,简直就是莫名其妙。
思科LACP的配置思路与手工一致,唯一需要改动的是步骤3的mode 参数。LACP至少有一端设备选择主动模式,否则通道随然建立,但处于down状态无法正常通信。
1,2,4,5步骤与手工一致
3.配置聚合协议
sw1(config-if-range)#channel-protocol lacp ---->这个是可选项,会根据mode 参数自动判断
sw1(config-if-range)#channel-group 1 mode active ----->最好选择主动协商模式
2.3.PAgP
思科PAgP的配置思路与手工一致,唯一需要改动的是步骤3的mode 参数。PAgP至少有一端设备选择主动模式,否则通道随然建立,但处于down状态无法正常通信。
1,2,4,5步骤与手工一致
3.配置聚合协议
sw1(config-if-range)#channel-protocol pagp ---->这个是可选项,会根据mode 参数自动判断
sw1(config-if-range)#channel-group 1 mode desriable non-silent ------>最好选择主动协商模式
PAgPdesirable和auto模式都有slient和no-slient两种状态。在介绍slient和no-slient两者区别之前,需要知道一件事:一旦配置了port-channel接口,port-channel在没有判定down之前,其成员接口不参与STP协议的端口角色选举。两者在STP协议中的表现区别在于:slient为port-channel设置15s的定时器,用于监听PAgP报文,如果超时没有收到报文,则port-channel设置为down。其成员接口开始参与STP端口选举,可能导致端口真正能转发数据之前要多等15s;no-slient则直接告诉STP协议port-channel处于down,省了15s等待时间。