概述:

    堆叠技术分为硬堆叠和软堆叠2种。硬堆叠技术采用专用的堆叠线及堆叠接口以实现堆叠效果;软堆叠通常利用千兆端口,以软件的方式实现堆叠。

    该文档介绍的堆叠技术指的是硬堆叠,包括3750中的StackWise技术以及2960中的FlexStack技术,主要被应用于接入层、汇聚层。


1.概述

1.1 堆叠技术带来的好处

便于管理

    传统接入网络架构拓扑如图1.1所示,在该网络中,管理员需要管理4台相互独立的设备,而随着接入模块的增多,其管理任务也将相应增大。这种增大不仅体现在需管理设备的数量上,同时也使得网络拓扑变得更为复杂。

StackWise & FlexStack技术概述_3750

图1.1传统网络架构拓扑

 

    当接入层设备采用堆叠技术后,如图1.2所示,网络中需要管理的设备从4台减少到了3台。由于堆叠技术支持多设备的堆叠(如3750支持最多9台设备堆叠,2960支持4台设备堆叠),当需要引入新的接入模块时,需管理员管理的设备数量并不会因此而增加,而且网络拓扑也不会发生改变。

StackWise & FlexStack技术概述_StackWise_02

图1.2接入层堆叠

 

    堆叠组一旦构建,设备的接口编号将发生改变。如图1.2中,假设为2台2960-S堆叠,堆叠组形成后,第一台接口编号为G1/0/X,第二台接口编号为G2/0/X。如有多台设备堆叠,以此类推。

    当接入层和汇聚层都采用堆叠技术后,如图1.3所示,网络拓扑得到了进一步的简化,待管理的设备从4台减少到了2台。再加之EtherChannel技术的引入,生成树也被消除了,这使得逻辑拓扑也变得非常简单。

StackWise & FlexStack技术概述_2960_03

图1.3接入层、汇聚层堆叠

 

冗余及高可靠性

    堆叠技术把多台物理交换机在逻辑上组成为1台交换机,并能够允许跨交换机建立EtherChannel,这使得网络在具备冗余的同时能够充分利用上联链路。

    如在图1.3中,当汇聚层与接入层都采用堆叠技术后,4台交换机被虚拟化为了2台,由于消除了生成树环路,接入层交换机与汇聚层交换机间的EtherChannel链路能够提供非常良好的负载,充分利用各条链路带宽。

    此外,堆叠组中的一台设备出现故障,对整个堆叠组其它成员不会造成影响。


可扩展性

    堆叠组内可以随时增加或移除组成员而不会从功能上对其它成员造成影响。此外,组成员的增加或移除还不会影响网络的逻辑拓扑,依然可以保证其简单、冗余的特点。

 

1.2 堆叠组的构成

术语

  • Stack Member:

       堆叠组中的每台设备都是stack member。

  • Master:

       从stack member中选举1台为master,实现控制、管理层面的功能。

  • Switch Number:

       stack组中每台设备都会有1个编号以作为stack member区分标识。

       默认取值为1,stack member有选取尽可能小的switch number的趋势。

       该编号还将决定设备的端口编号,如switch number为3,则对应端口编号为G3/0/X、

  • Stack Priority:

       用于Master选举,越大越优。

       范围1-15,默认取值为1。

概述

    如图1.4所示,几台设备堆叠后,就如同一台高端口密度的交换机。堆叠组内选取一个master,主要负责控制层面的信息处理,就好比是高端交换机中的supervisor;而其他组成员就好比是高端交换机中的I/O modules,主要负责数据层面的data转发。

StackWise & FlexStack技术概述_StackWise_04

图1.4堆叠效果


Master做什么

  • 对堆叠组而言

       ①同步设备配置。

       ②监控并同步各个member状态信息。

       ③StackWise技术应用的可路由设备中,下发routing-table、forwarding-table、QoS策略等三层信息。

  • 对管理员而言

       ①提供CLI窗口,无论接到哪台stack member中,实际上都是对master进行操作。

       ②提供telnet、ssh等远程登录。

  • 对网络其它设备而言

        其它网络设备在控制层面,实际上直接与master进行交互。


Slave做什么

    接受master的管理,履行数据转发层面的工作。




2.堆叠的实现

2.1 Master选举

何时选举

  • Master发生改变

       Master故障或从堆叠组中被移除。

       Master被重启。

       堆叠组被重启。

  • 有master设备加入到当前堆叠组中

        既然是master,该设备是在已开机选举完毕,带电的情况下加入到当前堆叠组中的。

 

何时不选举

  • 有Slave从堆叠组中退出

  • 设备在连接到堆叠组后开机加电

        设备开机加电时,会有一个约2 minutes的election window。在此时间段内如果检测到已存在master,当前设备则只能成为slave;否则,则会通过选举规则选出master。

 

选举规则

  • 堆叠组中已有master

       该条规则仅适用于新加入堆叠组并加电的设备。

  • Stack Priority

       取值1-15,越大越优。

  • 配置文件

       有配置文件的优于无配置文件的,新出厂交换机未执行write或copy run start命令时,本地是没有配置文件的。

  • 开机时间

       开机时间越长的越优。

  • MAC地址

       MAC地址越小越优。

 

配置继承关系

    在可堆叠设备中,配置应当被认为是隶属于整个堆叠组的。特殊情况是只有1台设备构成堆叠组。

  • 涉及到整个堆叠组的变迁:当堆叠组A加入到堆叠组B时,如果选举出的master依然在堆叠组B中,则堆叠组A将被重启并继承堆叠组B的配置。

  • 堆叠组内成员的调整:当堆叠组A中的master由于特殊原因而放弃该角色时,新选举出的slave将依然继承原有的配置。


案例

  • 设备加入堆叠组后加电

        设备通过堆叠线缆,接入某个已经在运作的堆叠组后,加电开机。

        设备检测到已存在master,自己只能成为slave。

        设备以slave身份参与堆叠组的工作。

  • master运行后加入堆叠组

        设备带电运行并在其堆叠组内为master。

        设备在带电运作情况下,通过堆叠线缆加入到新的堆叠组中。

        Master选举被触发,根据选举规则选出新的master。

        放弃master身份的那整个堆叠组被重启,并都成为胜出堆叠组的内的slave设备。

 

2.2 StackWise与FlexStack的比较

    首先,FlexStack技术是基于StackWise开发的。两者最大的差别在于:

    FlexStack技术中,packet沿堆叠链路传输是hop-by-hop这种形式的,每台设备收到packet时,都要端口上将packet加入到传输队列,且该队列受到QoS的影响。Packet在FlexStack中,传输到目标设备后就不再继续转发。当有某条stack链路故障时,故障2端的设备都只有half的堆叠带宽,但是其它设备堆叠带宽依然是full。

    StackWise技术中,所有stack member构成的ring可以被看成是一个整体,一个环形轨道。packet一旦进入轨道,将沿轨道绕行,不受制于QoS影响,packet沿途被需要的设备复制取下,并继续传递。通常情况下, packet传递回起始设备后才会被移除。当有某条stack链路故障时,整个stack带宽降到half。


2.3 StackWise & StackWise Plus

    与StackWise相比,StackWise Plus的优势主要体现在数据包转发效率的提升上。该技术只在3750-E以及3750-X中支持,如果这些设备与只支持StackWise的设备堆叠,将只能以StackWise方式工作。StackWise Plus主要的优势如下:

  • Destination stripping

StackWise & FlexStack技术概述_3750_05

图2.1 destination stripping说明

 

    在StackWise中,采用的是一种source stripping技术。如有一个packet需要从switch 1发送到switch2,switch 1将packet复制发送到ring上,packet将沿着ring一直传递,即便中途已经被switch 2按需获取到了,该packet也必须绕ring一圈回到switch 1后,才会终止对stack cable带宽的占用。

    StackWisePlus采用destination stripping技术,同样的案例,当switch 2收到packet时,直接“取下”此packet,释放带宽,而不用packet再回到起点。

    注意:

        对于broadcast以及multicast的流量,由于可能有多台交换机需要,因此在StackWise Plus中对这类流量依然采用source stripping方式。

  • Local switching

StackWise & FlexStack技术概述_2960_06

图2.2local switching说明

 

    在StackWise中,即便由同一台设备接收并转发的出去的packet,也要走一圈ring回来再被转发出去;而StackWise Plus则能做到本地接收直接从本地转发,无需占用ring的带宽。

 



3.堆叠的部署

3.1 IOS限制

  • IOS版本必须一致

        IOS版本号影响stack protocol的版本,stack protocol是stack members之间交互的协议,stack的部署要求stack protocol版本必须一致。

  • IOS feature set必须一致

        LAN Base:提供基础二层功能。

        IP Base:提供基础三层功能。

        例如,2960-XR使用的是IP Lite的feature,而2960-X、2960-S都不能使用这一的feature,这将导致2960-XR无法与2960-X、2960-S堆叠使用。


3.2 物理连接

    StackWise堆叠线的连接要求构成一个ring topology,此时交换机间通过堆叠线传输的速率能够达到最大。而一旦其中有一条堆叠线故障,闭环被打破,在StackWise技术中传输速率降为full值的一半。

    在FlexStack中,是以每一跳设备为对象进行考虑的,连接成ring topology时,每台设备都具有双向通路,每台设备可利用的堆叠带宽都达到最大。而当其中一条堆叠线路故障时,只有仍具有双向连接的设备具有full speed。

StackWise & FlexStack技术概述_2960_07

图3.1环形拓扑双向通路

 

2台设备连接方式

    ①->②->①构成环

StackWise & FlexStack技术概述_StackWise_08


StackWise & FlexStack技术概述_3750_09

 

3台设备连接方式

    ①->②->③->①构成环

StackWise & FlexStack技术概述_StackWise_10


7台设备连接方式

    ①->③->⑤->⑦->⑥->④->②->①构成环

StackWise & FlexStack技术概述_FlexStack_11

       注意:

              Stack的连接方式并没有严格的限制,但是需要连接成环形拓扑。

 

3.3 部署

构建一个新的stack组

    方案一:设定各个设备的priority,诱发master竞选,确保高priority胜出。

  • 设定各设备的priority

        将欲指定为master的设备配置较高的优先级,其它设备配置较低优先级。

  • 保存配置关机

  • 设备上架,连接堆叠线缆

  • 各设备逐台开启

        这里设备开启时间上务必尽可能同步。

  • 校验

 

    方案二:适用于需要给升级IOS的情况。

  • 设定各设备priority,保存配置关机

  • 设备上架

        此时不连接堆叠线缆

  • 先升级欲成为master设备的IOS,重启

        先升级完并重启后,使得该设备由于没有检测到其它member,直接成为master。

  • 升级第二台设备并重启

  • 连接堆叠线缆,将第二台设备加入堆叠组

        在第二台设备重启过程中连接堆叠线缆,使得该设备由于检测到“堆叠组内已有master”而自动成为slave。

  • 后续设备相同步骤

  • 校验


加入1台设备成为slave

  • 设定priority

        设定欲成为slave设备的优先级低于现有堆叠组内master设备。

  • 保存配置关机

  • 设备上架,连接堆叠线缆

        此时不要给设备上电。

  • 开机运行

        当前设备由于检测到堆叠组内已经有了master,直接成为slave。

        由于还配置了priority,即便触发了master竞选,该设备也无法胜出。

  • 校验

 

    注意:

        成为slave的设备将放弃原有的配置,而与堆叠组保持一致。


移除1台slave

  • 删除相关配置、provision

        硬件上设备被移除时,与其相关的配置文件实际上还是保存在stack组内的,彻底的删除要求与其相关的配置也被清除。

  • 设备断电及线缆移除

        这里的线缆包括堆叠线的移除以及调整。

  • 设备下架

  • 校验

 

替换1台slave

  • 旧设备断电及线缆移除

  • 设备下架

  • 新设备上架

  • 线缆连接及加电运行

  • 校验

 

    注意:

        即便是将1台2960-X替换为2960-S,相关的配置文件还是会被顶替的设备继承。需要注意的是,替换设备的端口数量最好与之前的设备保持一致,否则可能会有部分端口配置丢失。


3.4 配置

Stack Provision

  • 概述

        通常情况下,操作人员需要等到堆叠组构建完毕后才能对其它组成员所属接口进行相关配置。

        Stackprovision使得多台设备在还没有构成堆叠组之前,就能够在master上进行预配置,一旦其它slaves加入到堆叠组中,这些预配置就会在组成员中生效。

        例如:在1台3750-X上进行provision配置,指定共有3台3750-X进行堆叠时,该设备上就会相应地出现G1/0/X、G2/0/X、G3/0/X这些端口,并能对这些端口进行配置。

        如果进行预配置的设备无法成员master,则根据配置继承原则,该设备将放弃这些配置而接受新加入堆叠组的配置。因此,provision配置在希望成为master的设备上才是有意义的。

  • 术语

        Provisionedconfiguration——由管理员offline添加的配置,这个操作是在期望成为master的设备上进行的,该设备加入其它stack后如果无法成为master,provisionedconfiguration便不会被应用。

        Provisionedswitch——加入stack并接受provisionedconfiguration的交换机为provisioned switch。

  • 配置

    ①创建provision组成员

        Switch(config)#switch<number> provision <switch-type>

        注意:

            switch-type可以通过show version命令查看。


        示例:

            3台交换机进行堆叠时,在期望成为master的设备上进行如下预配置

            交换机一  ws-c3750g-12t

            交换机二  ws-c3750g-24ts

            交换机三  ws-c3750g-48ts

 

            switch1 provision ws-c3750g-12t

            switch2 provision ws-c3750g-24ts

            switch3 provision ws-c3750g-48ts

    ②检查

        Switch#show switch            //此时在CurrentState栏可看到状态为“Provisioned”

        Switch#show ip interbr

    ③对新出现的端口进行配置


Stack Member Numbers

  • 概述

        未进行配置时,设备默认number为1,交换机加入到stack组中时,如果出现number与组内设备重复的情况,将放弃原有number,自动选取可用number中最小的。

  • Master & stack membernumber

        ①Master与stack member number间没有必然关系,但是通常情况下master的number为1。

        ②当slave通过竞选成为master时,它原有的stack member number不会改变

  • 修改stack member number

        Switch(config)# switch<current-number> renumber <new-number>

        Switch# reload slot<current-number>

        Switch#show switch

 

Stack Priority

  • 概述

        默认优先级为1,可配置优先级从1-15,越大越优。

        优先级的修改主要用以影响master选举,立即生效,但修改的效果将在下一次master election中体现。

  • 配置

        Switch(config)#switch<number> priority <pri-value>

        Switch#show switch


配置保存

       Switch#copyrunning-config startup-config           //不能使用write命令


查看命令

  • 检查堆叠组摘要信息

        Switch#show switch

StackWise & FlexStack技术概述_3750_12


  • 检查堆叠端口情况

        Switch#show switch neighbors

StackWise & FlexStack技术概述_3750_13


            图中为每台设备端口对端连接的设备number。

        Switch#show switchstack-ports

StackWise & FlexStack技术概述_3750_14

            该命令主要查看对端端口线缆连接情况,OK表示已经连接,DOWN则表示线缆故障或未连接。

  • 检查堆叠带宽

        Switch#show switchstack-ring speed

StackWise & FlexStack技术概述_2960_15

StackWise & FlexStack技术概述_StackWise_16


  • 检查Stack Protocol版本

        Switch#show platformstack manager all

StackWise & FlexStack技术概述_FlexStack_17




参考文档:

  • Cisco官方文档《Creation and Management ofCatalyst 3750 Switch Stacks》

  • Cisco官方文档《Cisco Catalyst 3750-E SeriesSwitches Q&A》

  • Cisco官方文档《Cisco StackWise and StackWise PlusTechnology》

  • Cisco官方文档《Catalyst 3750 Switch HardwareInstallation Guide》

  • 博客《Stacking Cisco 3750 switches》:

    http://www.brandontek.com/cisco/stacking-cisco-3750-switches/

  • Cisco官方文档《Cisco Catalyst 2960-S, 2960-X, and2960-XR Stacking with FlexStack and FlexStack-Plus Technology: Description,Usage, and Best Practices》