基于FPGA的动态可重配置的IP报文过滤系统
一、前言
网际协议(Internet Protocol) 是互联网进行网际互连的基础。随着互联网服务的快速发展,对网络的安全性提出了更高的要求,如何快速有效的过滤网络中的IP数据报文是一个始终需要解决的问题。
过滤IP数据报文是为了防止未授权用户访问内部网资源,同时限制网内用户非法使用外部服务。进行过滤之后,局域网内用户只能使用特定的服务(例如e-mail),网外的用户也只能访问经过授权的网内资源。由于网络带宽的飞速增长,传统的基于软件的查找算法已经不能适应网络速度的飞速发展,迫切需要采用新的硬件过滤方法,方案之一就是采用内容可寻址存储器TCAM(Ternary Content Addressable Memory)。
TCAM利用三个数值存储数据‘0’ 、‘1’ 、‘X’(不关心),每一个表项都包含数值比特串和掩码比特串。TCAM能够在一个硬件时钟周期内完成关键字的精确匹配查找,只需要输入关键字的内容,TCAM就会将此关键字与CAM中所有的表项同时进行匹配比较,最后返回匹配表项在TCAM中所对应的地址,如果存在多个匹配表项则返回地址最低的表项。目前主流的IDS(Intrusion Detection Systems),例如Snort,可以编写相应规则来完成实时协议分析、内容查找/匹配、对网络上的IP包登录进行测试等功能。我们可以把类似于Snort的规则应用到TCAM中,通过制定符合特定规则的表项,来实现IP数据报的匹配。当数据报在TCAM中能够找到相应的匹配项时,我们即认为它是合法的,否则予以拦截并送入后台作为异常报文处理。
为了实现快速查找,设计者必须在PCB板上添加一个独立的TCAM器件,这会增加片间延时,同时减少PCB板上的可用空间,从而降低电路板的系统性能。因此我们采用FPGA来实现TCAM,FPGA芯片采用ALTERA公司的APEX20K1500E。
二、用FPGA实现TCAM
APEX20KE系列芯片采用嵌入式系统模块(Embedded System Blocks)实现了片内CAM,能够提供比传统CAM器件更高的系统性能,同时支持Ternary CAM。其中,每个ESB能够实现32×32的CAM模块,级联多个ESB可以实现更宽更深的CAM。
ALTERA公司的Megafunction库提供了altcam Megafunction,运用Quartus软件设计工具可以十分方便对TCAM进行读写操作。图1为altcam的结构图。
CAM可以在初始化配置时预加载默认表项,也可以在系统运行时对表项进行实时更新。在大多数情况下,写入一个数据表项需要两个时钟周期,当写入“X”(不关心)比特位时,需要三个时钟周期。
Altera CAM有三种不同的读模式:单匹配模式、多匹配模式和快速多匹配模式,其中单匹配模式适用于CAM里没有多个匹配项的情况。无论工作在哪种模式下,ESB都会输出匹配数据项的编码地址或未编码地址。当用未编码地址输出时,每条信号线对应CAM模块里的一个表项,当输出信号线为高时,表明对应的表项和输入数据匹配(例如,假如地址为15的表项数据匹配,则mbit[14]输出高电平)。通常情况下,在一个时钟周期内每个ESB最多完成16个表项的比对,因此在多匹配模式下,需要两个时钟周期才能完成CAM模块里所有表项的比对。而快速多匹配模式仅使用每个ESB的一半空间(即16个表项),因此一个时钟周期就可以输出匹配表项的地址,大大提高了查找速度,但同时也耗费了大量的存储空间,限制了CAM
相关文章
- 2024-11-01基于嵌入式系统的家用健康监护设备的设计
- 2023-01-06电力电缆发热的在线监测
- 2023-11-17汽车后桥总成装配间隙测量仪
- 2024-11-01千克重新定义研究的最新进展
- 2023-04-20大屏幕数字式电子钟的设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。