堆叠与集群

堆叠和集群

堆叠(iStack),将多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上虚拟成一台交换设备,作为一个整体参与数据转发。

集群(Cluster Switch System,CSS),将两台支持集群特性的交换设备组合在一起,从逻辑上组成一台交换设备。

堆叠集群的优势: 相比于传统的组网技术(STP+VRRP),不仅提高了链路利用率,获得更高的转发性能,链路带宽,同时方便管理,降低故障导致的业务中断时间。

堆叠实现原理

堆叠系统中根据交换机的功能不同,分为了主交换机备交换机从交换机三种角色。

  • 主交换机:负责管理整个堆叠,一个堆叠系统中只有一个主交换机。
  • 备交换机:主交换机的备份,同样只有一台。当主交换机故障时,接替主交换机的业务。
  • 从交换机:用于业务转发,从交换机数量越多,堆叠系统的转发带宽越大。当备交换机不可用时,从交换机承担备交换机的角色。

三种角色的分配是选举得来,机器的堆叠优先级数值越大,优先级越高,成为主交换机的概率更大。

堆叠ID

堆叠ID,交换成员的槽位号,堆叠中所有成员交换机的堆叠ID是唯一的

设备的堆叠ID默认为0,堆叠时由主交换机对设备的堆叠ID进行管理,当系统新加入的交换机的ID与已有的ID冲突,主交换机从0-最大ID中找到第一个空闲的ID分配给该交换机。

堆叠逻辑接口

堆叠逻辑接口用于建立堆叠,每台交换机支持两个逻辑堆叠接口:stack-port n/1和 n/2,n为交换机的堆叠ID。

一个逻辑堆叠接口可以绑定多个物理成员接口

本端设备的堆叠逻辑接口n/1必须和对端的m/2相连:

堆叠系统组建过程

组建过程分为四个阶段:物理连接、主交换机选举、拓扑收集并选举备交换机、软件和配置同步

物理连接

该阶段的工作是选择适当的连接方式和连接拓扑,组建堆叠网络

堆叠方式包括堆叠卡堆叠业务口堆叠两种方式:

堆叠连接拓扑包括链形连接环形连接两种:

主交换机选举

确定连接方式和连接拓扑后,所有成员交换机上电,开始选举主交换机。 选举规则如下:

  1. 先比较运行状态,已经运行的交换机比处于启动状态的交换机优先竞争主交换机。 主交换机选举的超时时间为20s,堆叠成员上电或重启时所耗时间不同,因此不是所有交换机都参与第一次选举
  2. 堆叠优先级高的交换机优先成为主交换机
  3. 优先级相同时,MAC地址较小者称为主交换机

拓扑搜集和备交换机选举

主交换机选举完成后,主交换机收集所有成员交换机的拓扑信息,并向所有成员分配堆叠ID,之后进行备交换机选举,选举规则如下:

  1. 除主交换机外,最先完成设备启动的交换机成为备交换机
  2. 若还有交换机同时完成启动,则比较优先级,优先级最高的成为备交换机
  3. 堆叠优先级相同时,MAC地址最小的成为备交换机。

配置同步

选举完主备交换机、完成拓扑收集后,所有的成员交换机会自动同步主交换机的系统软件和配置文件。

堆叠管理

堆叠系统的管理十分简便,登录任意成员的Console口即可管理整个堆叠系统;若与堆叠系统上的任意IP地址可达,还可以通过Telnet、Stelnet、SNMP等方式进行管理

配置文件

堆叠系统的匹配文件包括:

  • 全局配置:例如IP地址、STP、VLAN和SNMP等,适用于所有堆叠成员,新加入堆叠的交换机将使用系统的全局配置,同时离开系统时仍然使用该系统的配置,直到加入新的堆叠系统。

  • 接口配置:适用于接口所在成员交换机。接口上的配置和堆叠ID有关,当堆叠ID变化时:

    • 如果新ID在配置文件中不存在对应的接口配置,则新ID的接口配置使用默认配置
    • 如果存在对应的接口配置,则使用对应的配置

成员退出

  • 主交换机退出,备份交换机升为主交换机,重新计算堆叠拓扑并同步到其他成员机,重新指定新的备份机。

  • 备交换机退出,主交换机重新指定备交换机,重新计算堆叠拓扑并同步到其他成员机

  • 从交换机退出,主交换机重新计算堆叠拓扑并同步到其他成员机

    • 对于环形堆叠:成员交换机退出后,为保证网络的可靠性还需要把退出交换机连接的两个端口通过堆叠线缆进行连接。

    • 对于链形堆叠:拆除中间交换机会造成堆叠分裂。这时需要在拆除前进行业务分析, 尽量减少对业务的影响。

成员加入

将为上电的交换机连线加入堆叠系统后再上电,会被选举为从交换机,原有的主备角色不变。

角色选举结束后,主交换机更新堆叠拓扑信息并同步到其他成员交换机上,还要给新加入的交换机分配堆叠ID

  • 如果是链形连接,新加入的交换机建议添加到链形的两端,这样对现有的业务影响最小。

  • 如果是环形连接,需要把当前环形拆成链形,然后在链形的两端添加设备。

堆叠合并

两个堆叠系统合并成一个新的堆叠系统,称为堆叠合并

两个堆叠系统的主交换机通过竞争,选举出一个更优的作为新堆叠系统的主交换机,竞争成功的主交换机所在的堆叠系统保持原有的角色和配置不变;另外一个堆叠系统的所有成员将重启,以新成员的身份加入合并后的堆叠系统,后续流程和成员加入一样。

堆叠分裂

稳定运行的堆叠系统中带点移出部分成员交换机,或者堆叠线缆多点故障导致一个堆叠系统变成多个堆叠系统。

分裂根据主备所在系统分为两种场景:

分裂存在的问题:

由于堆叠系统中所有成员交换机都使用同一个IP地址(VLANIF接口地址)和MAC地址(堆叠系统MAC),一个堆叠系统分裂后,可能产生多个具有相同IP和MAC地址的堆叠系统,从而引起网络故障。

当堆叠系统的MAC地址是主交换机的MAC地址,主交换机故障或者离开堆叠系统,在默认情况下堆叠系统MAC地址会延时10分钟切换,即在10分钟内两个分裂的堆叠系统的MAC相同。

MAD检测

Multi-Active Detection(MAD,多主检测):一种检测和处理堆叠分裂的协议,链路故障导致堆叠系统分裂后,MAD可实现堆叠分裂的检测、冲突处理和故障恢复。

MAD的检测方式有直连检测和代理检测两种方式,两种方式互斥。

分裂后的堆叠系统通过MAD检测线缆(普通线缆,被配置为了MAD检测链路)发送检测报文进行竞选,竞选失败的堆叠系统关闭所有的物理端口(手动配置的保留端口除外),以保证不会发送IP、MAC冲突

  • 直连检测

堆叠成员交换机通过普通线缆直连的专业链路进行多主检测。在系统正常运行时,不发送MAD报文;系统分裂后,分裂后的交换机以1s为周期通过检测链路发送MAD报文进行冲突检测

通过中间设备的直连检测适用于成员交换机相距较远的场景,Full-mesh方式直连可以避免由于中间设备故障而导致MAD检测失败。

  • 代理检测

在堆叠系统Eth-Trunk上启用代理检测,在代理设备上启用MAD检测功能,要求堆叠系统中所有成员交换机与代理设备连接,并将这些链路加入同一个Eth-Trunk中,与直连检测相比,代理检测方式无需占用额外的接口,Eth-Trunk可同时运行MAD代理检测和其他业务。

在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。堆叠成员交换机对在正常工作状态下收到的MAD报文不做任何处理;堆叠分裂后,分裂后的两个堆叠系统以1s为周期通过检测链路发送MAD报文进行多主冲突处理

MAD冲突处理

MAD检测时会触发竞争机制,竞争结果有两种:Detect和Recovery,Dectect代表竞争成功,系统将处于正常工作状态,Recovery则表示竞争失败,将进入禁用状态,关闭除手动配置的保留端口外的所有物理端口。

MAD检测的竞争规则和主交换机的选举规则类似:

  1. 比较启动时间,启动完成时间早的堆叠系统竞争成功。启动完成时间差在20s内则认为启动完成时间相同。
  2. 启动完成时间相同,比较堆叠中主交换机的优先级,优先级高的竞争成功
  3. 优先级相同时,比较堆叠系统的MAC,MAC小的竞争成功。

堆叠升级

堆叠升级的方式有三种:

  • 智能升级:堆叠建立或者新的交换机加入堆叠时会自动和主交换机的版本进行同步
  • 传统升级:和普通设备升级一样,指定下次启动版本,重启整个堆叠系统进行升级,会造成较长时间的业务中断
  • 平滑升级:将堆叠系统分为active、backup区域,进行分区域升级,主、备链路分别处于active、backup区域,可实现业务的不中断

平滑升级的三个阶段:

  1. 主交换机下发命令触发整个堆叠系统进入平滑升级状态,backup区各个成员交换机以 新的系统软件进行启动

  2. backup区以新版本建立一个独立的堆叠系统,并通知active区进入升级阶段,主控权由active区的主交换机转移到backup区的主交换机,backup区负责流量传输,active 区进入升级过程

  3. active区以新系统软件重新启动并加入backup区的堆叠系统,backup区的主交换机根据最终堆叠建立的结果发布升级的结果

跨设备链路聚合

堆叠后的逻辑交换机,支持将Eth-Trunk的成员接口分布在不同的成员交换机上。

在上行链路出现故障时跨设备链路聚合技术能够通过堆叠线缆将流量负载分担到其他成员交换机上的成员接口,从而提高网络可靠性。一般配置双归接入都使用Eth-Trunk,负载分担的同时还可以避免环路问题。

流量本地优先转发

链路聚合的负载分担算法根据流量特征将报文分担在不同的成员链路上,对于跨设备的链路聚合,很有可能出现报文的出接口和入接口不在同一台成员设备上的情况,此时流量会通过堆叠线缆,增加了堆叠线缆的负担。

为了保证流量转发效率,设备可以开启流量本地优先转发,从本设备进入的流量优先从本地转发出去,当本设备无出接口或出接口故障,才会从其它成员交换机的接口转发出去。

集群实现原理

CSS和iStack的区别在于,一般框式交换机堆叠称为CSS,盒式交换机堆叠称为iStack

由于集群中只有两台交换机,集群中的交换机角色分为主交换机和**备交换备交换机

两台交换机使用集群线缆连接好,分别使能集群功能并配置完成,集群系统会自动建立

集群系统建立后,在控制平面上,主交换机的主用主控板成为集群系统的控制平面,作为整个系统的管理角色。备交换机的主用主控板成为集群系统的备用控制平面,作为系统的备管理角色

集群物理连接

  • 传统CSS:使用主控板上的集群卡建立集群连接,或者使用业务口建立集群连接

框内接口板之间流量、跨框流量必须经过主控板

  • CSS2:使用交换网板的集群卡方式建立集群连接

CSS2采用转控分离的构架,单框内接口板之间流量、跨框流量无需经过主控板。CSS2支持任意一个框式交换机内存在一个主控板运行正常,集群的两个框式交换机上的接口板都可以正常转发报文。

参考文章