【LCP debug信息】
lcp是ppp的第一个阶段,用于协商最大接收单元,验证方式,魔术字以及ppp的一些协议扩展选项。
- ppp event:事件调试
- ppp packet:报文调试
- Serial 0/0/0:表示是串口0/0/0收到的报文
- echo timer expired:计时器过期,对方端没有回复我们,总计重传5次
- output:本端发送报文
- LCP(c021):取值c021表示是LCP协议。
- Pkt,len 12:发送本LCP报文总长度为12字节
- Echo-Request和Echo-Reply:用来保持网络连接,定期发送请求
- id:此报文id号为ac
- len 8:此协商报文长度为8,和Pkt len的区别是Pkt len包含头长度
- 魔术字(Magic Number):用来检验链路是否发生自环,协商双方选项中的魔术字应该不同。
- R1发送EchoRequest报文,收到EchoReply报文,表示LCP已经协商通过
【PAP debug信息(主验证方)】
PAP是基于口令的认证方法。被认证方向认证方发送Authenticate-Request报文,其中包含了账号和口令信息。若通过认证,认证方回复Authenticate-Ack,否则返回Authenticate-Nak。
- 当链路状态up之后,R1注意到自己是主验证方,状态由Initial–>ServerListen。
- 被验证方发送了一个request报文,内容包含自己的用户名和密码。
- 主验证方收到这个request报文之后,状态机:ServerListen–>WaitAAA。
- 主验证方提取出用户名和密码,和自己的本地数据库进行比对,发现用户名和密码一致,紧接着向被验证方发送ACK报文。
- 主验证方的状态机:WaitAAA–>ServerSuccess。
【CHAP debug信息(主验证方)】
CHAP是基于挑战的认证协议。认证方向被认证方发出一一个Challenge报文,其中包含了随机数c;作为响应,被认证方将双方共享的秘密值s和c一起作为输人,计算散列值A (散列函数通常使用MD5),并通过Response报文返回;认证方在本地将s和c作为输入,用同一散列函数计算散列值A2,并与A1进行比较。若A2=A1,说明被认证方拥有正
确的共享秘密,认证通过,返回Success ;否则返回Failure。
- 本端RTA首先向对端发送一个Challenge报文,Value的值就是challenge的值,本端的状态机:Initial–>SendChallenge。
- 收到对端RTB的Response报文,Value内容为使用id拼接密码内容再拼接challenge值之后加密的结果,本端的状态机:SendChallenge–>WaitAAA
- 如本端验证对端通过,本端的状态机WaitAAA–>ServerSuccess。
- 紧接着向对端发送一个SUCCESS报文,表示验证通过了。
PAP和CHAP的主要区别:
从协议机理上看,CHAP传输的是加密数据;从使用时机上看,CHAP可以在链路建立和数据通信阶段多次使用,这意味着在通信过程中可以用CHAP随时验证对等端身份。综上,相对PAP,CHAP的安全性有较大提升。