ncp协议,ncp协议用于协商数据链路上

首页 > 经验 > 作者:YD1662023-06-24 05:17:37

PPP主要由三类协议簇组成:

--链路控制协议簇 (LCP),主要用于建立、拆除和监控PPP数据链路。

--网络层控制协议簇(NCP),主要用于协商在该数据链路上所传输的数据报的格式和类型。

--扩展协议簇CHAP和PAP,主要用于网络安全方面的验证。

ncp协议,ncp协议用于协商数据链路上(1)

Flag域,标识一个物理帧的的起始和结束,定界符的概念,为0x7E。

Address域,地址域,用于唯一标识对端,由于PPP协议是被运用在点对点的链路上,因此,使用PPP链路互联的两台设备不需要知道对方的链路层地址,按照协议的规定将该字节填充为全1的广播地址,因此,对于PPP协议来说,该字段没有实际意义。

Control域,该字段默认值为0x03,表明无序号帧,因为PPP默认没有采用序列号和确认应答来实现可靠传输,因此被定义为无序号帧。

注:address字段和control字段一起来标识这是一个PPP的数据帧(1.PPP是点对点的协议,不需要知道对端是链路层地址。2.PPP没有可靠传输机制,是无序号帧。)

Protocol域,协议域,用于区分PPP数据帧中信息域所承载的数据包类型。

0x0021---代表IP

0xC021---代表LCP

0xC023---代表PAP

0xC223---代表CHAP

Information域,信息域,最大长度1500字节,叫做MRU,缺省1500字节,双方可根据实际情况进行MRU的协商,不是一定得1500字节。

FCS域,帧校验,主要对PPP数据帧进行正确性检测。

ncp协议,ncp协议用于协商数据链路上(2)

1. 初始化状态为dead状态,这时候链路状态表示不可用状态。

2. 进入establish状态后,开始进行LCP协商,LCP协商参数包含链路协商(single-link ppp或Multilink ppp)、最大接收单元MRU、验证方式和魔术字。如果协商失败,进入Dead状态重新协商。

3. 协商成功后进入Authenticate状态,如果验证成功,进入Network状态,如果协商失败,首先进入terminate状态,链路状态为down,然后再进入dead状态重新协商。

4. 协商成功进入Network状态后,进行网络层参数的协商,比如IPCP、MPLSCP、IPXCP等等,协商成功后就可以传输该类网络层协议的数据,协商失败同样进入terminate状态。

PAP认证原理说明:

ncp协议,ncp协议用于协商数据链路上(3)

1. 被验证方在接口下配置用户名和密码后,将主动发起authenticate-Requst认证请求报文。

2. 验证方收到该验证请求以后,如果接口下配置了ppp pap authenticate-mode命令,则对被验证方进行pap认证,如果没有配置,缺省情况下不对该用户进行PPP认证(即使被验证方在接口下配置了用户名和密码)。

3. 一旦验证方接口下配置了ppp pap authenticate-mode命令,则必须对用户进行pap认证,验证方会根据被验证方提供的用户名,在本地的数据库中查找该用户名对应的密码。

如果匹配,验证成功,向被验证方发送authenticate-ack消息。代表验证成功,验证结束;

如果验证失败,向被验证方发送authenticate-nak消息,代表验证失败,进入terminate阶段,重新进行LCP协商,并重新进行验证,验证成功,进入Network阶段,验证失败,进入terminate阶段,以此循环。

4. 如果被验证方没有配置用户名和密码,则验证失败(会向对方发送configure reject消息,表示无法识别该消息类型)。

CHAP认证原理说明:

ncp协议,ncp协议用于协商数据链路上(4)

1.验证方可以不在接口下配置用户名,被验证方接口下必须配置用户名(密码要么在接口下配置要么在AAA数据库中配置)。

--被验证方在接口下配置用户名的目的是为了表明对哪一个用户进行验证,因为chap认证是由验证方发起的。

2.验证方如果不在接口下配置用户名,被验证方必须在接口下配置密码。

--因为如果不配置密码,被验证方无法找到密码,无法进行hash操作,导致验证失败。

3.验证方如果在接口下配置用户名,被验证方可以在接口下配置密码,也可以在AAA数据库中配置用户名和密码(但是接口下必须配置用户名)

4.双向认证既双方都作为认证方和被认证方,也就是单向认证的叠加,按照单向认证原理分析即可。

交互过程:

1.即由认证方主动发起challenge消息,消息中携带随机数,消息ID,如果有用户名则携带用户名。

2.被验证方接收到该challenge消息以后,如果接口下配置了密码(ppp chap passsword命令),则使用该密码 随机数 消息ID

进行hash操作(不管验证方的challenge消息中是否携带用户名),将得出的hash值通过response消息发送给对方,并携带本地用户名发送给验证方。

3.验证方收到该response消息后,通过response消息中携带的用户名找到该用户对应的密码,并结合自身产生的随机数 消息ID进行hash,将hash出来的值和

对端hash出来的值做对比,如果相同,则向被验证方发送success消息(验证成功消息),则验证通过;如果不相同,则向被验证方发送failure消息(验证失败消息),则验证失败。

注:CHAP认证,验证方可以在接口下配置密码,也可以在AAA数据库中配置密码。

CHAP和PAP的区别:

1. CHAP认证为三次交互认证,相对PAP来说(PAP通常是两次交互认证)。

2. CHAP不在链路上进行明文密码的传输,极大的保证了安全性。

3. PAP认证是由被验证方主动发起的,CHAP认证是由验证方主动发起。

以上就是本期关于PPP的技术内容,如果感兴趣,可以关注我了解更多哦,谢谢!

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.