互联网的商业化发展也为人们提供着各种各样的服务,随着宽带业务进入人们的日常生活,人们对网络的要求也越来越高,要求它能为人们提供更加安全、可靠、快速和多样化的服务。数据包分类技术也是现在网络多样化服务的基础,并且成为防火墙、路由器等一些网络核心设备中最为关键的技术,它对网络的控制、性能和安全会产生直接的影响。因此,会对高性能数据包分类算法的研究仍然是一个非常重要的课题,这篇信息技术职称范文发表对Linux防火墙的应用展开讨论。
一、Linux防火墙的内核机制
Linux内核从2.4版本开始设计实现了Netfilter框架,该框架使得网络协议代码和防火墙之间有了比较清晰的界限。Linux2.4内核防火墙的底层结构是Netfilter结构,位于Linux网络层和防火墙内核功能模块之间。
每一种协议都可以设定自己的防火墙。在Linux内核中是由firewall-Ps结构体定义的。firewall-ops可以为各种协议的防火墙提供统一的接口,每个协议可以对应多级防火墙,每个防火墙有各自的优先级,按照从高到低的优先级顺序可以将firewall-ps连接到Linux内核与防火墙接口的链表。当数据包经过IP层进行处理时,对相应的钩子函数链表中是否存在注册的HOOK函数进行检查,如果存在,各级防火墙会顺着其链表一一进行处理。
二、 RFC算法的查找过程
RFC算法被分为P个阶段 (Phase),每一个阶段是由可并行查找的散列表组成。每次查找结果的返回值都比内存数据索引值要小。操作如下:在第一个阶段 (Phase 0),将包头中F个字段分成许多个块,每个块被用来作为并行查找的索引。例如有七个相等的块(chunk),一个数据包的字段在内存中是怎样被划分的。每次查表的输出值被称为eqcID。其中存储 eqcID所需的比特数比索引值的比特数要小,即需要较少的bit。下一个阶段,每次用于查找散列映射表的索引值是由前几个阶段的查找结果按某种方式合并而成,并放入内存中。在最后阶段,所得到的结果就是与数据包相匹配的最佳规则标识符classID。
RFC算法是个通用性强、速度快的多维数据包分类算法,对规则的宽度和维数有较好的扩展性;在进行分类查找时,查找性能不受规则数量和规则特征的影响。
处于同一阶段 (Phase)的预处理表或索引交叉乘积表可以被并行地索引,并且这些表又是各自独立的。处于不同阶段的预处理表或索引交叉乘积表也能够互不干扰地并行进行索引。
算法的存储空间消耗会随规则集中规则数量的增加而增大,限制了算法的应用范围。由于索引交叉乘积表的长度等于各预处理表中等价类(eqID)数量的乘积,所以预处理表和索引交叉乘积表中eqID的数量与规则库的规则成正比,其中IPT表中总是存在着相同的eqID连续重复存储的问题。我们从表IPTI中可以看出,前8项中都存放了相同的eqID值。如果相同的元素过多会造成内存中存在大量的冗余信息。虽然在预处理表中也有这样的问题,但它所占空间非常小,如果想解决RFC算占用内存过大的问题,可以从减少索引交叉乘积表中连续相同元素的重复存储这方面进行研究。
三、 L1nox防火墙测试步骤
在生成防火墙的规则集和测试数据包之后,对RFC算法和CRFC算法在Linux防火墙进行功能测试,具体测试步骤如下:
(l)利用上面提到的规则集生成模块生成的过滤规则集,并将其导入到Linux防火墙中。
(2)利用数据包生成模块向Linux防火墙发送测试数据包,Linux防火墙收到数据包后对数据包进行处理,并且获取处理结果。
(3)对Linux防火墙测试数据包的处理结果被存储在了计时模块和存储计数模块中,方便后面对处理结果进行详细的分析。
(4)用RFC算法、CRFC算法替换防火墙中原有的线性搜索算法,重复上面的三步,用相同的方式进行测试,并记录测试结果。
(5)最后对计时模块和存储计数模块中记录的数据进行比较分析,证实改进后防火墙的正确性。
[参考文献]
[1]M.Smith,R.Hunt.Network security using NAT and NAPT.Networks 2002.10th IEEE International Conference on Augest 2002:355-360
[2] David Lee, Dong luo Chen, Rui bing Hao, Raymond E.Miller Jianping Wu,Xia Yin.Network Protocol System Monitoring- A Formal Approach with passive Testing.IEEE/ACM Transaetions on Networking,Vol.14, NO.2 April 2006.
《指挥信息系统与技术》(双月刊)是中国电子科技集团公司第二十八研究所主办的学术性与技术性综合科技刊物。主要刊登有关电子信息系统与技术的顶层设计、硬件研制、应用软件开发和系统集成等方面的理论、技术和应用实践类的论文。范围涉及指挥自动化系统、军航和民航空中交通管理系统、外军C4ISR系统以及人(民)防应急救援系统、城市及道路交通控制系统等。