一种基于FPGA的硬件防火墙设计

来源 :新校园·上旬刊 | 被引量 : 0次 | 上传用户:xiexiangjun
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文提出了一种基于FPGA的硬件防火墙的实现方案,采用FPGA来实现百兆线速以上的防火墙设计。网络数据在建立连接跟踪后,由FPGA实现的快速处理板直接转发,实现了网络数据的线速处理,通用CPU在操作系统支持下,完成网络数据连接跟踪的创建、维护以及对网络规则表的维护等工作。
  关键词:防火墙;FPGA;Verilog HDL;CPU
  一、引言
  防火墙是一种基本的网络防护设备。它是一种设置在内部网和外部网之间的安全网关,通过安全策略和规则来控制外部用户对内部资源的访问,使外部网和内部网之间既保持连通性,又根据规则间接交换信息。防火墙所采用的硬件设备必须满足网络处理性能的需求。在早期网络中,数据速率相对较低,协议也比较简单,因此网络设备通常以通用处理器配合分組处理软件实现。然而,随着数据速率的不断提高和协议的日益复杂,通用处理器处理能力的增长逐渐落后于数据速率的增长,因此,基于通用处理器平台的网络产品开发者遇到了性能上的障碍。
  本文针对目前防火墙的设计方式提出了一种基于FPGA的硬件防火墙的实现方案,采用FPGA来实现百兆线速以上的防火墙设计。传统的基于x86等通用CPU的防火墙无法适应当前快速增长的网络速度,无法实现线速过滤与转发。本文采用FPGA结合通用CPU模式,可以快速处理网络数据,能够避免NP的不足。网络数据在建立连接跟踪后,由FPGA实现的快速处理板直接转发,实现了网络数据的线速处理。通用CPU在操作系统支持下,完成网络数据连接跟踪的创建、维护以及对网络规则表(端口黑名单、IP黑名单、端口白名单)的维护等工作。FPGA硬件板和CPU各司其职,实现快速转发的目的。实践证明,这是一种兼容性比较好的网络安全架构。
  二、系统整体设计方案
  硬件防火墙分为两个数据通道,FPGA硬件板承担网络数据的按规则高速收发与转发,并按指定规则要求通过PCI-E将数据上传至x86CPU;x86主控板承担慢速通道工作。
  防火墙软件系统根据TCP、UDP、ICMP协议实现不同的连接跟踪、跟踪表项的匹配、跟踪表的动态维护;x86上防火墙软件系统通过硬件驱动程序和FPGA硬件板进行通讯。
  
  图1中所示为FPGA系统设计过程中网络抓包实验中所形成的硬件架构图。FPGA网络抓包的数据可以通过串口发送至上位机,实验可以清晰判断当前网络收发架构设计是否合理,能否准确地收发100Mbps的网络数据。
  在实现了基本的数据收发后,确定防火墙系统整体架构和功能模块,如图2所示。
  可以看出在這里主要由网络接口、网络控制、MAC、外网处理模块、PC处理模块、PCI-E与DDR控制模块几大部分构成。
  三、系统HDL设计方案
  系统使用Verilog HDL语言完成设计。下面介绍一些主要模块设计。
  1.外网控制
  本模块的主要功能如图3所示:
  (1)存储接收到的外网报文;
  (2)对接收到的外网报文进行关键字提取和识别;
  (3)对提取的结果根据用户配置进行过滤;
  (4)读取存储的本帧数据,根据本帧过滤的结果对其进行打包处理。
  本模块时序图设计如图4所示。
  2.子模块报文缓存功能设计
  本模块的功能是:用于缓存接收到的报文,等待本报文的过滤结果,由报文封装模块读取此报文或者丢弃报文。本模块实质上是一个循环的buffer,其位宽是64,深度是1024,可以存储5个最大的1518Bytes报文。缓存模块内部维护读写地址和可写的空间,当可写的空间小于1518Bytes时,不再接收数据。
  本模块的结构如图5所示:
  处理流程为:
  (1)当报文到达时,首先检查可写空间是否大于1518Bytes,如果大于则向RAM中存入次报文,写地址,循环累加,写完后将本次写入的数据量送给可写空间维护,如果小于1518Bytes丢弃本报文,写地址不变;
  (2)写空间维护,维护一个Counter,累加写数据量,累减读数据量,用RAM的总空间减去这个Counter就是可写空间;
  (3)当收到报文封装模块的读使能时,读地址累加,读取RAM送出读数据。
  3.子模关键字提取功能设计
  本模块的任务是:在报文中提取过滤规则的关键字,关键字为标准IP协议数据包。
  通过Type识别是否为IP报文,如果是,继续提取Protocol、SIP、DIP;通过Protocol识别是否是TCP或者UDP报文,如果是,继续提取SPort与DPort。报文结构如图6所示,但是没有option域。另外需要获得本报文的长度(以Byte为单位)。
  处理流程图如图7所示。
  四、设计仿真测试
  上述设计代码在综合后下载至硬件FPGA硬件板后,配合x86端测试软件进行测试。限于实际条件,采用自循环数据测试数据收发,以及指定IP地址和端口地址的过滤测试,测试模式如图8所示。经实际测试,系统能够完成百兆数据的线速收发和指定规则的过滤。
  五、结束语
  本文基于FPGA的防火墙设计完成了基本的设计目标,能够正常转发和过滤指定规则的数据,能够准确进行仿真和验证,但仍属于教学演示性设计,后续可以继续进行优化,使系统更加完善。
  (通讯作者:刘超)
  参考文献:
  [1]夏宇闻.从算法设计到硬件逻辑的实现[M].北京:高等教育出版社,2001.
  [2]王金明,杨吉斌. 数字系统设计与Verilog HDL[M]. 北京:电子工业出版社,2002.
  [3]郑尧.硬件防火墙中多模式匹配算法的设计与实现[D].哈尔滨:哈尔滨工业大学,2009.
  [4]唐正军,李建华.入侵检测技术[M].北京:清华大学出版社,2004.
  [5]Wes Noonan, Ido Dubrawsky(美).防火墙基础[M].北京:人民邮电出版社,2007.
  [6]胡道元.网络安全[M].北京:清华大学出版社,2004.
  [7]石晶林,程胜,孙江明.网络处理器原理、设计与应用[M].北京:清华大学出版社,2003.
  [8]肖晨阳.基于FPGA的硬件防火墙设计和实现[D].长沙:湖南师范大学,2009.
  作者简介:唐泽坤(1994- ),男,山西长治人,大学本科在读,电子科学与技术专业;刘超(1981- ),男,辽宁凌源人,硕士,讲师,研究方向:嵌入式系统。
其他文献
探讨短暂性脑缺血发作与脂蛋白(a)及D-二聚体的关系.测定48例短暂性脑缺血发作患者发病24 h内血清脂蛋白(a)和血浆D-二聚体水平,并与25例健康正常人对照.结果发现,短暂性脑缺
为观察β-受体阻滞剂对陈旧性心肌梗死的影响,本文观察了36例高血压性心脏病患者和42例陈旧性心肌梗死患者治疗前后Q-T离散度、左心室舒张末期内径、射血分数、室性早搏及非持续性室性
炎症贯穿于动脉粥样硬化发生发展的全过程,而核因子-κB又是调节免疫炎症相关基因的重要转录因子。众多研究提示,动脉粥样硬化斑块的主要组成细胞为单核细胞、血管内皮细胞及
钙离子拮抗剂是强效、安全、适用范围广的降压药物。新型长效钙离子拮抗剂贝尼地平在国内应用时间不长。我们应用贝尼地平对轻中度原发性高血压患者进行了治疗并观察其疗效,为
为了研究血管平滑肌细胞是否表达极低密度脂蛋白受体mRNA,采用Northern blot分析法检测培养兔主动脉平滑肌细胞表达极低密度脂蛋白受体mRNA的情况。结果发现,培养兔主动脉平滑肌细胞可以表达极低密
在现代市场经济中,社会的发展虽然不同于人的发展,却以人的发展为前提.这主要表现为:公共利益的实现以肯定个人利益为前提,社会结构的良性运行以肯定个体独立自由为前提,国家
心脏术后大咯血不常见,一旦发生,常常起病急,病情凶险,死亡率高达60%以上。抢救性止血最为重要,我科采用选择性支气管动脉栓塞术(selective bronchial artery embolization,SBAE)治疗
为观察继发孔房间隔缺损(ASD)心电图表现和舒张期负荷解除1周内的心电图变化,作者连续观察单纯ASD实施Amplatzer双面伞闭合前后的心电图.
目的:探讨高血压病患者左室结构,功能变化与血浆内皮素(ET)的关系。方法:原发性高血压不伴左室肥厚(LVH)组(EH)35例,伴LVH组(EH+LVH)28例,正常对照组30例,放射免疫法测定血浆ET水平,超声心动图检测心脏结构与功能,计算
胆固醇酯转运蛋白促进脂蛋白中各种中性脂质转运和交换,在胆固醇逆转运中起关键作用。胆固醇酯转运蛋白基因突变和基因缺陷导致血浆胆固醇酯转运蛋白含量或活性降低,引起脂蛋白