CCIE BGP学习笔记.docx_第1页
CCIE BGP学习笔记.docx_第2页
CCIE BGP学习笔记.docx_第3页
CCIE BGP学习笔记.docx_第4页
CCIE BGP学习笔记.docx_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

BGP实验下一跳IGP可达试验iBGP路由宣告下一跳时碰到如下问题,R1上和R3上分别有一条默认路由,R1到R3的连通性没问题,但起iBGP邻居时,始终卡在Active 状态, 在R1上打开debug ip bgp all 有如下出错提示。*Mar 1 00:13:35.555: BGP: 23.1.1.3 multihop open delayed 17171ms (no route)后在R1上加一条ip route 23.1.1.0 255.255.255.0 12.1.1.2 邻居可正常起来(R3端未加静态路由),再删除该路由邻居状态仍然正常。 然后在R1上宣告loopback0 1.1.1.0 进BGP,在R3上观察其下一跳如下:R3(config)#do sh ip routeGateway of last resort is 23.1.1.2 to network 0.0.0.0 1.0.0.0/24 is subnetted, 1 subnetsB 1.1.1.0 200/0 via 12.1.1.1, 00:04:58 23.0.0.0/24 is subnetted, 1 subnetsC 23.1.1.0 is directly connected, FastEthernet0/0S* 0.0.0.0/0 1/0 via 23.1.1.2在R3上ping 结果如下R3(config)#do ping 1.1.1.1Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:U.U.U因为在R2上没有到1.1.1.0的路由,所以会显示不可达。这就需要 bgp/igp同步。还有一种情况就是R1是一个AS,R2、R3是另一个AS,当R1上宣告一条路由时,R2上学到,下一跳指向R1的接口地址(具体地址是用来和R2建立邻居的IP,不一定是接口IP),但R2再把这条路由通告级其iBGP邻居R3时,下一跳仍然是R1的地址,这就导致这些路由在R3上进入不了路由表,因为R1的地址对于R3来说是另一个AS的,不可达。可以起一条静态路由解决该问题,但BGP有个下一跳自我命令用来解决这问题。next-hop-self本地优先级(LOCAL_PREF)影响离开本AS的路径。且只在本AS内传递,当从本AS到外部路由有多条路径时,调整本地优先级可影响出去的路,越大越优先,配置方法 是在bgp进程下bgp default local-preference * ;配置完成后,使用clear ip bgp * soft,来软重置bgp进程,也可直接使用clear ip bgp *,但会导致所有邻居重新建立。见下图:默认优先级为100,则R2会选择先形成邻居的下一跳作为出口 ?(存疑)。此时我如果想让R2到60.0.0.1由3.3.3.3 为下一跳,则在R3上调整本地优先级大于100即可。配置如下R3(config-router)#bgp default local-preference 110软重启bgp 进程后在R2上的结果如下:R2#clear ip bgp * softR2#sh ip bgpBGP table version is 5, local router ID is 20.0.0.1Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path* 20.0.0.0/24 0.0.0.0 0 32768 i* i60.0.0.0/24 1.1.1.1 0 100 0 400 600 i*i 3.3.3.3 0 110 0 500 600 i也可以使用route-map 来精确到具体一条路由的LocPrf值。route-map p2 permit 10 set local-preference 200router-bgp 100neighbor 14.1.1.4 route-map p2 in上面的配置是把从14.1.1.4的所有路由的LocPrf都调整到200。下面的配置是调整部分:!route-map p2 permit 10 match ip address 10 set local-preference 200!route-map p2 permit 20!router-bgp 100neighbor 14.1.1.4 route-map p2 in记得route-map的最后一句要加,不然不在ACL中的路由将不能宣告。调整权重和其它属性用到route-map时配置类似。MED(多出口鉴别)属性MED是MULTI_EXIT_DISC的缩写,顾名思义他影响从别的AS进入本AS的路径。(*可以联想在BGP中来回的流量路径一不定是相反的同一条路径*); 它允许将首选进入本AS的入口点通知给另一个AS,和LOCAL_PREF不同,具有越低的MED值的路由是首选。特别注意:如果到同一目的地的两条路径分别来自不同AS则不进行MED比较,所以上图该实验已经做不出效果了如果在比较不同AS的MED可使用bgp always-compare-med。见如下拓扑:4台路由器上分别宣告其loopback1到bgp中,默认在R3和R4上看到到R1的loopback口10.0.0.0的下一跳如下所示:R3:R3(config-if)#do sh ip bgpBGP table version is 10, local router ID is 3.3.3.3 Network Next Hop Metric LocPrf Weight Path* i10.0.0.0/24 4.4.4.4 0 100 0 100 i* 2.2.2.2 0 100 i* 30.0.0.0/24 0.0.0.0 0 32768 i*i40.0.0.0/24 4.4.4.4 0 100 0 iR4:R4(config-router)#do sh ip bgpBGP table version is 6, local router ID is 4.4.4.4 Network Next Hop Metric LocPrf Weight Path* i10.0.0.0/24 3.3.3.3 0 100 0 100 i* 1.1.1.1 0 0 100 i*i30.0.0.0/24 3.3.3.3 0 100 0 i* 40.0.0.0/24 0.0.0.0 0 32768 i此时未作任何其它配置,所以分别走自己的下一跳进入AS100,如果我想让AS200到AS100中的10.0.0.0/24流量优先从R1走,则需要在R2上调整相关路由的MED值(增加相关路由的MED值,MED可以理解为mertic,越小越优先),配置如下:access-list 1 permit 10.0.0.0 0.0.0.255route-map med permit 10match ip address 1set metric 10!router bgp 100no synchronizationbgp log-neighbor-changesneighbor 1.1.1.1 remote-as 100neighbor 1.1.1.1 update-source Loopback0neighbor 3.3.3.3 remote-as 200neighbor 3.3.3.3 ebgp-multihop 255neighbor 3.3.3.3 update-source Loopback0neighbor 3.3.3.3 route-map med outno auto-summary!再在R3、R4上观察bgp路由表(先clear ip bgp * soft):R3(config-if)#do sh ip bgp BGP table version is 11, local router ID is 3.3.3.3Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path*i10.0.0.0/24 4.4.4.4 0 100 0 100 i* 2.2.2.2 10 0 100 i* 30.0.0.0/24 0.0.0.0 0 32768 i*i40.0.0.0/24 4.4.4.4 0 100 0 i查看路由表: 34.0.0.0/24 is subnetted, 1 subnetsC 34.1.1.0 is directly connected, FastEthernet0/0 2.0.0.0/24 is subnetted, 1 subnetsS 2.2.2.0 1/0 via 23.1.1.2 3.0.0.0/32 is subnetted, 1 subnetsC 3.3.3.3 is directly connected, Loopback0 4.0.0.0/32 is subnetted, 1 subnetsR 4.4.4.4 120/1 via 34.1.1.4, 00:00:22, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnetsC 23.1.1.0 is directly connected, FastEthernet1/0 40.0.0.0/24 is subnetted, 1 subnetsB 40.0.0.0 200/0 via 4.4.4.4, 00:23:33 10.0.0.0/24 is subnetted, 1 subnetsB 10.0.0.0 200/0 via 4.4.4.4, 00:01:33 30.0.0.0/24 is subnetted, 1 subnetsC 30.0.0.0 is directly connected, Loopback1说明通过修改MED已成功影响进入AS100的流量,疑问:一旦在bgp进程中使用的med配置,则为被route-map匹配的路由也会跟着改变入口。见下: Network Next Hop Metric LocPrf Weight Path*i9.9.9.0/24 4.4.4.4 0 100 0 100 i*i10.0.0.0/24 4.4.4.4 0 100 0 100 i* 2.2.2.2 10 0 100 i*i10.0.1.0/24 4.4.4.4 0 100 0 100 i* 30.0.0.0/24 0.0.0.0 0 32768 i*i40.0.0.0/24 4.4.4.4 0 100 0 i后在route-map 中加入如下后便得到期望的结果:access-list 1 permit 10.0.0.0 0.0.0.255route-map med permit 10match ip address 1set metric 10!route-map med permit 20R3上bgp路由表如下: Network Next Hop Metric LocPrf Weight Path* 9.9.9.0/24 2.2.2.2 0 100 i* i 4.4.4.4 0 100 0 100 i*i10.0.0.0/24 4.4.4.4 0 100 0 100 i* 2.2.2.2 10 0 100 i* 10.0.1.0/24 2.2.2.2 0 100 i* i 4.4.4.4 0 100 0 100 i* 30.0.0.0/24 0.0.0.0 0 32768 i*i40.0.0.0/24 4.4.4.4 0 100 0 i路由表如下: 34.0.0.0/24 is subnetted, 1 subnetsC 34.1.1.0 is directly connected, FastEthernet0/0 2.0.0.0/24 is subnetted, 1 subnetsS 2.2.2.0 1/0 via 23.1.1.2 3.0.0.0/32 is subnetted, 1 subnetsC 3.3.3.3 is directly connected, Loopback0 4.0.0.0/32 is subnetted, 1 subnetsR 4.4.4.4 120/1 via 34.1.1.4, 00:00:08, FastEthernet0/0 23.0.0.0/24 is subnetted, 1 subnetsC 23.1.1.0 is directly connected, FastEthernet1/0 9.0.0.0/24 is subnetted, 1 subnetsB 9.9.9.0 20/0 via 2.2.2.2, 00:00:27 40.0.0.0/24 is subnetted, 1 subnetsB 40.0.0.0 200/0 via 4.4.4.4, 00:35:13 10.0.0.0/24 is subnetted, 2 subnetsB 10.0.0.0 200/0 via 4.4.4.4, 00:04:11B 10.0.1.0 20/0 via 2.2.2.2, 00:00:27 30.0.0.0/24 is subnetted, 1 subnetsC 30.0.0.0 is directly connected, Loopback1AUTOMIC_AGGREGATE:(原子聚合)警告下游路由器聚合时产生路径信息丢失,可设置属性aggregate通告aggregator:通告汇聚点,采用rid作为汇聚的地址R1配置如下:router bgp 100 no synchronization bgp log-neighbor-changes network 10.0.1.0 mask 255.255.255.0 aggregate-address 10.0.0.0 255.255.252.0 as-set 如果想抑制明细则后面要加 summary-only neighbor 2.2.2.2 remote-as 200 neighbor 2.2.2.2 ebgp-multihop 255 neighbor 2.2.2.2 update-source Loopback0 neighbor 3.3.3.3 remote-as 300 neighbor 3.3.3.3 ebgp-multihop 255 neighbor 3.3.3.3 update-source Loopback0 neighbor 4.4.4.4 remote-as 400 neighbor 4.4.4.4 ebgp-multihop 255 neighbor 4.4.4.4 update-source Loopback0 no auto-summary!直接 aggregate-address 10.0.0.0 255.255.252.0 抓包分析:更新包中有ATOMIC_AGGREGATE和AGGREGATOR属性, 因为没加as-set所以 显示的AS列表中将隐藏聚合点前的AS号直接 aggregate-address 10.0.0.0 255.255.252.0 as-set 抓包结果如下,聚合点前的AS号将显示出来。同时使用了as-set 和 summary-only 参数后的更新的包。 此时明细路由已经不在更新包中,具体丢弃明细路由的更新包见上图:注:一量配置了as-set后,则聚合路由中就没必要再加ATOMIC_AGGREGATE ,因为加入ATOMIC_AGGREGATE 属性的目的就是通知下游路由出现了路由聚合而导致部分明细路由丢失。路径上的BGP路由器都会把该属性携带在聚合路由中并沿路径传递下去。但如果配置了as-set ,因为as-set 会包括聚合前的所有经过的AS,下游路由器通过该属性已经可以知道在上游发生了路由聚合。Community 属性Community(团体属性)NO_EXPORT: 携带该属性的路由允许在邻居AS内公布,但不允许邻居AS再公布给其它邻居ASNONE:删除现存的团体属性NO_ADVERTISE:指不在任何BGP邻居间传递携带有该属性的路由DELETE:用于删除匹配特定团体的属性。INTERNET:这个团体没有一个确定的值,所有属于这个团体的路由都有一个缺省值,可以自由公布属于这个团体的路由(个人理解这个属性没啥用了,类似于默认)LOCAL_AS:不能将带有该属性的路由传递给EBGP邻居。以及联邦内其它子AS内的EBGP邻居,类似NO_EXPORT属性。NO_EXPORT以下实验利用NO_EXPORT属性来影响路由,具体实验实现需求见图:R1:router bgp 100 no synchronization bgp log-neighbor-changes neighbor 13.1.1.3 remote-as 100 neighbor 13.1.1.3 next-hop-self neighbor 14.1.1.4 remote-as 400 neighbor 14.1.1.4 route-map p1 in 应用团体属性 neighbor 23.1.1.2 remote-as 100 neighbor 23.1.1.2 next-hop-self neighbor 23.1.1.2 send-community 允许把团体属性发送给对端,默认不允许 no auto-summary!access-list 10 permit 40.0.0.0 0.0.0.255 40.0.0.0/24不能传递到AS500route-map p1 permit 10 match ip address 10 set community no-exportR2:router bgp 100 no synchronization bgp log-neighbor-changes neighbor 13.1.1.1 remote-as 100 neighbor 13.1.1.1 next-hop-self neighbor 13.1.1.1 send-community neighbor 23.1.1.3 remote-as 100 neighbor 23.1.1.3 next-hop-self neighbor 25.1.1.5 remote-as 500 neighbor 25.1.1.5 route-map p1 in no auto-summary!route-map p1 permit 10set community no-export注意该配置是设备所有从对端的路由都携带NO_EXPORT属性,所有从R5上学来的路由不能传递到AS400中。和R1上的不同,R1利用ACL选择了部分。R3:router bgp 100 no synchronization bgp log-neighbor-changes network 30.0.0.0 mask 255.255.255.0宣告了该网段,要求AS400、AS500 都能学到 neighbor 13.1.1.1 remote-as 100 neighbor 23.1.1.2 remote-as 100 no auto-summaryR4:router bgp 400 no synchronization bgp log-neighbor-changes network 40.0.0.0 mask 255.255.255.0 network 40.0.1.0 mask 255.255.255.0 neighbor 14.1.1.1 remote-as 100 no auto-summary!R5:router bgp 500 no synchronization bgp log-neighbor-changes network 50.0.0.0 mask 255.255.255.0 network 50.0.1.0 mask 255.255.255.0 neighbor 25.1.1.2 remote-as 100 no auto-summary!查看R3的路由表,我们的期望是R3上学到所有路由,见下图:R3(config)#do sh ip bgp BGP table version is 16, local router ID is 23.1.1.3Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path* 30.0.0.0/24 0.0.0.0 0 32768 i*i40.0.0.0/24 13.1.1.1 0 100 0 400 i*i40.0.1.0/24 13.1.1.1 0 100 0 400 i*i50.0.0.0/24 23.1.1.2 0 100 0 500 i*i50.0.1.0/24 23.1.1.2 0 100 0 500 i查看R4上的路由,根据上面的配置,R4上不会出现R5上公布的路由:R4(config-if)#do sh ip bgp BGP table version is 11, local router ID is 40.0.0.1Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path* 30.0.0.0/24 14.1.1.1 0 100 i* 40.0.0.0/24 0.0.0.0 0 32768 i* 40.0.1.0/24 0.0.0.0 0 32768 i查看R5上的路由,R5上应该只出现一条R4上公布的路由,40.0.1.0/24 R5(config-router)#do sh ip bgpBGP table version is 16, local router ID is 25.1.1.5Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path* 30.0.0.0/24 25.1.1.2 0 100 i* 40.0.1.0/24 25.1.1.2 0 100 400 i* 50.0.0.0/24 0.0.0.0 0 32768 i* 50.0.1.0/24 0.0.0.0 0 32768 iNO_ADVERTISE以下实验利用NO_ADVERTISE属性来影响路由, NO_ADVERTISE:指不在IBGP邻居间传递携带有该属性的路由 具体实验实现需求见图:本例的关键配置在R2上,R2上给50.0.0.0/24加上NO_ADVERTISE属性后,这条路由不再传递给IBGP邻居,R1和R3上就学习不到,所以R4上也不会存在这条路由R2:router bgp 100 no synchronization bgp log-neighbor-changes neighbor 13.1.1.1 remote-as 100 neighbor 13.1.1.1 next-hop-self neighbor 23.1.1.3 remote-as 100 neighbor 23.1.1.3 next-hop-self neighbor 25.1.1.5 remote-as 500 neighbor 25.1.1.5 route-map no-adv in该属性不再必需配置send-community参数 no auto-summary!ip prefix-list R5_loopback2 seq 5 permit 50.0.1.0/24 选出需要增加no-advertise属性的路由route-map no-adv permit 10 match ip address prefix-list R5_loopback2 set community no-advertise!R2上的bgp路由表:R2#sh ip bgp BGP table version is 15, local router ID is 25.1.1.2Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path*i30.0.0.0/24 23.1.1.3 0 100 0 i*i40.0.0.0/24 13.1.1.1 0 100 0 400 i*i40.0.1.0/24 13.1.1.1 0 100 0 400 i* 50.0.0.0/24 25.1.1.5 0 0 500 i* 50.0.1.0/24 25.1.1.5 0 0 500 i上表一切正常,但不会把50.0.1.0/24传递给IBGP邻居。R2#sh ip bgp 50.0.1.0BGP routing table entry for 50.0.1.0/24, version 15Paths: (1 available, best #1, table Default-IP-Routing-Table, not advertised to any peer) Not advertised to any peer 500 25.1.1.5 from 25.1.1.5 (50.0.0.1) Origin IGP, metric 0, localpref 100, valid, external, best Community: no-advertiseR3上bgp路由表:R3(config)#do sh ip bgp BGP table version is 11, local router ID is 30.0.0.1Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path* 30.0.0.0/24 0.0.0.0 0 32768 i*i40.0.0.0/24 13.1.1.1 0 100 0 400 i*i40.0.1.0/24 13.1.1.1 0 100 0 400 i*i50.0.0.0/24 23.1.1.2 0 100 0 500 i由上图可见R3上的50.0.1.0/24路由不存在。因为上游bgp路由器已经对这条路由配置了no-advertise属性。 配置了该属性的路由不会再传递给IBGP邻居。同事R1上也不会有这条路由,这里就不再验证。路由反射器(BGP Route Reflection)因为BGP在将路由发给eBGP邻居时,会将自己的AS号码添加到AS-path中,所以可以以此来防止环路,而在将路由发给iBGP时,是不会往AS-path添加AS号码的,因此在iBGP之间传递路由时,没有防止环路的机制。考虑到为iBGP之间的路由传递也加入防环机制,因而强制将BGP路由在AS内部只传一跳,导致一台BGP路由器从eBGP邻居收到路由时,发给iBGP邻居之后,iBGP邻居收到就不再传给其它任何iBGP邻居了,而只能传递给eBGP邻居,最终使得AS内部邻居过多时,很难保证每台路由器都能收到所有路由。如果想要同一个AS内所有IBGP路由都能学习到完整的路由,就需要实验IBGP全互联,这在大型网络中带来的扩展性问题是不能容忍的。BGP路由反射器就是用来解决该问题的。BGP Reflector可以将自己的任何BGP路由反射给自己的client,从而可以突破iBGP路由传递的限制,具体规则为:从eBGP邻居学习到的路由会发送给所有client和所有非client,也就是发给所有邻居。从非client学习到的路由将发送给所有client。从client学习到的路由将发送给所有client和所有非client,也就是发给所有邻居。R1:R1(config-router)#do sh run | b r bgprouter bgp 100 no synchronization bgp log-neighbor-changes network 10.0.0.0 mask 255.255.255.0 neighbor 13.1.1.3 remote-as 100 #R1并未和R2配置邻居 neighbor 13.1.1.3 next-hop-self neighbor 14.1.1.4 remote-as 400 no auto-summaryR2:R2(config-router)#do sh run | b r bgprouter bgp 100 no synchronization bgp log-neighbor-changes neighbor 23.1.1.3 remote-as 100 neighbor 23.1.1.3 next-hop-self neighbor 25.1.1.5 remote-as 500 no auto-summaryR3:R3(config-router)#do sh run | b r bgprouter bgp 100 no synchronization bgp log-neighbor-changes network 30.0.0.0 mask 255.255.255.0 neighbor 13.1.1.1 remote-as 100 neighbor 13.1.1.1 route-reflector-client路由反射器本身需要配置,但客户端和正常的BGP配置一样 neighbor 23.1.1.2 remote-as 100 neighbor 23.1.1.2 route-reflector-client no auto-summaryBGP联邦(BGP Cpmfederation)BGP联邦也是用来解决类似IBGP全互联问题。BGP Confederation采用在AS内部建立多个子AS的方法,从而将一个大的AS分割成多个小型AS,让AS内部拥有足够数量的eBGP邻居关系来解决路由限制问题R1:router bgp 65013 #配置子AS号码 no synchronization bgp log-neighbor-changes bgp confederation identifier 100表明给EBGP邻居来说 AS还是100 neighbor 13.1.1.3 remote-as 65013 指定子AS内的IBGP邻居 neighbor 13.1.1.3 next-hop-self neighbor 14.1.1.4 remote-as 400 no auto-summary R2:R2(config-router)#do sh run | b r bgprouter bgp 65012 no synchronization bgp log-neighbor-changes bgp confederation identifier 100bgp confederation peers 65013 在联邦边界上指明对端子AS号 neighbor 23.1.1.3 remote-as 65013 neighbor 23.1.1.3 next-hop-self neighbor 25.1.1.5 remote-as 500 no auto-summaryR3:R3(config-router)#do sh run | b r bgprouter bgp 65013 no synchronization bgp log-neighbor-changes bgp confederation identifier 100这条配置联邦内路由器都配,非EBGP边界呢? bgp confederation peers 65012 neighbor 13.1.1.1 remote-as 65013 neighbor 13.1.1.1 next-hop-self neighbor 23.1.1.2 remote-as 65012 no auto-summaryR4和R5的配置是一般的正常配置。R1上的IBGP路由表:R1(config-router)#do sh ip bgp BGP table version is 15, local router ID is 10.0.0.1Status codes: s suppressed, d damped, h history, * valid, best, i - internal, r RIB-failure, S

温馨提示

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

评论

0/150

提交评论