首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于ARM7的GPRS无线VPN路由器设计(2)

基于ARM7的GPRS无线VPN路由器设计(2)


  图2 软件结构层次图
  3. 1 uClinux 的移植
  uClinux 的源代码和开发工具可以免费从http: //www.uclinux.org上下载得到。www.uclinux.org上定期为新推出的Linux内核推出相应的源码包。最新的版本为uClinux-dist-20040408.tar.gz,也可以从该网站上免费下载得到。这个源码包里包含了uCL inux -2.6.2、uCL inux-2.4.24、2.0.39、uClibc和已经移植到uClinux下的用户应用程序。tar xzvf uClinux-dist-20040408.tar.bz将其解压缩到/home/uClinux-dist下。另外还需要从www.uclinux.org/pub/uClinux/arm-elf -tools/上下载ARM 交叉编译器: arm-elf-tools-20030314.sh,执行以建立uClinux-ARM的交叉编译环境。为了使uClinux能顺利地在无线路由器上跑起来,需要针对此硬件平台对uClinux再进行修改。在/home/uClinux-dist/linux-2.4.x/include/asm-armnommu/下的hardware.h文件包含了S3C4510B片内特殊功能寄存器以及其他相关硬件信息的定义。可以在此对其进行修改。另外还可以在make xconfig的时候将vendor选为Samsung,并选中Customize Kernel Settings一项,之后可以在出现的System Type中对相关参数进行修改,主要包括系统的主时钟频率、FLASH和SDRAM的起始地址及大小等。最终通过编译即可得到无线路由器运行所需要的image.rom和image.ram。
  3. 2 PPP应用程序
  PPP应用程序用来通过无线通信模块拨号登录移动网络,登录过程遵循PPP (Point-to-Point Protocol)通信协议。目前uClinux操作系统中已包含的多种应用程序中有一种实现PPP协议的程序pppd,只需要根据无线移动网络通信的特征,修改pppd源代码中的部分配置参数,就能够得到需要的PPP应用程序。以下是进行拨号登陆移动网络的脚本程序:
  #! /bin/sh
/usr/sbin/pppd
 nodetach
 connect"/etc/ppp/peers/gprs-connect-chat"
 disconnect"/etc/ppp /peers/gprs-disconnect-chat"
 /dev/ttyS0
 115200
 nocrtscts
 local
 defaultroute
 novj
 nobsdcomp
 novjccomp
 nopcomp
 noaccomp
 noauth
  其中用来实现拨号和挂断的脚本gprs-connect-chat和gprs-disconnect-chat分别如下:
gprs-connect-chat
#! /bin/sh
exec/usr/sbin/chat
 TIMEOUT 5
 ECHO ON
 ABORT ’ BUSY r’
 ABORT ’ ERROR ’
 ABORT ’ NO ANSWER ’
 ABORT ’ NO DIALTONE r’
 ABORT ’ R INGING r RINGING r’
 SAY "Press CTRL-C to close the connection at any stage!"
 SAY" defining PDP context. . . "
 " " ’+ + + ’
 " " ’ATH’
 OK ’AT +CGDCONT = 1,"IP" , "cmnet" ’
 OK ’ATDT3 993 3 3 1#’
 TIMEOUT 10
 SAY" waiting for connect. . . "
 CONNECT" "
 SAY" Connected. "
 SAY" If the following ppp negotiations fail, "
 SAY"try restarting the phone. "
gprs-disconnect
#!/bin/sh
/usr/sbin/chat
 TIMEOUT 5
 ECHO ON
 ABORT ’NO CARR IER’
 ABORT ’ERROR’
 ABORT ’NO DIALTONE’
 SAY " Sending break to the modem "
 " " ’dd + + + d d’
 " " ’ATH’
 " " OK
 SAY" PDP context detached "
  3. 3 IPSec应用程序
  IPSec应用程序用来在路由器上建立基于IPSec( IP Security)协议的虚拟专用网VPN (Virtual PrivateNetwork) , IPSec 是IETF( Internet Engineer TaskForce)制定的安全标准,它把几种安全技术结合在一起形成了一个较为完整的体系。它通过对数据进行加密、认证、完整性检查来保证数据传输的可靠性、私有性和保密性。IPSec提供IP层的安全性,由于所有支持TCP/IP协议的主机进行通信时都要经过IP层的处理,所以提供了IP层的安全性就相当于为整个网络提供了安全通信的保障。IPSec由认证头AH (Authentication Header) 、安全封装载荷ESP( Encap sulated Security Payload)和密钥管理协议组成。IPSec应用程序的设计就是将IPSec协议用计算机语言代码来实现。uClinux 操作系统中的FreeSWAN应用程序就是用来实现IPSec协议的一种公开源代码软件,通过对相关部分的修改和配置,就可以在无线路由器上运行。最新版本的uClinux中已经包含了FreeSWAN1.97。
  对FreeSWAN 的配置主要是对/ etc / ipsec.conf和/ etc/ipsec.secrets 这两个文件进行相应的编辑。/etc /ipsec.conf中包含了对应不同连接的相关配置信息,而/etc/ipsec.secrets中则包含了RSA密钥对以及预共享秘密等用来进行认证的密钥信息。在无线路由器上执行# ipsec showhostkey———left,以获得该主机的RSA 公钥,然后编辑/etc/ ipsec.conf,增加了一个名为“net - net”的新连接。
  conn net-net left = x. x. x. x ,填入无线路由器拨号所获得的对外IP地址leftsubnet = 192.168.1.0/24 ,无线路由器网关保护子网的IP地址范围leftrsasigkey = 0s1LgR7 /oUM. . . ,将刚才得到的left RSA公钥填入right = x. x. x. x ,填入VPN服务器的对外IP地址rightsubnet=192.168.5.0/24 ,另一方保护的子网IP地址范围rightrsasigkey = 0sAQOqH55O. . . ,将VPN服务器的right RSA公钥填入auto=add ,启动时并不自动建立连接双方重新启动ipsec后,该连接就被Pluto加载, 并做好建立连接的准备了。在无线路由器上执行# ipsec auto———up net-net即可看到一系列的连接建立过程。
  4 连接方法及应用
  无线路由器对终端设备提供两个接口,分别是以太网接口和RS-232 串行接口。无线路由器中的路由软件将来自设备的数据自动转发到GPRS网络,或者接收来自GPRS网络的数据并转发给设备。终端设备只要通过以太网口或RS-232串行口连接到无线路由器,并将默认网关设置成无线路由器的IP地址,就可以接入到GPRS网络。

  图3 网络规划和设计图
  使用通信专线将移动网络与行业的数据中心相连;在数据中心放置VPN服务器,与各网点的无线路由器进行VPN连接;修改现有网络中各设备的网络配置,利用移动网络进行数据通信。其适用场合包括: 银行:营业网点、ATM机、pos机; 医院:医保中心联网、流动救护车; 保险:保险公司网点联网; 超市、连锁店:M IS系统互连; 移动场所:电力抢修、治安警车等; 环保:现场监控、联网。
  5 总结
  本文较为详细地介绍了一种新型无线VPN路由器的设计方法。首先从硬件构造上进行剖析,提供了详细的硬件开发方案。然后重点阐述了软件设计方法,包括操作系统的移植,实现无线网络连接的PPP拨号程序以及实现VPN 的IPSEC应用程序。通过使用本文中所提出的方法,可以很好的满足很多行业的应用需求。
继承事业,薪火相传
返回列表