APP下载

PPP协议仿真实验分析

2013-01-04曹雪峰许胜男

河北民族师范学院学报 2013年2期
关键词:网络层用户名IP地址

曹雪峰,许胜男

(1.河北民族师范学院 数学与计算机系,河北 承德 067000 2.河北民族师范学院 信息中心,河北 承德 067000)

1 引言

点到点协议(Point to Point Protocol,PPP)提供了一种在点到点的链路上封装多协议数据报(IP、IPX等)的标准方法,它不仅支持物理层同步和异步传输;链路的配置;IP地址的动态分配和管理;而且还支持多种配置参数选项的协商。PPP协议在广域网和嵌入式系统中有广泛应用,这些都使得我们有必要了解和掌握PPP协议的工作原理和运行机制[1-2]。学习计算机网络协议的最好方法,就是通过对网络中捕获报文的分析,理解协议的报文格式、协议的工作原理和交互过程。PPP协议运行在设备的串口,无法用Wireshark等协议分析软件捕获报文,不能通过捕获报文的方法进行协议分析[3]。思科模拟软件GNS3是一款开源的网络模拟软件,适用于多种操作系统,它可以利用Wireshark来捕获虚拟网络拓扑中串口上通过的报文,从而使通过对报文分析来学习PPP协议成为可能[4]。

2 PPP协议的基本原理

2.1 PPP协议的组成

PPP协议有三个组成部分[5]:

⑴一个将IP数据报封到串行链路的方法。PPP既支持异步链路,也支持面向比特的同步链路。

⑵一个用来建立、配置和测试数据链路的链路控制协议 LCP(Link Control Protocol)。通信的双方可协商一些选项。

⑶ 一套网络控制协议NCP(Network Control Protocol),支持不同的网络层协议,如IP、IPX等。当点到点的两端进行NCP参数配置协商时,主要是用来确定通信双方的网络层地址。

2.2 PPP协议工作过程

在点到点链路的配置和维护过程中,PPP需经历以下几个阶段:

⑴链路不可用阶段

也称为物理层不可用阶段,PPP链路都需从这个阶段开始和结束。往往在实际过程中这个阶段所停留的时间是很短的,仅仅是检测到对方设备的存在。

⑵链路建立阶段

是PPP协议最关键和最复杂的阶段。该阶段主要是发送一些LCP配置报文来配置数据链路,这些参数不包括网络层协议所需的参数。当完成配置报文的交换后,则会继续向下一个阶段跃迁,下一个阶段既可是认证阶段,也可是网络层协议阶段。

⑶认证阶段

多数情况下链路两端设备需要经过认证后才进入到网络层协议阶段,默认情况下链路两端的设备是不进行认证的。在认证阶段支持口令认证协议(Password Authentication Protocol,PAP)和挑战握手认证协议(Challenge Hand Authentication Protocol,CHAP)两种认证方式,认证方式的选择是依据在链路建立阶段双方进行协商的结果。通过认证进入网络层协议阶段,否则进入链路终止阶段。

⑷网络层协议阶段

一旦PPP完成了前面几个阶段,每种网络层协议会通过各自相应的网络控制协议进行配置,在这个阶段所需的一些配置参数协商完后,就可以进行网络层的通信。NCP协议主要包括IPCP、IPXCP等。

⑸链路终止阶段

PPP能在任何时候终止链路。当载波丢失、认证失败和管理员人为关闭链路等均会导致链路终止。

3 仿真实验分析

3.1 组建网络并捕获报文

按图1所示网络拓扑结构搭建网络,其中R1、R2为C3600系列路由器[6]。R1路由器s0/0端口地址为212.1.100.1/24,同时为客户端分配IP地址范围为 212.1.100.2~212.1.100.254,DNS服务器地址为200.1.1.10,采用predictor压缩算法。R2路由器不采用压缩算法,同时自动向对端申请获取IP地址和DNS服务器地址。R1与R2路由器之间采用PAP认证方式,R1为主认证方,R2为被认证方,认证用户名为cisco01,密码为net01。

具体配置如下:

*R1路由器主要参考配置命令:

R1(config)#no cdp run

R1(config)#username cisco01 password net01

R1(config)#interface serial 0/0

R1(config-if)#ip address212.1.100.1 255.255.255.0

R1(config-if)#encapsulation ppp

R1(config-if)#ppp authentication pap

R1(config-if)#peer default ip address pool test

R1(config-if)#compress predictor

R1(config-if)#ppp ipcp dns 200.1.1.10

R1(config-if)#no shutdown

R1(config)#ip local pool test 212.1.100.2 212.1.100.254

*R2路由器参考配置命令:

R2(config)#no cdp run

R2(config)#interface serial 0/0

R2(config-if)#ip address negotiated

R2(config-if)#encapsulation ppp

R2(config-if)#ppp pap sent-username cisco01 password net01

R2(config-if)#ppp ipcp dns request

R2(config-if)#no shutdown

在R2路由器上执行ping 212.1.100.1命令,同时运行Wireshak在R1—R2链路上捕获PPP数据帧,捕获报文如图2所示。

在R2路由器上执行如下命令:R2(config-if)#ppp pap sent-username cisco01 password net00,传送错误的密码,同时运行Wireshak在R1—R2链路上捕获PPP数据帧。捕获报文如图3所示。

3.2 LCP工作过程分析

在链路建立阶段使用LCP报文建立链路,LCP报文包括以下三种类型:

链路配置帧:包括Configure-Request、Configure-Ack、Configure-Nak 和 Configure-Reject,用于建立和配置链路。

链路维护帧:包括Code-Reject、Protocol-Reject、Echo-Request和 Echo-Reply等用于管理和调试链路。

链路终止帧:包括Terminate-Request和Terminate-Ack用于终止链路。

当通信双方建立链路时,都需要发送Config-Request报文并携带每一端所希望协商的配置参数,其中包括协议和身份认证参数,如图2中的1、2号报文。响应方处理这些参数,如果可以接受,发送Configure-Ack响应报文,入土中的3、4号报文。收到Configure-Ack消息后,链路建立过程便转入身份认证阶段或网络协议阶段。

如果参数不可接受或无法识别,就发送Configure-Nak或Configure-Reject消息,不会建立链路。如果协商失败,发起方需要使用新选项重新执行该过程。

在链路维护期间,LCP可以通过发送链路维护帧来提供反馈和测试链路。如果无法识别的LCP编码(LCP帧类型)或错误的协议标识符导致帧无效,可使用Code-Reject和Protocol-Reject这两种帧来提供反馈,如图2中的11号报文。Echo-Request和Echo-Reply帧可用于测试链路。

3.3 PAP工作过程分析

PAP是一种简单的明文认证方式[7],对准备登录到点到点协议服务器上的用户进行身份认证。PAP采用两次握手机制,在链路建立阶段,认证方发送Configure-Request报文时会携带认证配置参数选项,而被认证方只需要返回相应的Configure-Ack报文,然后被认证方发送Authenticate-Request报文先发起认证请求,如图2中的5号报文,把自己的用户名和密码传送给认证方,认证方把接收到的用户名和密码与本地用户数据库中的信息作比较,如果该数据库中有与用户名和密码一致的选项,就向被认证方返回一个Authenticate-Ack认证通过响应报文,如图2中的6号报文,告诉对方认证已通过,进入网络层协议阶段,否则如果用户名与密码不符,则向被认证方返回Authenticate-Nak认证不通过的响应报文,如图3中的6号报文,认证失败,进入链路终止阶段。LCP通过交换Terminate报文来关闭链路,认证方首先发送Terminate-Request报文,表明想关闭链路,而对方使用Terminate-Ack报文响应,如图3中的7、8号报文,PPP链路随即终止。PAP也可以采用双向认证,此时任何一端即是认证方也是被认证方。

3.4 IPCP工作过程分析

IPCP协议负责完成网络层IP协议通信所需配置参数的协商,主要是完成IP地址的协商[8]。IPCP报文与LCP报文类似,只不过IPCP是在网络层协议阶段协商配置参数,而LCP协议则是在链路建立阶段协商配置参数。在实际的报文交换过程IPCP中主要涉及以下几种:Configure-Request、Configure-Ack、Config-Nak 和 Configure-Reject。IPCP 的协商过程分为静态地址协商和动态地址协商。

⑴静态地址协商

在静态地址协商过程中,两端主机在PPP协商之前已配置好了IP地址,双方要做的就是告诉对方自身的IP地址。在完成整个配置的过程时,无论是发送方还是接收方都要发送Configure-Request报文,其中配置选项中含有各自的IP地址。当对端收到该报文后,会发送一个Configure-Ack报文,其含义就是告诉对端我已经知道了你的IP地址。

⑵动态地址协商

在动态地址协商过程中,一端通过手动方式配置IP地址,且允许给对端分配IP地址,另一端配置为动态获取IP地址,这个过程类似于拨号上网的过程。在图2中7号报文是R1路由器发送的IPCP的Configure-Request报文,报文内容为 IP address∶212.1.100.1,也就是告诉对端我的IP地址是212.1.100.1;10号报文是R2返回的Configure-Ack报文,内容是IP address∶212.1.100.1,意思是我知道了。而9号报文是R2路由器发送的IPCP的Configure-Request报文,报文内容为 IPaddress∶0.0.0.0;Primary DNS server IP address∶0.0.0.0;Secondary DNSserver IP address∶0.0.0.0,也就是告诉对端我的IP地址、首选DNS和备用DNS服务器地址都是0.0.0.0;12号报文是R1返回的Configure-Reject报文,内容是 Secondary DNSserver IPaddress∶0.0.0.0,意思是我拒绝协商备用DNS服务器地址。然后13号报文是R2路由器再次发送的Configure-Request报文,报文内容为 IP address∶0.0.0.0;Primary DNS server IP address∶0.0.0.0,也就是不在协商备用DNS服务器地址都是0.0.0.0;14号报文是R1返回的Configure-Nak 报文,内容是 IP address∶212.1.100.4;Primary DNSserver IPaddress∶200.1.1.10,意思是我不同意你的IP地址和首选DNS服务器地址,用我给你的。最后15号报文是R2路由器发送的Configure-Request报文,报文内容为IP address∶212.1.100.4;Primary DNS server IP address∶200.1.1.10,也就是采用R1分配的IP地址和首选DNS服务器地址;16号报文是R1返回的Configure-Ack 报文,内容是 IP address∶212.1.100.4;Primary DNSserver IP address∶200.1.1.10,意思是我知道了。至此网络层参数协商完毕,可以进行网络层数据传送。

3.5 CHAP与PAP协议比较分析

在R1与R2路由器之间采用CHAP认证方式,R1为主认证方,R2为被认证方,认证用户名为cisco01,密码为net01。主要配置如下:

*R1路由器参考配置命令:

R1(config-if)#ppp authentication chap

R1(config-if)#ppp chap hostname routera

R1(config)#username routerb password cisco01

*R2路由器参考配置命令:

R2(config-if)#ppp chap hostname routerb

R2(config)#username routera password cisco01

在R2路由器上执行ping 212.1.100.1命令。同时运行Wireshak在R1—R2链路上捕获PPP数据帧。

PAP的缺点是用户的用户名和密码是明文发送的,并且认证进程只在双方的通信链路建立初期进行,有可能导致安全问题。而CHAP是三次握手协议[9],它只在网络上传送用户名而不传送口令,定期发出挑战,以确保远程节点有有效的密码,因此安全性比PAP高。

在认证一开始,由认证方向被认证方发送一段随机的报文,并加上自己的用户名,这个过程叫做挑战,图4中的6号报文就是R1路由器发送的Code Challenge挑战报文。当被认证方R2收到认证方的挑战报文后,从中提取出认证方所发送过来的用户名,然后根据该用户名在被认证方设备的后台数据库中去查找相同的用户名的记录,当查找到后就把该用户名所对应的密码、报文ID和认证方发送的随机报文用MD5加密算法生成密文,随后将密文和自己的用户名送回R1,这就是图4中的7号Response响应报文,同样认证方收到被认证方发送的报文后,提取被认证方的用户名,然后去查找本地的用户数据库,当找到与被认证方一致用户名后,根据该用户名所对应的密码、报文ID和随机报文用MD5加密算法生成密文,和刚刚被认证方所返回的密文进行比较,如果相同则通知被认证方认证通过,发送图4中的8号Success认证成功报文,否则认证没有通过。

4 结语

PPP协议应用广泛,但是由于它配置在路由器设备的串口,正常捕获PPP数据帧比较困难,无法采用协议分析法对其进行有效分析,通过在GNS3模拟软件中设计并配置PPP协议仿真实验,可以通过Wireshark捕获PPP数据帧,采用协议分析的方法对PPP协议工作过程进行分析,加深了对理论知识的理解,提高了理论联系实际的能力,对其它网络协议的研究和学习有一定的参考价值。

[1]曹雪峰.计算机网络配置、管理与应用[M].北京:机械工业出版社,2010.

[2]Karl Solie.CCIE实验指南(第一卷)[M].李津,卓林,译.北京:人民邮电出版社,2002.

[3]潘文婵,章韵.Wireshark在TCP/IP网络协议教学中的应用[J].计算机教育,2010,114(3):158~160.

[4]王煜林,王金恒.使用GNS3模拟网络实验室[J].电脑编程技巧与维护,2010,210,(12):113~114.

[5]William Allen Simpson.The Point-to-Point Protocol(PPP)[S].IETF RFC 1661,1994.

[6]李领治,陆建德等.基于Net Sim的计算机网络实验教学方案[J].实验技术与管理,2009,26,(02):150~153.

[7]Brian Lloyd,William Allen Simpson.PPP Authentication Protocols[S].IETF RFC 1334,1992.

[8]Glenn McGregor.The PPP Internet Protocol Control Protocol(IPCP)[S].IETF RFC 1332,1992.

[9]William Allen Simpson.PPP Challenge Handshake Authentication Protocol(CHAP)[S].IETF RFC 1994,1996.

猜你喜欢

网络层用户名IP地址
《护士进修杂志》投稿程序
《护士进修杂志》投稿程序
铁路远动系统几种组网方式IP地址的申请和设置
《护士进修杂志》投稿程序
IP地址切换器(IPCFG)
论物联网安全威胁及其应对策略
机智的快递员
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
物联网技术在信息机房制冷系统中的应用