基于MPC8245的嵌入式VPN的研究与开发
图3 FLASH和SDRAM空间分布示意图 |
3.4 文件系统的分析与实现
出于稳定性和成本考虑,嵌入式系统一般都不使用硬盘,而用FLASH代替,RAMDISK文件系统的压缩映象保存在FLASH上,系统复位时由引导装载程序解压、加载到SDRAM。本系统采用8M的RAMDISK(压缩前),其中目录主要包含/bin、/sbin、/etc、/lib、/dev、 /proc等,应用程序主要包含:精简的Shell命令集BusyBox、VPN的应用层配置工具IPsec-Tools、Linux-2.6内核的模块操作工具module-init-tools。在宿主机上使用交叉开发工具编译,为提高运行效率、节省存储空间,PPC目标代码链接时选用静态链接,并用 powerpc-linux-gnualtivec-strip精简。
FLASH上的文件系统一般采用JFFS2。JFFS2是针对以闪存为存储介质的嵌入式文件系统,充分考虑了闪存的物理局限性,具有防崩溃、负载平衡、垃圾收集等功能,且源代码公开,易于学习和使用。在FLASH的第4M~32M空间上创建JFFS2文件系统(前4M用于保存PPCboot、内核和 RAMDISK压缩映象),并在系统启动脚本中将其挂载到/jffs2目录。
4 基于MPC8245的嵌入式Linux VPN的实现和性能测试
PPCboot、内核与RAMDISK文件系统映象生成后应烧写入FLASH。PPCboot的烧写必须借助JTAG工具,烧写到地址 0XFF900000处。PPCboot正常启动后用tftp命令将远程开发机上的内核映象下载到目标板地址800000处,用fp命令烧写;同样,将远程开发机上的RAMDISK映象下载到目标板A00000处,用ff命令烧写。以上工作完成后嵌入式Linux目标系统便能正常启动,并返回 BusyBox的Shell提示符界面。
为使嵌入式系统复位后自动启动VPN服务,必须进行必要的配置,包括:MAC地址设置、IP地址设置、安全策略和安全参数设置。开发平台的Davicom网卡驱动程序在系统初始化时无法从网卡固件读取MAC地址[2],需要在启动脚本文件中用ifconfig命令设定。由前所述,FLASH前4M保存只读的PPCboot、内核与RAMDISK压缩映像,4M后为可读写的JFFS2文件系统,因此MAC地址可固化在RAMDISK映像中,而IP地址和安全策略等可变配置参数写入JFFS2文件系统下的配置文件中。这些配置都写入Linux的启动后自动运行脚本,使系统启动时自动读取并执行。
为检测开发板上安全网关的性能,对开发板进行了性能测试,测试拓扑如图4。
图4 嵌入式目标机安全网关性能测试拓扑图
开发板作为安全网关1,板上ETH0、ETH1作为内、外网接口,普通PC机(PIII450MHZ,256M SDRM,安装Fedora Core 3 Linux操作系统,开发板的主频为333MHZ)作为安全网关2,主机A、B分别为受保护子网内的主机。测试方法为在主机A上利用“ping –s [size] 主机B”,取100次响应时间的平均值,单位为毫秒。分别测试了ICMP数据包大小分别为56、400、1000、1500字节的情况。为便于对比,同时测试了两个安全网关均为普通PC机(配置同上)的性能。VPN的保护方式采用ESP隧道模式,加密方式采用预共享密钥,加密算法为168位密钥的 3DES-CBC[5]。测得数据如表1所示。
从表中数据可以看出,目标板在启动IPsec后由于进行了隧道加密处理,传输速率比目标板明文传输时平均下降35%,说明IPsec处理增加了约 1/3的开销;另一方面,在同样启动IPsec的情况下使用目标板的响应时间小于使用PC机对照组的响应时间,效率分别提高11.6%、19.8%、 23.1%和22.9%,由此可知尽管开发板MPC8245的333MHZ主频较普通PC机的PIII 450MHZ主频低,但基于开发板的VPN目标板整体性能相对较高,证明了基于本开发板的VPN安全网关设计方案可行,且运行效率高。
表1 |
- 嵌入式Linux技术在工业控制网络中的应用(10-30)
- 基于嵌入式Linux的组态软件实时数据库的设计(02-01)
- 基于ARM+DSP的嵌入式Linux数控系统设计(11-18)
- 基于嵌入式Linux的细胞特征提取算法设计(11-19)
- 基于S3C2410的嵌入式Linux系统构建(03-02)
- 嵌入式Linux网络编程之:网络基础编程(08-13)