文較為詳細地介紹了一種新型無線VPN路由器的設計方法。首先從硬件構造上進行剖析,提供了詳細的硬件開發(fā)方案。然后重點闡述了軟件設計方法,包括操作系統的移植,實現無線網絡連接的PPP撥號程序以及實現VPN 的IPSEC應用程序。通過使用本文中所提出的方法,可以很好的滿足很多行業(yè)的應用需求。
近年來蜂窩式移動通信系統在中國的發(fā)展非常迅速,不僅給用戶帶來了方便快捷的語音通信服務,而且還能提供靈活的數據通信服務。
本文提出了一種新型的基于ARM7的嵌入式設備———GPRS無線VPN路由器的設計方法,使得原先使用有線通信系統的各種業(yè)務終端設備能夠非常方便地接入到GPRS網絡中,利用無線移動網絡提供的數據服務來進行數據通信。
1 概述
1.1 ARM簡介
ARM (Advanced RISC Machines) ,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。1991年ARM公司成立于英國劍橋, ARM公司是專門從事基于RISC技術芯片設計開發(fā)的公司,作為知識產權供應商,本身不直接從事芯片生產,靠轉讓設計許可由合作公司生產各具特色的芯片,世界各大半導體生產商從ARM公司購買其設計的ARM微處理器核,根據各自不同的應用領域,加入適當的外圍電路,從而形成自己的ARM微處理器芯片進入市場。ARM微處理器目前包括下面幾個系列, ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、Intel 的Xscale以及StrongARM。它們共同構成了當今嵌入式領域的主流微處理器。
1.2 GPRS簡介
GPRS(General Packet Radio Service)是通用分組無線業(yè)務的簡稱,是在GSM基礎上發(fā)展起來的一種分組交換的數據承載和傳輸方式。與原有的GSM比較, GPRS在數據業(yè)務的承載和支持上具有非常明顯的優(yōu)勢:通過多個GSM時隙的復用,支持的數據傳輸速率更高,理論峰值達115kbps;不同的網絡用戶共享同一組GPRS信道,但只有當某一個用戶需要發(fā)送或接收數據時才會占用信道資源。這樣,通過多用戶的業(yè)務復用,更有效地利用無線網絡信道資源,特別適合突發(fā)性、頻繁的小流量數據傳輸,很好地適應數據業(yè)務的突發(fā)性特點; GPRS計費方式更加靈活,可以支持按數據流量來進行計費;與無線應用協議(WAP)技術不同, GPRS能夠隨時為用戶提供透明的IP通道,可直接訪問Internet中的所有站點和資源;采用信道復用技術,每一個GPRS用戶都能夠實現永遠在線。
2 硬件部分
2.1 設計思路
無線路由器電路板通過無線通信模塊連接GPRS移動網絡,通過以太口連接內部終端設備或者內部局域網。無線路由器具備網絡路由功能,能夠在兩個網絡之間轉發(fā)數據。各種終端設備發(fā)出的數據通過以太口被處理器接收,處理器對數據進行相應處理后(例如加/解密)再通過串行口發(fā)送給無線通信模塊,由它轉發(fā)到GPRS網絡中。同理,反向的數據經過相反的路徑最終送回終端設備。
2.2 硬件設計
嵌入式處理器采用三星公司的S3C4510B,它是基于以太網應用系統的高性價比的16/32位RISC微控制器,內含一個由ARM公司設計的16/32位ARM7TDMI RISC處理器核。通過GPRS網進行數據傳輸需要使用GPRS模塊。目前, GPRS模塊一般是指帶有GPRS功能的GSM模塊,模塊通過外接天線與蜂窩小區(qū)基站通信, 收發(fā)無線數據。本設計中GPRS 模塊采用Wavecom公司的W ISMO Quik Q2400系列.其他各部分基本功能描述如下:
串行接口電路用于S3C4510B與GPRS模塊以及其他應用系統進行短距離雙向串行通訊; 復位電路可完成系統上電復位和在系統工作時用戶按鍵復位;電源電路為整個系統提供工作所需的電壓,包括5V, 3.6V以及3.3V;10MHz有源晶振為系統提供工作時鐘; FLASH存儲器可存放已調試好的應用程序、嵌入式操作系統或其他在系統掉電后需要保存的用戶數據等;
SDRAM存儲器作為系統運行時的主要區(qū)域,系統及用戶數據、堆棧均位于SDRAM存儲器中;10M/100M以太網接口為系統提供以太網接入的物理通道;I2C存儲器可存儲少量需要長期保存的用戶數據.
2.3 硬件連接
完整的硬件連接圖如圖1所示。
圖1 硬件連接圖
3 軟件部分
在此無線路由器中使用的操作系統是uClinux,它是專門應用于沒有MMU的微控制器上的操作系統。uClinux操作系統中已經內嵌了TCP/IP網絡協議的實現代碼,在內核中設置“IP轉發(fā)”就能實現靜態(tài)路由功能。為了實現撥號登錄移動網絡以及VPN的功能,則需要用到2個網絡應用程序: PPP應用程序和IPSec應用程序。圖2是整個系統的軟件結構層次圖。
圖2軟件結構層次圖
3. 1 uClinux 的移植
uClinux 的源代碼和開發(fā)工具可以免費從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,執(zhí)行以建立uClinux-ARM的交叉編譯環(huán)境。為了使uClinux能順利地在無線路由器上跑起來,需要針對此硬件平臺對uClinux再進行修改。在/home/uClinux-dist/linux-2.4.x/include/asm-armnommu/下的hardware.h文件包含了S3C4510B片內特殊功能寄存器以及其他相關硬件信息的定義??梢栽诖藢ζ溥M行修改。另外還可以在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 ’nBUSY r’
ABORT ’nERROR r’
ABORT ’nNO ANSWER r’
ABORT ’nNO DIALTONE r’
ABORT ’nR INGING rnrnRINGING r’
SAY "Press CTRL-C to close the connection at any stage!"
SAY"ndefining PDP context. . . n"
" " ’+ + + ’
" " ’ATH’
OK ’AT +CGDCONT = 1,"IP" , "cmnet" ’
OK ’ATDT3 993 3 3 1#’
TIMEOUT 10
SAY" nwaiting for connect. . . n"
CONNECT" "
SAY"nConnected. "
SAY"n If the following ppp negotiations fail, n"
SAY"try restarting the phone.n"
gprs-disconnect
#!/bin/sh
/usr/sbin/chat
TIMEOUT 5
ECHO ON
ABORT ’NO CARR IER’
ABORT ’ERROR’
ABORT ’NO DIALTONE’
SAY "nSending break to the modem n"
" " ’dd + + + d d’
" " ’ATH’
" " OK
SAY"nPDP context detached n"
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密鑰對以及預共享秘密等用來進行認證的密鑰信息。在無線路由器上執(zhí)行# 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加載, 并做好建立連接的準備了。在無線路由器上執(zhí)行# ipsec auto———up net-net即可看到一系列的連接建立過程。
4 連接方法及應用
無線路由器對終端設備提供兩個接口,分別是以太網接口和RS-232 串行接口。無線路由器中的路由軟件將來自設備的數據自動轉發(fā)到GPRS網絡,或者接收來自GPRS網絡的數據并轉發(fā)給設備。終端設備只要通過以太網口或RS-232串行口連接到無線路由器,并將默認網關設置成無線路由器的IP地址,就可以接入到GPRS網絡。
圖3網絡規(guī)劃和設計圖
使用通信專線將移動網絡與行業(yè)的數據中心相連;在數據中心放置VPN服務器,與各網點的無線路由器進行VPN連接;修改現有網絡中各設備的網絡配置,利用移動網絡進行數據通信。其適用場合包括: 銀行:營業(yè)網點、ATM機、pos機; 醫(yī)院:醫(yī)保中心聯網、流動救護車; 保險:保險公司網點聯網; 超市、連鎖店:M IS系統互連; 移動場所:電力搶修、治安警車等; 環(huán)保:現場監(jiān)控、聯網。
5 總結
本文較為詳細地介紹了一種新型無線VPN路由器的設計方法。首先從硬件構造上進行剖析,提供了詳細的硬件開發(fā)方案。然后重點闡述了軟件設計方法,包括操作系統的移植,實現無線網絡連接的PPP撥號程序以及實現VPN 的IPSEC應用程序。通過使用本文中所提出的方法,可以很好的滿足很多行業(yè)的應用需求。
編輯:hfy
-
GPRS
+關注
關注
21文章
984瀏覽量
129529 -
ARM7
+關注
關注
3文章
207瀏覽量
50383 -
無線路由器
+關注
關注
9文章
346瀏覽量
31605 -
VPN
+關注
關注
4文章
294瀏覽量
29785 -
路由器
+關注
關注
22文章
3740瀏覽量
114142
發(fā)布評論請先 登錄
相關推薦
評論