堆叠
堆叠是指将多台支持堆叠特性的交换机通过堆叠线缆连接在一起,从逻辑上变成一台交换设备,作为一个整体参与数据转发
- 主交换机(Master)
主交换机负责管理整个堆叠。堆叠系统中只有一台主交换机。 - 备交换机(Standby)
备交换机是主交换机的备份交换机。堆叠系统中只有一台备交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。 - 从交换机(Slave)
从交换机用于业务转发,堆叠系统中可以有多台从交换机。从交换机数量越多,堆叠系统的转发带宽越大。
除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。当备交换机不可用时,从交换机承担备交换机的角色。
单机堆叠
单机堆叠就是一台交换机使能了堆叠功能,整个堆叠系统中只有一台主交换机。只有使能了堆叠功能的交换机才可以加入堆叠系统或与其他使能了堆叠功能的交换机组建堆叠。
堆叠ID
堆叠ID用来标识堆叠成员交换机,是成员交换机的槽位号,取值范围是0~8,默认是0。每个堆叠成员交换机在堆叠系统中具有唯一的堆叠ID。
未加入堆叠系统并且未修改堆叠ID时,交换机堆叠ID缺省为0。堆叠时由堆叠主交换机对成员交换机的堆叠ID进行管理,当堆叠系统有新成员加入时,如果新成员与已有成员堆叠ID冲突,则堆叠主交换机从0~最大的堆叠ID进行遍历,找到第一个空闲的ID分配给该新成员。新建堆叠或堆叠成员变化时,如果不在堆叠前手动指定各交换机的堆叠ID,则由于启动顺序等原因,最终堆叠系统中各成员的堆叠ID是随机的。
因此,在建立堆叠时,需提前规划好交换机的堆叠ID,或通过特定的操作顺序,使交换机启动后的堆叠ID与规划的堆叠ID一致。
堆叠优先级
堆叠优先级主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,优先级越高当选为主交换机的可能性越大。
堆叠主交换机的选举过程是:先比较交换机启动时间,再比较堆叠优先级。当两台交换机启动时间相差20秒以内时,则认为交换机启动时间相同,此时堆叠优先级大的交换机将被选举为主交换机。
堆叠建立的过程:
物理连接:根据网络需求,选择适当的连接方式和连接拓扑,组建堆叠网络。
主交换机选举:成员交换机之间相互发送堆叠竞争报文,并根据选举原则,选出堆叠系统主交换机。
堆叠ID分配和备交换机选举:主交换机收集所有成员交换机的拓扑信息,向所有成员交换机分配堆叠ID,之后选出堆叠系统备交换机。
软件版本和配置文件同步:主交换机将整个堆叠系统的拓扑信息同步给所有成员交换机,成员交换机同步主交换机的系统软件和配置文件,之后进入稳定运行状态。
堆叠系统作为一台设备与其他网络设备进行通信时,具有唯一的IP地址和MAC地址。
堆叠的IP地址是全局的,任意成员交换机从堆叠系统中移除,都不会改变堆叠系统的IP地址。
堆叠系统的IP地址为任意堆叠成员交换机管理网口或三层端口的IP地址。堆叠管理网口编号为MEth0/0/1
一般情况下,堆叠系统的MAC地址是主交换机的MAC地址。当堆叠系统的主交换机离开时,如果主交换机在10分钟内重新加入堆叠系统,则堆叠系统将继续使用该交换机的MAC地址。新加入堆叠系统后,如果原主交换机变为了从交换机,则堆叠系统的MAC地址就是从交换机的MAC地址。
如果主交换机没有在10分钟内重新加入堆叠系统,则堆叠系统的MAC地址将切换为新主交换机的MAC地址。
交换机没有运行堆叠时,某个接口的编号为GigabitEthernet0/0/1;当该交换机加入堆叠后,如果堆叠ID为2,则该接口的编号将变为GigabitEthernet2/0/1
堆叠成员加入过程:
1.新加入的交换机连线上电启动后,进行角色选举,新加入的交换机会选举为从交换机,堆叠系统中原有主备从角色不变
2.角色选举结束后,主交换机更新堆叠拓扑信息,同步到其他成员交换机上,并向新加入的交换机分配堆叠ID(新加入的交换机没有配置堆叠ID或配置的堆叠ID与原堆叠系统的冲突时)
3.新加入的交换机更新堆叠ID,并同步主交换机的配置文件和系统软件,之后进入稳定运行状态
多主检测
由于堆叠系统中所有成员交换机都使用同一个IP地址和MAC地址(堆叠系统MAC),一个堆叠分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统。为防止堆叠分裂后,产生多个具有相同IP地址和MAC地址的堆叠系统,引起网络故障,必须进行IP地址和MAC地址的冲突检查。
多主检测MAD(Multi-Active Detection),是一种检测和处理堆叠分裂的协议。链路故障导致堆叠系统分裂后,MAD可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。
MAD检测方式
MAD检测方式有两种:直连检测方式和代理检测方式。在同一个堆叠系统中,两种检测方式互斥,不可以同时配置。
直连检测方式
直连检测方式是指堆叠成员交换机间通过普通线缆直连的专用链路进行多主检测。在直连检测方式中,堆叠系统正常运行时,不发送MAD报文;堆叠系统分裂后,分裂后的两台交换机以1s为周期通过检测链路发送MAD报文进行多主冲突处理。
直连检测的连接方式包括通过中间设备直连和堆叠成员交换机Full-mesh方式直连:
通过中间设备直连,堆叠系统的所有成员交换机之间至少有一条检测链路与中间设备相连。
通过中间设备直连可以实现通过中间设备缩短堆叠成员交换机之间的检测链路长度,适用于成员交换机相距较远的场景。
代理检测方式
代理检测方式是在堆叠系统Eth-Trunk上启用代理检测,在代理设备上启用MAD检测功能。此种检测方式要求堆叠系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。与直连检测方式相比,代理检测方式无需占用额外的接口,Eth-Trunk接口可同时运行MAD代理检测和其他业务。
在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。堆叠成员交换机对在正常工作状态下收到的MAD报文不做任何处理;堆叠分裂后,分裂后的两台交换机以1s为周期通过检测链路发送MAD报文进行多主冲突处理。
当9台设备堆叠时,由于每个Eth-Trunk最多加入8个成员接口,导致一个Eth-Trunk不能包含所有的成员交换机。此时需要配置多个Eth-Trunk,来保证任意两台成员交换机之间都有检测链路
MAD冲突处理
堆叠分裂后,MAD冲突处理机制会使分裂后的堆叠系统处于Detect状态或Recovery状态。Detect状态表示堆叠正常工作状态,Recovery状态表示堆叠禁用状态。
冲突处理:MAD分裂检测机制会检测到网络中存在多个处于Detect状态的堆叠系统,这些堆叠系统之间相互竞争,竞争成功的堆叠系统保持Detect状态,竞争失败的堆叠系统会转入Recovery状态;并且在Recovery状态堆叠系统的所有成员交换机上,关闭除保留端口以外的其它所有物理端口,以保证该堆叠系统不再转发业务报文。
MAD竞争原则:
先比较启动时间,启动完成时间早的堆叠系统成为Detect状态。启动完成时间差在20秒内则认为堆叠的启动完成时间相同。
启动完成时间相同时,比较堆叠中主交换机的优先级,优先级高的堆叠系统成为Detect状态。
优先级相同时,比较堆叠系统的MAC,MAC小的堆叠系统成为Detect状态。
MAD故障恢复
通过修复故障链路,分裂后的堆叠系统重新合并为一个堆叠系统。重新合并的方式有以下两种:
堆叠链路修复后,处于Recovery状态的堆叠系统重新启动,与Detect状态的堆叠系统合并,同时将被关闭的业务端口恢复Up,整个堆叠系统恢复。
如果故障链路修复前,承载业务的Detect状态的堆叠系统也出现了故障。此时,可以先将Detect状态的堆叠系统从网络中移除,再通过命令行启用Recovery状态的堆叠系统,接替原来的业务,然后再修复原Detect状态堆叠系统的故障及链路故障。故障修复后,重新合并堆叠系统。
跨设备链路聚合
堆叠支持跨设备链路聚合技术,通过配置跨设备Eth-Trunk接口实现。用户可以将不同成员交换机上的物理以太网端口配置成一个聚合端口连接到上游或下游设备上,实现多台设备之间的链路聚合。当其中一条聚合链路故障或堆叠中某台成员交换机故障时,Eth-Trunk接口通过堆叠线缆将流量重新分布到其他聚合链路上,实现了链路间和设备间的备份,保证了数据流量的可靠传输。
通过业务口普通线缆
<HUAWEI> system-view
[HUAWEI] sysname SwitchA
[SwitchA] interface stack-port 0/1
[SwitchA-stack-port0/1] port interface gigabitethernet 0/0/27 enable
[SwitchA-stack-port0/1] quit
[SwitchA] interface stack-port 0/2
[SwitchA-stack-port0/2] port interface gigabitethernet 0/0/28 enable
[SwitchA-stack-port0/2] quit
# 配置SwitchB的业务口GigabitEthernet0/0/27、GigabitEthernet0/0/28为物理成员端口,并加入到相应的逻辑堆叠端口。
<HUAWEI> system-view
[HUAWEI] sysname SwitchB
[SwitchB] interface stack-port 0/1
[SwitchB-stack-port0/1] port interface gigabitethernet 0/0/27 enable
[SwitchB-stack-port0/1] quit
[SwitchB] interface stack-port 0/2
[SwitchB-stack-port0/2] port interface gigabitethernet 0/0/28 enable
[SwitchB-stack-port0/2] quit
#堆叠使用1口时 则需要使用2口与之相对
# 配置SwitchA的堆叠优先级为200
[SwitchA] stack slot 0 priority 200
# 配置SwitchB的堆叠ID为1。
[SwitchB] stack slot 0 renumber 1
# 配置SwitchC的堆叠ID为2。
[SwitchC] stack slot 0 renumber 2
配置直连或代理方式的多主检测
配置直连方式多主检测
system-view
interface interface-type interface-number。
mad detect mode direct
配置代理方式多主检测
代理设备为一台交换机
在堆叠系统上
system-view
interface eth-trunk trunk-id
mad detect mode relay
#配置Eth-Trunk接口的代理方式多主检测功能
在指定的代理设备上
system-view
interface eth-trunk trunk-id
mad relay
#在Eth-Trunk接口上启用代理功能。
两个堆叠系统互为代理
在每个堆叠系统上分别配置
system-view
mad domain domain-id,
#配置堆叠系统MAD域值,缺省情况下,堆叠系统MAD域值为0。
设备支持两套堆叠系统互为代理进行多主检测,此时必须通过配置保证两套堆叠系统的MAD域值不同。
interface eth-trunk trunk-id
mad relay
#在Eth-Trunk接口上启用代理功能
mad detect mode relay
#配置Eth-Trunk接口的代理方式多主检测功能。
#mad exclude interface { interface-type interface-number1 [ to interface-type interface-number2 ] } &<1-10>,配置堆叠系统内指定端口为保留端口。
多主检测发现堆叠分裂,分裂后的多个堆叠系统之间会进行相互竞争,为防止相同的MAC地址、IP地址引起网络振荡,竞争失败的堆叠系统内成员交换机的所有业务端口会被关闭。可以通过命令将这些端口配置为保留端口。堆叠分裂后,多主检测功能不会关闭保留端口的业务。
缺省情况下,堆叠物理成员端口为保留端口,其它所有业务口均为非保留端口。
堆叠分裂后,用于双主检测的端口也会被关闭。
#mad restore,使处于关闭状态的端口重新恢复正常。