一、背景
随着云计算技术的发展,大型企业都在部署自己的云数据中心,华为CloudEngine交换机是数据中心级交换机,它大量部署在数据中心中,实现网络大规模的数据转发和保障关键业务的连续性。华为CloudEngine交换机支持堆叠,可以提供设备级的高可用性,保障业务连续,以下我们介绍下华为的堆叠技术。
二、起源
在数据中心发展的初期,没有专门的数据中心交换机,整个数据中心的网络架构还是采用的园区网的三层架构,分别是接入、汇聚、核心,并且运行STP防环。随着数据中心访问量的增加,
传统的STP存在一些缺点:
链路利用率低,STP协议会阻塞链路;
STP网络的规模受限制,网络收敛时间长;
网络管理节点多,运维困难。
STP到今天也在园区网中广泛使用,但是到了数据中心网络中,数据访问流量巨大,更多的是追求高效,安全以及扩展性。这些STP都无法满足,于是设备虚拟化技术就应运而生。
三、堆叠
堆叠是最早的设备虚拟化技术,它将多台支持堆叠特性的设备逻辑上虚拟成一台设备。堆叠技术本质上是“合并”,它把管理平面、控制平面、转发平面都合并到了一起,对外呈现唯一的管理IP和MAC地址,对于下游设备而言就是一台设备。引入了堆叠之后整个拓扑就变得“高大上”,
堆叠的优点:
0
1
简化了组网
多台设备组建堆叠,虚拟成一台设备,只需要对这台逻辑的设备做管理即可。简化的组网不再需要运行STP等协议。
简化组网
0
2
提高可靠性
堆叠系统中的交换机互为冗余备份,同时还能实现跨设备的链路冗余备份,当堆叠系统中一台设备的上行链路故障,通过该设备的流量可经过堆叠链路进行转发。
提高可靠性
0
3
扩展带宽
交换机的上行带宽不足时,可以增加新交换机与原交换机组成堆叠系统,将交换机的多条物理链路配置成一个链路组,这样就提高了交换机的上行带宽。
扩展带宽
堆叠的应用带来了以上的好处,但是随着技术的发展,其局限性也越来越明显,这是由堆叠的本质所决定的,堆叠系统的成员交换机管理平面、控制平面、转发平面紧密耦合,
这导致了如下的问题:
控制平面单一: 堆叠系统中的主交换机控制管理着整个堆叠系统,一旦堆叠系统分裂,将造成业务中断。
升级复杂: 堆叠系统由于成员交换机间的紧耦合,只能是两台设备一起升级,升级失败将导致堆叠系统下所有业务网络中断。即使华为交换机有快速升级的方式,尽量减少了升级过程中业务中断,但是整个升级的过程仍然会有业务中断的风险。
在数据中心机房中针对不同的设备应用的堆叠技术稍有区别,大致分为了两类,盒式交换机的堆叠iStack,框式交换机的堆叠CSS。
3.1CSS
集群交换系统CSS,框式交换机的堆叠,CSS只支持两台交换机组建堆叠系统。那框式交换机如何组建堆叠?堆叠的连接方式是怎么样的?工作原理是怎么样的?在这之前有必要对框式交换机的架构有一定的了解,以CE12804为例,组成模块分为:
CE12804
CE12804机框槽位分布示意图
MPU:Main Processing Unit,,简称:主控板,负责系统的控制和管理工作。
SFU:Switch Fabric Unit,交换网板,负责系统数据平面的数据线速交换。
CMU:Centralized Monitoring Unit,简称:监控板,主要提供设备的监控、管理和节能减排功能。
LPU:Line Processing Unit,,简称:业务板,接口板。
PM:Power Module,电源模块。
FAN:风扇模块。
3.1.
1
CSS连接方式
了解了交换机的组成模块,接着我们来看一下堆叠系统之间如何连接,CSS中连接的链路根据功能的不同分为了两种类型:管理链路和转发链路。管理链路负责堆叠系统管理及维护报文的转发;转发链路负责堆叠系统跨设备业务数据报文的转发。根据管理链路的连接方式的不同,堆叠的连接方式分为:主控板直连和业务板直连。
主控板直连:管理链路和转发链路分离,管理链路通过主控板的SIP口相连接,转发链路通过业务板的端口相连接。
业务板直连:管理链路和转发链路合一,管理链路和转发链路都通过业务板的端口相连接。
堆叠连接方式示意图
主控板直连的管理链路和转发链路分离部署互不影响,综合可靠性高,建议优先采用主控板直连方式。了解的堆叠的连接方式,接着我们来了解一下堆叠中的一些基本概念。
3.1.2
堆叠基本概念
堆叠成员堆叠中的单台交换机称为成员交换机,按照功能不同可以分为以下角色:
主交换机负责管理整个堆叠。堆叠中只有一台主交换机。
备交换机是主交换机的备份交换机。堆叠中只有一台备交换机。
堆叠域:交换机通过堆叠链路连接在一起组成一个堆叠,这些成员交换机的集合就是一个堆叠域。为了适应各种组网应用,同一个网络里可以部署多个堆叠,堆叠之间使用域编号来以示区别。
堆叠成员ID:即堆叠成员交换机的编号,用来标识和管理成员交换机。堆叠中所有成员交换机的堆叠成员ID都是唯一的。
堆叠优先级:主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,当选为主交换机的可能性越大。
堆叠端口:专用与堆叠的逻辑端口,需要和堆叠物理端口绑定。一个堆叠端口可以绑定多个物理成员端口,用来提高堆叠的可靠性和堆叠带宽。每台设备支持一个堆叠端口,在堆叠功能未使能时,为Stack-Port1;在堆叠功能已使能时,为Stack-Portn/1,其中n为设备的堆叠成员ID。
堆叠物理成员端口:即被配置为堆叠模式的物理端口,用于堆叠成员交换机之间的连接。
CSS基本概念示意图
3.1.3
堆叠建立
堆叠组建过程
堆叠组建过程
2台交换机用堆叠线连接,并配置好堆叠相关的配置,堆叠系统即可建立。
主交换机选举
堆叠建立时,成员交换机之间互发堆叠竞争报文。选择出主交换机,负责管理整个堆叠系统;另一台则成为备交换机,作为主交换机的备份。主交换机的选举规则如下:
1.运行状态比较,优先启动的是主交换机。--优
2.堆叠优先级比较,优先级高的是主交换机。--高
3.软件版本比较,软件版本新的是主交换机。--新
4.主控板数量比较,主控板数量多的是主交换机。--多
5.桥MAC地址比较,桥MAC地址小的是主交换机。--小
堆叠建立后主交换机的主用主控板成为堆叠系统主用主控板,作为整个系统的管理主角色。备交换机的主用主控板成为堆叠系统备用主控板,作为系统的管理备角色。主交换机和备交换机的备用主控板作为堆叠系统候选备用主控板。
软件版本和配置同步
组建堆叠的两台交换机的软件版本不需要相同,只要版本之间兼容就可以,当选择出主交换机后,如果主备交换机的软件版本不一样,备交换机会从主交换机上下载新的软件版本,使用新的软件版本重启加入堆叠。
堆叠具备严格的配置文件同步机制,用来保证堆叠中的多台交换机能够像一台设备一样在网络中工作。
堆叠建立时,成员交换机在启动开始阶段使用各自的配置文件启动。启动完成后,备交换机会将本设备的堆叠相关配置合并到主交换机的配置文件中,形成堆叠系统的配置文件。
堆叠正常运行后,主交换机作为堆叠系统的管理节点,负责将用户的配置同步给备交换机,从而使堆叠内各成员交换机的配置随时保持一致。
通过即时同步,堆叠中的所有成员交换机均保持相同的配置。即使主交换机出现故障,备交换机仍能够按照相同的配置执行各项功能。
3.1.4
堆叠管理
堆叠系统对外呈现为一台虚拟设备,与其他设备通信时,具有唯一的IP地址和MAC地址。堆叠建立后,成员交换机组成一台虚拟设备存在网络中,主交换机统一管理整个堆叠系统。我们可以通过任意一台成员设备登录堆叠系统,对整个堆叠系统进行管理。无论使用什么方式,通过哪台成员交换机登录到堆叠系统,实际上登录的都是主交换机。
登录堆叠系统的方式:
本地登录:通过任意一台成员设备的Console口登录。
远程登录:通过任意一台成员设备的管理网口或其他三层接口,以Telnet、STelnet等方式远程登录。
3.1.5
本地优先转发
Eth-Trunk接口会通过HASH算法选择转发出接口,进入堆叠的流量可能会跨设备转发,但是由于堆叠线的带宽有限,跨设备的流量转发增加了堆叠线的带宽承载压力,也降低了流量转发的效率。此时,可以通过使能堆叠设备的流量本地转发功能解决此问题,从本设备进入的流量,优先从本设备的出接口转发出口;如果本设备的出接口故障,则流量跨设备从其它成员交换机的接口转发出去。
流量本地优先转发示意图
如图,堆叠设备未使能流量本地优先转发功能,会有一部分流量经过堆叠线从SwitchB转发,设备启用了流量本地优先转发功能后,从SwitchA进入的 流量优先从SwitchA的出接口转发。
配置的命令:
[~SwitchB] interface eth-trunk 1
[~SwitchB-Eth-Trunk1] undo local-preference disable
#在堆叠设备上使能Eth-Trunk接口流量本地优先转发功能
3.1.6
堆叠分裂以及双主检测
堆叠系统建立后,主备交换机之间会通过堆叠线缆定时的发送心跳报文来维持堆叠。当是故障不可避免,一旦堆叠线缆或主控板故障,交换机重启都会使得堆叠系统分裂成为2台独立的交换机。如图所示:
双主故障
分裂后的2台交换机,彼此不知道对方的状态,此时原本主交换机的角色不变,原本备交换机的角色成为主交换机,“双主”出现,这两台交换机在整个网络中表现为一样的信息,会以相同的IP和MAC地址与外界的设备通信,导致IP地址和MAC地址冲突,引起网络故障。因此我们需要避免双主的出现----双主检测技术。
双主检测DAD是一种检测和处理堆叠分裂的协议。配置双主检测后,主交换机在检测链路上发送DAD竞争报文。堆叠分裂后,分裂成多部分的堆叠系统互发竞争报文,并将接收到的竞争报文信息与本部分竞争信息做比较,如果本部分竞争胜出,则不做处理,保持Active状态,正常转发业务报文;如果本部分竞争失败,则除保留端口外的所有业务端口Error-Down,转入Recovery状态,停止转发业务报文。
堆叠分裂与双主检测DAD竞争规则如下:
1.整机业务口Error-Down状态比较,交换机上不存在以下Error-Down的优先竞争胜出:
因无转发链路而导致的整机业务口Error-Down。
因接口板和交换网板之间的链路故障而导致的整机业务口Error-Down。以上Error-Down同时存在时,Error-Down原因是no-stack-link的交换机优先竞争胜出。
2. 堆叠优先级比较,堆叠优先级高的交换机优先竞争胜出。
3. 设备MAC地址比较,MAC地址小的交换机优先竞争胜出。
DAD的检测方式有以下几种:
业务口直连检测方式
特点:堆叠成员交换机间通过业务口连接的专用链路进行双主检测;业务口直连检测方式中DAD报文采用的是BPDU报文,因此直连检测链路还可以通过中间设备连接。
配置
interface 10ge1/0/5
dual-active detect mode direct
interface 10ge2/0/5
dual-active detect mode direct
优缺点:需要单独占用10GE的业务端口,但是检测速度是最快的Eth-Trunk口代理检测方式
特点:堆叠与代理设备相连的跨设备Eth-Trunk链路进行双主检测;
配置:
堆叠系统
interface eth-trunk10
trunkport 10ge 1/0/5 #框式交换机的端口是10ge 1/1/0/5和10ge 2/1/0/5
trunkport 10ge 2/0/5
dual-active detect mode relay
代理设备
interface eth-trunk10
trunkport 10ge 1/0/1
trunkport 10ge 1/0/2
dual-active proxy
优缺点:无需占用额外的接口,Eth-Trunk接口可以同时运行DAD代理检测和其它业务,需要代理设备,且代理设备必须为支持DAD代理功能的交换机
管理网口检测方式
特点:通过堆叠成员交换机的管理网口链路进行双主检测;管理网口必须配置IP地址,堆叠后整个系统只显示一个管理网口MEth0/0/0,只需要在这一个管理网口下配置IP地址。
配置:
interface meth 0/0/0/0
ip address 192.168.10.10 24
dual-active detect enable
优缺点:实现最简单,不需要额外的接口,也不需要代理设备,
堆叠端口检测方式
特点:通过堆叠物理成员端口之间的链路进行双主检测。
配置:
interface stack-port 1/1
dual-active detect mode direct
interfacestack-port 2/1
dual-active detect mode direct
优缺点:只有框式交换机且连接方式为主控板直连时,才可以使用堆叠端口检测方式。
DAD的故障恢复机制
堆叠链路故障修复后,分裂成多部分的堆叠系统进行合并。处于Recovery状态的交换机将重新启动,同时将Error-Down的业务端口恢复正常,整个堆叠系统恢复。
iStack是盒式交换机的堆叠,istack支持多台设备组建堆叠,多台交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发。istack整体的工作原理和CSS没有什么区别。
0
1
istack连接方式
istack的连接方式分为:链型连接和环形连接
0
2
istack 堆叠的基本概念
堆叠中的单台交换机称为成员交换机,按照功能不同可以分为以下角色:
主交换机:主交换机负责管理整个堆叠。堆叠中只有一台主交换机。
备交换机:备交换机是主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。堆叠中只有一台备交换机。
从交换机:从交换机主要用于业务转发,从交换机数量越多,堆叠系统的转发能力越强。除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。
堆叠域:交换机通过堆叠链路连接在一起组成一个堆叠,这些成员交换机的集合就是一个堆叠域。为了适应各种组网应用,同一个网络里可以部署多个堆叠,堆叠之间使用域编号来以示区别。
堆叠成员ID:
即堆叠成员交换机的编号,用来标识和管理成员交换机。堆叠中所有成员交换机的堆叠成员ID都是唯一的。
堆叠优先级:堆叠优先级是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,当选为主交换机的可能性越大。
堆叠物理成员端口:堆叠物理成员端口,即被配置为堆叠模式的物理端口,用于堆叠成员交换机之间的连接。
堆叠端口是一种专用于堆叠的逻辑端口,需要和堆叠物理成员端口绑定。一个堆叠端口可以与一个或多个堆叠物理成员端口绑定,以提高链路的带宽和可靠性。每台设备支持两个堆叠端口,为Stack-Portn/1和Stack-Portn/2,其中n为设备的堆叠成员ID。
0
3
堆叠建立
堆叠建立的过程包括以下四个阶段:
主交换机选举
堆叠建立堆叠建立时,成员设备间相互发送堆叠竞争报文,选举出主交换机。主交换机选举规则如下:
运行状态比较,优先启动的是主交换机。--
优
堆叠优先级比较,优先级高的是主交换机。--
高
软件版本比较,软件版本新的是主交换机。--
新
桥MAC地址比较,桥MAC地址小的是主交换机。--
小
拓扑收集和备交换机选举
主交换机选举完成后,主交换机会收集所有成员交换机的信息并计算拓扑。如果成员交换机的堆叠成员ID冲突,主交换机将为冲突的成员交换机重新分配堆叠成员ID。
主交换机计算出拓扑信息后,将整个堆叠系统的拓扑信息同步给所有成员交换机,并选举出一台备交换机。备交换机选举规则如下:
堆叠优先级比较,堆叠优先级高的交换机优先竞争为备交换机。
MAC地址比较,MAC地址小的交换机优先竞争为备交换机。
istack的堆叠管理和本地优先转发和框式交换机没有什么区别。
0
4
堆叠分裂以及双主检测
istack的堆叠分裂和CSS的堆叠分裂不同,istack支持多台设备组建堆叠,因此当稳定运行的堆叠系统中带电移出部分成员交换机,或者堆叠线缆故障将导致一个堆叠系统变成多个堆叠系统。
分裂后,如果原堆叠主和堆叠备在同一个堆叠系统中,移出的成员交换机复位,重新组成堆叠;如果原堆叠主和堆叠备不在同一个堆叠系统中,备交换机升为主,网络中出现配置相同的两组堆叠系统。避免出现配置相同的两组堆叠系统,需要配置双主检测。
istack支持的DAD检测方式有以下几种:
业务口直连检测方式
Eth-Trunk口代理检测方式
管理网口检测方式
四、总结
CSS和istack两种堆叠技术,其工作原理基本一致,以下是二者的区别:
组建堆叠的数量:CSS框式交换机堆叠,只支持两台设备组建堆叠;istack盒式交换机堆叠,可以支持最大9或16台的交换机堆叠
选主交换机的规则:主交换机选举CSS多一个比较主控板数量的规则
堆叠成员的角色:从交换机的角色比较,istack可以支持多台交换机堆叠,交换机角色有主,备,从的交换机角色,而CSS只有主,备交换机角色。
双主检测方式:CSS如果采用主控板直连方式,多了一种”堆叠端口“的检测方式。
堆叠连接方式:istack有环形和链型的连接方式,CSS只支持两台设备堆叠,没有环行或者链型,但是CSS有主控板直连和业务版直连两种方式,而istack没有。
以上我们主要阐述了华为数据中心交换机的框式交换机和盒式交换机的堆叠实现,华为园区交换机也支持堆叠,目前堆叠技术在园区网络中部署较多,而在数据中心中部署较少,数据中心目前多使用高可用的网络架构及其他虚拟化技术来保证数据的高速转发和业务的高可用性,以后我们再给大家一一介绍。