马素刚
(西安邮电大学 计算机学院,西安 710121)
随着互联网服务领域的不断拓展,视频点播、网络电话等对网络带宽提出了更高的要求,原有网络的带宽可能无法满足各种服务进一步发展的需要。对网络设备进行升级是解决网络带宽瓶颈最直接的方法,但需要增加更多的成本。在必须更换设备前,链路聚合技术可以作为一种过渡性的解决方法。链路聚合技术[1]是将多条物理链路聚合成一条逻辑链路使用,网络数据流量由逻辑链路中的所有物理链路共同承担。EtherChannel(以太通道)是Cisco公司开发的一种链路聚合技术,它把多个物理端口进行绑定,形成一个逻辑端口。聚合以后形成的单条链路带宽是所有物理链路的带宽总和。这一技术充分利用了现有的端口来增加可用带宽。
目前,有两种用于协商以太通道的协议,即PAgP(Port Aggregation Protocol,端口汇聚协议)和LACP(Link Aggregation Control Protocol,链路汇聚控制协议)。PAgP是Cisco的专有协议,而LACP是基于业界标准802.3ad的协议。
PAgP协议可以运行于Cisco设备或其他授权厂商的设备之上,通过在端口上交换分组来自动创建以太通道。PAgP通过检查链路两侧端口参数,动态地将参数一致的端口组合为一个逻辑链路,并且帮助通道适应链路失效或增加[2]。PAgP能够防止由于通道配置不当所致的STP环路或数据包丢失。PAgP协议有4种工作模式,即开启(On)、关闭(Off)、自动(Auto)和企望(Desirable)。
1)On:端口总是被捆绑成一个以太通道,这些端口对PAgP数据包不进行处理,因此并没有发生协商。这种模式要求链路两侧以太通道都工作于On模式。
2)Off:这种模式下禁止端口形成以太通道。
3)Auto:端口进入被动协商状态,不会主动发起协商。如果端口接收到PAgP数据包,将开始协商形成以太通道。Auto是默认的工作模式。
4)Desirable:端口主动发送PAgP数据包,与对方协商形成以太通道。配置PAgP协议时,推荐使用Desirable工作模式。
PAgP各种工作模式的协商规律如表1所示,表中“√”表示能够协商成功,“×”表示协商不成功。
表1 PAgP协商规律
LACP协议是各厂家均支持的标准协议[3],其功能与PAgP类似。LACP协议也具有4种协商模式,即开启(On)、关闭(Off)、被动(Passive)和主动(Active)。
1)On:强制端口形成以太通道,并且不使用LACP。On模式下,如果希望以太通道协商成功,链路两侧必须同时处于On模式。
2)O ff:工作于该模式下的端口将被禁止加入以太通道。
3)Passive:类似PAgP协议的Auto模式,这种模式的端口不会主动发起EtherChannel协商。如果端口接收到LACP数据包,将会协商形成以太通道。这种模式是LACP的默认工作模式。
4)Active:类似PAgP的Desirable模式,这种模式的端口主动发送LACP数据包协商形成以太通道。配置LACP协议时,推荐使用这种模式。
LACP的协商规律如表2所示,表中“√”表示能够协商成功,“×”表示协商不成功。
表2 LACP协商规律
EtherChannel在提供高带宽的同时,还具有冗余容错和负载均衡能力。
当汇聚链路中的一条或多条链路发生故障失效后,EtherChannel会自动将数据流量重新分配到剩余的链路中,继续进行数据流量的转发。这种自动恢复所需要的时间非常短,对于网络应用和最终用户都是透明的,不会造成明显的连接损失[4]。
以太通道技术支持跨越多个端口的流量负载均衡。当数据包被转发时,管理员可以根据网络的实际情况使用不同的负载均衡方法来实现数据包从不同的端口转发。
在以太通道中,各条链路可以根据源IP地址、目标IP地址、源MAC地址和目标MAC地址等多种方式进行负载均衡。使用这种方式可以保证通道中的所有链路都被利用,但不保证所有端口的利用率相同。实现负载均衡的方法是,以数据包中的地址为参数,采用某种散列(Hash)算法,把算法执行的结果与某条链路关联。
在交换机之间通过EtherChannel捆绑了多条链路后,默认执行基于源MAC的负载均衡[5]。当数据包转发到以太通道上时,会根据进入数据包的源MAC地址,在通道内的多个端口之间进行分配。因此,来自不同主机的包使用通道内的不同端口,而来自相同主机的包则使用通道内的同一端口,以此来实现负载均衡。管理员只能改变EtherChannel负载均衡方式,但无法改变每条物理链路上的流量比例。
使用Catalyst 3550交换机2台(S1、S2)、PC机4台(PC1、PC2、PC3、PC4)搭建如图1所示网络。正确配置PC机的网络参数,确保4台PC处于同一个局域网中。在交换机S1、S2之间,四个端口(f0/1-4)分别用交叉线直接互连,配置以太通道。PC1、PC2位于VLAN 2中,PC3、PC4位于VLAN3中。
图1 网络连接拓扑图
正确连接网络后,如果没有配置EtherChannel,STP[7](Spanning Tree Protocol,生成树协议)使得交换机S1、S2之间只能有一条链路工作。此时用ping命令测试可以看出,4台计算机之间可以相互通信。
配置EtherChannel后,位于交换机S1、S2之间的4条链路可以同时工作,4台计算机之间也可以相互通信。用命令“show interfaces port-channel 1”能够查看汇聚生成的逻辑端口的信息(例如:带宽);用命令“show spanning-tree”可以看出,STP已经把4条物理链路当作一条逻辑链路来处理。断开以太通道中的某些物理连接后,用ping命令测试的结果显示,只要通道中还有物理链路存在,就不会影响PC机之间的连通性。
配置VLAN[8](Virtual Local Area Network,虚拟局域网)时,将捆绑后的以太通道看作了一条带宽更高的链路使用,这里把该链路配置为trunk链路。此时,位于VLAN2的PC1、PC2可以通信,位于VLAN 3的PC3、PC4可以通信。但是,位于不同VLAN的PC机之间不可相互通信,即PC1(或PC2)与PC3 (或PC4)之间不能通信。
以上测试过程说明,EtherChannel技术能够充分利用已有端口提高链路带宽,同时能够实现链路的冗余容错和负载均衡。搭建的网络拓扑及配置过程比较简单,但是对于EtherChannel技术在网络骨干部分的部署具有一定的现实指导意义。
[1] 罗红艳.链路聚合技术在PTN网络中的应用探索.科技经济市场[J],2011,(9):3-5.
[2] Richard Froom,Balaji Sivasubramanian,Erum Frahim,著.刘大伟,袁国忠,译.CCNP自学指南:组建Cisco多层交换网络(BCMSN)(第2版)[M].北京:人民邮电出版社,2004.
[3] 郑涛,郭裕顺.基于LACP协议的链路聚合状态机模块的实现.计算机系统应用[J],2010,19(5):104-108.
[4] 李晓忠.利用以太网通道技术实现线路热备.计算机时代[J],2011,(3):18-19.
[5] 姜丹丹.路由与交换技术实战入门与提高[M].北京:科学出版社,2012.
[6] 吴建胜.路由交换技术[M].北京:清华大学出版社,2010.
[7] 刘杰,武贵路,周涛,黄术东,凃朴.支持流量检测的EPA网桥STP协议研究与实现.制造业自动化[J],2011,33(4):51-53.
[8] Andrew S. Tanenbaum,David J. Wetherall,著.严伟,潘爱民,译.计算机网络(第5版)[M].北京:清华大学出版社,2012.