文档目录:
一,EtherChannel概述:
二,EtherChannel的链路协商
1,PAgP(Port AggregationProtocol,端口聚集协议)
1),PAgP概述
2),PAgP的模式
3),PAgP的silent和non-silent选项
2,LACP(Link Aggregation Control Protocol,链路汇聚控制协议)。
1),LACP概述
2),LACP的模式
3),LACP协商过程中使用的协商参数
4),实例说明LACP完整协商过程
三,EtherChannel上的流量分配
四,配置聚合链路(EtherChannel)
1,选定接口
2,设置协商协议
3,设置EtherChannel模式
4,设置流量分配方式
5,EtherChannel的查看命令
一,EtherChannel概述:
链路聚合将多个物理端口绑定为一个聚合端口,使其工作起来就像一个通道一样。将多个物理链路捆绑在一起后,不但提升了整个网络的带宽,而且数据还可以同时通过被绑定的多个物理链路传输,具有链路冗余的作用,在网络出现故障或其它原因断开其中一条或多条链路时,剩下的链路还可以工作。采用链路聚合后,逻辑链路的带宽增加了大约(n-1)倍,这里,n为聚合的路数。另外,聚合后,可靠性大大提高,因为,n条链路中只要有一条可以正常工作,则这个链路就可以工作。除此之外,链路聚合可以实现负载均衡。因为,通过链路聚合连接在一起的两个(或多个)交换机(或其他网络设备),通过内部控制,也可以合理地将数据分配在被聚合连接的设备上,实现负载均衡。
注:EtherChannel成功建立后会形成一个逻辑上的接口,表现在show run我们能看到一条“interface port-channel 2”的命令。当然我们没有什么命令会进入到port-channel下去配置,而是直接进入每一个物理接口上去配置。
EtherChannel说明:
①Cisco最多允许EtherChannel绑定8个端口;
1>如果是快速以太网,总带宽可达1600Mbit/s;
2>如果是Gbit以太网,总带宽可达16Gbit/s。
②EtherChannel不支持10M端口;
③EtherChannel编号只在本地有效,链路两端的编号可以不一样;
④EtherChannel默认使用PAgP协议;
⑤EtherChannel默认情况下是基于源MAC地址的负载平衡;
⑥一个EtherChannel内所有的端口都必须具有相同的端口速率和双工模式,LACP只能是全双工模式;
⑦channel-group接口会自动继承最小物理接口,或最先配置的接口模式;
⑧cisco的交换机不仅可以支持第二层EtherChannel,还可以支持第三层EtherChannel。
二,EtherChannel的链路协商
两台交换机之间必须通过协商,保证相连端口信息的一直行才能使EtherChannel成功建立。这些接口信息包括:端口的单/双工模式、端口速率,端口类型(以太口还是光口)、VLAN信息。在两台交换机之间协商链路聚合的协议有两种:PAgP (PortAggregation Protocol,端口聚集协议)和LACP(Link Aggregation ControlProtocol,链路汇聚控制协议)。
1,PAgP(PortAggregation Protocol,端口聚集协议)
1),PAgP概述
端口聚集协议(PAgP)是Cisco的专有协议,PAgP只在配置的静态VLAN或中继模式相同的端口上建立EtherChannel。如果被捆绑的端口发生变化,变化会传到聚合端口,相应的聚合端口也会发生变化。
2),PAgP的模式
①,开启模式(on):强制端口形成EtherChannel,且不使用PAgP(或者LACP),可以说on模式完全与LACP和PAgP无关。如果一端配置了on模式,对端也必须配置on模式。
②,关闭模式(off):强制端口形成EtherChannel。
③,被动模式(auto):使端口进入PAgP被动协商状态,本地端口不主动协商但如果接收到对端发出的PAgP报文,链路将建立EtherChannel。
④,主动模式(desirable):使端口进入主动协商状态,向对端发出PAgP协商报文,协商建立EtherChannel。
3),PAgP的silent和non-silent选项
在auto和desirable模式下都还支持2个选项:silent和non-silent,这里说明一下,有些较早版本的IOS不支持silent和non-silent特性。
silent:auto和desirable模式下能使用的默认关键字。PAgP有一种防止链路down的功能,接口通过接收EtehrChannel对端的PAgP报文来维持STP的运行,确保链路的非down状态。而采用关键字silent后,表示本地端口不希望接收到对端的PAgP帧,即不启用防止链路down的功能。这一关键字往往在连接不发出PAgP报文的设备时使用,如流量发生器。
non-silent:auto和desirable模式下能使用的关键字。non-silent状态下,表示接口希望接收对端的PAgP报文,防止链路down掉的功能启用。所以在两台支持PAgP的设备之间使用这个关键字是值得推荐的。
2,LACP(Link Aggregation Control Protocol,链路汇聚控制协议)。
1),LACP概述
基于IEEE802.3ad标准的链路汇聚控制协议(LACP)是一种实现链路动态汇聚与解汇聚的协议。LACP协议通过LACPDU(Link Aggregation Control Protocol Data Unit,链路汇聚控制协议数据单元)与对端交互信息。
在LACP协议中,链路的两端分别称为Actor和Partner,双方通过交换LACPDU报文,向对端通告自己的系统优先级、系统MAC、端口优先级、端口号和操作Key。对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够汇聚的端口,双方可以对端口加入或退出某个动态汇聚组达成一致。从而决定哪些链路可以加入同一聚合组以及某一条链路何时能够加入聚合组。按照802.1ad标准, LACP协议中,源地址应该是发送LACPDU信息的端口号的MAC地址,目的地址是一组播地址。
根据成员端口上是否启用了LACP协议,可以将链路聚合分为静态聚合和动态聚合两种模式,当然这是一中没有意义的分类,如果设备不支持PAgP的话还有一点点道理。
2),LACP的模式
开启模式(on):强制端口形成EtherChannel,且不使用LACP(或者PAgP),可以说on模式完全与LACP和PAgP无关。如果一端配置了on模式,对端也必须配置on模式。
关闭模式(off):强制端口形成EtherChannel。
被动模式(passive):使端口进入LACP被动协商状态,本地端口不主动协商但如果接收到对端发出的LACP协商报文,链路将建立EtherChannel。
主动模式(active):使端口进入主动协商状态,向对端发出LACP协商报文,协商建立EtherChannel。
3),LACP协商过程中使用的协商参数
系统优先级(system-priority):EtherChannel两端的设备都需要有一个系统优先级,可以默认生成(默认是32768)也可以手动配置。系统优先级与EtherChannel本地端接口的MAC地址组成系统ID。协商使用是系统ID,一般默认系统优先级都是32768,所以MAC地址较小的一段将充当LACP决策者决策者。系统优先级修改命令:
Switch(config)#lacp system-priority XX(1~65525,默认32768)
端口优先级(port-priority):EtherChannel两端的端口都需要有一个系统优先级,可以默认生成(默认是32768)也可以手动配置。端口优先级和端口号组成了端口ID,设备使用端口 ID来决定那些端口加入到EtherChannel,一般默认端口优先级都是32768,所以端口号较小的端口优先加入聚合链路(链路最多聚合8条)。端口优先级修改命令:
Switch(config-if)#lacp port-priorityXX(1~65525,默认32768)
操作Key(oper key):操作Key是在端口汇聚时,系统根据端口的配置(即速率、双工、基本配置等)生成的一个配置组合。配置组合中,任一项的变化都会引起Key值的重新计算对于同一聚合组来说,同组成员一定有相同的操作Key。
管理Key(admin key):在本地设备上,只有发出LACP报文中管理Key一致的接口才能被识别参与到聚合链路中来,让对端交换机知道自己哪几个接口是参与EtherChannel的。对于目前网络操作系统,IOS已经不再需要对管理Key做设置了。像其他网络操作系统,比如CatOS,RGOS(锐捷仿思科)等都有对管理Key做设置的命令,具体命令可参考设备产品手册。
4),实例说明LACP完整协商过程
如上图所示,交换机A和交换机B通过3个端口连接在一起。设置交换机A的系统优先级为61440,设置交换机B的系统优先级为4096。在交换机A,B的3个直连端口上打开LACP链路聚合,设置3个端口的聚合模式为主动模式,设置3个端口的端口优先级为默认优先级32768。在收到对端的LACP报文后,交换机B发现自己的系统ID优先级比较高(交换机B的系统优先级比交换机A高),于是按照端口ID优先级的顺序(端口优先级相同的情况下,按照端口号从小到大的顺序)设置端口4,5,6处于聚合状态。交换机A收到交换机B更新后的LACP报文后,发现对端的系统ID优先级比较高,并且把端口设置成聚合状态了,也把端口1,2,3设置成聚合状态了。
三,EtherChannel上的流量分配
在EtherChannel上的流量以确定的方式在捆绑链路之间分配,但不会是平均分配。EtherChannel上的流量分配是根据散列算法(位运算或XOR运算)来决定某一个报文使用哪一条链路。该算法可以使用元素有源IP地址、目标IP地址、源MAC地址、目标MAC地址和TCP/UDP端口号。一般是这些元素散列值(这样的二进制数0101001010…称为散列)的最后一位或多位。配置命令:
Switch(config)#port-channel load-balance?(注意:全局配置模式下)
src-ip ——源地IP址
dst-ip ——目的IP地址
src-dst-ip ——源和目的IP地址
src-mac ——源MAC地址
dst-mac ——目的MAC地址
src-dst-mac ——源和目的MAC地址
src-port ——源端口号
dst-port ——目的端口号
src-dst-port ——源和目的端口号
四,配置聚合链路(EtherChannel)
1,选定接口
Switch(config)#interface range range gig 2/1 – 4 , gig 3/1 –4 //进入多个接口,注意命令中的空格
2,设置协商协议
Switch(config-if)#channel-protocol {lacp| pagp} //选择协商协议
3,设置EtherChannel模式
Switch(config-if)# channel-group 10 mode {active | auto |desirable | on | passive} //配置这些接口都进入组号为10聚合链路且配置模式
active Enable LACP unconditionally
auto Enable PAgP only if a PAgP device isdetected
desirable Enable PAgP unconditionally
on Enable Etherchannel only
passive Enable LACP only if a LACP device isdetected
4,设置流量分配方式
Switch(config)#port-channel load-balance dst-ip
说明:前文着重说明PAgP和LACP的技术细节,但PAgP和LACP毕竟仅仅是EtherChennal的协商协议而已。上文中的一些详细的配置命令(PAgP命令的关键字silent和non-silent以及LACP的细节命令)或许由于操作系统种类,操作系统版本的原因其实在实际操作中使用不多。
5,EtherChannel的查看命令
Switch#show etherchannelsummary //查看EtherChannel信息
Switch #show etherchannelload-balance //查看EtherChannel负载平衡方式
Switch #show etherchannelport-channel //查看指定的EtherChannel包含的接口
Switch #show etherchannelprotocol //显示各个Channel-group使用的协商协议
参考文献:
《Configuring LACP(802.3ad)Between a Catalyst 6500/6000 and a Catalyst4500/4000》Document ID: 19642 by www.cisco.com
《EtherChannel(PAgP、LACP)基本配置》by http://blog.sina.com.cn/ylyne
《CCNP SWITCH 642-813 Official Certification Guide》by David Hucaby (CCIE 4594)
《Building Cisco Multilayer Switched Networks (BCMSN)》 by Richard Froom(CCIE #5102), Balaji Sivasubramanian, Erum Frahim(CCIE#7549).
《RG-S5750系列交换机RGOS 10.3(5)版本配置手册》福建星网锐捷网络有限公司2010