路由器及路由协议_第1页
路由器及路由协议_第2页
路由器及路由协议_第3页
路由器及路由协议_第4页
路由器及路由协议_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

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

文档简介

路由器技术及相关协议 2020 4 6 引言 目前的网络互联设备按其功能分有多种 如 集线器 物理层 网桥 数据链路层 交换机 数据链路层 路由器 网络层 网关 传输层及以上 等 它们的工作原理不同 复杂性也各不相同 其中 路由器以其技术上良好的性能 得到广泛应用 成为目前网络互联的关键设备 路由器是网络中进行网间互连的关键设备 工作在OSI的第三层 网络层 其主要作用是寻找互联网之间的最佳路径 2020 4 6 路由选择协议 理想的路由算法层次路由结构路由策略内部网关协议RIP内部网关协议OSPF外部网关协议BGP 2020 4 6 1 理想的路由算法 算法必须是正确的和完整的 算法在计算上应简单 算法应能适应通信量和网络拓扑的变化 这就是说 要有自适应性 算法应具有稳定性 算法应是公平的 算法应是最佳的 2020 4 6 自治系统IGP EGP层次路由 2 分层次的路由结构 2020 4 6 自治系统 AS AutonomousSystem 因特网采用分层次的路由选择协议 其将整个互联网划分为许多较小的自治系统AS从路由的角度看 拥有同样的路由策略 在同一管理机构下的由一系列路由器和网络构成的系统称为自治系统AS 相对其他的自治系统AS而言 一个自治系统AS的有独立而统一的内部路由策略 它对外呈现一致的路由状态 每个自治系统AS都有一个唯一的编号 即AS号 2020 4 6 IGP和EGP 内部网关协议IGP同一个AS内部的路由器之间的路由协议IGP的目的就是寻找AS内部所有路由器之间的最短路经 常见的IGP协议有RIP和OSPF 外部网关协议EGPAS之间的路由协议 EGP的目的是维持AS之间的连通性 常用的EGP协议有BGP 4 2020 4 6 层次路由结构 自治系统之间的路由选择也叫做域间路由选择 interdomainrouting 在自治系统内部的路由选择叫做域内路由选择 intradomainrouting 用内部网关协议 例如 RIP 自治系统B 自治系统A 用外部网关协议 例如 BGP 4 用内部网关协议 例如 OSPF 2020 4 6 3 路由策略 静态路由策略准静态路由策略动态路由策略 2020 4 6 静态路由策略 静态路由策略 即非自适应路由选择 路由器的路由表是由网络管理员手工配置的 特点是简单和开销较小 但不能及时适应网络状态的变化 采用静态路由策略的路由器把报文转发到特定接口 在目的地址和路由器接口之间的关系确定以后 就不再需要路由器来试图发现路由甚至和其他的路由器来交换通向目的地的路由信息 2020 4 6 具有静态路由的简单互联网络 2020 4 6 各路由器的静态路由表 2020 4 6 静态路由中链路中断情形 2020 4 6 每一个路由器都向路由器管理者汇报 由其统一整理后再分发给每一个路由器 准静态路由策略 2020 4 6 动态路由选择策略 即自适应路由选择 其特点是能较好地适应网络状态的变化 但实现起来较为复杂 开销也比较大 为了让路由器能够动态适应链路状态和网络拓扑结构的变化 目前大部分路由器都支持动态路由 而动态路由是通过路由算法和协议来实现的 两种常用的动态路由算法是D V路由算法和L S路由算法 动态路由策略 2020 4 6 4 RIP协议 路由信息协议RIP是内部网关协议IGP中最先得到广泛使用的协议 RIP是一种分布式的基于距离向量 D V 的路由选择协议 RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录 2020 4 6 4 RIP协议 主要特点距离向量算法慢收敛问题及解决方法报文格式RIP协议的优缺点 2020 4 6 RIP协议的主要特点 仅和相邻路由器交换信息 交换的信息是当前本路由器所知道的全部信息 即自己的路由表 它自己到其他每一个目的网络的距离记录 按固定的时间间隔交换路由信息 例如 每隔30秒 允许一条路径最多只能包含15个路由器 适用于小型互联网 2020 4 6 距离向量算法 D V路由算法的工作原理就是邻居路由器之间定期交换距离 向量表 然后更新各自的路由表 每当接收到一个邻居路由器发来的距离 向量表时 路由器重新计算到每个目的地的距离 并且更新各自的路由表 距离 向量表只包含到所有路由器的距离 距离的度量单位可以是延迟 物理距离或者链或其它参数 2020 4 6 距离向量算法 收到相邻路由器 其地址为X 的一个RIP报文 进行以下步骤 1 先修改此RIP报文中的所有项目 把 下一跳 字段中的地址都改为X 并把所有的 距离 字段的值加1 2 对修改后的RIP报文中的每一个项目 重复以下步骤 若项目中的目的网络不在路由表中 则把该项目加到路由表中 否则若下一跳字段给出的路由器地址是同样的 则把收到的项目替换原路由表中的项目 否则若收到项目中的距离小于路由表中的距离 则进行更新 否则 什么也不做 3 若3分钟还没有收到相邻路由器的更新路由表 则把此相邻路由器记为不可达路由器 即将距离置为16 距离为16表示不可达 4 返回 2020 4 6 举例 路由器A的路由表 A收到C发来的路由信息 2020 4 6 举例 修改收到的所有项 路由器A的路由表 2020 4 6 举例 路由器A更新后的路由表 2020 4 6 R2 R1 正常情况 11 12R1 R1说 我到网1的距离是1 是直接交付 1 表示 从本路由器到网1 1 表示 距离是1 表示 直接交付 慢收敛问题 2020 4 6 R2 R1 正常情况 11 12R1 R2说 我到网1的距离是2 是经过R1 1 表示 从本路由器到网1 2 表示 距离是2 R1 表示经过R1 慢收敛问题 2020 4 6 R2 R1 正常情况 11 12R1 R1说 我到网1的距离是16 表示无法到达 是直接交付 但R2在收到R1的更新报文之前 还发送原来的报文 因为这时R2并不知道R1出了故障 慢收敛问题 2020 4 6 R2 R1 正常情况 11 12R1 R1收到R2的更新报文后 误认为可经过R2到达网1 于是更新自己的路由表 说 我到网1的距离是3 下一跳经过R2 然后将此更新信息发送给R2 慢收敛问题 2020 4 6 R2 R1 正常情况 11 12R1 R2以后又更新自己的路由表为 1 4 R1 表明 我到网1距离是4 下一跳经过R1 慢收敛问题 2020 4 6 R2 R1 R2 R1 网1出了故障 正常情况 11 116 15R2 12R1 12R1 这样不断更新下去 直到R1和R2到网1的距离都增大到16时 R1和R2才知道网1是不可达的 这就是好消息传播得快 而坏消息传播得慢 网络出故障的传播时间往往需要较长的时间 例如数分钟 这是RIP的一个主要缺点 2020 4 6 慢收敛问题的解决 RIP协议是采用水平分割 splithorizon 法和带触发更新的毒性逆转 posionreversewithtriggeredupdates 法来解决D V算法的慢收敛问题 水平分割的工作原理是 当路由器从某个网络接口发送RIP路由更新报文时 其中不能包含从该接口获得的路由信息 2020 4 6 慢收敛问题的解决 毒性逆转法的工作原理是 某路径崩溃后 最早广播此路径的路由器将原路由继续保存在若干更新报文中 但是指明其距离为无限大 RIP协议为了加强毒性逆转的效果 它同时使用触发更新技术 即一旦路由器检测到网络故障 立即发送路由更新报文 而不必等待下一个更新周期 2020 4 6 4字节 RIP报文 RIP协议的报文格式 路由信息 20字节 路由 可重复出现最多25个 IP数据报 路由标记 网络地址 地址族标识符 距离 1 16 IP首部 UDP首部 首部 路由部分 必为0 版本 命令 4字节 子网掩码 下一跳路由器地址 UDP用户数据报 2020 4 6 RIP协议的优缺点 最大的优点是实现简单 开销较小 当网络出现故障时 要经过比较长的时间才能将此信息传送到所有的路由器 慢收敛是RIP的主要缺点 RIP限制了网络的规模 它能使用的最大距离为15 距离等于16表示不可达 RIP不能在两个网络之间同时使用多条路由 RIP选择一个具有最少路由器的路由 即最短路由 哪怕还存在另一条高速 低时延 但路由器较多的路由 路由器之间交换的路由信息是路由器中的完整路由表 因而随着网络规模的扩大 开销也就增加 2020 4 6 5 OSPF协议 OSPF OpenShortestPathFirst 是IETF于1988年开发的一种基于分布式链路状态路由算法的路由协议 OSPF的收敛速度快 支持无类地址路由 能够适应大型网络 支持多条路径负载均衡 采用组播方式发送链路 状态报文信息 2020 4 6 5 OSPF协议 主要特点链路状态数据库区域的层次划分OSPF路由器类型链路状态路由算法分组类型分组格式 2020 4 6 OSPF协议的主要特点 向本自治系统中所有路由器发送信息 使用的方法是洪泛法 发送的信息就是与本路由器相邻的所有路由器的链路状态 但这只是路由器所知道的部分信息 只有当链路状态发生变化时 路由器才用洪泛法向所有路由器发送此信息 2020 4 6 课件制作人 谢希仁 链路状态数据库 由于各路由器之间频繁地交换链路状态信息 因此所有的路由器最终都能建立一个链路状态数据库 这个数据库实际上就是全网的拓扑结构图 它在全网范围内是一致的 这称为链路状态数据库的同步 OSPF的链路状态数据库能较快地进行更新 使各个路由器能及时更新其路由表 OSPF的更新过程收敛得快是其重要优点 2020 4 6 OSPF划分为两种不同的区域 区域0 0 0 1 区域0 0 0 3 主干区域0 0 0 0 至其他自治系统 R9 R7 R6 R5 R4 R3 R2 R1 网8 网6 网3 网2 网1 网7 区域0 0 0 2 网4 网5 R8 2020 4 6 OSPF路由器类型 区内部路由器区主干路由器区边界路由器 2020 4 6 OSPF主干路由器 区域0 0 0 1 区域0 0 0 3 主干区域0 0 0 0 至其他自治系统 R9 R7 R6 R5 R4 R3 R2 R1 网8 网6 网3 网2 网1 网7 区域0 0 0 2 网4 网5 R8 2020 4 6 OSPF区域边界路由器 区域0 0 0 1 区域0 0 0 3 主干区域0 0 0 0 至其他自治系统 R9 R7 R6 R5 R4 R3 R2 R1 网8 网6 网3 网2 网1 网7 区域0 0 0 2 网4 网5 R8 2020 4 6 链路状态 L S LinkState 路由算法 解决两个问题D V算法只考虑距离 没有考虑链路带宽及负载等因素D V算法存在慢收敛问题 工作过程路由器之间形成邻居关系 用问候HELLO分组发现和维持邻站的可达性测量线路开销 ECHOpacket构造链路 状态报文 周期性或出现重大变化时广播链路 状态报文 采用Flooding 泛洪 将L Spacket可靠地广播出去 2020 4 6 可靠的洪泛法 更新报文 t ACK报文 R R R R t1t2t3t4 2020 4 6 计算最短路径由于网络上的每个路由器都可以获得所有其它路由器的链路 状态报文 每个路由器都可以构造出网络的拓扑结构图 此时路由器可以根据Dijkstra算法 计算出到所有目的节点的最短路径 并把计算结果填到路由器的路由表中 链路状态 L S LinkState 路由算法 2020 4 6 链路状态路由算法的特点 链路 状态路由算法使用事件 链路中断或路由器崩溃等事件 来驱动链路 状态更新 而且当网络拓扑结构发生变化时能够快速收敛 链路 状态路由算法具有良好的扩展性 能够运用于大规模网络 链路 状态路由算法对链路带宽以及路由器的处理能力和存储空间都要求比较高 2020 4 6 D V与L S的比较 2020 4 6 OSPF的分组类型 1 Hello报文 周期发送 用来建立和维持邻居关系 2 数据库描述 databasedescription 描述拓扑数据库内容 当邻居关系确定时发送 3 链路状态请求LSR LinkStateRequest 请求邻居发送链路状态报文 当一个路由器发现它的拓扑数据库部分内容过时 发送该类报文 2020 4 6 OSPF的分组类型 4 链路状态更新LSU LinkStateUpdate 链路状态更新用于发送链路状态通告LSA LinkStateAdvertisement 同时也是对链路状态请求LSR的响应 5 链路状态确认LSAck LinkStateAcknowledgment 用于确保链路状态报文可靠地扩散 2020 4 6 OSPF的基本操作 确定可达性 2020 4 6 IP数据报 OSPF分组格式 IP数据报首部 OSPF分组 OSPF分组首部 类型1至类型5的OSPF分组 24字节 0 8 16 31 版本 路由器标识符 类型 分组长度 检验和 鉴别 位 鉴别 区域标识符 鉴别类型 2020 4 6 外部网关协议BGP BGP BorderGatewayProtocol 是一种自治系统间的动态路由发现协议 它的基本功能是在自治系统间自动交换无环路的路由信息 通过交换带有自治系统号 AS 序列属性的路径可达信息 来构造自治区域的拓扑图 从而消除路由环路并实施用户配置的路由策略 与OSPF和RIP等在自治区域内部运行的协议对应 BGP是一类EGP ExteriorGatewayProtocol 协议 而OSPF和RIP等为IGP InteriorGatewayProtocol 协议 2020 4 6 BGP提出背景 1 因特网的规模太大 使得AS之间路由选择非常困难 RIP记录的只有下一跳 没有真正定义到目的地的完整路径 RIP跳数上限只有16 不适合较大规模网络OSPF的链路状态数据库随网络规模的增加成几何数增长使用链路状态协议花费较大 2 AS之间的路由选择必须考虑有关策略 2020 4 6 BGP协议概述 BGP是外部路由协议 用来在AS之间传递路由信息采用路径向量路由协议 从设计上避免了环路的产生传送协议 TCP 端口号179支持CIDR 无类别域间选路 路由更新方式为只发送增量路由具有丰富的路由过滤和路由选择策略 2020 4 6 协议比较 2020 4 6 什么时候使用BGP 同两个或多个ISP连接需要为客户提供部分或完全的Internet路由需要AS路径信息时三层VPN 虚拟专用网 传播私网路由传播组播路由构造组播拓扑 AS1 AS3 AS2 EBGP EBGP IBGP 2020 4 6 什么时候不使用BGP 只同一个ISP相连 可以不用BGP 使用默认路由 静态路由即可不向客户提供Internet路由服务 AS3 AS2 默认路由 2020 4 6 BGP发言人 BGP发言人BGPSpeaker 运行BGP的路由器 是负责发送BGP消息的实体 不仅运行BGP协议 还运行该AS所使用的内部网关协议 BGP邻居又称为BGP对等体 相互交换BGP消息的路由器 IBGP对等体处于同一个AS中 不一定是物理上直连的 但必须保证逻辑上全连接 TCP连接能够建立 EBGP对等体处于不同AS 一般直接相连 不使用IGP便可到达 BGP邻居 BGP发言人 BGP发言人 BGP发言人 BGP发言人 BGP发言人 AS1 AS3 AS2 AS5 AS4 Internal BGP External BGP 2020 4 6 BGP发言人交换路径向量 主干网 AS1 地区ISP AS2 地区ISP AS3 本地ISP AS6 N5 本地ISP AS7 N6 N7 自治系统AS2的BGP发言人通知主干网的BGP发言人 要到达网络N1 N2 N3和N4可经过AS2 2020 4 6 BGP发言人交换路径向量 主干网 AS1 地区ISP AS2 地区ISP AS3 本地ISP AS4 N1 N2 本地ISP AS5 N3 N4 主干网还可发出通知 要到达网络N5 N6和N7可沿路径 AS1 AS3 2020 4 6 N5 R2 R1 R5 R6 R7 R4 自治系统1 N2 N1 N3 N4 N6 N7 BGP协议 R8 R9 R10 自治系统3 N10 N8 N9 R1发给R4的路径向量 BGP协议 自治系统3 自治系统2 R3 BGP路由信息 2020 4 6 BGP路由通告原则 多条路径时 BGPSpeaker只选最优的给自己使用 BGPSpeaker只把自己使用的路由通告给相邻体 BGPSpeaker从EBGP获得的路由会向它所有BGP相邻体通告 包括EBGP和IBGP BGPSpeaker从IBGP获得的路由不向它的IBGP相邻体通告 BGPSpeaker从IBGP获得的路由是否通告给它的EBGP相邻体要依IGP和BGP同步的情况来决定 2020 4 6 BGP的同步 BGP协议规定 一个BGP路由器不将从内部BGP对等体得知的路由信息通告给外部对等体 除非该路由信息也能通过IGP得知 若一个路由器能通过IGP得知该路由信息 则可认为路由能在AS中传播 内部通达已有了保证 BGP同步规则确保了整个AS中信息的一致性 避免了路由黑洞 BGP的同步 EBGP EBGP IBGP AS100 AS300 AS200 IGP IGP 通过TCP传递 S0 1 1 1 2 24 E0 10 1 1 1 24 S0 2 1 1 1 24 S1 2 1 1 2 24 S0 1 1 1 1 24 2020 4 6 BGP路由表的更新 BGP路由表是独立于IGP路由表的 但是这两个表之间可以进行信息的交换 即 再分布 技术 Redistribution 信息的交换有两个方向 从BGP注入IGP 以及从IGP注入BGP 前者是将AS外部的路由信息传给AS内部的路由器 而后者是将AS内部的路由信息传到外部网络 这也是路由更新的来源 将IGP路由信息注入BGP 它直接影响到因特网的路由稳定性 信息注入有三种方式 纯动态注入 半动态注入和静态注入 2020 4 6 BGP路由表的更新 纯动态注入是指将所有的IGP路由再分布 Redistribution 到BGP中 这种方式的优点是配置简单 但是可控性弱 效率低 AS1 18 0 0 0 8 IGP IGP BGP 发现路由18 0 0 0 8 OSPF DUT 把IGP OSPF 发现的路由纯动态地注入到RTA的BGP路由表中 RTA EBGP 2020 4 6 BGP路由表的更新 半动态注入则是将IGP路由表中的一部分路由信息注入BGP 如使用CiscoIOS中的network子命令 这种方式会先验证地址及掩码 大大增强了可控性 提高了效率 可以防止错误的路由信息注入 无论哪种动态注入方式 都会造成路由的不稳定 因为动态注入完全依赖于IGP信息 当IGP路由发生路由波动时 会影响到BGP的路由更新 AS1 18 0 0 0 8 IGP IGP BGP 发现路由18 0 0 0 8 OSPF DUT 把IGP OSPF 发现的路由半动态地注入到RTA的BGP路由表中 RTA 2020 4 6 BGP路由表的更新 静态注入就可以有效解决路由不稳定的问题 它是将静态路由的条目注入到BGP中去 静态路由存在于IGP路由表中 由于静态路由条目是人为的加入的 不会受到IGP波动的影响 所以很稳定 它的稳定性防止了路由波动引起的反复更新 AS1 18 0 0 0 8 IGP BGP 人为规定静态路由18 0 0 0 8 DUT 把人为规定的静态路由静态地注入到RTA的BGP路由表中 RTA 2020 4 6 BGP报文类型 2020 4 6 BGP报文类型 Open 双方交换open报文来建立BGP连接Update 提供路由修改信息 用来构造AS的关系图Notification 由于发现错误而通知邻接点要关闭BGP连接 具有三个域 error code errorsubcode 和errordata Keepalive 用于应答open报文 和重置空闲计时器 2020 4 6 BGP报文具有通用的首部 BGP报文通用首部 字节1621 BGP报文主体部分 类型 长度 标记 TCP首部 IP首部 BGP报文 TCP报文 2020 4 6 BGP报文头 BGP报文的格式是一样的 都是 报文头 报文体 的格式Marker 16字节 鉴权信息 其方法并不具体定义 由交换路由信息用于安全鉴别 其方法并不具体定义 由双方在初始通信时协商确定 Length 2字节 消息的长度 最小的消息长度为19字节 最大的是4096字节 Type 1字节 消息的类型0 OPEN1 UPDATE2 NOTIFICATION3 KEEPALIVE 2020 4 6 Open报文 Version 1字节 发端BGP版本号MyAutonomousSystem 2字节无符号整数 本地AS号HoldTime 2字节无符号整数 发端建议的保持时间BGPIdentifier 4字节 发端的路由器标识符OptParmLen 1字节 可选的参数的长度OptionalParameters 变长 可选的参数 2020 4 6 KeepAlive报文 KEEPALIVE消息只有一个消息头KeepAlive报文主要用于对等体路由器间的运行状态以及链路的可用性确认 KeepAlive消息在对等路由器间的交换频度以保证对方保持定时器不超时为限 当一台路由器与其邻居建立BGP连接之后 将以Keepalive interval设定的时间间隔周期性地向对等体发送Keepalive报文 表明该连接是否还可保持 缺省情况下 发送Keepalive的时间间隔为60秒 2020 4 6 Update报文 UnfeasibleRoutesLen 2字节无符号整数 不可达路由长度 WithdrawnRoutes 变长 撤销的路由PathAttributeLen 2字节无符号整数 路径属性长度 PathAttributes 变长 路径属性 后面重点介绍 2020 4 6 NetworkLayerReachabilityInformation 变长 网络可达信息 这个字段定义这个报文真正通知的网络 它有一个长度字段和一个IP地址前缀 长度定义前缀中的位数 前缀定义这个网络地址的共同部分 例如 若这个网络是123 1 10 0 24 则网络前缀是24而前缀是123 1 10 Update报文 不可达路由 路由属性 可达的路由 189 17 0 0 16 220 11 9 0 24 24 0 0 0 8128 89 88 23 BGPHeader Prefixes ASPath Prefixes 一个UPDATE消息一次只能通告一个路由 但它可以携带多个路径属性 一个UPDATE消息一次也可通告多条路由 但它的路径属性必须相同 一个UPDATE消息可以同时列出多个被撤消的路由 2020 4 6 Notification报文 Errorcode 1字节 差错码Errsubcode 1字节 差错子码Data 变长 依赖于不同的错误代码和辅助错误代码 用于诊断错误原因 2020 4 6 BGP间通信过程 176 1 1 1 176 1 1 2 A B OPEN IDLE IDLE OPENSent KeepAlive OPENConfirm Established Update IDLE KeepAlive Notification 一个典型的过程为 Idle 启动消息 Connect TCP连接成功 发OPEN OpenSent 收到OPEN消息 协商成功 OpenConfirm 收到KEEPALIVE消息 互相传递UPDATE消息 Established Idle TCP连接关闭 有错误 或处理UPDATE消息失败 或收到NOTIFICATION消息 BGP路径属性 pathattributes BGP路径属性是BGP的核心 它是一套参数 对特定的路由进行了进一步的描述 使得BGP能够对路由进行过滤和选择 在配置路由策略时我们将广泛地使用路径属性 但是不是所有路径属性都要被用上 2020 4 6 路径属性被分为以下几类 必遵属性 在路由更新数据报文中必须存在的路由属性 如果缺少必遵属性 路由信息就会出错 可选属性 它是可选的 不一定存在于路由更新数据报文中 过渡属性 具有AS间可传递性 过渡属性的域值可以被传递到其他AS中去并继续起作用 如Origin属性 路由信息的起源一旦确定 域值会一直存在 无论此路由信息被传到哪个AS中去 非过渡属性 只在本地起作用 出了自治系统 域值就恢复成缺省值 2020 4 6 以下列出几种常用属性的情况 2020 4 6 必遵 Origin属性 标记一条路由是怎样成为BGP路由的 AS Path属性 是路由到达某个目的地所经过的所有AS号码的序列 Next hop属性 被用来作为到达UPDATE报文中列出的目的地的下一跳的边界路由器的I

温馨提示

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

评论

0/150

提交评论