基于PowerPC的VPN网关设计
/ linux/drivers/mtd / map s/unis. c。
(2) 交叉编译环境。
使用hardhat CDK2. 0作为开发工具,需将下面的路径加入用户环境变量$PATH 中: /op t/hardhat/devkit/ppc /8xx/bin; #export PATH = $PATH: /op t/hardhat/devkit/ppc /8xx/bin或编辑“. bash_p rofile”文件的PATH行。对于应用软件,一般情况下只要替换编译器cc为ppc_8xx-gcc,重新编译一下源代码即可。
构建目标文件系统
配置DOC或FlashMemory中的文件系统是件很讲究的事情,主要是因为DOC /Flash容量有限,在保证正常功能的前提下,要尽可能地少占用资源。
总体上,文件分成如下几类: (1)共享库类:这类文件必不可少。(2) L inux/GNU系统实用工具:尽量用busybox、tinylogin代替,能减则减。(3)配置文件:多出现在/ etc下,不太占地方,但要注意协调关系。(4)用户应用程序:编译时尽量使用动态连接,编译后strip一下,放到固定位置。
目标文件系统列表如表1所示。
所有配置文件、可执行文件、库文件的位置均符合L inux操作系统的惯例。
IPSec实现中的硬件加密算法
在VPN安全网关中,加密算法的安全、高效,是VPN网关安全性和有效性的重要保证。为此,在设计中采用了一种硬件加密模块的方式,使得我们的VPN网关可以在硬件上使用不同的加密算法。在我们的默认配置中,使用国密办批准的分组加密算法芯片SSF10。
为了使用硬件加密模块,需要在L inux内核的IPSec实现中添加和修改相应的代码,下面对其简单说明。由于IPSec实现在内核中的特殊位置,并且MPC855T的主频较低 (80MHz) ,采用访问设备驱动文件的方式访问硬件SSF10加密模块会造成速率大幅降低。因此,我们采用I/O直接访问硬件SSF10芯片。这需要将模块驱动中的操作分散到IPSec实现的相关部分,替换原来的软件加密算法。同理,可以使用硬件DES/3DES、硬件AES算法和其他国密办批准的算法,用硬件实现数据加密。对IPSec的一个实现freeswan算法部分进行修改,使其可以实现硬件算法。与硬件加密算法有关的文件如下:
freeswan-1. 94 /klip s/net/ ip sec /Config. in;
freeswan-1. 94 / libdes/des_enc. c;
freeswan-1. 94 /klip s/net/ ip sec / ip sec_sa. h;
freeswan-1. 94 /klip s/net/ ip sec / ip sec_tunnel. c;
freeswan-1. 94 /klip s/net/ ip sec / ssf10. h;
freeswan-1. 94 /klip s/net/ ip sec / ip sec_init. c;
freeswan-1. 94 /klip s/net/ ip sec /pfkey_v2_parser. c;
freeswan-1. 94 /klip s/net/ ip sec_rcv. c。
完成修改后, 使用内核make menuconfig 命令, 选中Networking op tions→[* ] IPSEC: Use SSF10..,重新编译即可使用SSF10硬件算法模块。
结束语
为了满足VPN安全网关设计的目标,本文在基于Motorola PowerPC和嵌入式L inux的VPN网关设计中使用Motorola通信处理器PowerPC、采用L inux和加密算法,构建出了具有自主知识产权的VPN安全网关。理论分析表明,本文提出的VPN安全网关设计方案、嵌入式L inux操作系统的构建方法以及硬件加密模块的实现方法能够满足10Mbp s的网络环境中提供虚拟专用网的安全服务。但是,由于其定位在低端,不适合在100Mbp s的网络环境中使用。如果要在100Mbp s的环境中使用VPN网关,就要考虑使用基于PowerPCMPC82xx的硬件平台。
linux操作系统文章专题:linux操作系统详解(linux不再难懂)
- 基于PowerPC和嵌入式Linux的VPN网关设计(11-01)
- μC/OS的任务调度实现方法及其在PowerPC上的优化(10-29)
- 基于PowerPC和Linux的VPN网关设计(01-14)
- uCOS-II优先级任务调度在PowerPC上的移植和优化(08-15)
- 全新EDK8.1简化嵌入式设计(06-04)
- ARM DSP X86 POWERPC MIPS FPGA简介(11-11)