目录
前言
在硬件加速与数据爆炸时代,堆叠技术通过模块化分层设计,实现资源动态分配与性能线性扩展,为智能时代提供底层支撑。
参考博客:华为堆叠详解
一.堆叠技术概述
堆叠作为一项横向虚拟化技术,将多个设备通过网线连接,在逻辑上虚拟化成一台设备,可以简化网络配置和管理,同时配合跨域链路聚合技术,不仅可以实现链路高可靠性备份,而且可以避免二层环路,相对于传统的STP破环保护,链路利用更加高效。
1.1 堆叠优点
- 性能提升:多个设备同时处理数据,提升负载能力。
- 高效管理:多个设备被堆叠为一个节点,只需配置一台设备,甚于设备自动同步配置。
- 高扩展力:业务需要扩展时,可以在已经形成的堆叠系统中直接加入新设备,从而扩展业务端口,提升转发效率。
- 高可靠性:逻辑上是一台设备作链路聚合,物理上是多设备链路聚合,且一台设备故障,剩余设备能够同步接管业务。
- 防止环路:在物理上堆叠域内的设备共享同一个配置即转发规则一致因此不会产生环路。
1.2 堆叠分类
堆叠卡堆叠:
- 交换机之间通过专用堆叠卡及专用堆叠线缆连接。
- 准堆叠卡集成到了交换机后面板上,交换机通过集成的堆叠端口及专用的堆叠线缆连接。
业务口堆叠:
- 交换机上默认都支持两个逻辑的堆叠端口,可以将业务物理端口划分到逻辑堆叠端口中,不需要单独的堆叠卡。
1.3 堆叠接口编号规则
物理接口的编号规则如下:华为官方文档链接
非堆叠情况下,交换机采用“槽位号/子卡号/接口序号”的编号规则来定义物理接口。
- 槽位号:表示当前交换机的槽位,取值为0。
- 子卡号:表示交换机支持的子卡号。无子卡款型默认取值为0。
- 接口序号:表示交换机上各接口的编排顺序号。
堆叠情况下,交换机采用“堆叠号/子卡号/接口序号”的编号规则来定义物理接口。
- 堆叠号(堆叠成员ID):表示堆叠ID,取值为0~8。
- 子卡号:表示交换机支持的子卡号。无子卡款型默认取值为0。
- 接口序号:表示交换机上各接口的编排顺序号。
不同的情况采用不同的接口编号规则,可以有效区分两台交换机都由G0/0/1口的情况
堆叠成员设备/术语概念表
概念 | 说明 |
主交换机(Master) | 负责管理整个堆叠,堆叠中只有一台主交换机 |
备交换机(Standby) | 接替主交换机故障时的业务,堆叠中只有一台备交换 |
从交换机(Slave) | 用于业务转发,从交换机越多转发能力越强。 |
堆叠域(Domain) | 所有成员交换机的集合,域编号用来区分不同堆叠 |
概念 | 说明 |
堆叠成员ID(Member ID) | 用于标识堆叠成员,该ID具有唯一性 |
堆叠优先级 | 用于成员设备角色选举,优先级越大成为主交换机的概率越大 |
堆叠物理成员接口 | 用于堆叠成员交设备间的连接 |
堆叠接口 | 堆叠专用逻辑接口,需要绑定物理成员端口使用 |
二.堆叠技术原理
堆叠建立流程分析
堆叠建立流程主要包括以下四个阶段:
1. 物理及软件配置:根据网络需求选择适当的连接拓扑,组件堆叠网络,并进行相关软件配置
要点:配置堆叠成员设备的物理接口加入到堆叠接口前需要保证物理接口为Down,成员设备1的堆叠接口Port1只能与成员设备2的Port2连接。
2.拓扑收集:成员设备收集拓扑信息:
组成堆叠拓扑并激活配置后,各成员设备在本地记录自身拓扑信息。设备启动时仅记录自身信息,当堆叠端口状态变为 up,会周期性从该端口发送已知拓扑信息 ,邻居收到后更新本地记录,经一段时间收敛,所有成员设备都能收集到完整拓扑信息。
每个成员设备还会通过堆叠Hello 收集整个堆叠拓扑,内容涵盖拓扑信息、堆叠端口连接关系、成员ID、成员优先级以及成员的桥 MAC 等。
3.主交换机选举(非抢占):选举过程中成员设备互相发送竞争报文,按照如下规则逐一匹配:
- 最先完成启动的交换机优先竞争为主交换机。
- 堆叠优先级高的交换机优先竞争为主交换机(默认100,最高255)。
- 20秒内启动的设备被视为同时启动;超20秒的,启动时间长的为主。
- 桥MAC地址较小的交换机优先竞争为主交换机。
堆叠成员设备之间通常会进行以下几个配置同步过程:
- 版本同步:选举结束后,其他成员设备会自动从主交换机下载系统软件,然后重启并重新加入堆叠。
- 配置同步:堆叠运行时,成员设备启动,备 / 从交换机将自身堆叠配置合并入主交换机配置文件以形成堆叠配置文件;堆叠运行后,主交换机同步用户配置给其他交换机。
三.堆叠系统登录
堆叠建立后,所有成员设备组成一台虚拟设备存在网络中国,所有成员设备的资源由主交换机统一管理。用户可以通过任意一台成员设备登录堆叠系统,对整个堆叠系统进行维护,无论使用哪种方式,通过哪台成员交换机登录到堆叠系统,实际登录的都是主交换机。
登录堆叠系统的方式如下:
- 本地登录:通过任意一台成员设备的console口登录。
- 远程登录:通过任意一台成员设备三层接口,以SSH/Telnet等方式登录
注意:堆叠建立后,以主交换机的配置文件生效为主,远程登陆时需要使用主交换机的IP地址,且堆叠系统的多个管理口同时使用时,只有一个会生效。
四.堆叠合并/分裂
堆叠合并
堆叠合并是指稳定运行的两个堆叠系统合并成一个新的堆叠系统,堆叠系统合并时,两个堆叠系统的主交换机进行竞争,选举出一个更优秀的作为堆叠系统的主交换机(选举规则与选举主交换机一致)。
竞争胜出的主交换机所在的堆叠系统将保持原有主,备角色和配置不变,业务也不会受到影响;而另外一个堆叠系统的成员设备将重新启动后加入到新的堆叠系统。
堆叠分裂
堆叠建立后,主交换机和其他成员设备之间定时发送心跳报文来建立维护堆叠系统的状态,当堆叠线缆或设备发生故障时,可能会导致交换机之间失去通信,堆叠系统分裂为多个堆叠系统。
堆叠分裂后,其全局配置完全相同,会以相同的IP地址和MAC地址(堆叠系统MAC地址)与网络中的其他设备交互,这样就导致IP地址和MAC地址冲突,引起整个网络故障,此时依靠堆叠的双主检测来避免堆叠分裂后出现的双主。
4.1 堆叠双主检测机制(MAD)
1.分裂检测:
在堆叠中分裂检测机制分为LACP检测,BFD检测,ARP检测,ND检测,同一个堆叠可以配置多个检测机制。
2.冲突处理:
堆叠分裂后,MAD冲突处理机制会使分裂后的堆叠系统处于堆叠正常工作状态(Detect)或堆叠禁用状态(Recovery),不同的检测机制原则不同,具体原则如下:
- LACP/BFD:首选堆叠成员设备数量多的工作,其次主设备成员编号小的工作。
- ARP/ND:直接选择主设备成员编号小的堆叠继续工作,其余处于禁用状态。
注:处于禁用状态的堆叠会关闭除保留接口(组建堆叠的接口)之外的所有物理接口(通常为业务口)以保证业务口不再转发报文,默认保留堆叠接口,保留接口可手动设置。
LACP MAD 检测原理
LACP MAD 检测是通过扩展LACP协议报文内容实现的,即在LACP协议报文的扩展字段内定义一个新的TLV(Type/Length/Value,类型/长度/值)数据域--用于交互堆叠的域编号和主设备成员编号。
开启LACP MAD检测后,成员设备通过LACP协议报文和其它成员设备交互域编号和主设备编号(Active ID),当成员设备收到LACP 协议报文后,进行如下比较:
- 域编号相同,则比较主设备成员编号
<--> Active ID相同,表示堆叠正常运行,没有发生堆叠冲突。
<--> Active ID不同,表示堆叠分裂,检测到多个相同堆叠即堆叠冲突。
- 域编号不同,则认为报文来自不同的堆叠域,不再进行MAD处理。
LACP MAD组网要求:转发LACP报文的中间设备(图中Device)必须和堆叠成员来自同一厂商。
五.链路聚合技术概述
链路聚合技术是一种将多个物理或逻辑链路组合成一个高速、高可靠性的单一链路的技术。它通过同时使用多个物理或逻辑链路,从而提高网络带宽和可靠性,避免了因单个链路故障而导致的网络中断,提高了网络性能和可靠性。
聚合链路技术中,将多个物理接口逻辑上聚合成的一个接口称为聚合接口(eth-trunk接口),
聚合之后的链路称为聚合链路(eth-trunk),聚合链路中的物理链路称为成员链路。
链路聚合的工作环境:
- 链路聚合在网络层(三层聚合:加了IP地址)或数据链路层(二层聚合)工作
聚合链路的条件:
- 聚合链路两端的接口必须在同一台设备上。(如上图)
- 需要聚合的物理接口未进行任何配置
- 所有聚合的接口应该具有相同的传输速率(千兆口和千兆口聚合),须是相同的双工模式,接口类型必须相同(access类型和access类型聚合),VLAN List 和PVID 必须相同。
六.链路聚合模式
设备支持手工负载分担和LACP(Link Aggregation Control Protocol)两种聚合模式,支持接口链路本地优先转发,还支持跨设备的链路聚合E-Trunk。
①手工负载分担:
手工负载分担模式下,Eth-Trunk的建立、成员接口的加入完全由手工配置。该模式下所有活动链路都参与数据的转发,平均分担流量。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中平均分担流量。手工负载分担模式通常应用在对端设备不支持LACP协议的情况下。
②LACP模式
LACP是一种利用LACP协议进行聚合参数协商,确定活动接口和非活动接口的链路聚合方式。该模式下,手工创建Eth-Trunk,手工加入Eth-Trunk成员接口,由LACP协议协商确定活动接口和非活动接口。
LACP模式也成为M:N模式,这种方式同时实现链路负载分担和链路冗余。意思是在链路聚合组中M条链路处于活动状态,这些链路负责转发数据并进行负载分担,另外N条链路作为备份链路不转发数据。当M条链路出现故障。系统会从N条链路中选择优先级最高的接替出现故障的链路,并开始转发数据。
LACP和手工负载分担的主要区别为:LACP模式有备份链路,而手工负载分担均处于转发状态,分担负载流量。
LACP协商过程:
- 发现阶段:交换机每个参与LACP协商的接口会周期性交换LACP PDU报文(包含:设备优先级/MAC地址/接口优先级/接口号)发现对端设备可用链路。
- 协商阶段:双方设备根据报文信息协商,设备优先级高的作为主,低的为备,接口优先级高的为活动接口,低的为备用接口。
- 聚合阶段:双方将协商出的活动接口和备用接口聚合到一个聚合组中。
检测阶段:双方设备持续检测LACP PDU报文发送情况,若周期内未接收到,交换机认为活动接口故障并从备用接口中选择一个优先级最高者作为活动接口。若接口恢复会重新参与选举,优先级最高者作为活动接口。
链路聚合实验:
LACP:
#创建链路聚合组:
[sw1]interface Eth-Trunk 1
#配置链路聚合模式
[sw1-Eth-Trunk1]mode lacp-dynamic
lacp:配置为lacp自动协商模式
manual load-balance:配置为手动模式
#将接口加入到链路聚合组
[sw1-GigabitEthernet0/0/1]eth-trunk 1
#配置设备优先级
[sw1]lacp priority 100
#设置接口优先级
[sw1-GigabitEthernet0/0/1]lacp priority 100
#配置最大活动接口数量
[sw1-Eth-Trunk1]max active-linknumber 2
least:最小的
#配置聚合口为trunk
[sw1-Eth-Trunk1]port link-type trunk
[sw1-Eth-Trunk1]port trunk allow-pass vlan all
#查看聚合组信息
[lsw1]dis eth-trunk 1