




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中北大学网络工程系专业实验室实验七、点到点协议PPP配置【相关知识】1PPP协议介绍路由器作为网络层设备,除了提供本地网络的三层连通外,更主要的功能是提供了用户网络的WAN接入。以实验室所使用的锐捷R1762高性能安全模块化路由器为例:该设备除了提供2个用于本地LAN连接的快速以太接口外,还提供了两个用于WAN接入的同步串口(Serial)。Serial接口支持HDLC、PPP和Frame Relay的广域网封装协议,其中,目前使用最广泛的是PPP协议。PPP(Point-to-Point Protocol,点到点协议)是HDLC的扩展,1994年正式成为因特网的标准协议。PPP协议的应用范围非常广泛, (1)PPP的协议体系PPP协议可以被看作是HDLC的扩展,其层次结构如图7.1所示:图7.1 PPP的层次结构PPP的主要实现功能如下: 采用高级数据链路控制协议HDLC作为点到点的串行链路上封装数据报的基本方法; 采用链路控制协议LCP(Link Control Protocol)用于启动线路、测试、任选功能的协商及关闭连接; 采用网络控制协议NCP(Network Control Protocol)用来建立和配置不同的网络层协议,PPP允许同时采用多种网络层协议,如IP、IPX和DECnet,PPP使用NCP对多种协议进行封装。(2)PPP会话建立的过程PPP提供了建立、配置、维护和终止点到点连接的方法。从开始发起呼叫到最终通信完成后释放链路,PPP的工作过程分为以下4个阶段:(关于PPP协议规范详见RFC1661) 链路的建立和配置协调:通信的发起方发送LCP帧来配置和检测数据链路,主要用于协商选择将要采用的PPP参数,包括身份验证、压缩、回叫、多链路等; 链路质量检测:在链路建立、协调之后,这一阶段是可选的; 网络层协议配置协调:通信的发起方发送NCP帧以选择并配置网络层协议,配置完成后,通信双方可以发送各自的网络层协议数据报; 关闭链路:通信链路将一直保持到LCP或NCP关闭链路,或者是发生一些外部事件(例如空闲时间超长或用户干预)2PAP协议简介为保证安全管理,PPP提供了两种可选的身份认证方法:口令验证协议(PAP,Password Authentication Protocol)和挑战握手协议(CHAP,Challenge Handshake Authentication Protocol)。这里,我们首先介绍口令验证协议PAP。PAP是一个简单实用的身份验证协议,PAP认证进程只在双方的通信链路建立初始阶段进行。如果认证成功,在通信过程中不再进行认证;如果认证失败,则直接释放链路。当通信双方都配置PPP协议并且选择PAP身份验证,同时它们之间的链路在物理层激活之后,认证客户端(被验证方)会不断发出身份认证请求,直到认证通过。当认证客户端路由器发送了用户名和口令之后,授权方(验证方)路由器会将收到的用户名和口令与本地数据库中的信息进行比较,如果正确则认证通过,否则认证失败。PAP认证的基本过程如图7.2所示。图7.2 PAP认证过程从图7.2中可以看出,PAP认证过程经过两个阶段,习惯上被称为两次握手:第一阶段为被验证方(远端路由器)发送用户名和口令到验证方;第二阶段为验证方(中心路由器)对接收的用户名和口令进行验证,并根据结果接收或拒绝链路连接的认证请求。PAP认证可以在一方进行,即由一方认证另一方的身份,也可以进行双向身份认证。这时将要求通信的双方都要通过对方的认证,否则,无法建立二者之间的链路。3配置PPP协议PAP认证的相关命令(1)配置接口封装协议路由器的Serial接口默认采用HDLC封装协议,因此,在通信双方选择PPP协议实现链路连接时,应当在双方接口上配置PPP协议,配置接口封装PPP协议的命令为:Router(config-if)# encapsulation ppp(2)配置PPP的PAP被验证方被验证方发起PPP认证连接,发送用户名和口令,配置命令格式为:Router(config-if)# ppp pap sent-username username password 0|7password 其中0表示口令为明文,7表示密文,口令类型(0或7)可省略,缺省时表示明文(0)。如果取消被验证方的PAP设置,可以执行:Router(config-if)# no ppp pap sent-username (3)配置PPP的 PAP验证方PPP的PAP验证方需要执行两步操作:第一步:设置PPP的 PAP验证方Router(config-if)# ppp authentication pap第二步:创建用户数据库记录Router(config)# username username password 0|7 password注意:这里的username和password必须与被验证方的pap sent-username命令中的username和password保持一致,同样,0|7口令类型项也可以省略。(4)调试和检测命令 show interface serial!查看接口配置参数 debug ppp!打开PPP协商调试开关show interface命令在前面的内容中已经做过介绍,通过该命令可以查看接口的配置状态,当查看的是封装了PPP的serial接口时可以查看PPP协商参数;debug ppp命令的格式为:debug ppp authentication | error | negotiation | packet其中:authentication调试PPP认证,error调试PPP协商错误,negotiation调试PPP协商过程,packet调试PPP协商报文。如果没有指定特定调试选项,则默认打开PPP认证协商调试选项。4CHAP介绍CHAP(Challenge Handshake Authentication Protocol,挑战握手协议)比PAP认证要安全得多,因为CHAP不在线路上发送明文密码,而是发送经过散列算法加密后的摘要信息,其中包括由验证方产生的随机序列,也被称为“挑战字符串”;同时,CHAP的身份认证可以随时进行,包括在双方正常通信的过程中。因此,非法用户即使截获并成功破译了一次密码,此密码也将在一段时间内失效。CHAP对系统要求很高,因为需要多次进行身份质询、响应,这需要耗费较多的处理器资源,因此CHAP多用于对安全要求很高的场合。图7.3 CHAP认证过程图7.3描述了CHAP的认证过程,可以看出CHAP认证包含三个阶段,通常称为三次握手:阶段1:当被验证方(远端路由器)向验证方(中心路由器)发送用户名做请求连接后,验证方向被验证方发送一串随机字符(“挑战”阶段);阶段2:被验证方利用MD5算法对口令和接收到的随机字符串进行加密产生密文,并将密文发送给验证方(“回应”阶段);阶段3:验证方利用同样的方式对随机字符串和用户数据库中的记录进行加密,并将产生的密文与接收的密文进行比较,然后根据比较结果接受或拒绝连接请求。5配置PPP协议CHAP认证的相关命令(1)配置接口封装协议路由器的Serial接口默认采用HDLC封装协议,因此,在通信双方选择PPP协议实现链路连接时,应当在双方接口上配置PPP协议,命令为:Router(config-if)# encapsulation ppp(2)配置PPP的CHAP被验证方配置PPP的CHAP被验证方的命令有两条:ppp chap hostname用于指定CHAP认证时使用的主机名,ppp chap password用于指定CHAP认证的公共口令。 ppp chap hostname命令的格式为:Router(config-if)# ppp chap hostname hostnameRouter(config-if)# no ppp chap hostname 其中,hostname是在CHAP认证中发送的主机名称,该命令的no形式用于恢复缺省使用的主机名。缺省情况时,在任何CHAP认证中,均使用路由器的名称。 ppp chap password命令的格式为:Router(config-if)# ppp chap password encryption-type secret 其中encryption-type表示密码报文的加密类型,secret为CHAP认证的公共口令,该命令的no形式用于取消CHAP认证的公共口令。随着网络规模的扩大,为了进行CHAP认证,必须为每台参与认证的路由器配置用户名/密码对,配置修改量会很大,如果使用ppp chap hostname和ppp chap password定义CHAP认证的公共主机别名和口令,则验证路由器只需要配置一个公共用户名/密码对即可,从而避免繁琐的验证数据库配置。(3)配置PPP的 CHAP验证方 设置PPP的 CHAP验证方Router(config-if)# ppp authentication chap 创建用户数据库记录Router(config)# username username password password使用的命令与PPP的PAP验证方相同,这里不复赘言。(4)调试和检测命令 show interface serial!查看接口配置参数 debug ppp!打开PPP协商调试开关6CHAP身份验证过程我们已经了解了CHAP的身份验证是由验证方发起,完成挑战、回应、确认三次握手,下面介绍一下这三个阶段的具体执行过程:(1)挑战:由验证方向被验证方发出质询,具体过程如图7.4所示:图7.4 CHAP身份验证过程1:挑战阶段 远端设备Remote向Certer发起连接呼叫,呼叫进入接口已经配置了CHAP验证; LCP协商使用CHAP和MD5; Certer需要向呼叫者发出一个CHAP挑战消息,该分组由以下内容组成: 01:质询分组类型标识符 id:标识该挑战分组的序列号 Random:随机数 Certer:质询方的认证名(可用ppp chap hostname命令指定,缺省为设备名) 其中的id号和随机数由Center保存,被叫路由器会维护一个已发出的挑战消息的列表。(2)回应:由被验证方向验证方发出的质询作出响应,具体过程如图7.5所示:图7.5 CHAP身份验证过程2:回应阶段 远端设备Remote接收挑战消息后执行如下处理:将序列号id、随机数放入MD5哈希生成器,根据质询者的认证名查询密码,将匹配Center的Password一并放入MD5哈希生成器产生MD5数值。注意:如果没有质询者认证名的匹配记录,将使用缺省的认证口令(由ppp chap password命令指定); Remote根据处理结果向质询方Center发出回应,回应分组由以下部分组成: 02:CHAP回应分组的类型标识符 id:序列号,复制自挑战分组 hash:由id、随机数和认证口令经MD5处理的密文结果 Remote:本设备的认证名,认证方用来查找验证时所需的记录(3)确认:验证方接收被验证方回应后,比对用户数据库,根据结果决定接受或拒绝连接,具体过程如图7.6所示:图7.6 CHAP身份验证过程3:确认阶段 验证方Center接收回应消息后执行如下操作:用序列号id找出之前的挑战记录,把id和随机数放入MD5哈希生成器,根据回应消息的认证名查找口令(记录来自本地用户数据库或安全服务数据库,安全服务数据库可以是远程验证拨入用户服务RADIUS或终端访问控制器访问控制系统TACACS服务器)并将匹配的口令一并放入MD5哈希生成器产生MD5数值; 将MD5处理后的密文与回应消息中的值进行比对,如果一致即验证成功。 如果验证成功,验证方向被验证方发送成功消息,CHAP验证成功消息组成如下: 03:CHAP验证成功的类型标识符 id:序列号,复制自回应分组 “Welcome in”:某种简单的文本消息,为了让用户可读 如果验证失败,验证方向被验证方发送失败消息,CHAP验证失败消息组成如下: 04:CHAP验证失败的类型标识符 id:序列号,复制自回应分组 “Authentication Failure”:或其它类似的文本消息,为了让用户可读7CHAP双向验证在配置CHAP双向验证时,由于缺省情况下,被验证方发送自己的设备名作为PPP用户认证名,因此可以不使用ppp chap hostname命令,于是双方的在配置本地用户数据库时(username password命令)username必须指定为对方的设备名(hostname);当本地数据库存在匹配挑战消息中的质询者认证名时,将使用记录中的口令而不是缺省的认证口令(由ppp chap password命令指定)进行回复,因此双方也不需要指定缺省的认证口令;在双方确认时,由于是将对方的用户数据库记录的口令和本地数据库记录的口令进行比对,因此双方的口令必须一致。在不使用ppp chap hostname定义CHAP认证的公共主机别名的情况下,CHAP双向认证的配置步骤可以参考如下:(1)双方使用hostname全局配置命令指定路由器设备名;(2)双方使用encapsulation ppp接口配置命令启用PPP协议;(3)双方使用ppp authentication chap接口配置命令启用CHAP验证;(4)双方使用username password全局配置命令配置本地用户数据库,注意username指定为对方的hostname,password要一致。附件1中北大学电子与计算机科学技术学院实验报告学号 _ 学生姓名 _ 实验时间_课程名称:网络设备与集成辅导教师:王东【实验名称】点到点协议PPP配置实验【实验任务】任务1:配置PPP协议的PAP认证实验任务2:配置PPP协议的CHAP单向认证实验任务3:配置PPP协议的CHAP双向认证实验任务1:配置PPP协议的PAP认证实验【实验目的】掌握在路由器serial接口上PPP封装以及实现PAP验证的配置方法,理解PAP验证的一般过程。【实验设备和连接】实验设备和连接如下图所示,通过V.35连接线把两台锐捷R1762路由器的Serial接口连接起来,路由器分别命名为R1、R2。图1 PPP的PAP认证实验【实验分组】每四名同学为一组,其中每两人一小组,每小组各自独立完成实验。【实验内容】步骤1:路由器基本配置:包括配置设备名、接口地址、启用接口;R1的配置如下:Router enable Password: Router# config terminal Router (config)# hostname R1 !设备名为R1R1(config)# interface serial 1/2 !进入S1/2接口模式R1(config-if)# ip address 172.16.10.1 255.255.255.0 !配置S1/2接口IP地址R1(config-if)# no shutdown!启用S1/2接口R1(config-if)# clock rate 64000!设置时钟(DCE)R2的配置如下:Router enable Password: Router# config terminal Router (config)# hostname R2 !设备名为R2R2(config)# interface serial 1/2 !进入S1/2接口模式R2(config-if)# ip address 172.16.10.2 255.255.255.0 !配置S1/2接口IP地址R2(config-if)# no shutdown!启用S1/2接口配置完成后,使用ping命令做连通验证(R1上执行ping 172.16.10.2,第一次ping)。此时,在R1或R2上执行show interface命令查看接口状态,以R2为例:R2# show interface serial 1/2serial 1/2 is UP , line protocol is UPHardware is PQ2 SCC HDLC CONTROLLER serialInterface address is: 172.16.10.2/24 MTU 1500 bytes, BW 2000 Kbit Encapsulation protocol is HDLC, loopback not Keepalive interval is 10 sec , set Carrier delay is 2 sec RXload is 1 ,Txload is 1 Queueing strategy: WFQ 5 minutes input rate 59 bits/sec, 0 packets/sec 5 minutes output rate 20 bits/sec, 0 packets/sec 373 packets input, 10828 bytes, 0 no buffer Received 298 broadcasts, 0 runts, 0 giants 1 input errors, 0 CRC, 1 frame, 0 overrun, 0 abort 324 packets output, 14592 bytes, 0 underruns 0 output errors, 0 collisions, 15 interface resets 1 carrier transitions V35 DTE cable DCD=up DSR=up DTR=up RTS=up CTS=up 可以看出,Serial接口的默认封装协议是HDLC。步骤2:配置接口封装为PPP在R1上配置接口封装:R1(config)# interface serial 1/2R1(config-if)# encapsulation ppp!配置接口封装为PPP可以看到系统会有如下提示:%LINE PROTOCOL CHANGE: Interface serial 1/2, changed state to DOWN此时在R1上执行ping 172.16.10.2,结果如何?(第二次ping)再在R2上配置接口封装:R2(config)# interface serial 1/2R2(config-if)# encapsulation ppp!配置接口封装为PPP可以看到系统会有如下提示:%LINE PROTOCOL CHANGE: Interface serial 1/2, changed state to UP仍然在R1上执行ping 172.16.10.2,结果如何?(第三次ping)步骤3:配置R1为PAP验证方PAP验证方的配置需要两步,执行如下:R1(config)# username r2 password 0 star!设置用户数据库,用户名:r2;加密类型:明文;口令:starR1(config)# interface serial 1/2R1(config-if)# ppp authentication pap!配置R1为PAP验证方可以看到系统会有如下提示:%LINE PROTOCOL CHANGE: Interface serial 1/2, changed state to DOWN此时在R1上执行ping 172.16.10.2,结果如何?(第四次ping)步骤4:配置R2为PAP被验证方PAP被验证方的配置如下:R2(config)# interface serial 1/2R2(config-if)# ppp pap sent-username r2 password 0 star!PAP被验证方配置,发送用户名:r2;加密类型:明文;口令:star可以看到系统会有如下提示:%LINE PROTOCOL CHANGE: Interface serial 1/2, changed state to UP仍然在R1上执行ping 172.16.10.2,结果如何?(第五次ping)思考:在刚才执行的5次连通性检测中,哪次没有ping通,解释分别不通的原因?步骤5:综合验证与调试在R1或R2上执行show interface命令查看接口状态,仍然以R2为例:R2# show interface serial 1/2 serial 1/2 is UP , line protocol is UP Hardware is PQ2 SCC HDLC CONTROLLER serial Interface address is: 172.16.10.2/24 MTU 1500 bytes, BW 2000 Kbit Encapsulation protocol is PPP, loopback not set Keepalive interval is 10 sec , set Carrier delay is 2 sec RXload is 1 ,Txload is 1 LCP Open Open: ipcp Queueing strategy: WFQ 5 minutes input rate 174 bits/sec, 0 packets/sec 5 minutes output rate 112 bits/sec, 0 packets/sec 565 packets input, 14043 by Received 316 broadcasts, 0 runts, 0 giants 3 input errors, 0 CRC, 3 frame, 0 overrun, 0 abort 502 packets output, 16878 bytes, 0 underruns 0 output errors, 0 collisions, 22 interface resets 1 carrier transitions V35 DTE cable DCD=up DSR=up DTR=up RTS=up CTS=up附注:BW:带宽,DLY:时延,HDLC:高级数据链路控制协议,DCD:数据载波寄存器,DSR:数据段寄存器,DTR:数据传送寄存器,RTS:请求发送,CTS:清除发送可以看出,Serial接口已经采用了PPP封装协议,LCP链路协商已经完成。实验的最后,我们使用debug ppp命令来观察PAP认证的过程:在R1和R2上分别执行debug ppp authentication命令:R1# debug ppp authentication!打开R1调试PPP认证开关R2# debug ppp authentication!打开R2调试PPP认证开关如果要看到PAP认证的过程,需要再执行下面的操作:任选两台路由器之一,以R2为例:R2(config)# interface serial 1/2R2(config-if)# shutdown!关闭R2的S1/2接口R2(config-if)# no shutdown!重新启用R2的S1/2接口随后,在R2上就可以看到PAP认证的过程的调试信息,内容如下:PPP: serial 1/2 PAP ACK receivedPPP: serial 1/2 Passed PAP authentication with remotePPP: serial 1/2 lcp authentication OK!在R1上也会有相应的调试信息。思考:为什么在关闭后又重新启用接口时才会看到PAP验证过程的调试信息?之前为什么看不到任何PAP验证过程的信息?如果之前做了双向PAP验证配置又会如何?任务2:配置PPP协议的CHAP单向认证实验【实验目的】使用CHAP认证方式对路由器serial接口上PPP进行验证,保证链路建立和网络安全性。理解CHAP验证的一般过程。【实验设备和连接实验分组与任务1相同】【实验内容】步骤1:路由器基本配置和串口PPP封装参见任务1实验步骤1和步骤2,这里不再具体说明。R1配置如下:Router# config terminal Router (config)# hostname R1R1(config)# interface serial 1/2R1(config-if)# ip address 172.16.10.1 255.255.255.0R1(config-if)# encapsulation pppR1(config-if)# no shutdownR1(config-if)# clock rate 64000R2配置如下:Router# config terminal Router (config)# hostname R2R2(config)# interface serial 1/2R2(config-if)# ip address 172.16.10.2 255.255.255.0R2(config-if)# encapsulation pppR2(config-if)# no shutdown完成后,验证路由器Serial接口的连通性和PPP封装;步骤2:配置R1为CHAP验证方R1(config)# username r2 password 0 star!设置用户数据库,用户名:r2;加密类型:缺省(明文);口令:starR1(config)# interface serial 1/2R1(config-if)# ppp authentication chap!配置R1为CHAP验证方可以看到系统会有如下提示:%LINE PROTOCOL CHANGE: Interface serial 1/2, changed state to DOWN步骤3:配置R2为CHAP被验证方R2(config)# interface serial 1/2R2(config-if)# ppp chap hostname r2!CHAP被验证方,发送主机名:r2;R2(config-if)# ppp chap password 0 star!CHAP被验证方,发送口令:star;可以看到系统会有如下提示:%LINE PROTOCOL CHANGE: Interface serial 1/2, changed state to UP注意:被验证方的发送主机名与口令要和验证方用户数据库的用户名与口令一致。步骤4:综合验证与调试首先使用ping命令验证连通;而后在R1或R2上执行show interface命令查看接口状态,确定PPP封装,链路协商已经完成(接口up,up)最后使用debug ppp命令来观察CHAP认证的过程:在R1和R2上分别执行debug ppp authentication命令:R1# debug ppp authentication!打开R1调试PPP认证开关R2# debug ppp authentication!打开R2调试PPP认证开关同任务1中一样,在关闭后又重新启用接口时会看到CHAP验证过程的调试信息,内容如下:验证方R1(链路协商信息被略去,只保留CHAP的验证过程)PPP: serial 1/2 Send CHAP challenge id=54 to remote hostPPP: serial 1/2 CHAP response id=54, received from r2PPP: serial 1/2 Send CHAP success id=54 to remotePPP: serial 1/2 remote router passed CHAP authentication.PPP: serial 1/2 lcp authentication OK!被验证方R2(链路协商信息被略去,只保留CHAP的验证过程)PPP: serial 1/2 Using CHAP hostname r2.PPP: serial 1/2 recv CHAP challenge from R1PPP: serial 1/2 username R1 not found in local router.PPP: serial 1/2 Using default CHAP password.PPP: serial 1/2 Passed CHAP authentication with remote.PPP: serial 1/2 lcp authentication OK!分析你所看到的CHAP验证过程,回答下面的问题:1)R2向R1发起连接呼叫,R1接口已经配置PPP CHAP验证,LCP协商使用CHAP和MD5,在这次呼叫中,R1要向呼叫者R2发出CHAP挑战消息,其中该挑战消息的序列号ID是多少?质询方的认证名(验证方的发送设备名)是什么?2)R2接收R1发送的挑战消息后,在本地用户数据库查找哪个用户没有找到?而后才使用默认的CHAP password出响应,这个口令是由那条命令建立的?3)R1接收的响应消息包括序列号ID、发送设备名、R2处理挑战消息中的ID和随机数与发送密码一起产生的散列编码,这里的序列号ID是多少?发送设备名是什么?散列编码中的发送密码是什么?4)R1根据接收的响应消息中的设备名查询本地用户数据库,找到对应的口令,并与之前发送挑战时保存的ID和随机数进行散列处理,将结果与响应消息中的哈希数比较,由于结果一致,发送验证成功的消息。在这里,验证成功的消息的ID是什么?本地用户数据库中找到的记录中用户名和口令分别是什么?这条记录是如何建立的?任务3:配置PPP协议的CHAP双向认证实验【实验目的】配置CHAP双向验证,掌握CHAP验证的完整过程。【实验设备和连接实验分组与任务1相同】【实验内容】步骤1:路由器基本配置和串口PPP封装参见任务1和任务2实验步骤,这里不复赘言,配置要求如下:配置路由器设备名为R1和R2;配置R1的serial 1/2地址为172.16.10.1/24,PPP封装,clock rate 为64000,启用接口;配置R2的serial 1/2地址为172.16.10.2/24,PPP封装,启用接口。完成后验证连通;步骤2:双方启用CHAP验证R1配置如下:R1(config)# interface serial 1/2R1(config-if)# ppp authentication chap!配置R1为CHAP验证方R2配置如下:R2(config)# interface serial 1/2R2(config-if)# ppp authentication chap!配置R2为CHAP验证方步骤3:双方配置用户数据库双方的用户名指定为对方的设备名,口令要一致。R1配置如下:R1(config)# username R2 password 0 starR2配置如下:R2(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高粱购销合同模板(3篇)
- 环保项目投资民间借款合同
- 商业地产业主与物业物业服务合同范本
- 2025公务员能源局面试题目及答案
- 辅警专业知识试题及答案
- 特种环保设施项目买卖合同环保效果与运营维护
- 商业街区商铺租赁合同范本(含品牌形象维护责任)
- 金融机构内部人员竞业禁止与金融业务保密合同
- 住宅小区配套商业租赁合同提前终止及收益分配协议
- 2025至2030中国船舶电子行业发展趋势分析与未来投资战略咨询研究报告
- 新高考高中英语熟词生义485例(精校版)重点单词、短语辨析
- 斜视检查(斜视诊疗课件)
- 和安风电场电气设备定检及预防性试验技术规范
- 农产品食品安全评价技术 课件全套 模块1-8 走进农产品食品安全检测 - 油脂脂肪酸组成和溶剂残留检测
- (正式版)HGT 22820-2024 化工安全仪表系统工程设计规范
- 第二章 临床康复工程学基础
- (高清版)TDT 1075-2023 光伏发电站工程项目用地控制指标
- 《水生生物学桡足类》课件
- 《预算员培训二》课件
- 八年级劳动课下册教案
- 人工动静脉瘘狭窄查房
评论
0/150
提交评论