第7章ospf讲解.ppt.ppt_第1页
第7章ospf讲解.ppt.ppt_第2页
第7章ospf讲解.ppt.ppt_第3页
第7章ospf讲解.ppt.ppt_第4页
第7章ospf讲解.ppt.ppt_第5页
免费预览已结束,剩余71页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ConfiguringOSPF,OSPF协议介绍,2,OSPF(OpenShortestPathFirst),1.OSPF协议的基本特点“开放”表明OSPF协议不是受某一家厂商控制,而是公开发表的。“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPFOSPF只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。是分布式的链路状态协议。,OSPF的优点,1.对网络发生的变化能够快速响应2.处理更新有效:当网络发生变化的时候发送触发式更新3.支持VLSM4.没有跳数限制5.基于带宽选择最优路径,采用最短路径优先算法6.支持负载均衡7.支持路由认证,2.OSPF基于链路状态路由协议,如果某个路由器的接口存在于多个区域,就需要为每个区域都构建一棵树。假设一个路由器构造一颗树,该路由器就是树根,利用SPF算法计算到本区域各个网络的最佳路径,OSPF的SPF树计算,OSPF的SPF树计算-开销cost,OSPF使用开销cost来度量最优路径。完整路径的开销是沿这条路径所有输出接口的开销总和。Cost=108/带宽比如100Mb/s的以太网接口的默认开销为1命令ipospfcost可以修改链路开销。,链路开销值cost,举例:auto-costreference-bandwidth1000/则100M链路代价是10,默认开销Cost=108/带宽要覆盖默认开销,可以在接口上使用下列命令:参考带宽的值可以用下列命令修改,单位为Mbps,合法值从1到4,294,967,RouterA(config-if)#ipospfcostinterface-cost/interface-cost取值从1到65535,取值越小链路越好,RouterA(config-router)#auto-costreference-bandwidthref-bw,OSPF基于链路状态路由协议,链路状态路由协议对以下信息进行跟踪:1.邻居信息2.本区域里的所有路由器3.到达目标网络的最佳路径路由器中保存三张表:邻居表:邻居路由器的信息拓扑表:也叫链路状态数据库路由表:到达目标网络的最佳路径,NeighborshipDatabaseListsNeighbors,TopologyDatabaseListsAllRoutes,RoutingTableListsBestRoutes,3.OSPF运行原理,可以把整个网络(一个自治系统AS)看成一个王国,这个王国可以分成几个区(area),现在我们来看看区域内的某一个人(你所在的机器)是怎样得到一张世界地图(routingtable)的。,首先,你得跟你周围的人(同一网段如129.102)建立基本联系。你大叫一声“我在这!”(发HELLO报文),于是,周围的人知道你的存在,他们也会大叫,这样你知道周围大概有哪些人,你与他们之间建立了邻居(neighbor)关系,当然,他们之间也有邻居关系。在你们这一群人中,最有威望(Priority优先级)的人会被推荐为首领(DesignatedRouter)首领与你之间是上下级关系(adjacency邻接),它会与你建立单线联系,而不许你与其它邻居有过多交往,他会说:“那样做的话,街上太挤了”。你只好通过首领来知道更多的消息了,首先,你们互通消息,他告诉你他知道的所有地图的地名,你也会告诉他你现知道的地名,当然也许只有你一个点。(DatabaseDescription数据库描述报文),OSPF运行原理,OSPF运行原理,你发现地名表中有你缺少的或比你新的东西,你会问他要一份更详细的资料,他发现你的地名表中有他需要的东西,他也会向你索求新资料。(LinkStateRequest连接状态请求报文)。当然,你们都会毫不犹豫地将一份详细资料发送给对方。(LinkStateUpdate连接状态升级报文)。收到地图后,互相致谢表示收到了。(LinkStateAck连接状态响应报文)。现在,你已经尽你所能得到一份地图(LinkStateDataBase链路状态数据库),你去查找地图把到所有地方的路挑一条最近(shortestpath最短路)的,记为一张表格(RoutingTable路由表),当然以后查这份表格就知道到目的地的一条最近的路了。但是,你的地图也要收好,万一表格上的某条路不通了可以通过图去找一条新的路。,OSPF运行原理,其实跟你有联系的,只是周围一群人,外面的消息要通过首领来知道。因为你的地图是跟首领的一致。现在我们假设你就是首领,你要去画一份世界地图。你命令所有手下向你通报消息,你可以知道你这一群人的任何一点点小动静(event事件)。你手下还会有同时属于两群人的家伙(同一区域内两网段),他会告诉你另一群人的地图,当然也会把你们这一群人的地图泄露,(不过,无所谓啦)。这样,整个区域的地图你知道了(对于不知道的那也没办法,我们尽力了)。通过不停地交换地图,现在,整个区域(Area)的人都有同样的地图了,住在区边境上的人义不容辞地把这个区的地图(精确到每一群人)发送到别的区,把别的区信息发送进来。国王会把这些边境的人命名为边界使节(router)。通过边界使节的不懈努力,现在,整个国家的地图(所有area)你都了解得一清二楚了。有些人“里通外国”(ASBoundaryRouter自治系统边界路由器),他们知道一些“出国”(ASExternalroute自治系统外部路由)的路,当然他们会把这些秘密公之与众(import引入),通过信息的传递,现在,你已经有一张完整的“世界地图”了。,13,4.OSPF使用区域分层网络,为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫作区域。每一个区域都有一个32位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过200个。,14,4.OSPF使用区域分层网络,为什么要利用区域分层?随着网络覆盖范围的增大,需要解决以下问题:1.SPF算法频繁计算,占用路由器的CPU资源;2.路由表庞大;3.链路状态数据库LSDB庞大,解决方案:OSPF分层路由,网络分成若干区域和自治系统网络分成小的区域后,很多内部路由操作只在各个区域内进行,将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。解决了上述问题。,16,划分区域,OSPF使用两级层次结构的区域划分。在上层的区域叫作主干区域(backbonearea)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他非主干区域区域,是必须有的区域。在下层的区域叫做常规区域(Regularareas)。注意,所有的常规区域必须和骨干区域相连!,区域类型,骨干区域(area0):AnOSPFareawhoseprimaryfunctionisthefastandefficientmovementofIPpackets.常规区域:AnOSPFareawhoseprimaryfunctionistoconnectusersandresources.Regularareasareusuallysetupalongfunctionalorgeographicalgroupings.Bydefault,aregularareadoesnotallowtrafficfromanotherareatouseitslinkstoreachotherareas.Alltrafficfromotherareasmustcrossatransitareasuchasarea0.,注意,所有的常规区域必须和骨干区域相连,RoutersAandB是主干路由器主干路由器构成区域0RoutersC,D,andE被称为区域边界路由器(ABR).ABR将其他区域于骨干区域相连,Area术语,allareasmustconnectdirectlytoarea0,ASBoundaryRouter自治系统边界路由器,OSPF使用区域分层网络,R1,R1,R1,R1,R1,区域0,区域1,区域2,主干路由器,区域边界路由器(ABR),Internet,自治系统边界路由器(ASBR),区域内部路由器,区域边界路由器主干路由器自治系统边界路由器,5.OSPF术语(1)链路:指加入了OSPF进程的接口。(2)路由器ID:用来标志此路由器的IP地址,可以手工指定,或者选最大的Loopback地址或最大的活动接口IP地址。(3)邻居:连在同一条链路上的路由器。(4)邻接:链路数据库同步的邻居关系。邻居不一定邻接。(5)Hello协议:发现、维持邻居关系。(6)邻居关系数据库:保存邻居关系的数据库。(7)拓扑数据库:链路状态数据库。,(8)链路状态通告:LSA是包含链路状态信息的更新包。(9)指定路由器:DR,在广播型网络上负责分发或收集路由信息的路由器。(10)备用指定路由器:BDR,在广播型网络负责分发或收集路由信息的路由器的备份路由器。(11)OSPF区域:一组相邻的网络和路由器。共用同一个AreaID。(12)广播(多路访问):以太网。(13)非广播多路访问:NBMA,FR或ATM。广播(多路访问)和非广播多路访问网络需要选举DR和BDR(14)点到点:两路由器直接连接的网络拓扑类型。,OSPF术语,ConfiguringOSPF,OSPFPacketTypes,OSPFPacketTypes,OSPFPacketTypes,25,OSPFPacketTypes,类型1,问候(Hello)分组。类型2,数据库描述(DatabaseDescription)分组。类型3,链路状态请求(LinkStateRequest)分组。类型4,链路状态更新(LinkStateUpdate)分组,用洪泛法对全网更新链路状态。类型5,链路状态确认(LinkStateAcknowledgment)分组。,26,OSPFPacketTypes,确定可达性,建立双向全邻接的步骤(邻居不一定邻接),建立邻居关系:进入Two-way状态,DiscoveringtheNetworkRoutes,AddingtheLink-StateEntries,进入Full状态,建立全邻接,两个路由器具有相同的拓扑数据库,debugipospfpacket,R1#debugipospfpacketOSPFpacketdebuggingisonR1#*Feb1611:03:51.206:OSPF:rcv.v:2t:1l:48rid:10.0.0.12aid:0.0.0.1chk:D882aut:0auk:fromSerial0/0/0.2,Debugofasinglepacket,ShowsfieldsinOSPFheader,ipospfpacket,ConfiguringOSPF,ConfiguringOSPFRouting,Router(config)#routerospfprocess-id,启动OSPF进程process-id使用1-65535范围的数来识别进程ID,它是本地化数值,用于OSPF数据库中不同实例的识别。,基本OSPF配置,Router(config-router)#networkip-addresswildcard-maskareaarea-id,定义参与OSPF进程的接口ip-addresswildcard-mask配合指出OSPF操作的接口wildcard-mask通配符掩码,值为0的位置表示网络地址必须严格匹配,值为1的位置表示网络地址的匹配情况不必关心,P369-371,配置单区域OSPF,OSPF配置举例,查看OSPF配置,Router#showipprotocols,显示IP路由协议的参数,包括度量值、网络等,Router#showiproute,查看路由表,Router#showipospfneighbordetail,查看邻居列表,包括路由器ID,优先级,邻接关系状态,Router#showiprouteospfprocess-id,显示路由器知道的OSPF路由,Example:TheshowiprouteospfCommand,RouterA#showiprouteospf10.0.0.0/8isvariablysubnetted,3subnets,2masksOIA10.2.1.0/24110/782via10.64.0.2,00:03:05,FastEthernet0/0RouterA#,Example:TheshowipospfneighborCommand,RouterB#showipospfneighborNeighborIDPriStateDeadTimeAddressInterface10.64.0.10FULL/DROTHER00:00:3010.64.0.1FastEthernet0/010.2.1.10FULL/-00:00:3410.2.1.1Serial0/0/1,RouterB#showipospfneighbordetailNeighbor10.64.0.1,interfaceaddress10.64.0.1Inthearea0viainterfaceFastEthernet0/0Neighborpriorityis0,StateisFULL,16statechangesDRis10.64.0.2BDRis0.0.0.0Neighbor10.2.1.1,interfaceaddress10.2.1.1Inthearea1viainterfaceSerial0/0/1Neighborpriorityis0,StateisFULL,6statechangesDRis0.0.0.0BDRis0.0.0.0,ConfiguringOSPF,OSPFNetworkTypes,OSPF网络类型,OSPF定义了三种类型的网络:点对点网络:将一对路由器连接起来的网络广播网络:多路访问广播网络,比如以太网非广播多路访问(NBMA):连接的路由器超过两台,但没有广播.FrameRelay,ATM,andX.25都是NBMA网络.,OSPF网络类型-点对点网络,通常是配置了诸如PPP或HDLC等链路层协议的串行链路不需要选举DR和BDR.OSPF自动探测这种网络类型.,OSPF网络类型-广播网络,以太网是广播网络的典型代表.需要选举DR和BDR.所有的邻居路由器只与DR和BDR形成邻接关系,BroadcastNetworkDR与BDR选举,BroadcastNetworkDR与BDR选举,ElectingtheDRandBDR,只有在广播和非广播的多路访问网络的网络分段上进行DR和BDR的选举;选举规则:首要因素是时间,最先启动的路由器被选举成DR;如果同时启动,或者重新选举,则看接口优先级(范围为0255),优先级最高的被选举成DR,在默认情况下,多路访问网络的接口优先级为1,点到点网络接口优先级为0,修改接口优先级的命令是”ipospfpriority“如果前两者相同,最后看路由器ID,路由器ID最高的被选举成DR。,设置OSPF接口优先级-P386,这个接口配置命令为接口配置OSPF优先极;路由器的不同接口可以被分配不同的值;默认的优先级是1.范围从0到255.0优先级意味着路由器既不能成为DR也不能成为BDR.一个既不是DR也不是BDR的路由器是DROTHER.,Router(config-if)#ipospfprioritynumber,一个接口的优先级只有在现有的DR出现故障时才能发挥作用。DR不会因为新加入的接口在其Hello分组中报告了更高的优先级而放弃其地位。,OSPFRouterID的确定,RouterID(RID)1.作用?根据RouterID来标识路由器.2.如何确定?,OSPFRouterID的确定,确定规则:优先使用命令router-id来确定如果存在环回接口地址,选择环回接口地址中最大的作为routerid选择逻辑接口的最高IP地址作为routerid,一旦routerID被设置便不会改变,即使其地址被用作路由器ID的接口关闭。只有当路由器重启或OSPF路由进程重新启动后,路由器ID才改变。,该命令在routerospfprocess-id命令下运行.配置这个命令后,路由器重启后或重启OSPF路由进程后新的routerID将被使用。,OSPFrouter-idCommand,Router(config-router)#router-idip-address,Router(config)#routerospf1Router(config-router)#router-id172.16.1.1Router#clearipospfprocess,Router#clearipospfprocess,这个命令重启OSPF路由进程,将重新选出IP地址作为RouterID,Router(config)#interfaceloopback0Router(config-if)#ipaddress172.16.17.5255.255.255.255,IftheOSPFprocessisalreadyrunning,theroutermustbereloadedortheOSPFprocessmustberemovedandreconfiguredbeforethenewloopbackaddresswilltakeeffect.,LoopbackInterfaces,OSPFRouterIDVerification,RouterB#shipospfRoutingProcessospf50withID10.64.0.2Numberofareasinthisrouteris2.2normal0stub0nssaNumberofareastransitcapableis0Externalfloodlistlength0AreaBACKBONE(0)AreaBACKBONE(0)AreahasnoauthenticationSPFalgorithmlastexecuted00:01:25.028agoSPFalgorithmexecuted7timesArea1Numberofinterfacesinthisareais1AreahasnoauthenticationSPFalgorithmlastexecuted00:00:54.636agoSPFalgorithmexecuted3times,DR/BDR选举规则:当选举DR/BDR的时候要比较hello包中的优先级(priority),优先级最高的为DR,次高的为BDR.默认优先级都为1.在优先级相同的情况下就比较RID,RID等级最高的为DR,次高的为BDR.当你把优先级设置为0以后,OSPF路由器就不能成为DR/BDR,只能成为DROTHERDR/BDR选举完成后,DRother只和DR/BDR形成邻接关系.DR将洪泛LSU到224.0.0.5;DRother只组播LSU到224.0.0.6,只有DR/BDR监听这个地址,BroadcastNetworkDR与BDR选举,BroadcastNetworkDR与BDR选举,Dr选举是非抢占的,如果一台优先级更高的路由器添加到网络中,原来的DR,BDR保持不变。除非人为地重新选举。重新选举DR的方法有两种,一是路由器重新启动;二是执行”clearipospfprocess”命令。DR失效,BDR成为DR,选举新的BDR。,实验,ConfiguringOSPF,Link-StateAdvertisements,TypesofOSPFRouters,LSATypes,LSAType1:RouterLSA,OnerouterLSA(type1)foreveryrouterinanarea一类LSA描述了路由器物理接口所连接的链路或接口,指明了链路的状态,代价等.每个OSPF区域内的路由器均会产生第一类LSA.它让路由器认识彼此的链路、接口等.只在产生的区域内泛洪.IdentifiedbytherouterIDoftheoriginatingrouterFloodswithinitsareaonly;doesnotcrossABR,LSAType2:NetworkLSA,NetworkLSA是由DR始发的,它描述了多路访问网络生成的网络链路通告,只在网络所在的区域内泛洪.AdvertisedbytheDRofthebroadcastnetworkFloodswithinitsareaonly;doesnotcrossABR,LSAType3:SummaryLSA,NetworksummaryLSA是由ABR发出的,它将某个区域的网络告知其他区域,也就是通知其他区域路由器要到这些网络就找我.RegeneratedbysubsequentABRstofloodthroughouttheautonomoussystem.Bydefault,routesarenotsummarized,andtype3LSAisadvertisedforeverysubnet.,LSAType4:SummaryLSA,Summary(type4)LSAsareusedtoadvertiseanASBRtoallotherareasintheautonomoussystem.它也是由ABR发出的,但是它却是告诉其他区域路由器到本OSPFAS外的网络要找通告里告诉的那个ASBR.可以理解为汇总是由ASBR产生但由ABR代为通告出去的.Type4LSAscontaintherouterIDoftheASBR.,LSAType5:ExternalLSA,External(type5)LSAsareusedtoadvertisenetworksfromotherautonomoussystems.它是由ASBR产生的,用来通告自治系统外部的路由,它在整个OSPF自治系统内泛洪.Type5LSAsareadvertisedandownedbytheoriginatingASBR.Type5LSAsfloodthroughouttheentireautonomoussystem.TheadvertisingrouterID(ASBR)isunchangedthroughouttheautonomoussystem.,LSATypeSummary,第一类.路由器LSA.ROUTERLSA描述了路由器物理接口所连接的链路或接口,指明了链路的状态,代价等.每个OSPF区域内的路由器均会产生第一类LSA.它让路由器彼此认识彼此的链路接口等.只在产生的区域内泛洪.第二类.网络LSANetworkLSA是由DR始发的,它描述了多路访问网络生成的网络链路通告,只在网络所在的区域内泛洪.第三类.网络汇总LSANetworksummaryLSA是由ABR发出的,它将某个区域的汇总告知其他区域,也就是通知其他区域路由器要到这些网络就找我.这里就有点距离矢量路由协议的味道,依靠下一跳路由器来路由.第四类.ASBR汇总LSAASBRSummaryLSA,也是由ABR发出的,但是它却是告诉其他区域路由器到本OSPFAS外的网络要找通告里告诉的那个ASBR.可以理解为汇总是由ASBR产生但由ABR代为通告出去的.第五类.自治系统外部LSAAutonomoussystemexternalLSA,它是由ASBR产生的,用来通告自治系统外部的路由,它在整个OSPF自治系统内泛洪.,InterpretingtheOSPFDatabase,RouterA#showipospfdatabaseOSPFRouterwithID(10.0.0.11)(ProcessID1)RouterLinkStates(Area0)LinkIDADVRouterAgeSeq#ChecksumLinkcount10.0.0.1110.0.0.115480 x800000020 x00401A110.0.0.1210.0.0.125490 x800000040 x003A1B1100.100.100.100100.100.100.1005480 x800002D70 x00EEA92NetLinkStates(Area0)LinkIDADVRouterAgeSeq#Checksum172.31.1.3100.100.100.1005490 x800000010 x004EC9SummaryNetLinkStates(Area0)LinkIDADVRouterAgeSeq#Checksum10.1.0.010.0.0.116540 x800000010 x00FB1110.1.0.010.0.0.126010 x800000010 x00F516,InterpretingtheRoutingTable:TypesofRoutes,TheshowiprouteCommand,RouterBshowiprouteCodes:C-connected,S-static,R-RIP,M-mobile,B-BGPD-EIGRP,EX-EIGRPexternal,O-OSPF,IA-OSPFinterareaN1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2E1-OSPFexternaltype1,E2-OSPFexternaltype2i-IS-IS,su-IS-ISsummary,L1-IS-ISlevel-1,L2-IS-ISlevel-2ia-IS-ISinterarea,*-candidatedefault,U-per-userstaticrouteo-ODR,P-periodicdownloadedstaticrouteGatewayoflastresortisnotset172.31.0.0/24issubnetted,2subnetsOIA172.31.2.0110/1563via10.1.1.1,00:12:35,FastEthernet0/0OIA172.31.1.0110/782via10.1.1.1,00:12:35,FastEthernet0/010.0.0.0/8isvariablysubnetted,6subnets,2masksC10.200.200.13/32isdirectlyconnected,Loopback0C10.1.3.0/24isdirectlyconnected,Serial0/0/0O10.1.2.0/24110/782via10.1.3.4,00:12:35,Serial0/0/0C10.1.1.0/24isdirectlyconnected,FastEthernet0/0O10.1.0.0/24110/782via10.1.1.1,00:12:37,FastEthernet0/0OE210.254.0.0/24110/50via10.1.1.1,00:12:37,FastEthernet0/0,配置OSPF身份认证,一、OSPF定义的认证类型,OSPF定义了三种认证类型:0:表示不进行认证,是默认的类型;1:表示用简单口令认证;2:表示采用MD5认证;路由器对收到的每个路由更新分组的信源进行身份验证,这是通过交换发送路由器和接收路由器都知道的身份验证密钥实现的。同一个网络中,所有的邻接路由器必须使用相同的密码,二、OSPF简单密码身份验证,Router(config-if)#ipospfauthentication,3.接口认证优先于区域认证,Router(config-if)#ipospfauthentication-keypassword,1.为一个接口定义简单密码身份验证(sinceCiscoIOSsoftware12.0),简单密码身份验证举例,Loopback010.2.2.2,在R2的s0/0/1接口上配置相同的命令,使两台路由器身份验证类型相同,密码相同,三、配置OSPFMD5身份认证,Router(config-router)#areaarea-idauthenticationmessage-digest,Router(config-if)#ipospfmessage-digest-keykey-idmd5key,1.为一个接口定义MD5身份验证,2.为一个区域定义MD5身份验证,/keyID和key被用于生成每个OSPF分组的MD5散列值。,ExampleMD5AuthenticationConfiguration,在R2的s0/0/1接口上配置相同的命令,使两台路由器身份验证类型相同,密码相同,R2ConfigurationforMD5Authentication,interfaceLoopback0ipaddress10.2.2.2255.255.255.0interfaceSerial0/0/1ipaddress192.168.1.102255.255.255.224ipospfauthenticationmessage-digestipospfmessage-digest-key1md5secretpassrouterospf10log-adjacency-changesnetwork10.2.2.20.0.0.0area0network192.168.1.00.0.0.255area0,简单密码身份验证-成功,R1#debugipospfadjOSPFadjacencyeventsdebuggingisonR1#*Feb1718:42:01.250:OSPF:2WayCommunicationto10.2.2.2onSerial0/0/1,state2WAY*Feb1718:42:01.250:OSPF:SendDBDto10.2.2.2onSerial0/0/1seq0 x9B6opt0 x52flag0 x7len32*Feb1718:42:01.262:OSPF:RcvDBDfrom10.2.2.2onSerial0/0/1seq0 x23EDopt0 x52flag0 x7len32mtu1500stateEXSTART*Feb1718:42:01.262:OSPF:NBRNegotiationDone.WearetheSLAVE*Feb1718:42:01.262:OSPF:SendDBDto10.2.2.2onSerial0/0/1seq0 x23EDopt0 x52flag0 x2len72R1#showipospfneighborNeighborIDPriStateDeadTimeAddressInterface10.2.2.20FULL/-00:00:34192.168.1.102Serial0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论