期刊鉴别 论文检测 免费论文 特惠期刊 学术答疑 发表流程

面向IP地址集过滤的高效包分类技术(2)

时间:2015-10-28 11:39 文章来源:http://www.lunwenbuluo.com 作者:乔龙飞",刘剑英2,郑 点击次数:


规则一规则二合并之后
图5合并算法图解
Algorithm SortAndMergeRules( user_data, RuleList)
1:    for each rule e ParseLine( user_data) do
2:    if IsValidRule( rule) and not Exsist(rule, RuleList) do
3:    ListInsertAfter( rule, RuleList)
4:    end if
5 :    end for
6:    / / sort
7:    HeapSort( RuleList, RuleList -> len, RuleCompare,
RuleSwap)
8:    / / merge
9:    len = RuleList - > len
10:    for wi o<- 0 , ri o<- 1; ri < ; ri ++ then
11:    if RuleList [ri]. start <= RuleList [wi]. end + 1 then
12:    if RuleList    [ri]. end > RuleList [wi]. end then
13:    RuleList [wi]. end = RuleList [ri]. end
14    :    end if
15    :    else
16:    wi + +
17 :    if wi < ri then
18:    od -> tmp_base[wi] = od -> tmp_base[ri]
19 :    end if
20:    end if
21 :    end for
22:    RuleList - > len = wi + 1
23:    FreeExtraMem( RuleList)
sort算法采用堆排序,其时间复杂度为O(n log n),相对 于基于递归的快速排序其消耗更少的内存,因此更加适合在 内核中使用。

  3.1.4Netfilter扩展match模块
  模块初始化时同时注册了match模块,核心内容为包匹配函数match()。针对已排序的规则表,采用binarysearch(二分法检索),其时间复杂度为O(logn),可大大提高搜索的效率。
  3.2用户态程序设计
  在内核中加入match模块后,为了在用户空间使用Iptables对其进行配置,需要编写一个用户态的共享库来提供相关的命令行选项。共享库的」mt()函数在装载时被自动调用,它调用xtables_register_match()函数注册了相关的命令行接口,用户态共享库提供了如下命令行选项:
  "salist<table>$选择匹配的规则表
  #[!]--match-sip$[不]匹配源IP
  #[!]--match-dip$[不]匹配目的IP
  iptables-tnat-Atest-msalist--salistchina--match-dip-jRETURN
  该规则为,所有目的地址为中国的报文,直接返回,不再经过下面的规则过滤。可用于对国内外流量进行分流。
  4性能分析及测试
  4.1内存占用分析
  从亚太互联网络信息中心(Asia~PacificNetworkInformationCentre,APNIC)的网站上分别获取到的中国大陆以及多家运营商的IP地址列表,经过Salist模块归并处理,结果
见表1。
表1中国及各运营商IP地址段
IP地址段归属    原始IP地址段    归并后IP地址段    条目减少/%
中国    3 808    2 200    42.22
电信    975    738    24.31
联通    849    613    27.80
cmcc    40    36    10. 00
教育网    89    70    21.35

  分析以上数据可知,采用Salist之后,IP地址段数量大大减少,假定每条规则所占用的空间相同,Salist中每条规则占用的空间小于普通的Iptables规则),其占用内存数量至少可节约10%以上,条目数量越多,节约空间也越多。4.2匹配速率分析传统的线性匹配算法时间复杂为O(n),匹配n条规则平均所需要的匹配次数为(n+1)/2,Salist中规则表经过排序,采用Bsearch二分查找算法,算法的时间复杂度为O(logn),匹配n条规则所需的平均次数约为lg(n+1)-1。
  对表1数据进行分析,在不考虑归并后条目减少的情况下,匹配次数如表2。

表2匹配次数比较
IP 地址段 归属    顺序查找平均 匹配次数    二分查找 平均查找次数
中国    1904    11
电信    488    8
联通    425    9
cmcc    20    5
教育网    45    6
由以上数据可以看出,规则集条目越多的情况下,采用 Salist匹配所需时间相对大大减少。

  5结语
  包分类算法已得到了广泛研究和应用,但并没有一个能同时支持大规模规则集、多域、通用、动态更新的高速算法,各种方案都有其优缺点。本方案针对IP地址段进行匹配处理的情况,设计了一个包含规则表管理,Netfilter扩展match模块以及相关的配置库在内的一系列工具,实现了一个高效、灵活的包分类模块。该方案匹配速度快,空间效率高,规则更新复杂度适中,按文件分离的规则表管理机制也降低了对规则集进行维护的难度,通过读写文件更新规则的机制使其便于同其他模块配合使用。
  本系统已经成功应用于多种业务场景,比如针对不通网络运营商的负载均衡,国内外IP的快速定位处理,同时因为其方便灵活的规则添加机制,配合域名解析工具,实现了高效的基于域名的包分流模块,而且非常容易同其他系统配合,满足各种复杂的需求。
  参考文献:
  [1]BELLOVINSM,CHESWICKWR.Networkfirewalls[J].IEEECommunicationsMagazine,1994,32(9):50-57.
  [2]GUPTAP,McKEOWNN.Algorithmsforpacketclassification[J].IEEENetwork:TheMagazineofGlobalInternetworking,2001,15(2):24-32.
  [3]GUPTAP,McKEOWNN.Dynamicrule-orderingoptimizationfor
  high-speedfirewallfiltering[C]//ASIACCS106:Proceedingsofthe2006ACMSymposiumonInformation,ComputerandCommunicationsSecu^ty.NewYork:ACM,2006:332-342.
  [4]周东浩,王勇军.防火墙扩展match模块匹配算法优化[J].计算机工程与设计,2011,32(3):766-769.
  [5]KATICT,PALEP.Optimizationoffirewallrules[C]//ITI2007:Proceedingsofthe200729thIEEEInternationalConferenceonInformationTechnologyInterfaces.Piscataway:IEEE,2007:685-690.
  [6]FULPEW.Optimizationofnetworkfirewallpoliciesusingorderedsetsanddirectedacyclicalgraphs[C]//Proceedingsofthe2005IEEEInternetManagementConference.Piscataway:IEEE,2005:1-12.
  [7]SONUNEG,DANGEA.Optimizationoffirewall[J].JournalofEngineeringComputers&AppliedSciences,2013,2(7):38-42.

  •   论文部落提供核心期刊、国家级期刊、省级期刊、SCI期刊和EI期刊等咨询服务。
  •   论文部落拥有一支经验丰富、高端专业的编辑团队,可帮助您指导各领域学术文章,您只需提出详细的论文写作要求和相关资料。
  •  
  •   论文投稿客服QQ: 论文投稿2863358778 论文投稿2316118108
  •  
  •   论文投稿电话:15380085870
  •  
  •   论文投稿邮箱:lunwenbuluo@126.com

联系方式

  • 论文投稿客服QQ: 论文投稿2863358778
  • 论文投稿客服QQ: 论文投稿2316118108
  • 论文投稿电话:15380085870
  • 论文投稿邮箱:lunwenbuluo@126.com

热门排行

 
QQ在线咨询
咨询热线:
15380085870
微信号咨询:
lunwenbuluoli