一。导言
1.防火墙
防火墙技能作为必备的安全手法越来越多地运用于各种互联网络。可是传统防火墙的处理速度已成为约束网络带宽的瓶颈,极大地限制了在网络中的实践运用。依据FPGA的硬件防火墙体系能具有杰出的功用并能够更好的满意高速带宽的需求。防火墙具有包过滤、NAT、VPN以及运用署理等功用。最基本的功用是包过滤,主要是依据界说好的过滤规矩查看每个数据包,依据匹配过滤规矩来确认对数据包怎么动作。与一般包过滤不同的还有动态包过滤,它是依据数据包前面的报文描绘的会话状况来查看包,然后确认怎么对包进行过滤。此外防火墙还具有健全的日志和审计功用。
2.CAM
内容寻址存储器(Content Addressable Memory-CAM)能够在一个硬件时钟周期内完结关键字的准确匹配查找。常用的随机存储器经过输入地址来回来该地址场所对应的数据信息,可是CAM的拜访办法不同,它只需求输入关键字的内容,CAM就会将此关键字与CAM中一切的表项一起进行匹配比较,最终回来匹配表项在CAM中所对应的地址。
二。网络报文硬件处理渠道及报文处理流程
●硬件报文处理渠道
咱们开发了一个依据FPGA(可编程逻辑门阵列)的硬件网络处理渠道。体系渠道由高速网络接口单元,SRAM内存单元,FIFO缓存单元,FPGA和MPC860通讯操控单元组成。咱们运用该渠道接纳网络报文并进行过滤剖析,依据过滤规矩判别报文特征并采纳相应的办法,然后有用的检测可疑报文并防备网络侵略。如下图所示,硬件体系由以下几个部分组成:
1.网络数据收集部分
网络数据收集部分主要是由PHY芯片和MAC芯片来完结对网络数据包的接纳和发送作业。并经过MAC芯片的IX BUS接口将网络数据包实时地送给体系中心模块——FPGA,由FPGA来完结对数据包的进一步处理作业。
2.FPGA开发板部分
选用的FPGA芯片是ALTERA公司的APEX20KE1000E。此类型的规划大,逻辑门抵达150万门,具有51840个逻辑单元(LEs),特别是其内部可界说的存储单元大,抵达了442368位,而且运用嵌入式体系块(ESB)完结内容可寻址存储器(CAM)功用。FPGA开发板是一功用相对独立的数据包处理板,完结来自MAC芯片的数据包的过滤、缓存、关键字信息提取、比对查找、正常报文的调度输出等功用,是整个体系的中心处理部分。
3.SRAM缓存部分
在体系运转进程中,咱们将把关键字规矩模型存放在一个存储器中,如将其缓存在FPGA片内,将占用FPGA很多资源,所以有必要运用独立的存储器。
4.MPC860开发板部分
高集成的通讯操控器MPC860是一种通用的单片微处理器,它适用各种操控器功用。明显的功用使它在通讯和网络体系方面运用广泛。嵌入式处理器MPC860在体系中起到FPGA与用户主机之间的桥梁与枢纽效果。此开发板能够作为咱们网络处理体系的主控板。MPC860除了接纳FIFO中的报文,还需完结与后台主机的数据传输。别的也要对FPGA进行一些指令操控操作。
●报文处理流程
报文过滤能够经过拜访CAM来完结。CAM由一组过滤规矩依照过滤的先后次序安排在一起的,过滤规矩依据能够供给结IP转发进程的包头信息,如IP源地址、IP意图地址、协议类型、TCP/UDP端口等。通常将拜访操控列表运用到一个网络接口上,关于每一个经过该接口进入或流出网络的包,过滤器自顶向下顺次与列表中的过滤规矩进行比较,直到有一个匹配产生或抵达列表的底部。假如有一个匹配,将履行一个答应或回绝的动作;假如没有一个匹配产生,将履行一个默许的扔掉报文操作。报文处理的流程下图所示。
三。在FPGA中完结CAM关键字匹配
1.下图描绘了ALTERA系列FPGA芯片中嵌入式CAM模块
APEX CAM 供给可变的CAM容量。一个APEX ESB嵌入式体系模块能够被构形成一个32-word×32-bit的CAM块, 而且多个ESB 能够被层叠构形成更大更深的CAM块。例如,假如在EP20K -1000E中一切的ESB用来作CAM,能够创立一160-K比特的CAM块。
2.关键字匹配模块规划
关键字匹配模块规划运用FPGA来完结。运用FPGA内部的CAM来处理可变长度的关键字。它由操控单元,CAM比对单元,关键字匹配处理单元和地址输出逻辑组成。CAM比对单元担任加载一切的需求匹配的关键字信号并进行关键字的匹配。操控单元接纳来自网络的报文而且输出每个匹配上关键字信号地址。后台处理机能够依据对收集到的信息进行剖析,并采纳相应战略。
该规划的中心模块是CAM比对单元和关键字匹配处理单元。CAM在9*n的存储阵列存储8bit字符。其间第九比特位是关键字完毕标识位,n代表关键字字符数即关键字的总长度。一个输入字符一起与阵列中的n栏进行比对。当这个字符中的8bit悉数匹配,该栏的字符匹配标志被激活并标识为1。
关键字匹配处理阵列由n×1个处理单元(PE)组成,PE由关键字匹配算法电路逻辑和一个寄存器组成。在程序中,咱们在关键字开端处设置了一个标识位,而且只需接下来的输入字符接连匹配,该标识将次序移至关键字的完毕处。举例说明:咱们运用Snort源代码的NIDS数据库[5]中的两个关键字L44和L44ADSL,并把它们放入到CAM中。如图所示:
L44中的第二个4和L44ADSL中的第二个L被符号为星号表明第九比特为1,因为它们是关键字的最终一个字符。咱们输入字符串“fl44d”进行关键字匹配进程,CAM 每时钟周期匹配一个字符。第一个时钟周期,字符f输入到CAM而且没有匹配输出。在第二个时钟,第二个字符l有三个匹配方位。PE阵列判别并设置PE(0)和PE(3)为1,表明或许的关键字匹配现已找到。PE(9)没有标志为1,因为它不是关键字的开端。在接下来的时钟周期,字符4,4和d 被放入CAM进行比对,一起PE匹配位跟着移动。当第二个4匹配时,PE(2)标识置1,而且关键字匹配信号一起置1,因为4是第一个关键字的最终一个字符。它也或许是第二个关键字的匹配,可是当下一个字符d抵达时不再有匹配,此刻PE标识置0。相关于输入流,因为一个新的输入字符每隔一个时钟周期进行处理,关键字匹配阵列能够线速处理输入字符串。处理时刻与关键字的数量相关。
咱们现已用verilog言语在quartus II开发环境下规划完结了这个NIDS结构,选用的是ALTERA公司的EP20K-1000E芯片。
四。总结及下一步研讨
依据软件的报文匹配不能够担任高速网络的需求,而依据硬件的办法是抱负的挑选,很多的研讨在这个范畴现已打开。咱们现已完结了依据FPGA的CAM关键字有用匹配。可是因为CAM的容量有限,咱们下一步的研讨方向是将较长的关键字进行有用的紧缩、切割,一起运用多个并行CAM办法加快报文处理速度方面进行进一步研讨。
责任编辑:gt