网络协议分析(PPP协议)

时间:2024-03-15 17:31:10

一、内容

网络协议分析(PPP协议)

1.R1和R2之间的数据链路层采用ppp协议,R1和R2之间进行双向认证,认证协议为chap协议。R1配置ip地址池,R2通过ppp协议自动获取ip地址。

2.  描述R1和R2之间通过ppp协议进行数据通信的过程。并且通过抓包说明该过程。

二、实现方法

(1)  R1和R2之间的数据链路层采用ppp协议,R1和R2之间进行双向认证,认证协议为chap协议。

1)R1配置PPP

R1(config)#int s0/0

R1(config-if)#no shut

*Mar 1 00:01:43.751: %LINK-3-UPDOWN:Interface Serial0/0, changed state to up

*Mar 1 00:01:44.759: %LINEPROTO-5-UPDOWN:Line protocol on Interface Serial0/0, changed state to up

R1(config-if)#ip add 12.12.12.1255.255.255.0

*Mar 1 00:02:12.615: %LINEPROTO-5-UPDOWN:Line protocol on Interface Serial0/0, changed state to down

R1(config-if)#exit

R1(config)#username r2 pass 123

R1(config)#int s0/0

R1(config-if)#encapsulation ppp

R1(config-if)#ppp authen chap

R1(config-if)#ppp pap sent-username r1 pass123

R1(config-if)#clock rate 9600

2)R2配置PPP

R2#conf t

Enter configuration commands, one perline.  End with CNTL/Z.

R2(config)#user r1 pass 123

R2(config)#int s0/0

R2(config-if)#clock rate 9600

R2(config-if)#encapsulation ppp

R2(config-if)#ppp authen chap

R2(config-if)#no shut

*Mar 1 00:09:13.215: %LINK-3-UPDOWN: Interface Serial0/0, changed state to up

3)判断PPP开启

R1(config-if)#do show int s0/0

R2(config-if)#do show int s0/0

(2)  R1配置ip地址池,R2通过ppp协议自动获取ip地址。

1 )R1配地址池

R1#config t

R1(config)#int s0/0

R1(config-if)#peer default ip add pool sang

R1(config-if)#ip local pool sang 12.12.12.212.12.12.20

2)R2从sang地址池获取ip

R2(config)#int s0/0

R2(config-if)#ip add negotiated

3)查看R2 s0/0端口ip

R2(config-if)#do show int s0/0

(3)  描述R1和R2之间通过ppp协议进行数据通信的过程。并且通过抓包说明该过程。(R1和R2会相互发,以R1是发起方为例)

PPP协议包含这样几个部分:链路控制协议LCP(LinkControl Protocol);网络控制协议NCP(NetworkControl Protocol);认证协议,最常用的包括口令验证协议PAP(PasswordAuthentication Protocol)和挑战握手验证协议CHAP(Challenge-HandshakeAuthentication Protocol)。

1)LCP

创建PPP链路,LCP负责创建链路。在这个阶段,将对基本的通讯方式进行选择,进行数据链路层参数协商(MTU和认证协议等)。链路两端设备通过LCP向对方发送配置信息报文(Configure Packets)。

发起方给回应方发送Configure-Request报文,以说明发起方的配置,并询问回应方这样的配置是否可以。

回应方返回Configure-ACK报文给发起方,表示Configure-Request中的每个选项都能被接收端识别,而且都被接受,回应方同意发起方的配置。若返回的为Configure-NAK报文,则表示每个选项都能识别,但是只有部分能接受,回应方不同意发起方的配置,并会给出推荐配置。若返回的为Configure-Reject报文, Confiure-Request有部分选项不能被识别,或者不能被接受。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。应当注意,在链路创建阶段,只是对验证协议进行选择,用户验证将在后面实现。

2)认证(CHAP)

用户验证在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)。

R1发送challenge报文,即发送事先授权的用户名、密码(用户名R1,密码为加密后的密文)。

R2发送response报文,根据这个“challenge”和共享**,利用一个单向散列函数计算一个散列值并发回给认证端(用户名R2,密码为加密后的密文)。

R1发送CHAP认证成功报文(success),表示CHAP认证成功。把这个数字和自己计算出来的数据进行比较,如果匹配,则确认;否则否认;

3)IPCP

调用网络层协议。认证阶段完成之后,PPP将调用在链路创建阶段选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题。例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。

发起方给回应方发送Configure-Request报文,请求分配动态IP地址或我这个IP地址可不可以。

回应方返回Configure-NAK报文给发起方,表示Configure-Request报文未指定IP地址,由回应方指派,并附加在Configure-Nak报文中返回给发送端,给出推荐IP地址12.12.12.2(从其地址池中选取)。

4)CDPCP(思科设备发现协议)

发送Configuration-Request,回应Configuration-Ack。

5)IPCP

发起方再次给回应方发送Configure-Request报文,问你新给我的这个IP地址可不可以。

回应方返回Configure-ACK报文给发起方,表示回应方同意发起方的配置。       

6)R1和R2之间建立起链接

7)ICMP(ping,R1和R2之间进行通信)