您的当前位置:首页正文

基于嵌入式Linux系统PPP协议的实现

2022-09-07 来源:易榕旅网
维普资讯 http://www.cqvip.com 关键词:PPP协议.嵌八式系统中国分类号:TP3t6.6/.8 linux 连接 文献编号:1673.1131(2006)03,0043.04 文献标识码;A PPP协议(Point to Point protoco1)在OSII开放系统互联)网络参考模型中处 于数据链路层 这种链路提供全双工操作.并按照顺序传递数据包。它提 张艳红 .供了在串行点对点链路上传输数据报的方法.支持异步8位数据同步连接 它提供了一种管理两点间会话的有效方法正在取代SLIP(Seria ̄Line IP)协议 威为点对点网络的标准。 PPP协议包括以下三个部分 {I973一).湛缸师拙学院计弊中心助 理实验师。 Implementation of PPP Protocol Based on Embedded Linux System Zhang Yanhong (Zhan iangNormal University.GuangDongZhangJiang 524048) Abstract:With the rapid development ofmodern computer technology and Internut techniques.embedded system becomes one 0f themost heatI ̄cuscsinITindustry.Thispaperbrieflyintroducestheconception andlinkprt ̄eessofPPPprotocol・thenexpatiatesoil the method of implementing PPP protocol in embedded linux system with an example・ Key wods:PPP protocol;embedded system;linux;link 张艳红/基于嵌八式Linux系统PP 迹丝 塞堡 I ,43 维普资讯 http://www.cqvip.com

nforn  ̄ation COmr ̄uDIGati0ns ● 数据帧封装方法。 …… ….…并将结果与用户返回的口令进行对照。CHA P舟每一次 验证任意生成一个挑战字串来防止受到再现攻击(reP I aY ・链路控制协议LCP(Link Control Protoco1):它用于 对封装格式选项的自动协商,建立和终止连接,探测 attack)。在整个连接过程中,CHAP将不定时的向客户端 链路错误和配置错误。 熏复发送挑战口令.从而避免第三方冒充远程客端 ・ 针对不同网络层协议的一族网络控制协议NCP (remote cllent impersonation)进行攻击 (Network Control Protoco1):PPP协议规定了针对每一种网 1.3阶段一调用网络层协议 络层协议都有相应的网络控制协议,并用它们来管理 认证阶段完成之后,PPP将调用在链路创建阶段(阶 各个协议不同的需求。 段1)选定的各种网络控制协议NCP(Netwo rk Cont rol Protoco1)。选定的NCP解决PPP链路之上的高层协议问题, 一、PPP连接过程 例如.在该阶段IP控制协议(1PCP)可以向拨入用户分配 一个典型的PPP链路建立过程分为三个阶段:创建 动态地址。 阶段 认证阶段和网络协商阶段。 这样,经过三个阶段以后.一条完整的PPP链路就 1,1阶段1一创建PPP链路 建立起来了。 链路控制协议LCP(Link Control Protoco1)负责创建链 路。在这个阶段,将对基本的通讯方式进行选择。链路 二 嵌入式linux系统PPP协议的配置 两端设备通过LCP向对方发送配置信息报文(C0n f i gu r e 由于Linux支持多种硬件平台、开放源码和免费、高 PaC k ets) 一旦一个配置成功信息包(C0nf i gu re—ACk 度模块化,所以Linux是理想的嵌入式操作系统 Linux微内 Packet)被发送且被接收,就完成了交换,进入了LCP开 核直接提供网络支持,TCP/IP就是它的网络协议栈,通过在数 启状态。 据链路层匕使用PPP协议.就可使用Modem连接上Internet。 1.2阶段2一用户验证 要在嵌入式I inux下实现PPP连接.首先确认嵌入式 在这个阶段,客户端会将自己的身份发送给远端的  Iinux内核是否持PPP(可以通过在kernel目录路径下使用make 接入服务器。该阶段使用一种安全验证方式避免第三方 menuconf i g语句查看),如果不支持,就需要重新编译内 窃取数据或冒充远程客户接管与客户端的连接。在认证 核.使其支持PPP.然后安装拨号所需的pppd和chat应用 完成之前,禁止从认证阶段前进到网络层协议阶段 如 程序。PPPd程序的用途是建立并维持与服务器的PPP的 果认证失败,认证者应该跃迁到链路终止阶段。最常用 连接.chat程序的用途是拨号。要使用pppd和chat程序, 的认证协议有口令验证协议PAP(Password Authentication 还需要设置它们的配置文件,这些文件是脚本文件,它们 Protoco1)和挑战握手验证协议CHAP(Chal Ienge—Handshake 位于/etc/ppp目录中。 Authentication Protoco1)。PAP是一种简单的明文验证方式。 2.1配置pppd程序脚本文件 NAS(网络接入服务器,Network Access Server)要求用户 假设使用CDMA无线MODEM,接在串口1,即/dev/ 提供用户名和口令,PAP以明文方式返回用户信息。很 ttyS0,pppd软件在/usr/sbin/pppd。pppd程序通过一些选 明显.这种验证方式的安全性较羞,第三方可以很容易 项来控制PPP链路的所有方面. 有关选项存放在一个脚 的获取被传送的用户名和口令。CHAP对PAP进行了改 本文件中,该文件由PPPd程序直接读取。 进,不再直接通过链路发送明文13:令,而是使用挑战1:3 在此步骤里,建立pppd程序脚本文件/etc/ppp/cdma, 令以哈希算法对1:3令进行加密。因为服务器端存有客户 此文件内容如下: 的明文口令 所以服务器可以重复客户端进行的操作, debug #打开调试开关 44 I 雨丽 囊耐一 维普资讯 http://www.cqvip.com

user test” #此为用户名 2 2.1建立/etc/ppp/connect-chat文件,此文件 /dev/ttySO #使用串口1,如果是串口2 此行改为/ 内容如下 dev/ttyS1 TIMEOUT 5∥设定接收所期待的输入 1 1 5200 #波特率 根据情况进行调整 超时时限为5秒 c rtscts #采用硬件流控 ECHO oN #local #不使用MODEM控制线(CD,DTR ABORT BUSY ∥若接收到BUSY字符串 nodetach 则终止执行 ABORT Iock #锁定设备.不允许其它用户使用此设备 ERROR ∥若接收到ERROR字符串 m0aem #使用MODEM控制线(CD.DTR 则终止执行 ABORT NO ANSWER ∥若接收到NO ANSWER asyncmap 0 字符串,则终止执行 1 0,0,0 1 ABORT NO CARRIER ∥若接收到NO CARRIER n ̄21efauIt #不使用本地设置的IP地址 字符串,则终止执行 defauItroute #连接成功后.将IP地址加入到默认 ABORT NO DIALTONE ∥若接收到NO DIALTONE 路由表中 字符串,则终止执行 noccp #不使用压缩控制协议Compression Contro ABORT RINGING ∥若接收到RINGING字符 Protoco 串.则终止执行 novj #在收发双向禁止VJ(Van Jacobson)包头  ‘AT 压缩协议 TIMEOUT 1 2 ∥设定接收所期待的输入 novjccomp #不使用Van Jacobson TCP/IP包头压 超时时限为1 2秒 缩协议 SAY Press CTRL—C tO cIose the connection at pcp--accept-I oca I #接受对方指定本棚使用本地IP地址 8nY stage! pcp accept-remote #接受对方指定对方使用它自己的 OK AT ∥期待OK.接着送出AT lP地址 oK ATE1 ∥期待OK.接着送出ATE1 persISt #断线重连 OK AT ∥期待OK.接着送出AT connect chat—v—s—S—f/etc/ppp/connect-chat oK A11=lT#777 //期待OK.接着送ATD#777 #连接脚本 TIMEOUT 22 ∥设定接收所期待的输入 disconnect chat—v—s—S--f/etc/ppp/disconnect--chat 超时时限为22秒 #断开脚本 SAY \nW8iting for connect.,,\n” CONNECT … #文件结束 ∥期待CONNECT且不送出 任何回覆信息 2.2制作chat脚本 SAY \nConnected, chat是在嵌入式Linux系统与modem之间进行自动交 SAY ”\nlf the following PPP negotiations fail.\n” 互的程序,主要用于在本地和远程P P P d守护进程之间建立 ”SAY try restarting the phone,\n” modem连接。因此一个很自然的问题就是制作chat脚本。 #文件结束 摹王 式 墨. 窭 一一 0-二二- 6№3 45 维普资讯 http://www.cqvip.com

nformation &commu『1…ications—……… 2.2.2 建立/etc/ppp/disconnect—chat文件 此文 上再实现TCP/IP协议。 件内容如下 ABoRT BUSY“ AB0RT ERR0R 参考文献 AB0RT ”N0 DlALToNE” 1、黄皆雨, 计算机通信网》,华南理工大学出 “\K 版社,200 l +++ATH” 2、Erkins D.Requirements for an Internet #文件结束 Standard Point--to--Point Protocol RFC 1547.Cameaia 2 3配置PAP认证 Mellon University.December l993.P9一lO. 密码文件/etc/ppp/p印一secrets内容如下 3、W.S i m p S 0 n,“P 0 i n t—t 0一P 0 i n t #Secrets for authentication using PAP ProtocolRFC1661”.Network Working Group.July 1994, #CIient server secret acceptable—IocaI IP addresses 5—14. 这四个字段是以空白分界而且最后一项可以是空白 4、AnyDataModem上网手册,AnyData Co.Ltd, (如果你使用动态IP)或由你的ISP所提供的静态l P。 Jan,2003,P36—41.. 假定你的ISP给你的使用者域名是test而密码是card 5、C Onnecting an M6 8HC08 Family 的话 那么你应该在pppd程序读取的脚本文件里设定 Microcontroller to an Internet Service Provider(ISP) user”test 这个选项, 并且把/etc/ppp/pap~secrets文 Using the Point to-Point Protocol(PPP) AN2 1 20. 件设成下面这样。 pdf MOTOROLA,Inc. 2001,Pl8—3O. #Secrets for authentication using PAP 6、B.Lloyd&W.Simpson. “PPP Authen- #CIient server secret acceptable local IP addresses tication Protocols”,RFC 1 334,Daydreamer,Octo test card ber l992.P2—8. 2.4拨号 拨号输入以下命令 #/usr/sbin/pppd fi le/etc/ppp/cdma 之后可以看到许多调试信息.等连接成功后,打 开另一个窗口.用ping命令进行测试。 2.5断开连接 断开连接只需要在刚才输入拨号命令的窗口按下 Ctrl—c即可以断开 三、结束语 可靠地实现嵌入式P P P协议有重要的实际意义。 基于嵌入式系统的一些设备(例如CDMA通信模块)要 顺利接入inte rnet.必须首先实现PPP协议,在此基础 46 l毯受 二 强殖 燕王取 式l~Linux系统PPP 协议的实现 

因篇幅问题不能全部显示,请点此查看更多更全内容