本论文针对在使用IPSec网关时由于用户量不断增加、网络流量需求大的情况下所造成的时延、阻塞、吞吐量小等问题,分析了内核态IPSec解决方案处理流程中存在的不足,提出了基于DPDK在用户态实现IPSec网关的方法。针对传统方案处理开销大的问题提出利用思科的VPP作框架,DPDK作收包工具搭建平台实现数据包在用户态的处理。测试结果表明,基于DPDK的用户态IPSec解决方案与传统方案相比,
随着互联网技术的快速发展,智能终端用户量的爆炸式增加,对移动通信业务的覆盖效果要求越来越高。据调查显示,移动通信业务主要集中在车站、住宅区、办公区等室内场所[1]。但目前室内信号存在容纳终端量小、信号不稳定,数据和话音质量差等现象。针对上述现象,室内信号增强的解决方案主要有femto 基站、路由器、AP 等。Femto 系统是通过固网宽带接入核心网,为用户提供固定移动融合业务,在高性价比实现移动通信室内覆盖、固定移动综合业务平台化提高等方面具有显著优势,已成为主流运营商重点关注的技术方向。Femto 系统是由Femto AP、安全网关、Femto 网关等组成的,目前Femto应用中一般安全网关都是作为独立网元存在的。本文分析的就是安全网关作为独立网元存在的不足,并针对这些不足对独立安全网关进行改进,利用基于DPDK 实现的用户态IPSec 网关来改善数据通信处理流程复杂带来的一系列问题,优化安全网关的性能。
2. 架构概述 2.1. Femto 架构概述 Femto 系统架构组成如图1 所示,包括终端、femto 基站、femto 网关、核心网[2]。Femto 基站通过Internet 连接到femto 网关,在Internet 上传输的数据安全性很容易通过相应的技术手段造成威胁,所以提高femto 系统的安全性是非常必要的,IPSec 网关技术应运而生[3]。
2.2. IPSec 框架概述 IPSec 安全网关的运行环境是Linux 系统。如图2 所示为IPSec 安全网关的结构框图。其中数据加解密模块、AH (Authentication Header,验证头)/ESP (Encapsulated Security Payload,封装安全载荷)实现模块、SADB (Security Association Database,安全关联数据库)/SPDB (Safety Policy Database,安全策略数据库)等模块都是在内核层实现的,IKE (Internet Key Exchange,因特网密钥交换协议)模块在用户层实现[4]。
现有的IPSec 安全网关技术是使用IPSec 隧道对数据进行加解密处理,这种方式会增加额外的带宽, 对数据的传输速率产生很大的影响,因此需要寻求方法来提升安全网关的性能。提升IPSec 安全网关性能的方法有三种:第一,优化IPSec 加解密算法;第二,利用加速硬件来处理加解密流程;第三,内核协议栈中IPSec 数据的处理流程的内存拷贝、系统调用、中断的开销比较大,而用户态只有一些上层应用程序,我们可以把协议栈放在用户态减少上述开销,在用户态实现IPSec 功能。基于上述三种方法的对比和衡量,本文采用在用户态实现IPSec 功能来优化安全网关的性能。