交换机堆叠和集群是两种可解决单台交换机性能不足、容易出现单点故障问题的交换机管理技术。实现堆叠和集群后的各成员交换机一起可看成一台逻辑交换机系统,可通过一个IP地址进行管理,各成员交换机间还可以实现负载均衡和容错。
华为交换机中堆叠技术为iStack(IntelligentStack,智能堆叠);集群技术称之为CSS(Cluster Switch System,集群交换机系统)。但不同交换机系列所支持的堆叠或集群连接方式有所不同(有通过专门的堆叠卡或集群卡连接的,有通过普通业务口连接的)。这两种交换机管理技术在工作原理、配制方法和功能支持上存在许多相似性,但iStack堆叠中可以支持的成员交换机更多(对多9台),CSS只支持两台交换机的集群。
iStack基础
交换机堆叠是一种提高端口可用背板带宽,扩展交换机端口,提高可靠性,集中管理多台交换机的技术。
一、iStack概述
在iStack堆叠系统建立前,每台成员交换机都是单独的实体,都有自己独立的IP地址和MAC地址,对外体现为多台交换机。在iStack堆叠系统建立后,堆叠中的所有成员交换机对外体现为一个统一的逻辑实体,用户使用一个IP地址就可以对堆叠中的所有交换机进行管理和维护。
1、交换机角色
在iStack中所有的单台交换机都称为成员交换机,按照各自动能的不同分为以下三种角色:
(1)主交换机。主交换机在堆叠配置文件中显示为Master,负责整个读碟系统的管理。一个交换机堆叠只有一台主交换机。
(2)备交换机。备交换机在堆叠配置文件中显示为Standby,是主交换机的备用交换机,用于当原主交换机出现故障时接替主交换机工作,一个交换机堆叠也只有一台备交换机。
(3)从交换机。从交换机在堆叠配置文件中显示为Slave。除了主交换机外的其他所有交换机(包括备交换机)都是从交换机。
2、堆叠ID
为了便于识别和管理交换机堆叠中各成员交换机,为所有成员交换机(包括主交换机和备交换机)都分配了一个堆叠ID,即成员编号(MemberID)。且每个成员交换机的堆叠ID都是唯一的。
3、堆叠优先级
哪台交换机担当主备交换机角色呢?就要用到堆叠优先级属性了,用于堆叠角色选举过程中确定主交换机和备交换机角色。优先级值越大表示优先级越高。
4、堆叠物理成员端口
指采用普通业务口堆叠连接方式时,各成员交换机上用于堆叠连接的物理业务端口,不是指堆叠卡上的专门堆叠接口。
5、堆叠端口
指采用普通业务口堆叠连接方式时用于堆叠连接的逻辑端口,需要和堆叠物理成员端口绑定,即向逻辑堆叠端口中添加物理成员端口。堆叠的每台成员交换机上支持两个堆叠端口:Stack-Portn/1和Stac-Portn/2,其中n为成员交换机的堆叠ID。
二、iStack特性的产品支持
不同型号交换机之间不能混合堆叠。
1、堆叠主、备交换机选举
堆叠建立时,成员交换机之间相互发送堆叠竞争报文,选举出主、从交换机。当从交换机的VRP系统版本号与主交换机不一致时,从交换机将自动同步主交换机的VRP系统软件版本,复位重启后加入堆叠系统。主交换机收集成员信息并计算堆叠拓扑,然后将堆叠拓扑信息同步到所有的成员交换机。
主交换机选举规则:
(1)首先进行运行状态比较,已经运行的堆叠交换机中最先处于启动状态的交换机将被选举为主交换机。
(2)如果有多台成员交换机都已处于启动状态,则再对这些交换机进行堆叠优先级比较,堆叠优先级高的选举为主交换机。
(3)如果某些成员交换机的堆叠优先级一样,则再对这些成员交换机进行MAC地址比较,MAC地址小的交换机优先选举为主交换机。
备交换机选举规则:
(1)除主交换机外其他各成员交换机中最先处于启动状态的交换机成为备份交换机。
(2)如果有多台除主交换机外的其他交换机同时完成启动时,则这些成员交换机中堆叠优先级最高的交换机成为备交换机。
(3)如果以上这些交换机的堆叠优先级相同,则MAC地址最小的选为备交换机。
2、堆叠连接方式
不同S系列交换机的iStack堆叠连接方式不完全一样。S2700和S3700系列主要支持堆叠卡连接方式,是通过专门的堆叠卡中提供的堆叠端口(也可使用复用上行千兆口作为堆叠端口)和专用的SFP高速堆叠电缆连接的。
S5700和S6700系列支持以下两种堆叠连接方式:
(1)堆叠卡连接:各成员交换机之间通过专用的堆叠卡ETPC和专用的PCI-E堆叠电缆连接。
(2)业务口连接:各成员交换机间通过堆叠端口绑定的堆叠物理成员端口和SFP+高速电缆相连。不需要专用的堆叠插卡。
3、堆叠连接拓扑结构
华为S系列交换机iStack堆叠的连接拓扑结构有“链形连接”和“环形连接”。环形连接拓扑结构是堆叠成员交换机通过堆叠端口交叉端口交叉相连形成一个“环”形结构。
链形结构拓扑结构中处于链两端的交换机只使用一个堆叠端口与邻居交换机相连,最终形成一个“链条”形结构(有点像交换机“级联”)。
环形结构拓扑比链形连接拓扑具有更高的可靠性,因为当链形连接拓扑结构中出现链路故障时会引起堆叠分裂;而当环形连接拓扑结构中某条链路故障时会形成链形连接,整体堆叠的业务不会受到影响。
4、堆叠的管理和维护
iStack堆叠建立后,所有的成员交换机形成一台逻辑交换机存在于网络中,所有成员交换机的资源由堆叠主交换机统一管理。用户可以通过任意一台成员交换机的网管接口或串口登录堆叠系统,对整个堆叠系统进行管理和维护。但同一时刻只能由一个网管接口或串口登录。堆叠后的交换机接口编号为:堆叠ID/子卡号/端口号。
5、堆叠成员加入
在iStack堆叠维护和使用过程中会继续进行拓扑收集工作,当发现有新的成员交换机(已配置了堆叠连接和堆叠功能)加入时会根据新加入交换机的状态采取不同的处理。
(1)如果新加入的交换机本身未形成堆叠,则新加入的交换机会被选为从交换机,堆叠系统中原有主、备角色不变。
(2)如果新加入的交换机本身已经形成了堆叠,此时相当于两个堆叠合并。这种情况下,两个堆叠系统的主交换机将选举出一个更优的交换机作为新堆叠系统的主交换机,其中一个堆叠系统(新主交换机所在堆叠系统)将保持不变,业务也不会受到影响;而另一个堆叠系统的所有交换机将重新启动后加入新堆叠,并将同步主交换机的配置,该堆叠的原有业务也将中断。
6、堆叠成员退出
iStack堆叠成员退出是指成员交换机从堆叠系统中离开,断开堆叠连接。此时会因为退出成员的角色不同对堆叠系统的影响有所不同。
(1)主交换机退出:备交换机升级为主交换机,更新堆叠拓扑结构并指定一个新的备交换机。
(2)备交换机退出:主交换机更新堆叠拓扑结构并指定一个新的备交换机。
(3)从交换机退出:主交换机更新堆叠拓扑结构。
7、堆叠主、备切换和堆叠系统MAC地址切换
当iStack堆叠系统成功建立后,如果主交换机故障或脱离堆叠系统,则备交换机自动升级为主交换机,然后由新的主交换机指定新的备交换机,进行主、备交换机数据同步。这里的堆叠主、备切换,以及堆叠系统MAC地址的切换又要区分3种情况:
(1)当堆叠系统第一次成功建立后,此时堆叠系统的MAC地址是主交换机的MAC地址。当主交换机发生故障或脱离堆叠系统时,在去使能堆叠系统MAC地址延时切换功能的情况下,系统MAC地址会立刻切换为新的主交换机的MAC地址。缺省使能堆叠系统延时切换功能,延时时间为10min。
(2)当堆叠系统成功建立之后,如果主交换机故障或脱离堆叠系统,如果堆叠系统配置了系统MAC地址切换时间,且在切换定时器超时时间内旧主交换机还没有重新加入堆叠系统,则新主交换机将堆叠系统的MAC地址切换为自己的MAC,反之,如果在切换定时器超时时间内旧主交换机重新加入堆叠系统,此时系统旧主交换机变为从交换机,但堆叠系统的MAC地址不切换。相当于,此时堆叠系统的MAC地址为从交换机MAC地址。
(3)当堆叠交换机中有从交换机离开时,如果离开的从交换机的MAC地址是堆叠系统的MAC地址,且该交换机在切换定时器超时时间内没有重新加入堆叠,则主交换机将堆叠系统MAC地址切换为自己的MAC地址。
8、堆叠分裂
iStack堆叠分裂是指稳态运行的堆叠系统中带电移出部分成员交换机,或者堆叠系统线缆多点故障导致一个堆叠系统变成多个堆叠系统。
堆叠系统分裂后,可能产生多个有相同配置的堆叠系统,导致网络中IP地址和MAC地址的冲突,引起网络故障。
9、双主检测
双主检测DAD(Dual-ActiveDetection),是一种检测和处理堆叠分裂的协议,可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响,仅S5700和S6700系列支持,且仅支持由两台交换机组成的堆叠系统。
双主检测方式有两种:直连检测方式和Relay代理检测方式。
(1)直连检测方式:如上图,堆叠成员交换机间通过专用直连链路进行双主检测。在直连检测方式中,堆叠系统正常运行时,为了减轻CPU负担不发送DAD报文;堆叠系统分裂后,堆叠成员交换机以1s为周期通过检测链路发送DAD报文。
(2)Relay代理检测方式。如上图,Relay代理检测方式在堆叠系统跨交换机Eth-trunk上启用DAD检测,在代理交换机上启用DAD代理功能。代理交换机必须为支持DAD Relay代理功能的交换机。
在Relay代理检测方式中,堆叠系统正常运行时堆叠成员交换机以30s为周期通过检测链路发送DAD报文。堆叠成员交换机对在正常工作状态下收到的DAD报文不做任何处理;堆叠系统分裂后,堆叠成员交换机以1s为周期通过检测链路发送DAD报文。
堆叠分裂后,分裂成多部分的堆叠系统会在检测链路上相互发送DAD竞争报文。堆叠系统将接收到的报文信息与本部分竞争信息做比较:如本部分竞争为主交换机则不作处理,保持Active状态,正常转发业务报文;如果本部分竞争为备交换机,则需要关闭除保留端口(交换机上不会被关闭的端口)外的所有业务端口,转入Recovery状态,停止转发业务报文。
iStack配置与管理
一、iStack堆叠配置任务
iStack堆叠的最基本配置包括几个方面:使能堆叠功能,指定堆叠端口,配置堆叠ID和堆叠优先级,其他可选配置任务。堆叠卡连接方式和业务口连接方式的堆叠建立流程如下图:
重新启动交换机使堆叠建立后,用户可以根据实际需求有选择的配置堆叠系统保留VLAN、堆叠系统MAC地址的切换时间和接口指示灯显示堆叠ID。
1、(可选)配置堆叠端口(业务口连接方式必选)
使用普通的业务口作为堆叠端口的物理成员端口。当堆叠成员交换机间通过业务口方式连接时,需要将普通的业务口配置为堆叠物理成员端口,并将其加入到逻辑堆叠端口中。堆叠端口必须和堆叠物理成员端口绑定才能有效。一个堆叠端口中可以加入多个堆叠物理成员端口。
2、(可选)使能堆叠功能(堆叠卡连接方式必选)
3、(可选)配置堆叠ID
堆叠中所有成员交换机的堆叠ID都是唯一的。堆叠系统建立时,如果成员交换机的堆叠ID有冲突,主交换机将为冲突的成员交换机重新分配堆叠ID。
4、(可选)配置堆叠优先级
优先级值越大表示优先级越高,缺省每台成员交换机的缺省优先级是100。
5、重新启动交换机
6、(可选)配置主备倒换
在iStack堆叠系统建立之后,如果主交换机出现故障或者脱离堆叠系统,则原来的备交换机自动提升为主交换机,然后根据选举规则确定新的备交换机,这是自动切换。还有一种人工强制倒换主、备交换机角色的情况。两种情况都涉及一个堆叠系统MAC地址的重新确定问题,具体要依据以下3种情况而定(当堆叠系统第一次成功建立后,此时堆叠系统的MAC地址是主交换机的MAC)
(1)如果去使能了堆叠系统MAC地址延时切换功能,则堆叠系统MAC地址会立刻切换为新主交换机的MAC地址(缺省使能堆叠系统MAC地址延时切换功能,延迟10min)。
(2)如果使能了堆叠系统MAC地址延时切换功能,在切换定时器超时时间内,如果旧主交换机还没有重新加入堆叠,新主交换机将堆叠系统MAC切换为自己的MAC;如果切换定时器超时时间内,旧主交换机重新加入堆叠,则旧主交换机变为从交换机,堆叠系统的MAC地址不切换,为旧主交换机的MAC地址。
(3)如果现为从交换机,并且其MAC是堆叠系统的MAC地址,则当该交换机在切换定时器超时时间内没有从新加入堆叠时,新主交换机将堆叠系统MAC切换为自己的MAC。
7、(可选)配置堆叠系统保留VLAN
缺省堆叠系统使用VLAN4093作为堆叠系统的保留VLAN,用于堆叠协议报文的交互,其他业务不能使用此VLAN。
8、(可选)配置堆叠系统MAC地址的切换时间
区分两种情况:
(1)如果在堆叠系统建立之前在所有成员交换机上已各自完成了系统MAC地址切换时间的配置,则在堆叠系统建立后系统MAC地址切换时间为主交换机上配置的切换时间。
(2)如果在堆叠系统建立之后配置系统MAC地址切换时间,则在发生主备倒换后,但原主交换机仍在堆叠系统中,堆叠系统重启后系统MAC地址不发生改变,不会发生MAC切换。
9、(可选)配置接口指示灯显示堆叠ID
二、配置iStack堆叠
三、iStack堆叠管理
(1)display stack查看堆叠成员交换机堆叠信息,包括堆叠拓扑和堆叠成员等信息
(2)display stack peers查看堆叠系统中成员交换机各堆叠端口相连的邻居信息。
(3)display stack configuration [slot slot-id]查看所有或指定堆叠ID的成员交换机的堆叠配置信息,包括堆叠成员交换机当前以及下次启动时的堆叠ID、优先级信息。
(4)在S5700LI和S5710EI中使用display stack-port membership [slot-id/port-id] | membership [slot-id/port-id]查看指定或所有成员交换机/堆叠端口下的成员端口信息。
(5)在S6700中使用display stack-port {global load-balance | load-balance [slot-id/port-id] | membership [slot-id/port-id]}查看所有成员交换机的负载分担模式,或者指定成员交换机/堆叠端口下的成员端口信息。
(6)display interface stack-port [slot-id/port-id]查看所有或指定堆叠成员交换机/堆叠端口下各成员接口的流量统计信息。
(7)reset counters stack-port [slpt-id/port-id]清除所有或指定成员交换机/堆叠端口的状态统计信息。
四、iStack堆叠配置示例
如上图拓扑,ABCD四台交换机(S5700LI)组成环形堆叠系统。S5700LI交换机中是以最后2个(每个堆叠端口一个成员端口时)或4个(每个堆叠端口两个成员端口时)业务端口作为堆叠端口的成员端口的,所以需要使用SFP+堆叠电缆连接各成员端口,但要注意同一条堆叠链路上的两个堆叠物理成员端口需加入不同堆叠端口,即本端交换机的堆叠端口1必须与对端交换机的堆叠端口2相连。
本示例需配置三项任务:指定物理业务端口作为堆叠端口的成员端口,配置堆叠成员ID和堆叠优先级,重启各成员交换机。
(1)在各成员交换机上配置堆叠端口,添加物理成员业务端口。
将SwitchA的最后两个业务端口GigabitEthernet0/0/27~gigabitEthernet0/0/28分别配置为1号和2号堆叠端口的物理成员端口,并加入堆叠端口。此时注意各成员交换机的堆叠ID均为0。
<Huawei>system-view
[Huawei]sysname SwitchA
[SwitchA]stack port interface gigabitethernet 0/0/27 enable
Warning:Enabling stack port may cause configuration loss on the interface,countinue?[Y/N]:y
[SwitchA]stack port interace gigabitethernet 0/0/28 enable
Warning:Enabling stack port may cause configuration loss on the interface,countinue?[Y/N]:y
[SwitchA]interface stack-port 0/1
[SwitchA-stack-port0/1]port member-group interface gigabitethernet 0/0/27
[SwitchA-stack-port0/1]quit
[SwitchA]interface stack-port 0/2
[SwitchA-stack-port0/2]port member-group interface gigabitethernet 0/0/28
[SwitchA-stack-port0/2]quit
(2)配置各成员交换机的堆叠ID和堆叠优先级。假设A为主交换机,A的优先级配置为200,其他保持缺省,即100。在堆叠ID方面,A采用缺省的0号,B、C、D分别分配堆叠ID为1、2、3。
配置SwitchA的堆叠优先级为200:
[SwitchA]stack slot 0 priority 200
Warning:Please do not frequently modify Priority,it will make the stack split!!countiune?[Y/N]:y
配置SwitchB的堆叠ID为1:
[SwitchB]stack slot 0 renumber 1
Warning:Please do not frequently modify slotid,it will make the stack split!!countiune?[Y/N]:y
(3)在各交换机上执行save,使用reboot重启各成员交换机。
(4)在堆叠主交换机上执行display stack,验证结果。
五、双主检测配置与管理
(1)直连检测方式:成员交换机间通过专用直连链路进行双主检测;
(2)Relay代理检测方式:成员交换机间通过启用Relay代理功能的交换机进行双主检测。
DAD(双主检测)是华为公司的私有协议。DAD报文是BPDU报文,在代理交换机和直连检测链路的中间交换机上需要配置接口转发BPDU报文。
两种检测方式互斥。可以同时配置4条直连检测链路或4个Relay代理检测Eth-trunk。
1、配置任务
(1)配置检测方式:可以是直连检测方式或Relay代理检测方式
(2)(可选)配置保留端口。双主检测发现堆叠分裂故障后,为防止相同的MAC地址、IP地址引起网络振荡,需要将竞选失败的成员交换机上的所有业务端口关闭。如果有部分端口仅作报文透传功能,出现双主故障时不会影响到网络运行,这时通过命令将这些端口配置为保留端口。
(3)(可选)恢复被关闭的端口。如果在堆叠系统分裂故障恢复前,原主交换机发生故障或被移出网络,则通过命令行先启用处于端口关闭状态的备份交换机,使所有业务口重新恢复正常,让它接替原主交换机工作。
2、配置步骤
配置好后,可用display mad verbose [proxy | verbose]命令查看双主检测配置信息。
六、直连检测方式的DAD配置示例
如上拓扑,A和B组成堆叠系统,A的堆叠ID为0,B的堆叠ID为1。在gigabitEthernet0/0/5和gigabitEthernet1/0/5接口上配置采用直连双主检测功能,以减少堆叠分裂给网络带来的影响。
(1)在SwitchA上配置接口GigabitEthernet0/0/5采用直连检测方式的DAD功能。
<Huawei>system-view
[Huawei]interface gigabitetnernet 0/0/5
[Huawei-Gigabitethernet0/0/5]mad detect mode direct
Warning:This command will block the port,and no other configuration running on this port is recommended.Countinue?[Y/N]:y
(2)在SwitchB上配置接口GigabitEthernet1/0/5采用直连检测方式的DAD功能。
<Huawei>system-view
[Huawei]interface gigabitetnernet 1/0/5
[Huawei-Gigabitethernet1/0/5]mad detect mode direct
Warning:This command will block the port,and no other configuration running on this port is recommended.Countinue?[Y/N]:y
配置后通过display mad verbose命令查看堆叠系统双主检测详细配置信息。
七、Relay代理检测方式的DAD配置示例
如上拓扑,A、B组成堆叠系统,通过接口Eth-Trunk1与代理交换机SwitchC连接。现配置Relay代理双主检测功能。
(1)在交换机堆叠与代理交换机SwitchC相连的Eth-Trunk接口上配置采用Relay代理检测方式的DAD功能。
<Huawei>system-view
[Huawei]interface eth-trunk 1
[Huawei-Eth-Trunk1]mad detect mode relay
[Huawei-Eth-Trunk1]quit
[Huawei]interface gigabitethernet 0/0/5
[Huawei-Gigabitethernet0/0/5]eth-trunk 1
[Huawei-Gigabitethernet0/0/5]quit
[Huawei]interface gigabitethernet 1/0/5
[Huawei-Gigabitethernet1/0/5]eth-trunk 1
[Huawei-Gigabitethernet1/0/5]quit
(2)在代理交换机SwitchC的Eth-Trunk接口上配置采用Relay代理检测方式的DAD功能。
[SwitchC]interface eth-trunk 1
[SwitchC-Eth-Trunk1]mad relay
[SwitchC-Eth-Trunk1]quit
[SwitchC]interface gigabitethernet 0/0/1
[SwitchC-Gigabitethernet0/0/1]eth-trunk 1
[SwitchC-Gigabitethernet0/0/1]quit
[SwitchC]interface gigabitethernet 0/0/2
[SwitchC-Gigabitethernet0/0/2]eth-trunk 1
[SwitchC-Gigabitethernet0/0/2]quit
配置好后,通过display mad verbose查看堆叠系统DAD配置信息