1.3 交换机链路带宽倍增
所谓带宽倍增,是指在现有网络设备和物理链路的基础上,通过采用链路汇聚技术,将2~8条物理链路绑定在一起作为一个逻辑链路,从而实现设备间的连接带宽成倍增加,并实现连接冗余的技术。
1.3.1 链路带宽倍增的必要性
一方面,虽然借助STP技术,可以保证网络内既有冗余链路,又不至于产生拓扑环,从而在很大程度上提高了网络的稳定性和可用性。但是,由于在两条或两条以上的物理链路中只有一条链路被激活并使用,而其他链路则都处于备用和闲置状态。如果这些链路同时启用,就会产生拓扑环,使网络陷入瘫痪。可见,STP技术方案存在着一定的缺陷,即不能最大限度地利用现有的端口和链路,从而造成投资的浪费。
另一方面,由于百兆位和千兆位以太网技术已经非常成熟,无论是链路带是设备端口(特别是双绞线端口)的价格都非常便宜,因而被大量应用于各种规模的局域网络。但是,随着网络接入客户数量和网络应用(特别是多媒体技术和即时通信等应用)的不断增加,网络设备之间的连接带宽(尤其是交换机之间、交换机与服务器之间的连接)变得越来越捉襟见肘、不敷使用,因此,需要大幅提高设备之间的传输速率。将百兆位升级至千兆位,或者将千兆位升级至万兆位,无疑是一种可行的升级方案。但是,百兆位端口、千兆位端口和万兆位端口之间在价格上的差距无疑是明显的。
那么,有没有一种技术,既能够在设备间创建多条链路,同时,又能使这些链路同时启用,以尽可能地提高网络设备之间的连接带宽呢?当然,这就是链路汇聚技术。
链路汇聚(Multi Link Trunk,MLT)是指将多个交换机之间、交换机和路由器之间,以及交换机和服务器之间的并行链路同时使用,以增加设备间传输带宽的技术(如图1-18所示)。Cisco产品中称之链路汇聚(EtherChannel)。
图1-18 链路汇聚
借助链路汇聚技术,不仅可以将2~4条百兆位链路、千兆位链路绑定在一起,构建带宽高达800Mb/s、8Gb/s的Fast Ethernet和Gigabit Ethernet链路,从而以最廉价的价格实现类似于千兆位链路或万兆位链路的带宽,而且还可以将2~4条万兆链路绑定在一起,构建带宽高达80Gb/s的10Gigabit Ethernet,以进一步提高网络骨干的连接带宽。与此同时,还可以提供这些设备之间的连接冗余,满足带宽倍增和链路冗余的双重需求。
1.3.2 链路汇聚技术
使用端口聚合协议(Port Aggregation Protocol,PAgP)或链路汇聚控制协议(Link Aggregation Control Protocol,LACP)可以将交换机之间、交换机和路由器之间以及交换机和服务器之间的最多8条链路绑定在一起,叠加其传输带宽,消除骨干网络的传输瓶颈,实现网络冗余连接。
EtherChannel的作用有以下几点:
扩展网络带宽
对于10/100Mb/s端口而言,Fast EtherChannel(FEC)无疑是一种廉价的千兆位以太网解决方案;对于1000Mb/s端口而言,Gigabit EtherChannel(GEC)则成倍地增加了网络带宽,消除了交换机之间由于级联而产生的瓶颈,满足交换机之间以及交换机与服务器之间的大量数据交换;对于10Gb/s端口而言,10Gigabit EtherChannel提供了无与伦比的网络带宽,完全可以实现任何网络应用的无阻塞传输。
负载分担均衡
所谓负载分担,是指当交换机之间或交换机与服务器之间在进行通信时,端口聚合的所有链路将同时参与数据的传输,从而使所有的传输任务都能在极短的时间完成。线路占用的时间更短,网络传输的效率更高。同时,还可以根据网络传输的具体需求设置负载均衡的方式(包括源/目标端口、源/目标IP地址、源/目标MAC地址)。
线路冗余备份
所谓线路备份,是指当聚合链路的部分端口或连接出现故障时,并不会导致聚合链路连接的中断,非故障链路能够不受影响地正常工作,并承担所有失败链路的通信,从而增强了网络的稳定性和安全性。当然,此时的传输带宽将下降为保持正常的链路的带宽总和。
1.3.3 链路汇聚对布线和硬件设备的需求
由于链路汇聚技术是绑定2条以上的物理链路,因此,不仅要求EtherChannel两端设备均拥有空闲的、相同类型的端口,而且对于远程连接的设备而言,还需要拥有相应的空闲物理线路。因此,应当根据两端设备的端口和链路空闲情况,网络布线中的空闲线路,以及对网络带宽的实际需求进行综合考虑,以确定EtherChannel中应当容纳多少端口。
另外,不同类型的交换机能够提供的EtherChannel数量并不相同。因此,当需要为交换机的多个连接创建EtherChannel时,还应当遵循这一限制性规定。
对网络设备和布线的其他要求,参见前述“1.1.3 冗余链路对布线和交换机的要求”部分内容。
1.3.4 配置链路汇聚
使用PAgP或LACP协议,可以很容易地在有EtherChannel能力的端口间自动建立Fast EtherChannel、Gigabit EtherChannel和TenGigabit EtherChannel连接,实现数据通信与转发。LACP协议具有学习相邻端口组动态和信息的能力。PAgP是EtherChannel的增强版,支持在EtherChannel上的Spanning Tree和Uplink Fast功能,并支持自动配置EtherChannel捆绑。
提·示
只有在固定端口(如双绞线端口或光纤端口)之间才能创建EtherChannel,而由GBIC或SFP插槽所创建的链路是不能用于创建EtherChannel的。
1.EtherChannel配置准备
EtherChannel默认配置参数
EtherChannel默认配置参数如表1-7所示。
表1-7 EtherChannel默认配置
EtherChannel配置策略
EtherChannel配置策略和限制如下:
- 对于模块交换机而言,所有模块上的所有以太网接口都支持EtherChannel,不要求这些接口必须位于同一模块上并且相邻。对于堆叠交换机而言,EtherChannel不必来自于同一台交换机,只要是堆叠中的交换机即可。
- 必须将EtherChannel中的所有接口配置为相同的速率和双工模式,同时必须全部为二层接口或三层接口。GigaStack GBIC端口不能配置为EtherChannel成员。
- 不能将一个端口配置为两个以上EtherChannel组的成员。
- 不能将EtherChannel同时配置为LACP和PAgP模式。
- 不能将SPAN(Switched Port Analyzer,交换端口分析器)目的端口、安全端口和PVLAN(Private-VLAN)端口配置为EtherChannel。
- 必须启用EtherChannel中的所有接口。当一个接口处于down状态时,该链路将处于失败状态,相应的数据将从该EtherChannel中的其他链路传输。
- 对于三层EtherChannel而言,应当为port-channel逻辑接口指定IP地址,而不是为EtherChannel中的物理接口指定三层地址。
- 对于二层EtherChannel而言:
▷必须将EtherChannel中所有接口都指定至同一VLAN,或者将其全部配置为Trunk。
▷如果从Trunk接口配置EtherChannel,应当校验所有Trunk上的Trunk模式和本地VLAN是相同的。EtherChannel中的接口如果使用不同的Trunk模式或本地VLAN,将可能产生意想不到的结果。
▷作为Trunk的二层EtherChannel的所有接口必须拥有相同的允许VLAN列表。如果选择接口所允许的范围不同,将不能构建EtherChannel。
▷构建EtherChannel的接口应当拥有相同的STP路径开销、STP优先级和Post Fast配置。
- 配置EtherChannel之后,任何适用至port-channel接口的配置都将影响EtherChannel;而任何适用至物理接口的配置,则将只影响接口配置。例如,Storm Control(流量控制)不能在EtherChannel中的部分成员上配置,必须在所有端口配置。如果只在某些接口配置,将导致EtherChannel接口被丢失(置于挂起状态)。因此,需要在port-channel接口级别(而不是在物理接口级别)配置Storm Control。
- 只有当EtherChannel启用了端口安全时,启用端口安全的物理接口才能够加入二层EtherChannel,否则,CLI命令将被拒绝执行。
- 不能在EtherChannel中配置802.1X端口。
EtherChannel模式
EtherChannel LACP模式:
- active,激活接口的主动协商状态,通过发送LACP包与其他接口进行主动协商。
- passive,当侦测到LACP设备时,将只启用LACP。将端口置于被动协商状态,可以对接收到的LACP作出响应,但不能主动发送LACP包进行协商。该设置将发送最少的LACP包。
- on,将接口强行指定至Channel,无论是PAgP还是LACP。不过,只有当两个on模式接口组连接时,EtherChannel才可用。
提·示
LACP能够在支持IEEE 802.3ad协议的设备间创建EtherChannel。因此,当Cisco交换机与其他品牌的交换机之间创建端口汇聚时,应当首选LACP协议。
EtherChannel PAgP模式:
- Auto,将端口置于被动协商状态,可以对接收到的PAgP作出响应,但不能主动发送PAgP包进行协商。该设置将发送最少的PAgP包。
- Desirable,无条件启用PAgP。将接口置于主动协商状态,通过发送PAgP包,主动与其他接口进行协商。
- On,将接口强行指定至Channel,无论是PAgP还是LACP。只有两个on模式接口组连接时,EtherChannel才可用。
提·示
某些早期型号的交换机(Catalyst 3550和Catalyst 2950)和早期版本的Cisco IOS不支持LACP模式。因此,当在不同型号和不同Cisco IOS版本的交换机之间配置EtherChannel时,采用PAgP协议不失为一种好的选择。当然,由于LACP协议可以容纳更多的端口数量,因此,当相邻交换机都支持LACP时,应当尽量采用LACP协议创建。
EtherChannel构建模式
采用LACP协议时,以下几种模式可以构建EtherChannel:
- 一个接口为active模式,另一个接口为active或passive模式。
- 一个接口为passive模式,另一个接口为passive模式。
提·示
当采用LACP协议时,相邻接口均采用Active模式将确保能够创建EtherChannel。
采用PAgP协议时,以下几种模式可以构建EtherChannel:
- 一个接口为desirable模式,另一个接口为desirable或auto模式。
- 一个接口为auto模式,另一个接口为desirable模式。
提·示
当采用PAgP协议时,相邻接口均采用desirable模式将确保能够创建EtherChannel。
在不同型号的交换机之间创建EtherChannel时,本地交换机和相邻交换机推荐的EtherChannel模式如表1-8所示。
表1-8 Catalyst交换机推荐EtherChannel模式
2.EtherChannel限制
就支持EtherChannel的数量和端口而言,Catalyst 3750、Catalyst 3560、Catalyst 3550、Catalyst 2960和Catalyst 2950系列交换机与模块化交换机Catalyst 4500有一些差距。
- Catalyst 4500系列交换机最多可以配置64个EtherChannel。
- Catalyst 3750、Catalyst 3650和Catalyst 3550系列交换机最多可以配置48个EtherChannel。
- Catalyst 2960、Catalyst 2950系列交换机最多可以配置6个EtherChannel。
- PAgP EtherChannel最多可以容纳8个端口。
- LACP EtherChannel最多可以容纳16个端口。其中,8个端口被激活,8个端口处于备用状态。
3.创建EtherChannel
创建EtherChannel的配置过程如下:
第1步,进入全局配置模式。
Switch# configure terminal
第2步,选择欲配置为EtherChannel的物理接口或接口范围。PAgP EtherChannel组可以容纳8个(4对)同一类型和速度的端口。LACP EtherChannel组最多可以容纳16个(8对)相同类型的端口,其中8个(4对)活动端口,以及最多8个(4对)备用端口。
Switch(config)# interface interface_id
或者
Switch(config)# interface range interface-range
第3步,(可选)确保没有为该接口指定IP地址。
Switch(config-if)# no ip address
第4步,(可选)将指定端口设置为二层访问端口或Trunk端口。如果端口已经是二层访问接口或Trunk端口,则不必执行该操作。
Switch(config-if)# switchport mode {access vlan vlan_id | trunk}
第5步,(可选)指定采用何种协议构建EtherChannel。PAgP是Cisco专有协议,LACP是IEEE 802.ad标准协议。因此,若欲在Cisco Catalyst交换机之间创建EtherChannel,不妨选择PAgP;若欲在不同品牌的交换机之间创建EtherChannel,则应当选择使用LACP协议。
Switch(config-if)# channel-protocol {lacp | pagp}
第6步,将接口指定至EtherChannel组,并指定PAgP或LACP模式。EtherChannel端口组的取值范围为1~48。PAgP协议只支持auto和desirable模式。LACP模式只支持active和passive模式。
Switch(config-if)# channel-group port-channel-number mode {{auto | desirable| {active | passive}}
第7步,(LACP模式可选)指定LACP端口优先级,取值范围为1~65535,默认值为32768。较高的数字意味着较低的优先级。
Switch(config-if)# lacp port-priority priority_value
第8步,返回特权配置模式。
Switch(config-if)# end
第9步,查看并校验配置。
Switch# show running-config
第10步,保存配置。
Switch# copy running-config startup-config
配置示例
在Cisco Catalyst 4506的G2/17~G2/18与办公楼接入交换机之间创建Gigabit EtherChannel,作为channel-group 1,并设置为Trunk;在G2/19~G2/20与网络中心接入交换机之间创建Gigabit EtherChannel,作为channel-group 2。EtherChannel连接拓扑结构如图1-19所示。
图1-19 EtherChannel连接拓扑结构
核心交换机配置如下:
Hexin_4506# configure terminal
Hexin_4506(config)# interface range gigabitethernet 2/17-18
Hexin_4506(config-if-range)# no ip address
Hexin_4506(config-if-range)# switchport mode trunk
Hexin_4506(config-if-range)# switchport trunk encapsulation dot1q
Hexin_4506(config-if-range)# channel-protocol pagp
Hexin_4506(config-if-range)# channel-group 1 mode desirable
Hexin_4506(config-if-range)# exit
Hexin_4506(config)# interface range gigabitethernet 2/19-20
Hexin_4506(config-if-range)# no ip address
Hexin_4506(config-if-range)# switchport access vlan 2
Hexin_4506(config-if-range)# channel-protocol pagp
Hexin_4506(config-if-range)# channel-group 2 mode desirable
Hexin_4506(config-if-range)# end
Hexin_4506#
网络中心接入交换机Catalyst 2960的Gigabitethernet 0/1和Gigabitethernet 0/2端口与核心交换机Catalyst 4506之间创建Gigabit EtherChannel,作为channel-group 2,并指定至VLAN2。Fastethernet 0/1~Fastethernet 0/24端口全部指定至VLAN2。扩展树采用默认的PVST+协议。网络连接拓扑结构如图1-20所示。
图1-20 网络中心接入交换机连接拓扑
配置如下:
Wangluo_2960# configure terminal
Wangluo_2960(config)# interface range gigabitethernet 0/1-2
Wangluo_2960(config-if-range)# switchport access vlan 2
Wangluo_2960(config-if-range)# channel-group 2 mode desirable
Wangluo_2960(config-if-range)# exit
Wangluo_2960(config)# interface range fastethernet 0/1-24
Wangluo_2960(config-if-range)# switchport access vlan 2
Wangluo_2960(config-if-range)# exit
Wangluo_2960(config-if-range)# end
Wangluo_2960#
办公楼接入交换机的Gigabitethernet 0/1和Gigabitethernet 0/2端口与核心交换机Catalyst 4506之间创建Gigabit EtherChannel,作为channel-group 2,并设置为Trunk。接口Fastethernet 0/1~Fastethernet 0/8指定至VLAN3,接口F0/9~F0/24指定至VLAN4。扩展树采用默认的PVST+协议。网络拓扑结构如图1-21所示。
图1-21 办公楼接入交换机连接拓扑
配置如下:
Bangong_2960# configure terminal
Bangong_2960(config)# interface range gigabitethernet 0/1-2
Bangong_2960(config-if-range)# switchport mode trunk
Bangong_2960(config-if-range)# channel-group 1 mode desirable
Bangong_2960(config-if-range)# exit
Bangong_2960(config)# interface range fastethernet 0/1-8
Bangong_2960(config-if-range)# switchport access vlan 3
Bangong_2960(config-if-range)# exit
Bangong_2960(config)# interface range fastethernet 0/9-24
Bangong_2960(config-if-range)# switchport access vlan 4
Bangong_2960(config-if-range)# end
Bangong_2960#
4.管理EtherChannel
从EtherChannel中移除接口
第1步,进入配置模式。
Switch# configure terminal
第2步,指定欲配置的物理接口或端口范围。
Switch(config)# interface interface_id
或者
Switch(config)# interface range interface-range
第3步,从EtherChannel中移除接口。
Switch(config-if)# no channel-group
第4步,退出配置模式。
Switch(config-if)# end
第5步,校验配置。
Switch# show running-config
第6步,保存配置。
Switch# copy running-config startup-config
移除EtherChannel
第1步,进入配置模式。
Switch# configure terminal
第2步,移除Channel接口。
Switch(config)# no interface port-channel port_channel_number
第3步,退出配置模式。
Switch(config-if)# end
第4步,校验配置。
Switch# show EtherChannel summary
第5步,保存配置。
Switch# copy running-config startup-config
1.3.5 负载均衡适用与配置
EtherChannel还具有负载分担和线路备份的作用。所谓负载分担,是指当交换机之间或交换机与服务器之间在进行通信时,EtherChannel的所有链路将同时参与数据的传输,从而使所有的传输任务都能在极短的时间内完成。这样线路占用的时间更短,网络传输的效率更高。所谓线路备份,是指当部分EtherChannel链路出现故障时,并不会导致连接的中断,其他链路将能够不受影响地正常工作,从而增强了网络的稳定性和安全性。
负载均衡的配置过程如下:
第1步,进入全局配置模式。
Switch# configure terminal
第2步,配置EtherChannel负载均衡。
src-mac指源MAC地址;dst-mac指目的MAC地址;src-dst-mac指源和目的IP地址;src-ip指源IP地址;dst-ip指目的IP地址;src-dst-ip指源和目的IP地址;src-port指源第四层端口;dst-port指目的第四层端口;src-dst-port指源和目的第四层端口。其中,dst-mac基于进入包的目的主机的MAC地址进行负载分配。在EtherChannel中,发送至同一目的主机的包被转发至相同端口,不同目的主机的包被发送至不同的端口。src-mac基于进入包的源MAC地址进行负载分配。在EtherChannel中,来自不同主机的包,使用不同的端口;来自于同一主机,则使用同一端口。
Switch(config)# port-channel load-balance {src-mac | dst-mac | src-dst-mac | src-ip | dst-ip | src-dst-ip | src-port | dst-port | src-dst-port}
第3步,退出全局配置模式。
Switch(config)# end
第4步,校验配置。
Switch# show EtherChannel load-balance
第5步,保存配置。
Switch# copy running-config startup-config
配置示例
在汇聚交换机与核心交换机之间,可以采用基于源MAC地址(或源IP地址)的方式实现EtherChannel的负载均衡,从而使不同计算机借助不同的链路访问核心交换机和服务器。
Switch# configure terminal
Switch(config)# port-channel load-balance src-mac
Switch(config)# end
Switch#
在核心交换机与服务器汇聚交换机之间,则可以采用基于目的端口(或目的IP地址)的方式实现EtherChannel的负载均衡,从而使得对不同应用服务器的访问借助不同的链路。
Switch# configure terminal
Switch(config)# port-channel load-balance dst-port
Switch(config)# end
Switch#