计算机网络——6.局域网交换技术

局域网交换技术

本文主要对交换技术进行讲解,包括交换网络的基础,VLAN、干道、VTP、ISL、802.1q、STP技术和VLAN间的路由等。

1.   交换基础

园区交换技术包括理解交换网络的模型、交换网络的介质、交换机接口的双工模式与协商过程、交换网络的流量规划原则、堆叠交换机与常规交换机的区别等。

1.1    交换网络的模型

《计算机网络——6.局域网交换技术》

接入层:将终端用户(桌面计算机)连接到网络,因此接入层交换机具有低成本和高密集端口数量的特性。一般建议在及接入层完成具体的VLAN划分、接入安全的控制与接入策略的实施。

汇聚层:汇聚层是多台接入交换机进行汇总,它能够处理来自接入层的所有通信量,并提供到核心层的上行链路,因此汇聚层交换机与接入层交换机比较,需要更高的性能和交换速率,但不需要如接入层那样高密集的端口数量。一般建议在汇聚层完成VLAN间的路由、QOS策略、不同VLAN间的数据过滤、路由汇总、冗余等。

核心层:将交换网络的主干部分称为核心层,核心层的主要目的是高速转发通信数据流量、网络性能优化、通过冗余来实现可靠的骨干传输结构,因此核心层交换机应该拥有整个交换网络模型中最高的可靠性、最大的吞吐量、最快的传输速度。一般建议在核心层交换机上不作任何安全策略及其他数据过滤行为,因为这将消耗核心层交换设备的CPU,违背了核心层高速转发数据的原则。

1.2    交换网络的连接介质

快速以太网连接介质标准

标准

分类

支持的最大距离

100Base-TX

EIA/TIA类型5(UTP)

100米

100Base-T4

EIA/TIA类型3(UTP)

100米

100Base-FX

多模光纤(MMF)

400米或2000米

100Base-TX:基带标准为100MB,使用的是两对阻抗为100欧姆的5类非屏蔽双绞线,最大传输距离是100米,一对用于发送数据,一对用于传输数据,只支持RJ-45标准。

100Base-T4:基带标准为100MB,使用的是4对3类非屏蔽双绞线,最大传输距离是100米,三对用于传输数据,一对用于冲突检测和信号控制的发送接收。

100Base-FX:基带标准为100MB,F表示光纤,属于802.3u标准。适用于骨干和长距离传输。使用两对光纤,一对用于发送数据,一对用于传输数据。如果工作在半双工模式下,支持400米传输距离,如果工作在全双工模式下,支持2000米传输距离。

吉比特以太网连接介质标准

标准

分类

支持的最大距离

1000Base-T

铜质EIA/TIA类型5(UTP),使用4对线完成传输

100米

1000Base-SX

多模光纤,分为62.5微米和50微米光纤芯

260米(62.5微米)或550米(50微米)

1000Base-FX

多模光纤(MMF),波长为780纳米的激光

400米或2000米

1000Base-LX

单模/多模光纤,如果是单模光纤,9微米光纤芯,波长为1300纳米的激光

3千米或10千米

1000Base-ZX

单模光纤,9微米光纤芯,波长为1550纳米的激光

70-100千米

1000Base-CX

铜质屏蔽双绞线

25米

 收发器:将短距离的双绞线电信号和长距离的光信号进行相互转换的以太网传输转换设备。

 《计算机网络——6.局域网交换技术》

1.3    交换机接口的双工模式与协商过程

单工:单工通信即单向通信,发送端只能发送数据,接收端只能接收数据。在任意时刻都是单向通信,比如,遥控、闭路电视等都是单工通信。

半双工:数据可以在一个信号载体的两个方向上传输,也就是说既可以发送数据也可以接收数据,但是不能在同一时刻既接收数据,又发送数据。如,集线器。

全双工:数据可以在一个信号载体的两个方向上同时传输,也就是说同一时刻,可以既接收数据,又发送数据。如果一链路是100MB,可以获得200MBD 传输速率。

思科交换机配置中,duplex是设置双工模式的命令。Auto表示自动协商双工模式,full表示手动方式强制配置为全双工模式,half表示手动强制配置到半双工模式。

关于自动协商双工模式的注意事项

吉比特网双工模式的自动协商很稳定,但快速以太网双工模式自动协商问题比较多,手动配置的100MB全双工或半双工接口不能与配置自动协商的接口更好的协商工作,只有链路两端多配置为自动协商时,才能更好的工作。否则链路上的自动协商端将采用半双工模式。双工不匹配,并不代表链路无建立,只是此时链路效率低,性能差,还可能出现第二层数据帧的错误。

关于快速以太网自动协商双工模式的状态表

网卡

交换机端口

最终链路双工模式

注意事项

自动

自动

100MB全双工

最佳建议

手工100MB全双工

自动

100MB半双工

双工不匹配

自动

手工100MB全双工

100MB半双工

双工不匹配

手工100MB全双工

手工100MB全双工

100MB全双工

正确的手工设置

手工100MB半双工

手工100MB半双工

100MB半双工

正确的手工设置

手工100MB半双工

自动

100MB半双工

双工不匹配

手工10MB半双工

自动

10MB半双工

适应低速模式

手工10MB半双工

手工100MB半双工

无法建立链路

速度不匹配

自动

手工10MB半双工

10MB半双工

适应低速模式

 

直通线和交叉线使用方法

《计算机网络——6.局域网交换技术》

不同类型设备的发送端对于接收端,用直通线。(计算机—集线器、计算机—交换机、交换机—路由器、交换机—防火墙)

同类型的设备发送端对应接收端,接收端对应发送端,用交叉线。(计算机—计算机、集线器—集线器、交换机—交换机、路由器—路由器、防火墙—防火墙、计算机—路由器)

反转线一般不用,只是当计算机超级终端配置交换机和路由器时使用。

 

1.4    堆叠交换机和常规交换机

常规交换机:固定接口数量的交换机和模块化的交换机属于常规交换机系列,应用广泛。

堆叠交换机:通过专用线缆把多台交换机连接起来,师兄单台交换机端口数的扩展,提供更高的吞吐量,在网络管理是,这些堆叠的多台交换机被看作一个统一的网络管理元件,物理上的多台交换机,在逻辑上看成一台交换机。采用级联,每一个交换机上都用一张MAC表,但交换机可以比较分散。而堆叠方式的交换机只有一张MAC表,管理的时候只需要分配一个IP地址,但交换机比较集中。

 《计算机网络——6.局域网交换技术》

2.   虚拟局域网

虚拟局域网(virtual local area network)技术主要是为了解决二层交换机在进行局域网互联时,无法限制广播的问题,同时,打破地理位置对局域网规划的限制,从某种程度上讲,提高了网络性能、加强了安全性。

既然交换机可以划分逻辑上的VLAN,那么有两个问题:通过交换机连接的不通VLAN是如何将数据从源主机发到目标主机的?不同VLAN间是相互隔离的,没有三层交换技术,两个交换机是怎么交换数据的?

2.1   VLAN干道

干道(trunk)是用来连接两台不同交换机的中间线路的,以保证在跨越多个交换机上的同一个VLAN的成员之间能相互通信,其中两台交换机之间互联的端口就称为trunk端口。Trunk端口不属于任何VLAN,但是能承载所有VLAN的通信流量。

 Question:VLAN2的192.168.2.1如何将数据发给192.168.2.2

①Switch A上的主机A 192.168.2.1要给Switch B上的主机B 192.168.2.2发送数据,在主机A上产生一个常规的以太网帧,然后将这个常规的以太网帧发送给交换机Switch A。

②Switch A将这个常规的以太网的帧打上一个属于VLAN2的标记tag。

③Switch A将打上tag的数据帧通过trunk传递到SwitchB。

④Switch B能成功读出帧中的VLAN tag是2。

⑤Switch B 读出VLAN的标记帧是属于VLAN2的,将数据帧发送给VLAN2。

《计算机网络——6.局域网交换技术》

 

2.2 VTP干道协议

    VTP(VLAN trunking protocol)通过网络保持VLAN配置的一致性VTP协议负责增加、删除、调整VLAN,自动将信息向网络中其他交换机广播。如果有多台交换机,每台上有10个VLAN,那么前面讲的方式得在每台交换机上配置10个VLAN,但现在通过VTP协议,只需要配置一台,即配置一台交换机,其余的交换机不用手动配置,直接通过VTP协议进行自动配置。

《计算机网络——6.局域网交换技术》

VTP服务器模式:被配置的VTP server模式的交换机向邻居交换机广播VLAN数据库信息,该消息通过trunk链路传输,邻近的交换机会学习到相应的VLAN数据库信息。VTP的server模式下可以任意地添加、删除和修改VLAN的信息。

VTP客户模式:当交换机配置陈VTP client模式后,它会向下游传递自己的配置信息,客户端会从VTP服务模式的VTP信息中学习新的VLAN信息,并存放到自己的本地数据库。客户模式下,本地交换机可以增加、修改和删除VLAN信息,但不能向下游交换机传递自己配置信息。

VTP透明模式:在VTP的透明模式下,交换机不会从VTP信息中学习VLAN的相关信息,也就是说,它不会把从VTP服务器学到的VLAN配置信息保存到本地,只将学习到的配置信息传递给邻居交换机。

 

VTP的裁剪模式(VTP Pruning)

VTP Pruning是VTP的一个附属功能,目标在于剪裁干道trunk上不必要的信息流量。

 《计算机网络——6.局域网交换技术》

 

2.3   802.1q和ISL

802.1q一种内部插入式的VLAN标准。下面是802.1q的数据帧。

《计算机网络——6.局域网交换技术》

目标地址:数据链路层的目标MAC地址。

源地址:数据链路层的源MAC地址。

Tag属性ID:指示标记属性标示符,0x8100表示传输的是一个802.1q的标记。

用户优先级:数据帧的优先级,网络发送拥塞时,指示数据帧被转发的紧急程度,分为8个等级,数值越高,越被优先转发,默认情况是0。

规范格式指示器:指示MAC地址是否使用规范形式。规范(0),不规范(1)。

VLAN ID:指示数据帧属于具体哪个VLAN,802.1q支持4096个vlan。

类型/长度:原数据帧类型和长度,指被802.1q标记之前的原始以太网数据帧类型,如果是基于IP的数据帧封装,该字段的值是0x0800。

数据:封装在数据帧里面的上层数据。

帧校验:数据帧的校验值。

 

ISL(Inter switchlink):思科专用封装方式,作用是连接多个交换机,当数据帧在交换机之间的干道传输时,ISL负责标记vlan信息。在以太网数据帧前封装一个长度26字节的ISL头部。

《计算机网络——6.局域网交换技术》

目的地址:一个组播MAC地址,向接收该数据段的交换机表示,这是一个ISL封装的帧。

类型:指示数据帧的类型,0000(以太网数据帧)、0001(令牌环数据帧)、0010(FDDI数据帧)、0011(ATM数据帧)。

用户:通常为0,在特殊情况下用于令牌环网发传送。

源地址:发送ISL数据帧的源交换机的MAC地址。

长度:仅包括了ISL头部和用户数据的总长度。

SNAP:固定值0XAA-AA-03。

HAS:源地址中MAC厂商ID部分,思科MAC的厂商ID是0x00-00-0c。

Vlan ID:ISL只支持1024个vlan。

BPDU:数据帧封装在STP,ISL,VTP,CDP等消息,值为1。

Index:标记数据帧来源于交换机的哪个端口。

CRC:从ISL的目的地址用户数据结束的整个数据帧的CRC值,不会代替原来数据帧的CRC值,相当于双重校验。

 

802.1q和ISL的区别

数据帧长度区别:正常以太网帧大小为1518字节,802.1q数据帧长度是1522字节。ISL数据帧长度是1548字节。

标记效率区别:802.1q从内部插入字段,更简洁。ISL在外部怎讲一个vlan标记,额外增加了26字节开销。

Vlan数量的区别:802.1q支持4096个vlan,ISL支持1024个vlan的标记。

 

本地vlan(native vlan)

如果干道封装的是ISL协议,那么任何vlan都会被打上tag标记,没有tag标记的数据帧将被丢弃。但是对于802.1q协议,vlan 1将不被标记,称为本地vlan,所以在传输数据时,没有被标记的数据帧被802.1q的本地vlan所传输,这样为不支持标记vlan的技术提供了兼容性。注意:要求802.1q干道连接的两台交换机都使用相同的本地vlan,默认为1,如果没有相同的本地vlan,可能导致数据链路层的环路,发送vlan配置错误信息。

 

2.4   静态vlan和动态vlan

静态vlan:通过将交换机的某个端口通过手工的方式静态的指派到一个具体的vlan中,需要在交换机的接口模式下,使用命令进行配置,被规划到某个具体vlan的交换机接口,将永久的属于某个具体的vlan,除非改变配置。通常建议使用静态vlan。

动态vlan:主机移动性大,移动频繁,建议使用动态vlan。动态vlan就是交换机的某个接口不与某个具体的vlan成永久性对应关系,随着主机的移动,交换机接口所属的vlan关系将发生变化。动态vlan是基于MAC地址的,VMPS可以记录MAC地址与vlan的对应关系。

 

3.   生成树技术(STP)

网桥与二层交换机因为不能隔离广播,所以不能形成环路。如果形成环路,会引起广播广播风暴与地址学习错误。但是在现实网络中,为了保证正常的业务,会将二层交换机成环,以提供冗余。

  《计算机网络——6.局域网交换技术》《计算机网络——6.局域网交换技术》

形成环路后形成地址学习错误,STP技术就是形成环路后防止广播与地址学习错误的一种机制。将S3的端口Fa0/2阻塞,交换机S3的所以正常业务都通过端口Fa0/1转发,就没有环路。当Fa0/1出现故障后,S3在短期内将Fa0/2端口从逻辑的阻塞状态转变为转发状态,激活冗余链路,让故障在短时间内恢复,这也是STP的关键技术。

 《计算机网络——6.局域网交换技术》

3.1   STP工作原理

在成环链路上如何确定阻塞哪一个端口,通过STP的下面步骤进行了。

①确定环路中的根网桥

STP生成树协议的第一步就是根据交换机的BID(网桥标示符)确定环路中的根桥。BID由优先级+网桥的MAC地址组成。默认情况下网桥优先级是相同的,关键是MAC地址的大小决定根桥,最小的BID为根桥,根桥上所有端口将被设置为转发状态。BID通过交换机之间的BPDU(桥接协议报文单元)进行发送。

②确定根端口

确定了根桥就需要确定根端口,根端口不在根桥上。根端口处于非根桥交换机上,指的是到根桥的最小开销路径。

③确定指派端口和阻塞端口

指派端口将被设置为转发端口,通常根桥上的所有端口可以理解为指派端口,将是转发状态。现在需要通过BPDU消息确定指派端口和阻塞端口,S2和S3发送的BPDU消息中,谁有更小的BID,谁就被设置为指派端口。因为S2具有更小的BID,所以它的fa0/2端口是指派端口,S3的fa0/1为阻塞端口,该端口不能转发任何BPDU消息。

 《计算机网络——6.局域网交换技术》

BPDU报文

BPDU(bridge protocol data unit)网桥协议数据单元,是生成树协议问候数据包,它包括了生成树选举所需要的重要信息,如,BID,路径开销,端口开销等。它以时间间隔周期发出,用来在网桥之间进行信息交换。

《计算机网络——6.局域网交换技术》

属性ID:指示生成树协议,通常为0。

版本:指示STP协议版本,通常为0。

消息类型:指示BPDU的配置消息。

标记:TC表示拓扑改变,TCA表示拓扑改变确定消息。如果是这两种情况,该字段为1,否则为0,表示是一个周期性的BPDU。

根ID:根交换机的BID。

路径开销:指示该交换机到根桥的路径开销,0表示自己就是根桥。

桥接ID:指示该交换机的BID。

消息生存期:执行该BPDU消息已经存在的时间。

最大生存期:执行该BPDU消息的最大生存时间。

Hello时间:指示发送BPDU消息的时间间隔。

转发延时:数据帧的转发延迟时间。

 

生成树收敛过程中的端口状态

禁用(down):交换机没有连接网线或者端口没有通过no shut down指令激活。

阻塞(blocking):当端口被连接网线或者激活后,首先进入的一个状态是阻塞状态,该状态能接收BPDU报文,观察网络拓扑的变换,但是不能转发BPDU报文和正常的通信数据。阻塞状态大概维持20秒。

侦听(listening):此状态大概维持15秒,交换机除了可以接收BPDU,还可以发送BPDU报文,并举与生成树的计算,但是在侦听过程中,交换机不能正常通信数据。

学习(learning):交换机开始学习MAC地址,大概经历15秒钟,此状态下,交换机不能发送正常的通信数据。

转发(forwarding):转发正常通信数据。

状态

是否接收BPDU

是否发送BPDU

是否学习MAC

是否转发数据

Down

Blocking

Listening

Learning

Forwarding

 

3.2   CST、PVST、PVST+

随着网络的发展,生成树也从传统的802.1D转变为多种生成树类型,分为CST、PVST、PVST+、RSTP和MST。

CST(common spanning tree):公共生成树,也叫通用生成树,CST在生成树计算和收敛过程中,不考虑网络中VLAN的存在,只在网络中生成和维护一个单独的生成树进程,换言之,网络中所有的交换机处于同一个生成树实例中(一个进程)。特点是CPU开销低,只需要一个生成树实例,缺点是可能造成某些VLAN的环路,收敛的延时较大。

PVST(per-vlan spanning tree):思科专用的生成树解决方案,针对每个VLAN运行一个生成树实例,也就是说每一个vlan独立使用一个生成树实例,针对不同的vlan控制不同的生成树特性。PVST要求干道封装的是ISL协议,和其他协议存在兼容性问题。特点是为每一个vlan运行一个生成树实例,让不同vlan选择不同的交换机成为根桥,加速了交换机网络中生成树的收敛速度,减小了传统生成树的实例,提供了更快的回复时间,但为每一个维护生成树实例消耗更多的CPU资源。

PVST(per-vlan spanning tree):增强的PVST生成树,继承了PVST的所以优点,为每一个vlan运行一个独立的生成树,但运行CST信息传递给PVST,解决兼容性问题。干道上封装802.1q协议。

MST(multiple spanning tree):多生成树,是有802.1w的RSTP扩展而来的,集成了CST和PVST+的优势,集成了快速收敛和低CPU开销的特点,MST将多个vlan映射到一个生成树实例,但是又不是将所有vlan运行在一个生成树中,这样同时可以达到加速收敛和降低交换机CPU开销。

3.3   RSTP

RSTP(rapid spanning tree protocol)快速生成树协议,被802.1w所定义,在不改变传统生成树算法的选举与计算原则的条件下,能重新快速的计算生成树,而且可以兼容传统的生成树802.1d。RSTP虽然可以兼容传统802.d的生成树,但失去了快速收敛性。如果端口在两个连续hello时间内,所收到的BPDU都不能与RSTP的工作模式相对应,那么运行RSTP的交换机将退回到传统的生成树模式中工作。在RSTP中,只有丢弃(discarding)、学习(learning)和转发(forwarding)三种状态端口。RSTP保留了传统生成树中的根端口、指定端口和阻塞端口,同时引入了替代端口和备份端口。

替代端口:指示在某台交换机上,阻塞从其他网桥接收根BPDU的端口。如果某台交换机的根端口发送故障,替代端口立即成为根端口。

备份端口:阻塞端口所在交换机的共享网段的指定端口接收关于根桥的BPDU,如果指定端口发生故障,备份端口将成为指定端口。

快速过渡到转发状态,是RSTP比传统生成树快的关键特性,传统生成树收敛过程中,相关的端口状态只能是被动的等待网络收敛时间,RSTP可以主动的确认,是否可以安全的过渡到转发状态,放弃对定时器的依赖,为此,RSTP定义了边缘端口和链路类型的功能。

边缘端口:指直连到桌面工作站的交换机端口,这种类型的端口,正常情况下不会在网络中产生桥接环路,所以边缘端口可以直接快速的过渡到转发状态,跳过监听和学习状态,这样直接加速了收敛过程。当该端口的链路发生改变,边缘端口不会产生拓扑变更消息,但是一旦边缘端口接收到BPDU消息(有新网桥接入),那么该端口将立即放弃边缘端口的角色,退回到正常生成树端口。

链路类型:RSTP的指定端口能够在交换机的边缘端口和(全双工)点对点(P2P)类型的链路上快速的过渡到转发状态,所以识别链路类型对于RSTP的快速收敛是相当重要的。

传统802.1d的生成树在拓扑变化与收敛过程中需要长时间的延迟,特别是对于“劣质BPDU”的处理,RSTP解决了这一问题。

《计算机网络——6.局域网交换技术》

劣质BPDU:当收到一个标识自己既是根交换机又是指定交换机的BPDU就是所谓的劣质BPDU。当收到劣质BPDU,说明交换机的非直连链路上出现故障。

对于S3而言,故障产生在非直连链路上,交换机S2就将丢失与根桥的连接,然后发送BPDU给交换机S3,说明自己是根桥,这个就是劣质BPDU,但是S3知道自己与S1连接是良好的,在最大生存时间到期前,它对这个消息不进行处理,这样就浪费了20秒时间延时。所以IEEE的802.1w组织决定,在RSTP中集成了一个backbonefast机制,当它的端口收到一个劣质BPDU消息,就立即接受它,并代替当前的BPDU存储,不需要等待20秒延时,这样就加快了RSTP的收敛速度。

 

RSTP对拓扑的检测速度比传统的802.1d快

802.1d传统生成树中,一个非根桥的交换机只能在其根端口上收到BPDU时,才能生成BPDU,事实上,环路中的各个网桥更像是去转发BPDU,而不是生成BPDU,环路中的原始BPDU是由根桥生成的。而在RSTP中,即便当前网桥没有从网桥收到BPDU,它也能每隔2秒(一个BPDU的hello周期),将当前的BPDU信息发送出去。如果在交换机某个端口上,连续三个hello周期后,没有收到BPDU的消息报文,就认为自己已经丢失了到直接邻居的根桥或者指定网桥的连接,这种信息的快速老化,加速了对拓扑的检测。因为只有本地交换机从邻居接收BPDU失败,就确定邻居连接已经丢失,所以,此时的BPDU报文机制是在网桥之间来维持与检测活跃关系的作用。

802.1d传统生成树中,检测拓扑变化的过程是,当发生故障时,先用一种可靠的机制通知根网桥,当根网桥知道网络拓扑发生变化后,将BPDU报文消息中的TC(topologychange)标志置位,然后将置位TC标记的BPDU扩展到网络的所有交换机上,当网络上收到了根桥发来的BPDU,将自身MAC表的生存时间减少到转发延迟时间长度,确保相对较快的刷新新旧信息。而RSTP中,当交换机从邻居收到一个TC被置位的BPDU时,接收该BPDU消息的交换机将清除所有从端口上学习到的MAC地址,然后一步就将TC扩散到整个网络的交换机上,即省去了先到根网桥的过程,而是直接洪泛。

 

RSTP的BPDU报文与传统的802.1d的BPDU报文区别

两者区别不大,RSTP在BPDU的版本字段是2,然后是对标记字段做了扩展,传统的802.1d生成树标记字段只有两个取值,一个拓扑变化,一个拓扑变化确认;而RSTP引入7个取值范围:拓扑变化、建议、转发、学习、端口角色、协商一致、拓扑变化确认。

 

4.   VLAN间的路由

通常一个vlan对应一个子网,vlan间的通信,多数是不同子网间的通信,不同子网间的通信就得使用路由。Vlan间的路由分为二层交换机结合外部路由器(一台独立的路由器)完成或者是通过三层交换机完成vlan间的路由。

4.1  使用外部路由器结构完成vlan的路由

使用外部路由器结构在vlan间路由,通常是由一台传统路由器与一台仅支持二层功能的交换机所构成,外部路由是一台传统的路由器,要求该路由器的fa0/1接口具备封装干道的功能,然后通过直通线与交换机的干道相连。在外部路由器的fa0/1物理接口下,划分两个子接口(逻辑接口),如fa0/1.1(此接口规划到vlan2,为默认网关)和 fa0/1.2(此接口规划到vlan3,为默认网关)。然后vlan2和vlan3的主机将对应的外部路由器的子接口地址作为默认网关。这样的环境,路由只有一条物理链路连接到交换机,所以称为“单臂路由”。

《计算机网络——6.局域网交换技术》

4.2  使用三层交换机完成vlan间的路由

三层交换机是具备路由功能的交换机,有三种方法完成vlan间路由。

①使用SVI接口完成vlan间路由:SVI是逻辑接口,在SVI上配置三层IP地址完成路由。

②将三层交换机的网络接口当作路由的默认网关,直接在物理接口上,关闭交换机功能,称为三层路由接口,然后配置IP地址。

③使用BVI,类似于SVI,不过现在已经不用这种技术了。

 

 

    原文作者:langtaol
    原文地址: https://blog.csdn.net/u010757264/article/details/50824939
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞