免费预览已结束,剩余26页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EBGP case studyEBGP也是JNCIP-M考试中的一个重点,主要是这边也包含了一些策略,JUNOS的策略是非常灵活的,建议大家能先把JUNOS的策略的基础先搞定再开始学习EBGP的case study。另外这个case study使用的一些策略是ISP级别的策略,也就是说一个ISP的策略是怎么样写的,那么这个case study也是怎么写的。EBGP case study使用的ISIS的case study的配置用来做IGP支持:然后把IBGP测试与配置那一章的联邦部分作为这个EBGP case study的IBGP。所以这时候就有点乱了,还是那句话,你最好能够了解在你完成以上的配置以后你的case会出现什么效果,主要是一些路由连通和路由选路的问题。其实上面这样一个IGP和IBGP的配置之前书上并没有实验给你介绍,所以我建议大家还是按照上面的一个需求把这样一个IGP和IBGP的配置给做出来,这样既可以加强练习,也可以拓宽一下解题思路。更重要的是可以让自己可以更加的理解EBGP case study的IGP和IBGP层面到底发生了什么。因为如果你不清楚低层发生了什么,而且这样的网络已经算是比较复杂,直接影响你EBGP层面的一些问题。因为JUNOS的策略是非常的灵活的,所以策略需求方面的配置绝对不可能是唯一的,书上给出的一些配置,只是一些参考。只要能够满足满足需求,另外的一千种配置也是可能出现的。接下来我们开始case study。完成这个case study,必须按照下面的需求:EBGP对等体建立部分:1,EBGP在R4和C1之间的两条链路上负载均衡。2,EBGP路由负载均衡R3到T1和T2。3,P1路由器必须和R1和R2使用物理接口地址建立对等体。4,C1路由器使用了密码为jnx的认证。5,C2路由器已经错误的设置了对等体的AS为65413,你必须使得和C2的对等体关系建立,但是你不能修改C2路由器的配置。6,当C1通告了超过10条IPv4单播的路由,R4必须记录syslog。EBGP策略需求部分:7,通告三个前缀来反映自己的10/8的空间、OSPF路由器的路由和其他OSPF子网,不能修改R3 R4 R6 R7的routing-options。8,你不能使用generated路由,但是一条静态路由在R1和R2上是允许的,另外接口或者链路的失效不能中断P1的连通性。9,来自P1的所有路由,追加AS路径64512 64512,并且确定transit提供商不会收到这些AS号。10,使用community 基于EBGP邻居对路由做标记,保证每个邻居的标记是唯一的11,从P1路由器收到的路由你必须移除所有的communities。12,不能使用策略,你必须确定不插入任何192.0.2.0/24的测试网络前缀来自EBGP对等体当做active路由。13,接受所有的customer路由,但是这些路由必须是起源于customer(C1-C2)。14,不接受任何前缀长度大于/26的路由。15,使用local preference使得customer路由优先于transit路由。16,不接受从EBGP来的任何默认路由和RFC1918路由。17,发送EBGP路由到所有的站点,不发送transit provider的路由到peer站点。18,Customers接受所有的EBGP路由,所有其他的站点也全接受customer的EBGP路由。19,R6在通告路由给T2的时候必须携带一个基于他的IGP metrics的MED属性。20,来自transit provider路由基于下面的要求进行damping 前缀长度0-8=no damping 前缀长度0-16= 20分钟的半衰期和1000的重新使用值 前缀长度17-32=25分钟的半衰期和1500的重新使用值 210.0/16 or longer=no damping21,确保当R2在运行的时候,所有在你AS中的路由器在去往peer站点或者peer站点通告进来的目的必须优先选择通过R2出去。22,确定当transit providers去往customer目的地的时候必须优先使用他和R6之间的连路不能在R3上设置MED。23,你不能有任何的路由黑洞和次优路径。EBGP case study解析:下面我来开始来讲解这个case study,还是按照老规矩在这之前还是有句话要说,坚持一个原则,就是所有的配置步骤不用按照题目给的顺序,最好是把所有的需求都看完之后,有一个全局的概念,注意一些陷阱之类的东西,然后再按照自己的想法一步一步做下去,以免在做到后面的时候,发现有问题了,再来修改前面的配置,这样既耽误考试时间又影响自己的思路,另外在这个case中,所有的P1,T1,T2,C1,C2都已经事先配置好了,而且对我们来说都是一个黑匣子,我们无法查看和修改他们的配置。1,EBGP在R4和C1之间的两条链路上负载均衡。2,EBGP路由负载均衡R3到T1和T2。3,P1路由器必须和R1和R2使用物理接口地址建立对等体。4,C1路由器使用了密码为jnx的认证。5,C2路由器已经错误的设置了对等体的AS为65413,你必须使得和C2的对等体关系建立但是你不能修改C2路由器的配置。6,当C1通告了超过10条IPv4单播的路由,R4必须记录syslog。R1和R2的EBGP对等体下面我们开始分析R1,R2和P1的对等体关系,下面是R1配置示例,R2的配置与R1类似与P1建立EBGP对等体。edit logical-routers r1lunsuilab# show protocols bgp group p1 type external;neighbor 10.0.5.254 peer-as 1492;在commit以后,因为P1已经正在运行了,所以我们可以检查一下邻居关系。edit logical-routers r1lunsuilab# run show bgp summary logical-router r1 Groups: 2 Peers: 2 Down peers: 1Table Tot Paths Act Paths Suppressed History Damp State Pendinginet.0 12 11 0 0 0 0Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped.10.0.3.3 65000 474 466 0 1 1:26 Connect10.0.5.254 1492 11 13 0 0 4:26 11/12/0 0/0/0这时候我们可以发现R1虽然和P1建立起了对等体,但是却丢失了与R3的IBGP对等体关系。经过下面的分析我们可以发现是因为从P1学习到一条0.0.0.0/4的路由导致这样一种情况的发生。edit logical-routers r1lunsuilab# run show route 10.0.3.3 logical-router r1 inet.0: 26 destinations, 27 routes (26 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both0.0.0.0/4 *BGP/170 00:04:40, localpref 100 AS path: 1492 I to 10.0.5.254 via fxp1.255因为R1为ISIS的level-1路由器,所以他只有一条默认路由通向R3的lo0口10.0.3.3,但是在R1和P1建立起邻居之后又从P1学到一条0.0.0.0/4的路由,由于最长匹配的规则R1与R3建立邻居的时候使用的是0.0.0.0/4这条路由,而这条路由的下一跳是10.0.5.254,所以会导致对端邻居不可达,导致邻居无法建立。所以你需要做一些拒绝的策略来解决这个问题,case后面有过滤需求,在你满足后,你就可以解决这个问题。R4的EBGP对等体默认的情况下,一个EBGP的OPEN包的TTL值只有1,这个需求你必须使用一个multihop的参数,另外你还必须保证EBGP关系建立的时候有个源目匹配的概念,再加上这个需求要求是负载均衡,你需要使用本地的lo0接口与对方建立邻居,所以你还必须使用local-address的参数。下面是配置:edit logical-routers r4 protocols bgp group c1lunsuilab# show type external;multihop;peer-as 65010;local-address 10.0.3.4;neighbor 200.200.0.1 family inet unicast prefix-limit maximum 10; authentication-key $9$zukHn9peK8LNb; # SECRET-DATA因为C1有配置认证,所以上面也包含了配置认证,另外下面解释一下prefix-limit的概念:当我们配置好prefix-limit的时候,如果R4从C1收到超过10条路由的时候,就会自动在syslog里面记录,如果后面还跟上了teardown这个参数的话,那么如果超过10条的话,会导致R4将C1的邻居关系给down掉。另外我们还需要配置静态路由以实现R4到达C1的负载均衡可达性:edit logical-routers r4lunsuilab# show routing-options static route 192.168.40.0/24 discard;route 200.200.0.1/32 next-hop 172.16.0.6 172.16.0.10 ;下面可以检查一下R4和C1的对等体是否建立。在这之前可以先在R4上面使用源地址10.0.3.4去ping 200.200.1.1,看看连通性是否OK。edit logical-routers r4lunsuilab# run show bgp summary logical-router r4 Groups: 3 Peers: 4 Down peers: 1Table Tot Paths Act Paths Suppressed History Damp State Pendinginet.0 23 19 0 0 0 0Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped.200.200.0.1 65010 4 4 0 0 11 11/11/0 0/0/010.0.3.3 65000 293 300 0 0 4:30:17 4/4/0 0/0/010.0.3.5 65002 563 572 0 0 4:30:40 4/8/0 0/0/010.0.6.2 65001 22 30 0 2 29:59 Active因为前缀限制的log在逻辑路由器看不太清楚,所以这里就不介绍了。R7的EBGP对等体因为C2已经错误的配置你的AS为65413,并且C2对你来说是一个黑匣子,所以你无法去修改他的配置,那么你只能使用local-as这样一个参数来允许这样一个错误存在的情况下,还能够建立起邻居关系。实际上这代表R7发送给C2的OPEN包里的AS字段该为了65413,所以C2在收到这样一个OPEN包的时候一样视为正常。edit logical-routers r7lunsuilab# show protocols bgp group c2 type external;local-as 65413;neighbor 172.16.0.26 peer-as 65020;下面检查一下R7的对等体关系:edit logical-routers r7lunsuilab# run show bgp summary logical-router r7 Groups: 2 Peers: 3 Down peers: 0Table Tot Paths Act Paths Suppressed History Damp State Pendinginet.0 17 12 0 0 0 0Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped.172.16.0.26 65020 9 9 0 0 2:50 9/10/0 0/0/010.0.3.5 65002 580 567 0 0 4:41:03 2/2/0 0/0/010.0.9.6 65002 564 568 0 0 4:41:06 1/5/0 0/0/0R6的EBGP对等体R6的配置是比较基本的配置,所以不需要什么多余的配置,下面是R6的配置:edit logical-routers r6lunsuilab# show protocols bgp group t2 type external;neighbor 172.16.0.22 peer-as 65222;下面检查一下R6的BGP邻居状态:edit logical-routers r6lunsuilab# run show bgp summary logical-router r6 Groups: 2 Peers: 3 Down peers: 0Table Tot Paths Act Paths Suppressed History Damp State Pendinginet.0 20 16 0 0 0 0Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped.172.16.0.22 65222 3 6 0 0 22 4/4/0 0/0/010.0.3.5 65002 586 572 0 0 4:43:43 2/2/0 0/0/010.0.9.7 65002 572 571 0 0 4:43:42 10/14/0 0/0/0R3的EBGP对等体:你如果需要满足需求,在R3的EBGP对等体下你需要加上multipath这样一个参数,才能满足从T1-T2学到同样的路由负载均衡。edit logical-routers r3lunsuilab# show protocols bgp group t1-t2 type external;peer-as 65222;multipath;neighbor 172.16.0.14;neighbor 172.16.0.18;回忆起我只前有把172.16.0.12/30这个子网给通告进ISIS,所以在后面的一些策略里,我不需要针对T1过来的路由做next-hop self策略,只用针对T2过来的路由做样的策略,不过根据我自己个人的习惯,还是全部都做next-hop self,这样比较方便一点。如果大家怕在考试的时候因为这点扣分的话,可以采用书上的方法。下面看看R3的邻居状态:edit logical-routers r3lunsuilab# run show bgp summary logical-router r3 Groups: 3 Peers: 5 Down peers: 1Table Tot Paths Act Paths Suppressed History Damp State Pendinginet.0 32 17 0 0 0 0Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped.172.16.0.14 65222 5 5 0 0 1:14 5/5/0 0/0/0172.16.0.18 65222 26 28 0 0 12:18 4/4/0 0/0/010.0.3.4 65001 329 326 0 0 5:00:36 5/16/0 0/0/010.0.3.5 65002 625 625 0 0 5:01:04 3/7/0 0/0/010.0.6.1 65000 462 475 0 1 1:11:03 ActiveEBGP的import策略和Martian过滤:这个部分我们重点介绍一下如何配置import策略和Martian过滤,另外在这里我想说一下,在每一个BGP case中总会有一些是import的策略,和一些export的策略,这时候我希望大家先把需求读好,理清楚哪些是import的需求,哪些是export的需求,然后这样子做的话思路才不会乱。下面是这个case import策略和Martian过滤的需求。12,不能使用策略,你必须确定不插入任何192.0.2.0/24的测试网络前缀来自EBGP对等体当做active路由。你不能用策略去过滤这样一条路由,意思是说你必须将这样一条路由添加Martian路由表,这样子来确保路由器不将此路由加进路由表。下面是R6的配置示例,当然你必须在所有的路由器上都敲上这条命令。edit logical-routers r6lunsuilab# set routing-options martians 192.0.2/24 orlonger在commit之后,你可以发现inet0的martians表里已经添加了这样一条路由,并且你可以发现有从T2学过来的路由被当做了hidden路由。edit logical-routers r6lunsuilab# run show route martians table inet.0 logical-router r6 inet.0: 0.0.0.0/0 exact - allowed 0.0.0.0/8 orlonger - disallowed 127.0.0.0/8 orlonger - disallowed 128.0.0.0/16 orlonger - disallowed 191.255.0.0/16 orlonger - disallowed 192.0.0.0/24 orlonger - disallowed 223.255.255.0/24 orlonger - disallowed 240.0.0.0/4 orlonger - disallowed 192.0.2.0/24 orlonger - disallowededit logical-routers r6lunsuilab# run show route 192.0.2/24 hidden logical-router r6 inet.0: 43 destinations, 51 routes (42 active, 0 holddown, 2 hidden)+ = Active Route, - = Last Active, * = Both192.0.2.0/24 BGP/170 00:38:09, localpref 100, from 10.0.3.5 AS path: (65000) 65222 10458 14203 3967 7018 80 I to 10.0.8.6 via fxp2.256 BGP/170 01:09:03, localpref 100 AS path: 65222 10458 14203 3967 7018 80 I to 172.16.0.22 via fxp2.250接下来介绍一下damping的import策略20,来自transit provider路由基于下面的要求进行dampingl 前缀长度0-8=no dampingl 前缀长度0-16= 20分钟的半衰期和1000的重新使用值l 前缀长度17-32=25分钟的半衰期和1500的重新使用值l 210.0/16 or longer=no damping因为是transit provider过来的路由要做damping,所以要策略需要在R6和R3上同时做,下面是R6上的示范配置:edit logical-routers r6lunsuilab# show policy-options | find damp policy-statement damp term 1 from route-filter 200.0.0.0/16 orlonger damping none; route-filter 0.0.0.0/0 prefix-length-range /0-/8 damping none; route-filter 0.0.0.0/0 prefix-length-range /9-/16 damping low; route-filter 0.0.0.0/0 prefix-length-range /17-/32 damping high; damping none disable;damping high half-life 25; reuse 1500;damping low half-life 20; reuse 1000;然后下面红色部分是应用策略到BGP层次下的,注意层次,是放到的t2的组的层次下,这样子的话就不会影响整个BGP收到的路由,只是从EBGP过来的路由才会被damping,另外damping这个参数一定要记得敲进去,要不然你的damping就等于没做了。当然你需要记得在R3上也做同样的配置。edit logical-routers r6 protocols bgp group t2lunsuilab# show type external;damping;import damp;neighbor 172.16.0.22 peer-as 65222;关于damping的验证,你可以使用show route damping suppressed去验证,如果后再加上detail你可以看到更多的信息。下面我们开始配置一些路由过滤和tag的一些需求:10,使用community 基于EBGP邻居对路由做标记,保证每个邻居的标记是唯一的。13,接受所有的customer路由,但是这些路由必须是起源于customer(C1-C2)。14,不接受任何前缀长度大于/26的路由。15,使用local preference使得customer路由优先于transit路由。16,不接受从EBGP来的任何默认路由和RFC1918路由。11,从P1路由器收到的路由你必须移除所有的communities。下面community的tag原则:因为需求要求要基于每个邻居收到的路由打tag,所以需要这样子定义多个tag。Peer Designation Community BaseTransit 65412:10xPeer 65412:20xCustomer 65412:30x例如:从P1来的路由,我们需要打上65412:201,T1来的需要打上65412:101,这样子类推下去。R4和R7的配置:因为13,15这两个比较关键需求必须在R4和R7上才能完成,所以我们先配置R4和R7。Local preference的设置是满足customer路由优先于transit的路由的需求。注意:每条BGP路由的local preference的默认值为100。R7的配置与R4类似,下面是R4的配置:edit logical-routers r4 policy-optionslunsuilab# show policy-statement from-c1 term rfc1918 from route-filter 10.0.0.0/8 orlonger reject; route-filter 192.168.0.0/16 orlonger reject; route-filter 172.16.0.0/12 orlonger reject; route-filter 0.0.0.0/0 through 0.0.0.0/32 reject; term kill-27-or-longer from route-filter 0.0.0.0/0 prefix-length-range /27-/32 reject; term tag-c1 from as-path cust-1; then community add cust-1; term tag-c2 from as-path cust-2; then community add cust-2; term prefer-cust from as-path cust-1 cust-2 ; then local-preference 101; next policy; term kill-rest then reject;edit logical-routers r4 policy-optionslunsuilab# show | match 65412 community cust-1 members 65412:301;community cust-2 members 65412:302;community peer-1 members 65412:201;community trans-1 members 65412:101;community trans-2 members 65412:102;edit logical-routers r4 policy-optionslunsuilab# show | match 650 as-path cust-1 .* 65010;as-path cust-2 .* 65020;注意一下,在这个case中C1和C2可能是私底下是有连通性的,所以R4可能通过C1学习到C2的路由。注意一下aspath的定义和策略的应用,还有要注意的地方就是term prefer-cust里面的next policy意思是说交给下一个policy处理,实际上可以直接使用accept的动作也可以完成这样。不过topgun说这样可以更有拓展性,ccs好象也同意这种说法,所以我也同意这么做,呵呵。因为EBGP的默认策略是接受所有从EBGP过来的路由,而且你前面已经有一个next policy,所以你还需要再建立一个term去拒绝一些不满足题目需求的那些路由。(需求是起源于C1或者C2的路由)下面开始配置R1和R2:别忘了,到目前为止,我们R1和R3的的BGP邻居还没有建立起来的,还是因为那条来自P1的0.0.0.0/4的那条路由。下面的需求并没有解决这个问题,不过在前面的需求中拒绝默认路由的需求中已经解决了这个问题。 9,来自P1的所有路由,追加AS路径64512 64512,并且确定transit提供商不会收到这些AS号。21,确保当R2在运行的时候,所有在你AS中的路由器在去往peer站点或者peer站点通告进来的目的必须优先选择通过R2出去。11,从P1路由器收到的路由你必须移除所有的communities。下面列出R1的配置,这策略配置中,在移除communities的时候一定要注意一个顺序的问题,移除的term一定要写在加入的term的上面。edit logical-routers r1 policy-optionslunsuilab# show policy-statement from-p1 term rfc1918 from route-filter 10.0.0.0/8 orlonger reject; route-filter 192.168.0.0/16 orlonger reject; route-filter 172.16.0.0/12 orlonger reject; route-filter 0.0.0.0/0 through 0.0.0.0/32 reject; term kill-27-or-longer from route-filter 0.0.0.0/0 prefix-length-range /27-/32 reject; term no-comms then community delete all-comms; term tag-p1 from as-path peer-1; then community add peer-1; as-path-prepend 64512 64512; edit logical-routers r1lunsuilab# show policy-options community all-comms members *:*;edit logical-routers r1lunsuilab# show policy-options | match 65412 community cust-1 members 65412:301;community cust-2 members 65412:302;community peer-1 members 65412:201;community trans-1 members 65412:101;community trans-2 members 65412:102;这里需要注意一个问题,策略中在为P1学来的路由打tag的时候,书上的配置和需求有个不太吻合的地方。term tag-p1 from as-path peer-1; then community add peer-1;edit logical-routers r1lunsuilab# show policy-options | match 1492 as-path peer-1 .* 1492;上面红色部分的from是说起源于P1的路由才打上tag,不过需求是说从P1学来路由打上tag。 所以这里我个人认为只需要from protocol bgp就行了。term tag-p1 from protocol bgp; then community add peer-1; as-path-prepend 64512 64512; 然后将from-p1这个策略应用到import,接下来因为还有一个prefer R2的需求要做,所以需要在上面的配置后面再加一个prefer-2的term来调高R2的local preference,然后应用到R2的import,并且这样一个term就不需要再写到R1的import策略里了。R1默认100。edit logical-routers r2 policy-optionslunsuilab# show policy-statement from-p1 term rfc1918 from route-filter 10.0.0.0/8 orlonger reject; route-filter 192.168.0.0/16 orlonger reject; route-filter 172.16.0.0/12 orlonger reject; route-filter 0.0.0.0/0 through 0.0.0.0/32 reject; term kill-27-or-longer from route-filter 0.0.0.0/0 prefix-length-range /27-/32 reject; term no-comms then community delete all-comms; term tag-p1 from protocol bgp; as-path peer-1; then community add peer-1; as-path-prepend 64512 64512; term prefer-2 from community peer-1; then local-preference 101; 在完成上面的需求后,R1和R2的IBGP连接也已经建立起来了,接下来我们也可以很简单的在R2上去验证P1的AS追加和local preference。edit logical-routers r2lunsuilab# run show route advertising-protocol bgp 10.0.3.4 logical-router r2 inet.0: 52 destinations, 54 routes (48 active, 0 holddown, 5 hidden) Prefix Nexthop MED Lclpref AS path* 120.120.0.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.2.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.3.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.4.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.5.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.6.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.7.0/24 10.0.5.254 101 64512 64512 1492 I* 120.120.69.128/25 10.0.5.254 101 64512 64512 1492 I* 192.168.20.0/24 Self 100 I* 192.168.100.0/24 Self 150 I上面的输出已经验证了AS p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邢台新能源职业学院《政策与法律法规》2025-2026学年期末试卷
- 2024年全国初级经济师之初级经济师财政税收考试难点突破题(附答案)704
- 2024年客服绩效考核方案
- 2024年湖南省建筑安全员-C证考试(专职安全员)题库附答案
- 小故事营销方案(3篇)
- 广告营销反转方案(3篇)
- 惊蛰文案营销方案(3篇)
- 操场三七灰土施工方案(3篇)
- 格鲁吉亚餐厅营销方案(3篇)
- 水暖套管预留施工方案(3篇)
- 2025国家义务教育质量监测小学德育测评估考试试题库及答案
- 政府绩效管理(第二版)课件 方振邦 第1-4章 政府绩效管理概述-政府绩效监控
- 2026年高考数学一轮复习策略《指向深度学习的高中数学教学策略》讲座
- 物流运输货物损坏免责合同
- 生物质颗粒采购合同范本
- 青海教师退休管理办法
- 配网调度培训课件
- DB42T 809-2012 湖北省工业企业安全生产培训大纲和考核要求
- 2025幼儿园园本培训内容
- 码头防风防汛管理制度
- 《市域(郊)铁路设计规范》条文说明
评论
0/150
提交评论