锐捷交换机二层 笔记

1、如果把一个接口分配给一个不存在的 VLAN,那么这个 VLAN 将自动被创建。

2、在 VLAN 配置模式下,add interface { interface-id | range interface-range } 批量修改,对于两种形式的接口加入 VLAN 命令,配置生效的原则是后配置的命令覆盖前面配置的命令

3、在全局配置模式下,用户可以通过 interfaces aggregateport xxx配置命令创建一个以太网 AP 口,用户可以通过在指定以太网端口的接口模式下,执行 port-group 命令将物理端口加入一个静态 AP;如果该 AP 不存在,则同时自动创建这个 AP 口。用户也可以通过在指定物理端口的接口模式下,执行 port-group mode 命令将物理端口加入一个 LACP AP;如果该 AP不存在,则同时自动创建这个 AP 口。配置 AP 功能时,需要在链路两端的设备上都配置,且需要配置相同的 AP 类型(静态 AP 或者 LACP)。
AP端口如果类型2边不一致,不会影响通信,但是选中的端口只有一个,另外一个端口处于物理UP /LACP协议DOWN的状态。

4、接口的载波时延 Carry-delay 是指接口链路的载波检测信号 DCD 从 Down 状态到 Up 状态或者从 Up 状态到 Down 状态的时间延时,如果 DCD 在延时之内发生变化,那么系统将忽略这种状态的变化而不至于上层的数据链路层重新协商。如果参数设置的比较大,那么几乎每次瞬间的 DCD 变化将无法被检测到;相反,如果参数设置成 0,那么每次微小的 DCD 信号的跳变都将被系统检测到,这样系统也就将增加不稳定性。
如果 DCD 载波中断时间比较长,那么将该参数设长些,可以尽快加速拓扑收敛和路由汇聚,以便网络拓扑或者路由表可以较快的收敛。如果相反,DCD 载波中断时间小于网络拓扑或者路由汇聚所花的时间,那么应该将该参数设置相对的大些,以免造成没有必要的网络拓扑振荡或者路由振荡。
缺省情况下,接口的 Carry-delay 值为 2 秒
这个问题也可以说成交换机从线缆插入到物理UP所需要的时间为2s;或者说线缆从交换机上拔掉到端口显示物理down 需要2s,这个时间可以通过全局Carry-delay 调整

5、当端口设为保护口之后,保护口之间互相无法通讯,保护口与非保护口之间可以正常通讯。配置,端口下,switchport protected
保护口有两种模式,一种是阻断保护口之间的二层交换,但允许保护口之间进行路由,第二种是同时阻断保护口之间的二层交
换和阻断路由;在两种模式都支持的情况下,第一种模式将作为缺省配置模式。缺省情况下,保护口之间的三层路由并没有被阻断,这个时候可以通过设置保护口之间不能进行路由的功能来实现保护口之间的路由阻断功能。配置,全局模式下,protected-ports route-deny

6、锐捷和思科的交换机的端口很多情况下会意外关闭,可以通过show interface status err-disable查看端口意外关闭的原因,端口违例发生后,端口被关闭,缺省情况下不会恢复。配置了端口违例恢复后,违例的端口会被恢复,端口会被打开。
errdisable recovery [interval time] 30-86400秒 ,缺省300秒
errdisable recovery cause all

7、当怀疑有逻辑环路的时候,需要在同一 VLAN 内检测到同一个 MAC 地址在不同端口上短时间内漂移时,打印 Syslog 告警,则应配置MAC 地址漂移检测功能。
全局模式 mac-address-table flapping-logging 可以通过打印 Syslog 查看是否有检测到 MAC 地址漂移。

8、实际交换机的 mtu 的生效值比配置值多 26 字节(包含 12 字节以太网地址头部、4 个字节的 FCS校验、2 个TAG,8个字节的前导码用于数据帧之间的隔离);所以二层以太网数据帧的长度应该是1526字节,而抓包软件通常会去掉前导码和FCS校验,所以显示的数据帧长度是1516字节

9、AP的流量均衡模式为基于源和目的 MAC(如交换机产品系列)或者基于源和目的 IP(如网关产品系列)的流量均衡方式或为基于增强模式模板的流量均衡(如使用 CB 线卡的交换机设备),所谓的增强模式,允许用户将不同报文类型的多个字段进行组合以达到流量均衡,在增强模式下,设备先判断发送报文的类型,然后根据指定报文的字段进行流量均衡。比如,源 IP 变化的 IPv4 报文要从 AP口输出,那么 AP 会根据用户指定的 IPv4 报文字段 src-ip 进行流量均衡。

10、SuperVlan 是为了节省IP地址
在这里插入图片描述
SuperVLAN典型配置
SwitchA#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
SwitchA(config)#vlan 2
SwitchA(config-vlan)#exit
SwitchA(config)#vlan 10
SwitchA(config-vlan)#exit
SwitchA(config)#vlan 20
SwitchA(config-vlan)#exit
SwitchA(config)#vlan 30
SwitchA(config-vlan)#exit
SwitchA(config)#vlan 2
SwitchA(config-vlan)#supervlan
SwitchA(config-vlan)#subvlan 10,20,30
SwitchA(config-vlan)#exit
SwitchA(config)#interface vlan 2
SwitchA(config-if-VLAN 2)#ip address 192.168.1.1 255.255.255.0
SwitchA(config)#vlan 10
SwitchA(config-vlan)#subvlan-address-range 192.168.1.10 192.168.1.50
SwitchA(config-vlan)#exit
SwitchA(config)#vlan 20
SwitchA(config-vlan)#subvlan-address-range 192.168.1.60 192.168.1.100
SwitchA(config-vlan)#exit
SwitchA(config)#vlan 30
SwitchA(config-vlan)#subvlan-address-range 192.168.1.110 192.168.1.150
SwitchA(config)#interface range gigabitEthernet 0/1,0/5,0/9
SwitchA(config-if-range)#switchport mode trunk
Sub VLAN IP 地址范围
如果需要划分用户的 IP 地址使用范围,可以为每个 Sub VLAN 划分一个 IP 地址范围,Sub VLAN 内用户的 IP 地址在规
定的范围内才能与其它 VLAN 的用户正常通信,否则不能跨 VLAN 通信。
若无特殊要求,可以不用划分 IP 地址范围。

11、锐捷对STP协议的一段描述如下:
一开始每台交换机都认为自己是根桥,都发送自己产生的BPDU,
当网桥的一个端口收到高优先级的 BPDU(更小的 Bridge ID,更小的 Root Path Cost 等),就在该端口保存这些信息,这个端口就不在发送BPDU,变成根桥RP;同时向所有端口更新并传播这些信息(这些端口大部分就是指定端口DP,也有部分是BP,这个端口也收到了同样是根桥发的BPDU,但是因为去往根桥的COST更大,而变成阻塞状态)。如果收到比自己低优先级的 BPDU,网桥就丢弃该信息。
这样的机制就使高优先级的信息在整个网络中传播开,BPDU 的交流就有了下面的结果:
l 网络中选择了一个网桥为根桥(Root Bridge)。
l 除根桥外的每个网桥都有一个根口(Root Port),即提供最短路径到 Root Bridge 的端口。
l 每个网桥都计算出了到根桥(Root Bridge)的最短路径。
l 每个 LAN 都有了指派网桥(Designated Bridge),位于该 LAN 与根桥之间的最短路径中。指派网桥和 LAN 相连的端口称为指派端口(Designated Port)。
l 根口(Root port)和指派端口(Designated Port)进入 Forwarding 状态。
以下为各个端口角色的示意图 1、2、3:
R = Root Port D = Designated Port A = Alternate Port B = Backup Port
在没有特别说明情况下,端口优先级从左到右递减。
在这里插入图片描述
12、这个问题可以这么问:当光电复用口同时接上线时,哪个口生效?
如果同一端口可以选择光口和电口两种介质类型,用户只能使用其中之一。一旦确定介质类型之后,在配置端口的属性,例如状态、双工、流量控制和速率等,都是指端口当前选择类型的属性。改变端口类型后,新类型对应的端口的属性为其默认属性,用户可以根据需要重新配置。
如果用户配置端口介质自动选择,在端口只有一种介质连接上时,设备使用当前连接的介质;在端口的两种介质都连接上时,设备将使用用户配置的优先介质。介质自动选择优先介质默认为电口,用户可以通过配置medium-type auto-select prefer fiber 来设置优先介质为光口。在自动选择模式下,端口的速率、双工、流控等属性将使用默认值。

13、关于接口震荡
当发生接口震荡时,会产生大量硬件中断,从而消耗大量 CPU 资源,另一方面频繁的接口震荡容易损害接口,用户可以配置接口震荡保护功能来保护接口。默认开启。
工作原理:
接口链路震荡保护功能由用户自行决定是否开启,默认情况下为开启保护功能。当接口发生震荡时,接口每 2s 或 10 秒都会检测一次震荡,如果检测到接口 2s 内震荡 6 次,则打印提示信息,连续打印 10 次提示信息(也就是 20s 内连续检测到接口震荡),则关闭接口;对于 10s 检测一次震荡,如果检测到接口 10s 发生 10 次震荡,则打印提示信息,不关闭接口.由于接口震荡 接口的error状态会显示 link-flip ,默认是全局开启,命令是physical-port dither protect

14、SFP类型的接口就不允许把速率设为10M。对于 40G 物理端口,只允许配置接口的速率为 speed 40G 和 speed auto 两种。SFP+端口插入SFP模块速率自动变成千兆全双工,SFP+万兆端口插入SFP+模块速率是万兆,不支持自动协商,需要手工指定速率和双工模式。

15、配置接口的兼容性模式,可以使该端口发送 BPDU 时根据当前端口的属性有选择的携带不同的 MSTI 的信息,以实现与其它产商之间的互连。缺省是关闭接口的兼容模式,接口下的命令为spanning-tree compatible enable

16、以下情况可以考虑做ARP静态绑定,作用是防止网关仿冒
在这里插入图片描述
17、锐捷关于GVRP的描述
工作原理
l GVRP 是 GARP 应用的一种,它基于 GARP 的工作机制来维护设备中的 VLAN 动态注册信息,并将该信息向其它设备传播:当设备启动了 GVRP 之后,就能够接收来自其它设备的 VLAN 注册信息,并动态更新本地的 VLAN 注册信息;此外,设备还能够将本地的 VLAN 注册信息向其它设备传播,从而使同一局域网内所有设备的 VLAN 信息都达成一致。
GVRP 传播的 VLAN 注册信息既包括本地手工配置的静态注册信息,也包括来自其它设备的动态注册信息。
对外通告 VLAN 信息
开启 GVRP 功能的设备上的 Trunk 口会定时收集 Trunk 口内的 VLAN 信息,告诉对端设备本 Trunk 口加入了哪些 VLAN 或者退出哪些 VLAN,通过将这些 VLAN 信息封装在 GVRP 报文内发送给对端设备,对端设备连接的 Trunk 口收到 GVRP 报文后会解析 VLAN 信息,动态的创建 VLAN 并将端口加入 VLAN 或者将端口退出 VLAN。相互连接进行通信的两台设备都应启动 GVRP,GVRP 信息只在 Trunk Links 中传播,但传播的信息包括当前设备的所有
VLAN 信息,不管 VLAN 是动态学习的,或是手工设置的。
l在运行 STP(Spanning-tree Protocol)的情况下,只有状态为 Forwarding 的端口才会参与 GVRP 的运行,如接收、发送 GVRP PDU,只有状态为 Forwarding 的端口的 VLAN 信息会被 GVRP 扩散。
所有由 GVRP 添加的 VLAN Port 都是 Tagged Port。 所有由 GVRP 动态学习的 VLAN 信息都未保存在系统中,当设备复位时,这些信息将全部丢失。用户也不可以保存这些动态学习到的 VLAN 信息。正因为这点和协议必须依赖trunk运行,并且是锐捷的私有协议,实际环境中还有其他厂商的交换机,所以实际环境并不常用。同理思科的VTP也是一样,实际场景中通常会设置为透明模式。
l 网络中所有需要交换 GVRP 信息的设备的 GVRP Timers(Join,Leave,Leaveall)必须保持一致。
设备上开启 GVRP 和动态 VLAN 创建的功能。

configure terminal

(config)# gvrp enable
(config)# gvrp dynamic-vlan-creation enable
将互连设备的端口设置为 trunk 口。
(config)# interface range GigabitEthernet 0/2-3
(config-if-GigabitEthernet 0/2)# switchport mode trunk

18、锐捷关于ERPS的描述
ERPS(Ethernet Ring Protection Switching,以太环网保护切换协议)为 ITU 开发的一种环网保护协议,也称 G.8032。它是一个专门应用于以太环网的链路层协议。它在以太环网完整时能够防止数据环路引起的广播风暴,而当以太环网上一条链路断开时能迅速恢复环网上各个节点之间的通信。
目前,解决二层网络环路问题的技术还有 STP。STP 应用比较成熟,但其收敛的时间比较长(秒级)。ERPS 是专门应用于以太环网的链路层协议,二层收敛性能达 50ms 以内,具有比 STP 更快的收敛速度。
这2个协议是互斥的,配置一个后另外一个要禁用。适用场景为环网。

19、边缘口的自动识别
指派口在一定的时间范围内(为 3 秒),如果收不到下游端口发送的 BPDU,则认为该端口相连的是一台网络设备,从而设置该端口为边缘端口,直接进入 Forwarding 状态。自动标识为边缘口的端口因收到 BPDU 而自动识别为非边缘口。
可以通过 spanning-tree autoedge disabled 命令取消边缘口的自动识别功能。
该功能是缺省打开的。
边缘口的自动标识功能与手工的 Port Fast 冲突时,以手工配置的为准。

20、MSTP 配置 Maximum-Hop Count
可选配置。如果网络拓扑规模较大,使得 BPDU 帧的传递超过了默认的 20 跳,则建议更改 max-hops 配置。
【命令格式】 spanning-tree max-hops hop-count
【参数说明】 hop-count:BPDU 在被丢弃之前可以经过设备的次数,范围为 1-40
【缺省配置】 hop-count 的缺省值为 20
【命令模式】 全局配置模式
【使用指导】 在
Region 内,Root Bridge 发送的 BPDU 包含一个 Hot Count 项,从 Root Bridge 开始,每经过一个设备,Hop Count 就会减 1,直到为 0 则表示该 BPDU 信息超时,设备收到 Hops 值为 0 的 BPDU 就要丢弃它。此命令指定了 BPDU 在一个 Region 内经过多少台设备后被丢弃。改变 max-hops 将影响到所有 Instance。
所以MSTP 同一个Region的交换机数量建议不要超过20台,这也是一个推荐的经验值。

21、锐捷关于Port Fast的描述
如果设备的端口直连着网络终端,那么就可以设置该端口为 Port Fast。
l在全局配置模式下,使用 spanning-tree portfast default 命令可以打开所有接口的 Portfast 开关;使用 no spanning-tree portfast default 命令关闭所有接口的 portfast 开关。
在接口配置模式下使用 spanning-tree portfast 命令可以打开某个接口的 Portfast 开关;使用 spanning-tree portfast disabled 命令关闭某个接口的 portfast 开关。
打开 Port Fast 后该端口会直接 Forwarding。但会因为收到 BPDU ,如果这个时候没有配置BPDU Filter 或者 BPDU Guard而使 Port Fast Operational State 为disabled,从而正常的参与 STP 算法而 Forwarding
日常配置中如果牵涉到DHCP场景必须配置,并且因为边缘端口不发送TC报文,而TC报文会刷新MAC表项,所以面向客户端或者质量不好的网线,必须配置边缘端口,锐捷针对边缘端口采用自动识别自动配置的策略,H3C 则在使用巡检工具的时候会提示未配置边缘端口为高风险项,锐捷针对桌面接入场景的交换机甚至认为应该使用全局命令spanning-tree tc-guard 来禁止TC报文向上游发送。

22、锐捷关于BPDU Guard的描述
如果设备的端口直连着网络终端,为了防止受到 BPDU 攻击导致生成树拓扑发生异常,可以在这些端口上配置 BPDU Guard 功能。开启 BPDU Guard 的端口收到 BPDU,端口会进入 Error-disabled 状态。
l 如果设备的端口直连着网络终端,为了防止端口下连出现环路,也可以配置 BPDU Guard 功能防止环路。该应用依赖下连设备(比如 HUB)能够转发 BPDU 帧。
在全局配置模式下,使用spanning-tree portfast bpduguard default 命令可以打开所有接口的 BPDU guard 开关;使用no spanning-tree portfast bpduguard default 命令关闭所有接口的 BPDU guard 开关。
l 在 接 口 配 置 模 式 下 使 用spanning-tree bpduguard enabled 命 令 可 以 打 开 某 个 接 口 的 BPDU guard 开 关 ; 使用spanning-tree bpduguard disabled 命令关闭某个接口的 BPDU guard 开关。如果在该端口上收到 BPDU,则会进入 error-disabled 状态。使用 show spanning-tree 命令查看设置。
这个功能如果在全局启用,默认在边缘端口生效;而且一般也配置在边缘端口。必须确保接入设备不会发送BPDU才可以这么去配置。锐捷和思科对这个功能还有另外一种解释,当接入设备是一台HUB,并且HUB同时接2条线到锐捷或者锐捷或者思科交换机的时候,这个时候还能起到一个防环的作用(前提是HUB不过滤这个BPDU二层组播报文);当然如果说HUB过滤了BPDU报文,或者说HUB自环了,这种情况下需要用到锐捷的RLDP防环机制,详见:
https://user.qzone.qq.com/691655988/blog/1709007436

除了BPDU Guard以外,还可以使用BPDU Filter,使用方法和BPDU Guard一样,但是打开 BPDU Filter 后,相应端口会既不发 BPDU,也不收 BPDU,端口即使收到BPDU也不会处于error-down状态。

23、锐捷关于MSTP TC防护的描述
Tc-protection
TC-BPDU 报文是指携带 TC 标志的 BPDU 报文,交换机收到这类报文表示网络拓扑发生了变化,会进行 MAC 地址表的删除操作,对三层交换机,还会引发快转模块的重新打通操作,并改变 ARP 表项的端口状态。为避免交换机受到伪造 TC-BPDU报文的恶意攻击时频繁进行以上操作,负荷过重,影响网络稳定,可以使用 TC-protection 功能进行保护。
Tc-protection 只能全局的打开和关闭,缺省情况下为关闭此功能。
在打开相应功能时,收到 TC-BPDU 报文后的一定时间内(一般为 4 秒),只进行一次删除操作,同时监控该时间段内是否收到 TC-BPDU 报文。如果在该时间段内收到了 TC-BPDU 报文,则设备在该时间超时后再进行一次删除操作。这样可以避免频繁的删除 MAC 地址表项和 ARP 表项。配置命令 全局模式下 spanning-tree tc-protection ,这个配置建议在根桥所在交换机配置,主要是用于防止TC攻击。
另外2种TC防护分别是TC Guard和TC Filter:主要应用场景是桌面接入交换机上面全局配置,主要用于过滤接入层交换机产生的TC报文对全网的影响。命令分别是 全局下面 spanning-tree tc-guard 和 spanning-tree ignore tc 作用都是一样的,过滤TC收到的和自己产生的TC报文。

24、锐捷关于Root Guard 和 loopguard的描述
首先这2个特性不能在一个端口下配
为了防止因维护人员的错误配置或网络中的恶意攻击,根桥可能收到优先级更高的配置信息,从而失去当前根桥的位置,引起网络拓扑的错误的变动,可以在设备的指派端口上配置 ROOT Guard 功能。这个配置在根桥的指定端口上,当收到更优的BPDU报文端口将处于root inconsistence 状态,并且会反复恢复尝试。

为了防止接收端口(根端口、Master 端口或 Alternate 端口)因接收不到指派网桥发送的 BPDU 而使网络拓扑发生变化,从而引起可能的环路,可以在上述接收端口上配置 LOOP Guard 功能,提高设备的稳定性。
l 在全局配置模式下,使用spanning-tree loopguard default 命令打开所有接口的 Loop Guard 功能;使用 no spanning-tree loopguard default 命令关闭所有接口的 Loop Guard 功能。
l 在接口配置模式下使用 spanning-tree guard loop 命令打开某个接口的 Loop Guard 功能;使用 no spanning-tree guard loop 命令关闭某个接口的 Loop Guard 功能。
这个功能主要是为了防止其他网桥的根端口,因为收不到根桥的BPDU,误认为自己就是根桥而发送BPDU,导致单通环路的情况。有点类似思科的UDLD。他们的区别如下:
在这里插入图片描述
25、二层曾经一个经典配置案例MSTP+VRRP配合,但是现在用的不多
在这里插入图片描述
配置如下:
第一步,配置 VLAN 10,20,同时设备互联端口配置成 Trunk 口
A(config)#vlan 10
A(config-vlan)#vlan 20
A(config-vlan)#exit
A(config)#int range gi 0/1-2
A(config-if-range)#switchport mode trunk
A(config-if-range)#int ag 1
A(config-if-AggregatePort 1)# switchport mode trunk
第二步,打开 MSTP,同时创建实例 1,2
A(config)#spanning-tree
A(config)# spanning-tree mst configuration
A(config-mst)#instance 1 vlan 10
A(config-mst)#instance 2 vlan 20
A(config-mst)#exit
第三步,配置设备 A 为实例 0 和 1 的根桥
A(config)#spanning-tree mst 0 priority 4096
A(config)#spanning-tree mst 1 priority 4096
A(config)#spanning-tree mst 2 priority 8192
第四步,配置 VRRP 的优先级,使设备 A 为 VLAN 10 的 VRRP Master 设备,同时配置 VRRP 虚网关 IP 地址
A(config)#interface vlan 10
A(config-if-VLAN 10)ip address 192.168.10.2 255.255.255.0
A(config-if-VLAN 10) vrrp 1 priority 120
A(config-if-VLAN 10) vrrp 1 ip 192.168.10.1
第五步,VRRP 的默认优先级为 100,使设备 A 为 VLAN 20 的 VRRP Backup 设备
A(config)#interface vlan 20
A(config-if-VLAN 20)ip address 192.168.20.2 255.255.255.0
A(config-if-VLAN 20) vrrp 1 ip 192.168.20.1
B 第一步,配置 VLAN 10,20,同时设备互联端口配置成 Trunk 口
B(config)#vlan 10
B(config-vlan)#vlan 20
B(config-vlan)#exit
B(config)#int range gi 0/1-2
B(config-if-range)#switchport mode trunk
B(config-if-range)#int ag 1
B(config-if-AggregatePort 1)# switchport mode trunk
第二步,打开 MSTP,同时创建实例 1,2
B(config)#spanning-tree
B(config)# spanning-tree mst configuration
B(config-mst)#instance 1 vlan 10
B(config-mst)#instance 2 vlan 20
B(config-mst)#exit
第三步,配置设备 A 为实例 2 的根桥
B(config)#spanning-tree mst 0 priority 8192
B(config)#spanning-tree mst 1 priority 8192
B(config)#spanning-tree mst 2 priority 4096
第四步,配置 VRRP 虚网关 IP 地址
B(config)#interface vlan 10
B(config-if-VLAN 10)ip address 192.168.10.3 255.255.255.0
B(config-if-VLAN 10) vrrp 1 ip 192.168.10.1
第五步,配置 VRRP 的优先级为 120,使设备 B 为 VLAN 20 的 VRRP Master 设备
B(config)#interface vlan 20
B(config-if-VLAN 20)vrrp 1 priority 120
B(config-if-VLAN 20)ip address 192.168.20.3 255.255.255.0
B(config-if-VLAN 20) vrrp 1 ip 192.168.20.1
C 第一步,配置 VLAN 10,20,同时设备互联端口配置成 Trunk 口
C(config)#vlan 10
C(config-vlan)#vlan 20
C(config-vlan)#exit
C(config)#int range gi 0/1-2
C(config-if-range)#switchport mode trunk
第二步,打开 MSTP,同时创建实例 1,2
C(config)#spanning-tree
C(config)# spanning-tree mst configuration
C(config-mst)#instance 1 vlan 10
C(config-mst)#instance 2 vlan 20
C(config-mst)#exit
第三步,配置设备 C 直接用户的端口为 Portfast 口,同时启用 BPDU Guard。
C(config)#int gi 0/3
C(config-if-GigabitEthernet 0/3)#spanning-tree portfast
C(config-if-GigabitEthernet 0/3)#spanning-tree bpduguard enable
D 同设备 C

26、锐捷关于ARP静态绑定场景的一个描述
在这里插入图片描述
IP静态指定,为了防止IP冲突,ARP静态标项优于动态表项

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值