华为设备堆叠原理和配置

虚拟化技术:

通过虚拟化技术,将园区组网从(STP+VRRP+Eth-Trunk+BFD+路由协议)变成了(CSS + Eth-Trunk + iStack)模式:
在这里插入图片描述
厂商为什么喜欢使用堆叠技术:
https://blog.csdn.net/tushanpeipei/article/details/112639035

iSatck:

智能堆叠iStack (Intelligent Stack),是指将多台支持堆叠特性的交换机设备组合在一起,从逻辑上组合成一台交换设备。如图所示,SwitchA与SwitchB通过堆叠线缆连接后组成堆叠系统,对于上游和下游设备来说,它们就相当于一台交换机Switch。
在这里插入图片描述
优势:
1.通过交换机堆叠,可以实现网络高可靠性和网络大数据量转发,同时简化网络管理。
2.高可靠性。堆叠系统多台成员交换机之间冗余备份;堆叠支持跨设备的链路聚合功能,实现跨设备的链路冗余备份。
3.强大的网络扩展能力。通过增加成员交换机,可以轻松的扩展堆叠系统的端口数、带宽和处理能力;同时支持成员交换机热插拔,新加入的成员交换机自动同步主交换机的配置文件和系统软件版本。
4.简化配置和管理。一方面,用户可以通过任何一台成员交换机登录堆叠系统,对堆叠系统所有成员交换机进行统一配置和管理;另一方面,堆叠形成后,不需要配置复杂的二层破环协议和三层保护倒换协议,简化了网络配置。

基本概念:
堆叠中所有的单台交换机都称为成员交换机,按照功能不同,可以分为三种角色:
1.主交换机(Master):负责管理整个堆叠。堆叠中只有一台主交换机。
2.备交换机(Standby):是主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。堆叠中只有一台备交换机。
3.从交换机(Slave):主要用于业务转发,从交换机数量越多,堆叠系统的转发能力越强。除主交换机和备交换机外,堆叠中其他所有的成员交换机都是从交换机。
堆叠ID:即成员交换机的槽位号(Slot ID),用来标识和管理成员交换机,堆叠中所有成员交换机的堆叠ID都是唯一的。
堆叠优先级:堆叠优先级是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,优先级越高当选为主交换机的可能性越大。

堆叠建立过程:
在这里插入图片描述
“系统自动完成堆叠”实际上可以细分为三步:

  1. 主交换机选举
    ① 运行状态比较,已经运行的交换机比处于启动状态的交换机优先竞争为主交换机。
    ② 堆叠优先级高的交换机优先竞争为主交换机。
    ③ 堆叠优先级相同时,MAC地址小的交换机优先竞争为主交换机。
  2. 拓扑收集和备交换机选举
  3. 主交换机选举完成后,主交换机会收集所有成员交换机的拓扑信息,根据拓扑信息计算出堆叠转发表项和破环点信息下发给堆叠中的所有成员交换机,并向所有成员交换机分配堆叠ID。之后进行备交换机的选举,作为主交换机的备份交换机。当除主交换机外其它交换机同时完成启动时:
    ① 堆叠优先级最高的设备成为备交换机。
    ② 堆叠优先级相同时,MAC地址最小的成为备交换机。
  4. 稳定运行

角色选举、拓扑收集完成之后,剩下的其他成员交换机作为从交换机加入堆叠,所有成员交换机会自动同步主交换机的系统软件和配置文件:

  1. 堆叠具有自动加载系统软件的功能,待组成堆叠的成员交换机不需要具有相同软件版本,只需要版本间兼容即可。当备交换机或从交换机与主交换机的软件版本不一致时,备交换机或从交换机会自动从主交换机下载系统软件,然后使用新系统软件重启,并重新加入堆叠。
  2. 堆叠具有配置文件同步机制,备交换机或从交换机会将主交换机的配置文件同步到本设备并执行,以保证堆叠中的多台设备能够像一台设备一样在网络中工作,并且在主交换机出现故障之后,其余交换机仍能够正常执行各项功能。

堆叠连接方式:
交换机组建堆叠根据堆叠口的不同,可以分为两种方式:堆叠卡堆叠和业务口堆叠。
堆叠卡堆叠又分为以下两种情况:

  1. 交换机之间通过专用的堆叠插卡及专用的堆叠线缆连接。
  2. 堆叠卡集成到了交换机后面板上,交换机通过集成的堆叠端口及专用的堆叠线缆连接。

业务口堆叠指的是交换机之间通过与逻辑堆叠端口绑定的物理成员端口相连,不需要专用的堆叠插卡。如图所示:
在这里插入图片描述
堆叠的操作:
① 成员加入
在这里插入图片描述
堆叠成员加入是指向已经稳定运行的堆叠系统添加一台新的交换机。使能堆叠并配置好SWD的堆叠参数。

  1. 如果是业务口堆叠,新加入的交换机需要配置物理成员端口加入逻辑堆叠端口;并且链形连接时,当前堆叠系统链形两端(或一端)的成员交换机也需要配置物理成员端口加入逻辑堆叠口。
  2. 如果是堆叠卡堆叠,新加入的成员交换机需要使能堆叠功能。
  3. 为了便于管理,建议为新加入的交换机配置堆叠ID。如果不配置,堆叠系统会为其分配一个堆叠ID。

将SWD连接到堆叠系统

  1. 如果是链形连接,新加入的交换机建议添加到链形的两端,这样对现有的业务影响最小。
  2. 如果是环形连接,需要把当前环形拆成链形,然后在链形的两端添加设备。

系统完成堆叠

  1. 新加入的交换机连线上电启动后,进行角色选举,新加入的交换机会选举为从交换机,堆叠系统中原有主备从角色不变。
  2. 角色选举结束后,主交换机更新堆叠拓扑信息,同步到其他成员交换机上,并向新加入的交换机分配堆叠ID(新加入的交换机没有配置堆叠ID或配置的堆叠ID与原堆叠系统的冲突时)。
  3. 新加入的交换机更新堆叠ID,并同步主交换机的配置文件和系统软件,之后进入稳定运行状态。

② 堆叠合并
在这里插入图片描述
堆叠合并是指稳定运行的两个堆叠系统合并成一个新的堆叠系统。如图所示,两个堆叠系统的主交换机SWA和SWD通过竞争,选举出一个更优的作为新堆叠系统的主交换机。竞争成功的主交换机SWA所在的堆叠系统将保持原有主备从角色和配置不变,业务也不会受到影响;而另外一个堆叠系统的所有成员交换机SWD和SWE将重新启动,以从交换机的角色加入到新堆叠系统,其堆叠ID将由新主交换机重新分配,并将同步新主交换机的配置文件和系统软件,该堆叠系统的原有业务也将中断。
堆叠合并通常在以下两种情形下出现:

  1. 堆叠链路或设备故障导致堆叠分裂,链路或设备故障恢复后,分裂的堆叠系统重新合并。
  2. 待加入堆叠系统的交换机配置了堆叠功能,在不下电的情况下,使用堆叠线缆连接到正在运行的堆叠系统。通常情况下,不建议使用该方式形成堆叠,因为在合并前过程中可能会导致正在运行的堆叠系统重启,影响业务运行。

③ 堆叠成员退出
在这里插入图片描述
堆叠成员退出是指成员交换机从堆叠系统中离开。根据退出成员交换机角色的不同,对堆叠系统的影响也有所不同:

  1. 当主交换机退出,备份交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,指定新的备交换机,之后进入稳定运行状态。
  2. 当备交换机退出,主交换机重新指定备交换机,重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。
  3. 当从交换机退出,主交换机重新计算堆叠拓扑并同步到其他成员交换机,之后进入稳定运行状态。

堆叠成员交换机退出的过程,主要就是拆除堆叠线缆和移除交换机的过程:

  1. 对于环形堆叠:成员交换机退出后,为保证网络的可靠性还需要把退出交换机连接的两个端口通过堆叠线缆进行连接。
  2. 对于链形堆叠:拆除中间交换机会造成堆叠分裂。这时需要在拆除前进行业务分析,尽量减少对业务的影响。

④ 堆叠分裂
在这里插入图片描述
堆叠分裂是指稳定运行的堆叠系统中带电移出部分成员交换机,或者堆叠线缆多点故障导致一个堆叠系统变成多个堆叠系统。根据原堆叠系统主备交换机分裂后所处位置的不同,堆叠分裂可分为以下两类:

  1. 堆叠分裂后,原主备交换机被分裂到同一个堆叠系统中:原主交换机会重新计算堆叠拓扑,将移出的成员交换机的拓扑信息删除,并将新的拓扑信息同步给其他成员交换机;而移出的成员交换机检测到堆叠协议报文超时,将自行复位,重新进行选举。
  2. 堆叠分裂后,原主备交换机被分裂到不同的堆叠系统中:原主交换机所在堆叠系统重新指定备交换机,重新计算拓扑信息并同步给其他成员交换机;原备交换机所在堆叠系统将发生备升主,原备交换机升级为主交换机,重新计算堆叠拓扑并同步到其他成员交换机,并指定新的备交换机。

多主检查:
① 直连检查方式
在这里插入图片描述
由于堆叠系统中所有成员交换机都使用同一个IP地址和MAC地址(堆叠系统MAC),一个堆叠分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统。为防止堆叠分裂后,产生多个具有相同IP地址和MAC地址的堆叠系统,引起网络故障,必须进行IP地址和MAC地址的冲突检查。多主检测MAD(Multi-Active Detection),是一种检测和处理堆叠分裂的协议。链路故障导致堆叠系统分裂后,MAD可以实现堆叠分裂的检测、冲突处理和故障恢复,降低堆叠分裂对业务的影响。

MAD检测方式有两种:直连检测方式和代理检测方式。在同一个堆叠系统中,两种检测方式互斥,不可以同时配置。

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

通过中间设备直连:堆叠系统的所有成员交换机之间至少有一条检测链路与中间设备相连。

Full-mesh方式直连:堆叠系统的各成员交换机之间通过检测链路建立Full-mesh全连接,即每两台成员交换机之间至少有一条检测链路。

通过中间设备直连可以实现通过中间设备缩短堆叠成员交换机之间的检测链路长度,适用于成员交换机相距较远的场景。与通过中间设备直连相比,Full-mesh方式直连可以避免由中间设备故障导致的MAD检测失败,但是每两台成员交换机之间都建立全连接会占用较多的接口,所以该方式适用于成员交换机数目较少的场景。

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

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

MAD冲突处理:
堆叠分裂后,MAD冲突处理机制会使分裂后的堆叠系统处于Detect状态或Recovery状态。Detect状态表示堆叠正常工作状态,Recovery状态表示堆叠禁用状态。

MAD冲突处理机制如下:MAD分裂检测机制会检测到网络中存在多个处于Detect状态的堆叠系统,这些堆叠系统之间相互竞争,竞争成功的堆叠系统保持Detect状态,竞争失败的堆叠系统会转入Recovery状态;并且在Recovery状态堆叠系统的所有成员交换机上,关闭除保留端口以外的其它所有物理端口,以保证该堆叠系统不再转发业务报文。

MAD故障恢复:
通过修复故障链路,分裂后的堆叠系统重新合并为一个堆叠系统。重新合并的方式有以下两种:

  1. 堆叠链路修复后,处于Recovery状态的堆叠系统重新启动,与Detect状态的堆叠系统合并,同时将被关闭的业务端口恢复Up,整个堆叠系统恢复。
  2. 如果故障链路修复前,承载业务的Detect状态的堆叠系统也出现了故障。此时,可以先将Detect状态的堆叠系统从网络中移除,再通过命令行启用Recovery状态的堆叠系统,接替原来的业务,然后再修复原Detect状态堆叠系统的故障及链路故障。故障修复后,重新合并堆叠系统。

配置步骤:以CE6800为例子
1.配置SWA的堆叠ID为1,优先级为150,Domain ID为20。(缺省情况下,设备的堆叠成员ID为1。此处默认SWA的堆叠成员ID为1,无需配置。)
[SWA] stack
[SWA-stack] stack member 1 priority 150
[SWA-stack] stack member 1 domain 20
配置SWB的堆叠ID为2,Domain ID为20。
[SWB] stack
[SWB] stack member 1 renumber 2 inherit-config
Warning: The stack configuration of member ID 1 will be inherited to member ID 2 after the device resets. Continue? [Y/N]: y
[SWB-stack] stack member 1 priority 100
[SWB-stack] stack member 1 domain 20

2.配置堆叠端口
[SWA] interface stack-port 1/1
[SWA-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4
Warning: The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode. [Y/N]: y
[SWB] interface stack-port 1/1
[SWB-Stack-Port1/1] port member-group interface 10ge 1/0/1 to 1/0/4
Warning: The interface(s) (10GE1/0/1-1/0/4) will be converted to stack mode. [Y/N]: y

3.保存SWA、SWB的配置,将SWA、SWB下电,然后连接堆叠链路,再给SWA、SWB上电。

4.堆叠建立后重命名系统名
[SW] sysname iStack

注意:配置完成每个步骤后需要commit提交命令

CSS:

在这里插入图片描述
CSS与iStack的区别在于,一般框式交换机堆叠称为CSS,盒式交换机堆叠称为iStack,都可以称为堆叠。两者只是叫法和实现有些差异,但是功能是一样的。

通过交换机集群,可以实现网络高可靠性和网络大数据量转发,同时简化网络管理。

  1. 高可靠性:集群系统两台成员交换机之间冗余备份,同时利用链路聚合功能实现跨设备的链路冗余备份。
  2. 强大的网络扩展能力:通过组建集群增加交换机,从而轻松的扩展端口数、带宽和处理能力。
  3. 简化配置和管理:集群建立后,两台物理设备虚拟成为一台设备,用户只需登录一台成员交换机即可对集群系统所有成员交换机进行统一配置和管理。

基本概念:
主交换机:负责管理整个集群。集群中只有一台主交换机。

备交换机:主交换机的备份交换机。当主交换机故障时,备交换机会接替原主交换机的所有业务。集群中只有一台备交换机。

集群ID:即CSS ID,用来标识和管理成员交换机。集群中成员交换机的集群ID是唯一的。

集群优先级:

  1. 即Priority,是成员交换机的一个属性,主要用于角色选举过程中确定成员交换机的角色,优先级值越大表示优先级越高,优先级越高当选为主交换机的可能性越大。
  2. 不同于iStack可以多台设备堆叠,对于CSS集群,集群中只能有一主一备两台交换机。

CSS集群建立过程:
在这里插入图片描述
集群建立时,成员交换机间相互发送集群竞争报文,通过竞争,一台成为主交换机,负责管理整个集群系统,另一台则成为备交换机。

角色选举

  1. 最先完成启动,并进入单框集群运行状态的交换机成为主交换机。
  2. 当两台交换机同时启动时,集群优先级高的交换机成为主交换机。
  3. 当两台交换机同时启动,且集群优先级又相同时,MAC地址小的交换机成为主交换机。
  4. 当两台交换机同时启动,且集群优先级和MAC都相同时,集群ID小的交换机成为主交换机。

版本同步:集群具有自动加载系统软件的功能,待组成集群的成员交换机不需要具有相同的软件版本,只需要版本间兼容即可。当主交换机选举结束后,如果备交换机与主交换机的软件版本号不一致时,备交换机会自动从主交换机下载系统软件,然后使用新的系统软件重启,并重新加入集群。

配置同步:集群具有严格的配置文件同步机制,来保证集群中的多台交换机能够像一台设备一样在网络中工作。

配置备份:交换机从非集群状态进入集群状态后,会自动将原有的非集群状态下的配置文件加上.bak的扩展名进行备份,以便去使能集群功能后,恢复原有配置。例如,原配置文件扩展名为.cfg,则备份配置文件扩展名为.cfg.bak。去使能交换机集群功能时,用户如果希望恢复交换机的原有配置,可以更改备份配置文件名并指定其为下一次启动的配置文件,然后重新启动交换机,恢复原有配置。

CSS集群连接方式:
在这里插入图片描述
集群的操作:
① 集群成员加入与合并
在这里插入图片描述
使能了集群功能的单台交换机即为单框集群。

集群成员加入是指向稳定运行的单框集群系统中添加一台新的交换机。如图1所示,新交换机SwitchB将加入单框集群系统从而形成新的集群系统。原单框集群的交换机成为主交换机,新加入的交换机成为备交换机。

集群加入通常在以下两种情形下出现:

  1. 在建立集群时,先将一台交换机使能集群功能后重启,重启后这台交换机将进入单框集群状态。然后再使能另外一台交换机的集群功能后重启,则后启动的交换机则按照集群成员加入的流程加入集群系统,成为备交换机。
  2. 在稳定运行的两框集群场景中,将其中一台交换机重启,则这台交换机将以集群成员加入的流程重新加入集群系统,并成为备交换机。

集群合并是指稳定运行的两个单框集群系统合并成一个新的集群系统。如图2所示,两个单框集群系统将自动选出一个更优的作为合并后集群系统的主交换机。被选为主交换机的配置不变,业务也不会受到影响,框内的备用主控板将重启。而备交换机将整框重启,以集群备的角色加入新的集群系统,并将同步主交换机的配置,该交换机原有的业务也将中断。

集群合并通常在以下两种情形下出现:

  1. 将两台交换机分别使能集群功能后重启(重启后的两台交换机都属于单框集群),再使用集群线缆将两台交换机连接,之后会进入集群合并流程。
  2. 集群链路或设备故障导致集群分裂。故障恢复后,分裂后的两个单框集群系统重新合并。

② 集群分裂:
在这里插入图片描述
多组检测:
由于集群系统中所有成员交换机都使用同一个IP地址和MAC地址(集群系统MAC),一个集群分裂后,由于这些成员交换机运行着相同的配置文件(即原集群系统的配置文件),就会产生两个具有相同IP地址和MAC地址的集群系统。为防止集群分裂后,产生两个具有相同IP地址和MAC地址的集群系统,引起网络故障,必须进行IP地址和MAC地址的冲突检查。

多主检测MAD(Multi-Active Detection),是一种检测和处理集群分裂的协议。链路故障导致集群系统分裂后,MAD可以实现集群分裂的检测、冲突处理和故障恢复,降低集群分裂对业务的影响。

MAD检测方式有两种:直连检测方式和代理检测方式。在同一个集群系统中,两种检测方式互斥,不可以同时配置。

① 直连检测方式
在这里插入图片描述
直连检测方式是指集群成员交换机间通过普通线缆直连的专用链路进行多主检测。在直连检测方式中,集群系统正常运行时,不发送MAD报文;集群系统分裂后,分裂后的两台交换机周期性地通过检测链路发送MAD报文以进行多主冲突处理。

直连检测的连接方式包括通过中间设备直连和集群成员交换机直接直连:

  1. 通过中间设备直连:集群系统的成员交换机之间至少有一条检测链路与中间设备相连。此种方式适用于成员交换机相距较远的场景。
  2. 直接直连:集群成员交换机直接直连可以避免由中间设备故障导致MAD检测失败。

② 代理检查方式
在这里插入图片描述
代理检测方式是在集群系统Eth-Trunk上启用代理检测,在代理设备上启用MAD检测功能。此种检测方式要求集群系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个Eth-Trunk内。与直连检测方式相比,代理检测方式无需占用额外的接口,Eth-Trunk接口可同时运行MAD代理检测和其他业务。

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

MAD冲突处理

  1. 集群分裂后,MAD冲突处理机制会使分裂后的单框集群系统处于Detect状态或Recovery状态。Detect状态表示集群正常工作状态,Recovery状态表示集群禁用状态。
  2. MAD冲突处理机制如下:MAD分裂检测机制会检测到网络中存在两个处于Detect状态的集群系统即两台交换机,此时会进行集群优先级比较(优先级相同比较MAC地址,MAC地址相同则比较集群ID),优先级高的交换机将成为主交换机继续正常工作,另一台交换机会转入Recovery状态;并且在Recovery状态的交换机上,关闭除保留端口以外的其它所有物理端口,以保证该交换机不再转发业务报文。

MAD故障恢复
通过修复故障链路,分裂后的集群系统重新合并为一个集群系统。重新合并的方式有以下两种:

  1. 集群链路修复后,处于Recovery状态的集群系统重新启动,与Detect状态的集群系统合并,同时将被关闭的业务端口恢复Up,整个集群系统恢复。
  2. 如果故障链路修复前,承载业务的Detect状态的集群系统也出现了故障。此时,可以先将Detect状态的集群系统从网络中移除,再通过命令行启用Recovery状态的集群系统,接替原来的业务,然后再修复原Detect状态集群系统的故障。故障修复后,重新合并集群系统。

配置步骤:以CE12800为例
1.配置CE-A和CE-B的堆叠属性(设置CE-A比CE-B的优先级高,使CE-A优先成为主交换机)。
[CE-A] stack
[CE-A-stack] stack member 1 //配置堆叠成员ID,缺省为1
[CE-A-stack] stack priority 150 //配置堆叠优先级,缺省为100
[CE-A-stack] stack domain 10 //配置Domain ID
CE-A-stack] stack link-type mainboard-direct //配置连接方式,缺省为mainboard-direct(堆叠连接方式为主控板直连)
[CE-A-stack] quit
[CE-A] commit

[CE-B] stack
[CE-B] stack member 2
Warning: The device will use the configuration of member ID 2 after the device resets. Continue? [Y/N]: y
[CE-B-stack] stack priority 100
[CE-B-stack] stack domain 10
[CE-B-stack] stack link-type mainboard-direct
[CE-B-stack] quit
[CE-B-stack] commit

2.配置对端业务口,两台设备间通过8个跨板10GE光口互连。
[CE-A] port-group group1 //创建端口组
[CE-A-port-group-group1] group-member 10ge 1/0/1 to 10ge 1/0/4 //将端口加入端口组
[CE-A-port-group-group1] group-member 10ge 2/0/1 to 10ge 2/0/4
[CE-A-port-group-group1] shutdown //关闭端口
[CE-A-port-group-group1] quit
[CE-A] commit
[CE-A] interface stack-port 1
[CE-A-Stack-Port1] port member-group interface 10ge 1/0/1 to 1/0/4 //将物理端口加入堆叠端口
[CE-A-Stack-Port1] port member-group interface 10ge 2/0/1 to 2/0/4
[CE-A-Stack-Port1] quit
[CE-A] commit
[CE-A] port-group group1
[CE-A-port-group-group1] undo shutdown //打开端口
[CE-A-port-group-group1] quit
[CE-A] return

CE- B配置同理。

3.使能堆叠功能并重启设备
[CE-A] stack
[CE-A-stack] stack enable
Warning: Make sure that one or more dual-active detection methods are configured once the conversion is complete and the device ente
rs the stack mode.
Current configuration will be converted to the next startup saved-configuration file of stack mode.
System will reboot. Continue? [Y/N]: y

CE- B配置同理。

4.堆叠建立后重命名系统名为CSS。
[CE-A] sysname CSS
[CE-A] commit

整理资料来源:华为培训资料

  • 14
    点赞
  • 145
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值