(计算机应用技术专业论文)基于linux+qos的内网带宽管理设计与实现.pdf_第1页
(计算机应用技术专业论文)基于linux+qos的内网带宽管理设计与实现.pdf_第2页
(计算机应用技术专业论文)基于linux+qos的内网带宽管理设计与实现.pdf_第3页
(计算机应用技术专业论文)基于linux+qos的内网带宽管理设计与实现.pdf_第4页
(计算机应用技术专业论文)基于linux+qos的内网带宽管理设计与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)基于linux+qos的内网带宽管理设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着网络应用的日新月异,网络用户对网络带宽的需求日益增多。如果不 对内网带宽做合理有效的规划则很容易导致网络拥塞,从而影响一些内网重要 用户的通信质量。有鉴于此,本文设计了一套适用于内网的带宽管理系统,网 络管理者首先通过流量统计的功能了解内网带宽的使用情况,然后根据内网用 户的优先级以及使用带宽的时间区间做出带宽管理规划,这些规划包括限制最 大带宽、保证最小带宽、在带宽资源有剩余时可以进行带宽共享从而提高带宽 利用率。 n e t f i l t e r 是l i n u x 内核中的数据包过滤系统,通过检测数据包包头中的信息 来决定数据包的最终流向。i p t a b l e s 是n e t f i l t e r 对应于用户空间的数据包过滤管 理工具,通过在i p t a b l e s 中设定过滤规则可以改变数据包在n e t f i l t e r 中的默认流 向。同时,i p t a b l e s 还带有数据包计数器的功能,可以统计出经过某条规则链的 数据包的数量和流量大小。本文通过在i p t a b l e s 中新建基于源目的口地址以及 源目的协议端口号的链和规则来改变数据包的流向,在数据包流经过的链中统 计出流量的大小,然后根据这些统计数据绘制出每个用户口的流量柱状图。 l i n u xq o s 提供了一套行之有效的带宽管理机制,该机制中主要包括队列 规则、过滤器和分类三个元素,其中队列规则负责数据包的输出顺序,过滤器 将数据包导向符合过滤规则的分类。本文首先创建基于不同p 地址的分类,并 在分类中设定对应的队列规则,包括设定不同分类的优先级别来确定获得带宽 资源的顺序以及获得带宽资源的多少,然后设定过滤器中的过滤规则将不同用 户的数据包导入到不同的分类中去。 本文还在传统的以m 地址和协议端口为过滤规则的基础上加入了以正则 表达式匹配应用层协议的l a y e r - 7 过滤模块,并引入带宽管理时间参数,可以定 时开启和关闭带宽管理功能,增加了系统的灵活性。 关键字:服务质量,流量控制,队列规则 a b s t r a c t w i t ht h er a p i dd e v e l o p m e n to fn e t w o r k a p p l i c a t i o n s ,t h ed e m a n do f t h en e t w o r k b a n d w i d t hi sb e c o m i n gg r e a t e rt h a ne v e rb e f o r e i fw ed on o tm a k ep r o p e rp l a n st o t h ei n t r a n e tb a n d w i d t hm a n a g e m e n t ,i tw i l le a s i l yc a u s et h en e t w o r kc o n g e s t i o na n d t h eq o so fs o m ei m p o r t a n ti n t r a n e tu s e r sw i l ln o tb eg u a r a n t e e d a c c o r d i n gt ot h i s s i t u a t i o n , a ni n t r a n e tb a n d w i d t hm a n a g e m e n ts y s t e mh a sb e e nd e s i g n e d f i r s t , t h e i n t r a n e ta d m i n i s t r a t o rc a nk n o wt h eu s a g eo ft h ei n t r a n e tb a n d w i d t ht h r o u g ht h e t r a f f i cs t a t i s t i c s ,t h e nh ec o u l dm a k ep l a n sb yt h ep r i o r i t yo fe a c hu s e ra n dt h et i m e w h e t h e rr u s hh o u r so rn o t ,t h e s ep l a n si n c l u d el i m i t i n gt h em a x a v a i l a b l e b a n d w i d t h ,g u a r a n t e e i n gt h em i l l i a v a i l a b l eb a n d w i d t ha n dl e t t i n gt h e u s e r ss h a r et h e i d l eb a n d w i d t ht om a k e 伽1u s eo fi t n e t f i l t e ri sap a c k e tf i l t e rs y s t e mo ft h el i n u xk e r n e l ,i tc a nd e t e r m i n et h e p a c k e t sw h e r et og ob yc h e c k i n gt h eh e a d e ro fe a c hp a c k e t i p t a b l e si sap r o g r a mo f u s e r s p a c ec o r r e s p o n d i n gn e t f i l t e ro f t h ek e r n e l b ys e t t i n gn e wr u l e si ni p t a b l e sc a n c h a n g et h ed e f a u l td i r e c t i o no fp a c k e t si nn e t f i l t e r t h e r ea r ea l s op a c k e tc o u n t e r si n i p t a b l e s ,s ow ec a ng a t h e rt h es t a t i s t i c so fh o wm a n yp a c k e t sa n dh o wm u c hf l o w h a v ep a s s e da p a r t i c u l a rc h a i n i nt h ep a p e r , w ec h a n g et h ed i r e c t i o no ft h ep a c k e t s b yc r e a t i n gn e wc h a i n sa n dr u l e sb a s e do nd i f f e r e n ts o u r c e d e s t i n a t i o ni pa d d r e s s e s a n dp o r tn u m b e r s ,a n dg a t h e rt h es t a t i s t i c si nt h ec h a i n sw h i c ht h ep a c k e t sh a v e p a s s e db y , f i n a l l yd r a wt h es t a t i s t i c sg r a p h so fe a c hu s e ri pa d d r e s s l i n u xq o si sak i n do fe f f e c t i v eb a n d w i d t hm a n a g e m e n tm e c h a n i s mi n c l u d i n g t h eq d i s c s ,f i l t e r sa n dc l a s s e s t h eq d i s c sd e c i d et h eo u t p u to r d e ro ft h ep a c k e t s t h e f i l t e r sl e a dt h ep a c k e t st op r o p e rc l a s s e sb y c h e c k i n gt h ef i l t e rr u l e s i nt h i sp a p e r , w e f i r s tc r e a t ec l a s s e sb a s e do nd i f f e r e n ti pa d d r e s s e s ,a n ds e tq d i s e si nt h ec l a s s e s , i n c l u d i n gs e t t i n gt h ep r i o r i t yo ft h ec l a s st od e t e r m i n et h eo r d e ro fo b t a i n i n gt h e b a n d w i d t ha n dh o wm u c hb a n d w i d t hi tc a l lo b t a i n t h e nw es e tt h ef i l t e rr u l e st o l e a dd i f f e r e n tu s e rp a c k e t st od i f f e r e n tc l a s s e s b e s i d e st h et r a d i t i o n a lf i l t e rr u l e sw h i c ha r cb a s e do r li pa d d r e s s e sa n dp o r t n u m b e r s ,t h i sp a p e ri n t r o d u c e san e wm e t h o dt of i l t e rt h ea p p l i c a t i o nl a y e rp r o t o c o l p a c k e t sw h i c hi sb a s e do nr e g u l a re x p r e s s i o n s w ea l s oa d dt h e t i m ef a c t o rt ot h e s y s t e m ,w ec a nc h o o s ew h e nt ot u r nt h e b a n d w i d t hm a n a g e m e n to na n dw h e nt ot n m i to f f , t h et i m ef a c t o rg i v e sm o r ef l e x i b i l i t yt ot h es y s t e m k e y w o r d :q o s ,t r a f f i cc o n t r o l ,q u e u ed i s c i p l i n e s i u 独创性声明 本人声明,所呈交的论文是本人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 武汉理工大学或其他教育机构的学位或证书而使用过的材料。与我一 同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说 明并表示了谢意。 签名:黄够1 日期:墨! 丝:兰兰巨 学位论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位论文的规定,即 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权武汉理工大学可以将本学位论文的 全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制 手段保存或汇编本学位论文。同时授权经武汉理工大学认可的国家有 关机构或论文数据库使用或收录本学位论文,并向社会公众提供信息 服务。 ( 保密的论文在解密后应遵守此规定户 研究生( 签名) :黄钇导师( 签名) 苎兰杰丛粤:切。f 以 武汉理工大学硕士学位论文 1 1 研究背景 第1 章绪论 互联网和多媒体应用的蓬勃发展导致网络用户对网络带宽资源的需求与日 俱增。一般来说,从内部网络到外部网络都共享一条网络通路,如果内网一些 用户建立非法网站或大量下载,将会严重影响其他用户的传输质量,导致网络 长期处于拥塞的状态下,使得传输延迟时间增长甚至数据包的丢包率大增而严 重影响一些重要的实时通信无法畅通地进行【l l 。然而在现行网络架构下所提供 的尽最大努力的服务模式并不能有效保证传输质量,所以在带宽资源有限的情 况下,通常的做法是一旦遇到流量异常的用户便采用阻断性策略将其置入黑名 单而禁止其传输。这样常常导致管理者疲于奔命、异常流量防不胜防,而内网 用户则怨声载道。 1 2 现行的解决方案 1 增加内网到外网的网络带宽 虽然此方法能直接有效地解决网络带宽不足的问题,但一方面需要向i s p 申请更大的传输带宽,另一方面还需要升级入口网络设备,在资金有限的情况 下,此方法显得并不可取。 2 在网络入口处增加带宽管理设备 如果采用带宽管理技术将有限的带宽资源做合理有效的分配和管理,并以 单个用户p 或多个用户口为单位分配一定的带宽资源供其使用,则原先有异 常流量的用户仍可进行网络传输,只是在带宽受限的情况下传输时间会增加许 多。这样就使内网中大量下载的情形随着适量带宽的分配规划而消失,从而保 证每个用户不会受到异常流量的影响。但是现在市面上各厂商所出厂的专用带 宽管理或流量管理产品价格不菲,这对于资金有限的小型公司来说负担不小。 如果能采用以开放源代码的嵌入式l i n u x 操作系统与嵌入式设备作为带宽管理 器,那么对于解决小型企业的网络拥塞问题会有很大的帮助,也有助于管理者 武汉理工大学硕士学位论文 自行规划出最适合自己网络的架构需求 13 本文的主要工作 本文所设计韵带宽管理器是嵌入式l i n u x 和嵌入式设备相结合的,它既可 以与网关和路由器设备整合在一起架设在拥塞的网段上做管理,如图1 1 所示, 也可以单独地以以太网桥接的方式连接在网络瓶颈处,如图1 2 所示。 图1 1 集成的带宽管理器 图1 2 单独架构的带宽管理器 官 用 户 罾 用 白 骨 里 用 户 8 骨 武汉理工大学硕士学位论文 本文的设计思想是为内网的每个用户划分基本的保证带宽,即使当整个网 络发生拥塞时仍可正常通信,并且设定最高可用带宽,用以抑制异常流量,当 整个带宽资源还有剩余时,以网络带宽共享( l i n k s h a r i n g ) 的架构作为依据制 定策略予以充分利用。另外对于带宽多少的划分可以根据不同的需求作规划设 计,既可以以行政单位、协议类型、p 网段、单个m 地址作为依据,也可根据 流量统计的结果数据做作为参考。 本系统采用模块化的设计方案,整个系统的逻辑框图如图1 3 所示,其中 各模块的功能如表1 1 所示。 图1 3 系统逻辑框图 表1 1 逻辑模块功能表 系统功能功能描述 中心服务数据库记录各种信息及各种配置方案等信息 器绘制流量统计柱状图 嵌入式网流量统计对各个用户的网络流量进行统计,发送至中心 关应用服务器 带宽管理基于l i n u x q o s 的带宽管理 根据表1 1 所示,本系统的实施主要分为三大模块:嵌入式模块、流量统计模 块和带宽管理模块,其中流量统计模块和带宽管理模块以嵌入式模块为实施平台。 3 武汉理工大学硕士学位论文 第2 章嵌入式模块设计与实现 21 硬件平台的选择 市面上销售的嵌入式开发板性能和价格都参差不齐,如何选择合适的开发 板作为本实验的硬件平台,性价比是关键。通过多方比较,选择英倍特公司的 i x d p 4 2 5 嵌入式开发板作为实验的硬件平台,其外观如图21 所示,开发板的 主要性能参数如表2i 所示。其中i x p 4 2 5 是一款高性能的网络处理器,主频达 5 3 3 m h z ,在高速运行时其功率消耗仅为3 w ,特别适用于高端防火墙、路由器 等弼络产品【蛐l 。所以配置了i n t e i x p 4 2 5 处理器的带宽管理器在处理网络数据 包时显得游刃有余。 图2 l 实验所用开发板外观图 表2 1 开发板硬件参数 c p us d r a mf i a s hd ep c il nw l u t e i6 4 岫l6 j 佃b ,a t a3 2 b i t ,1 个1 个 d ( p 4 2 5n o rf l a s h1 3 33 3 舭_ 6 6 h l i z 武汉理工大学硕士学位论文 2 2 软件平台的构建 嵌入式系统的运行顺序如图2 2 所示,所以本实验的软件平台也是根据这 四个部分来设计实现的。 2 2 1 交叉编译环境 图2 2 嵌入式系统运行过程 嵌入式系统是专用计算机系统,它对系统的功能、可靠性、成本、体积、 功耗等某些方面有严格的要求1 4 。因为嵌入式系统硬件上的特殊性,所以一般 不能在其上安装发行版的l i n u x 系统,这是由于嵌入式设备的f l a s h 存储空间小 而没有足够的空间安装或者是嵌入式处理器很特殊,并且也没有发行版的l i n u x 系统可用。这就需要专门为特定的嵌入式设备定制l i n u x 操作系统,于是就有 了交叉开发模式,交叉开发模式的具体架构如图2 3 所示。 5 武汉理工大学硕士学位论文 图2 3 交叉开发模式 交叉编译环境的建立主要是制作交叉编译链,然后在编译b o o t l o a d e r 、内核 和根文件系统的时候将编译工具设置为定制的交叉编译链即可。b u i l d r o o t 是一 个m a k e f i l e 脚本和补丁文件的集合,它能够很容易地生成为编译你的目标l i n u x 系统所需要的交叉编译工具链和根文件系统,它使用的是u c l i b c 库,并且支持 多种处理器,如p o w e r p c 、m i p s 、a r m 等等【5 1 。b u i l d r o o t 的配置起来很简单, 它采用菜单式的配置方式,如图2 4 所示。可以根据菜单中提供的选项来定制 出满足目标板处理器架构的交叉编译链。 6 武汉理t 大学硕士学位论文 a r r o wk e y sn a v z g a tet h em e n u e 时e r ) s e l e c t ss u b g e n u s , 啦q 1 口h t e d1 e t t e r eh o t k e y sp r e s s i n g 州s e l e c te saf e a t u r e , v h i le n ) v i l le x c l u d ea a t ur ep r e s s f o r h d 0 f ors e a r c h l e g e n d 【1f e a tu r e 1 5s e le c t e d ijf e a t u s 一一n t 一_ _ - _ _ i t ar q e ta r c h z t e c tur ev ar i a n t 【ar = 9 2 6 t i t ar 口畦a 8 i ( o a 叮l) t ar g e to p t i o n s b u l ldo d t l o n s t o dc h a i n , p a c k a g es e l e c _ c i o n f o rt h etar g e t , t ar q e tf i le s y n e mo p t i o n s k er n d , v f + i 田盟e x i t th e l p 2 2b o o t i o a d e r 图2 4 b u i d m o t 配置菜单 一般来说,计算机系统从开机上电到操作系统启动需要一个引导过程, 式l i n u x 系统也需要这个引导程序,它叫做b e o f l o a d e r 。b o o t l o a d c r 是在操 绕运行之前执行的一段小程序,它将初始化硬件设备、建立内存空间映射; 而建立适当的系统软硬件环境,为最终调用操作系统内攘做好准备【6 j 。 r e d b e o t 具有简洁、轻巧、可灵活配置、稳定可靠的优点。它可以使 m e d m 或y - m o d c m 协议经由串口下载,也可以经由以太网通过册方式 程序映像文件,常用于调试支持和系统初始化1 7 】。要通过f l a s h 烧写工具将 好的r e d b o o t 目标文件烧写到f l a s h ,操作界面如图2 5 所示。 武汉理工大学硕士学位论文 2 23 定制内核 l m u x 内核采用模块化的设计,内核模块作为可选的选项,在编译系统内 核对指定。因而一般通用的做法是在编译前仔细选择嵌入式设备所需要的功能 模块,同时去除不需要的功能模块。通过对内核的重新配置编译,可以减小内 核体积,从而节省f i s h 的容量。 本文实验中主要用到l i n a x 内核里的三个模块,一是l i n u xq o s 模块,这 是带宽管理模块所需要的:其次是n e t f i l t e r 模块,这是流量统计模块所需要的; 最后是m t d 和y f f s 2 模块,这是制作根文件系统所需要的。以2 61 9 内核为 例,需要选取的模块详细列表如表2 1 、表22 和表2 3 所示。 武汉理工大学硕士学位论文 表2 1q o s 模块 q o s 模块 - q u e u e i n g s c h e d u l i n g c l a s sb a s e dq u e u e i n g ( c b q ) h i e r a r c h i c a lt o k e nb u c k e t ( h t b ) h i e r a r c h i c a lf a i rs e r v i c ec u r v e ( h f s c ) m u l t ib a n d p r i o r i t yq u e u e i n g ( p r i o ) r a n d o me a r l yd e t e c t i o n ( r e d ) s t o c h a s t i cf a i r n e s sq u e u e i n g ( s f q ) t o k e nb u c k e tf i l t e r ( t b f ) d i f f e r e n t i a t e ds e r v i c e sm a r k e r ( d s m a r k ) i n g r e s sq d i s c c l a s s i f i c a t i o n e l e m e n t a r yc l a s s i f i c a t i o n ( b a s i c ) t r a f f i c - c o n t r o li n d e x ( t c i n d e x ) r o u t i n gd e c i s i o n ( r o u t e ) n e t f i l t e rm a r k ( f w ) u n i v e r s a l3 2 b i tc o m p a r i s o n sw h a s h i n g 3 2 ) 表2 2n e t f i l t e r 模块 n e t f i l t e r 模块 c o r en e t f i l t e rc o n f i g u r a t i o n - 一 n e t f i l t e rn e t l i n ki n t e r f a c e n e t f i l t e rn f q u e u eo v e rn f n e t l i n ki n t e r f a c e n e t f i l t e rx t a b l e ss u p p o r t ( r e q u i r e df o ri p _ t a b l e s ) m a r k ”t a r g e ts u p p o r t i p :n e t f i l t e rc o n f i g u r a t i o n - 一- = c o n n e c t i o nt r a c k i n g ( r e q u i r e df o rm a s q n a t ) 【幸 c o n n e c t i o nt r a c k i n gf l o wa c c o u n t i n g 木 c o n n e c t i o nm a r kt r a c k i n gs u p p o r t i pu s e r s p a c eq u e u e i n gv i an e t l i n k ( o b s o l e t e ) i pt a b l e ss u p p o r t ( r e q u i r e df o rf i l t e r i n g m a s q n a t ) l a y e r7m a t c hs u p p o r t ( e x p e r i m e n t a l ) t o sm a t c hs u p p o r t f u l ln a t m a s q u e r a d et a r g e t p a c k e tm a n g l i n g t o st a r g e ts u p p o r t 9 武汉理工大学硕士学位论文 表2 3m t d 和j f f s 2 模块 m t d 和 胂s 2 模块 f i l es y s t e m s m i s c e l l a n e o u sf i l e s y s t e m s j o u m a l l i n gf l a s h f i l es y s t e mv 2 ( j f f s 2 ) s u p p o r t ( o ) j f f s 2d e b u g g i n gv e r b o s i t y ( 0 = q u i e t ,2 = n o i s y ) 【幸 j f f s 2w r i t e b u f f e r i n gs u p p o r t 【宰 j f f s 2s u m m a r ys u p p o r t ( e x p e r i m e n t a l ) 木 j f f s 2x a t t rs u p p o r t ( e x p e r i m e n t a l ) 木 j f f s 2p o s i x a c c e s sc o n t r o ll i s t s 宰 j f f s 2s e c u r i t yl a b e l s m e m o r yt e c h n o l o g yd e v i c e s ( m t d ) m e m o r yt e c h n o l o g yd e v i c e ( m t d ) s u p p o r t 宰 m t dp a r t i t i o n i n gs u p p o r t d i r e c tc h a rd e v i c ea c c e s st om t dd e v i c e s c a c h i n g b l o c kd e v i c ea c c e s st om t dd e v i c e s 2 2 4 制作根文件系统 根文件系统的制作包含两个部分,一是选用一种文件系统类型作为f l a s h 分区的类型,一是构建嵌入式l i n u x 的目录结构。 肼s 2 是由瑞典的a x i sc o m m u n i c a t i o n s 公司开发的一种文件系统,相对于 传统的e x t 2 文件系统,它因为具有以下优点【8 】: ( 1 ) 执行擦除写读操作要比e x t 2 文件系统好。 ( 2 ) 提供了比e x t 2 文件系统更好的掉电安全保护。 ( 3 ) j f f s 2 能提供更好的闪存管理。 所以在开发板上使用j f f s 2 文件系统。制作肿s 2 分区的步骤如下: ( 1 ) 在f l a s h 中新建m t d 分区。在r e d b o o t 命令提示符下输入以下命令f i sc r e a t - b o x 8 0 0 0 0 0 10 x 2 8 0 0 0 0 f0 x 5 0 0 4 0 0 0 0r a m d i s k - r0 x 8 0 0 0 0 0 ,即在f l a s h 当中创建 了一个m t d 分区,该分区在f l a s h 中的起始地址为0 x 5 0 0 4 0 0 0 0 ,分区长度 为0 x 2 8 0 0 0 0 ,在内存中的载入地址为o x 8 0 0 0 0 0 。 ( 2 ) 将新建的m t d 分区格式化为j f f s 2 类型。进入l i n u x 系统,在l i n u x 命令 提示符下输入以下命令m k f s j f f s 2 - - dt e s t _ 0j i t s i m g ,即将一个名为t e s t 的目录 创建为j f f s 2 镜像,擦除m i d 分区上的内容e r a s e a l l d e v m t d 2 ,m t d 2 是上一步 骤中创建的m t d 分区的设备号,c pj i t s i m g d e v m t d 2 ,将j f f s 2 的镜像复制到 新建的m t d 分区中,m o u n t - tj f f s 2 d e v m t d b l o c k 2 m n t ,挂载这个新建的m t d 1 0 武汉理工大学硕士学位论文 分区。现在就可以使用这个新的j f f s 2 分区了。 一般来说,定制的l i n u x 系统要具有如表2 4 所示的目录结构【4 】。 表2 4 目录名说明 d c v存放设备文件,用于访问系统资源或设备,如软盘,硬盘,系统 内存等 c t c 存放系统配置文件,例如系统初始化文件c t c r c ,用户可以根据实 际需要配置相应的配置文件 b i l l 包含二进制( b i n a r y ) 文件的可执行文件、命令,如i s 、m k d i r 、 t a r 等 s b i n与b i n 目录类似,存放系统编译后的可执行文件、命令,如f s c k 、 l s u s b 等 h b标准程序设计库,又叫动态链接共享库 | 、4 跹该目录包含经常变化的文件,例如打印机、邮件、新闻等脱机文 件、日志文件以及临时文件 u s r最庞大的目录,该目录包含了一般不需要修改的命令程序文件、 程序库、手册和其他文档 p r o c 它并不保存在存储设备中,操作系统在内存中创建这个目录是虚 目录,即系统内存的映射 m n t该目录用来为其它文件系统提供安装点 t m p 公用的临时文件存储点 s n a p g c a r 公司所推出的s n a p g e a rl i n u x 套件是一套基于u c l i n u x 的开源系 统。u c l i n u x 是在标准的l i n u x 基础上进行适当的裁剪和优化所形成的一个高度 优化、代码紧凑的嵌入式l i n u x 9 。虽然它的体积很小,但仍然保留了l i n u x 稳 定、良好的裁剪性、优秀的网络功能、完备的对各种文件系统的支持以及丰富 的a p i 等优点。s n a p g e a r l i n u x 集成了2 4 2 6 版本的l i n u x 内核、u c l i b c 库、i n t c l 网络接口设备驱动程序以及标准的l i n u x 目录结构,还包括了b u s y b o x ( l i n u x 精简命令集) ,最重要的是它包含了实验所需要的t c 、i p 、r o u t e 、i p t a b l c s 等网 络应用程序。所以采用s n a p g c a r 套件做为构建l i n u x 目录的基础。 武汉理工大学硕士学位论文 第3 章流量统计模块的设计与实现 3 1 方案选择 通过前期调研,找到3 种可以在嵌入式设备上做流量统计的方法,如表3 1 所示。 表3 1 流量统计方案选择 方案支持多协议存储需求需要安装额外开销对网关硬功能 附加协议件要求 s n n 伊 是大是通常需要局强 专线连接 i p t a b l e s 是小否否低较强 计数器 u l o g d 是较大否通常需要高强 与n u f w 配合使用 在实现s n m p 的过程中发现,关于s n m p 的配置文件太大,而开发板的 f l a s h 容量有限( 嵌入式开发的难点) ,因此放弃此方案。而i p t a b l e s 计数器具有 体积小、无需安装其他附加协议、无需额外开销、对网管硬件要求低等特点, 所以采用i p t a b l e s 计数器的方案做流量统计。 3 2 模块架构设计 起初,选择i p t a b l e s 计数器方案时准备直接将网关与数据库进行通信,如 图3 1 所示。原本希望让网关进行流量统计之后将数据直接发往数据库,在实 际操作过程中发现必须将所有的配置文件放在网关( 即使用的嵌入式开发板) , 但在数据包分类的过程中需要进行高级文本处理的l i n u x 命令( a w k ,s e d 等) 而开发板上没有,若将其交叉编译到开发板则需要占用相当大f l a s h 容量,因 此不得不重新考虑新的架构,新的架构如图3 2 所示。 1 2 武汉理工大学硕士学位论文 服务器 图3 2 新的架构设计 3 3 所使用的技术和工具 轴协b 蛔是一个功能强大的数据包过滤工具,可用于添加、编辑和积除规则, 这些规则是在做数据包过滤决定时,防火墙所遵循和组成的规则【! 1 。这些规则 存储在专用的数据包过滤表中,而这些袭集成在l i n u x 肉核中。通过n c t f i l t e r 在用户空间的命令杼程序i p t a b l e s ,可以轻松地添加、编辑和删除各种过滤规则。 i p t a b l e s 主要由表、链和规则组成。如t a b l e s 由三个表组成,分别是f i l t e r 表、n a t 表和m i n g l e 表。其中f i l t e r 表用来做包过滤,n a t 表用来做网络地址翻 译也就是改变包头中的源口地址或目的砰地址m a n g l e 用来改变包的某些特 性( 如订l 值) 或者给包打上标记( m a r kt a r g e t ) 。表又由链组成,每个表中 鲺 武汉理工大学硕士学位论文 都有内核自建的链,而用户也可以根据需要在表中创建用户自定义的链。在链 中,就是过滤规则了,用户既可以在内核自建链中也可以在用户自建链中添加、 删除和修改规则。而本文所述的流量统计方法就是在f i l t e r 表中新建基于不同 的源或目的i p 地址的链并在链中添加规则来完成的。 3 4 实验步骤及结果分析 本文所述的流量统计方法只用到f i l t e r 表,在没有做流量统计之前,数据 包在f i l t e r 表中的流程如图3 3 所示。 图3 3 数据包在f i l t e r 表中默认的流向 f i l t e r 表默认情况下由三个内建的链组成,分别是i n p u t 链、o u t p u t 链 和f o r w a r d 链。根据包的流向不同,凡是发往本地的包都要通过i n p u t 链 和o u t p u t 链;而不是发往本地需要转发的包则要通过f o r w a r d 链。而进 入嵌入式网关的数据包9 5 都是需要转发的,在默认情况下都需要经过 1 4 武汉理工大学硕士学位论文 f o 】链。可以在f o r 、砌岷d 链中创建基于不同的源口地址和目的p 地 址的子链来改变这些数据包的流向,并在这些子链中统计流量数据。 n e t f i l t e r 除了可以根据包头中的源d 地址和目的p 地址做过滤外,还可以 根据包头中的协议端口号做过滤。这样在做流量统计的时候不仅可以根据p 地 址分类,还可以细化到被监控口所使用的应用层协议产生的流量。 下面以统计内网m 地址为1 9 2 1 6 8 1 0 3 的主机与外网的数据流量为例来说 明如何通过新建的链将网关上转发的数据包做分类统计的。 首先在f i l t e r 表中新建六个链,分别是a c c i n 、a c c o u t 、a c c i n f t p 、 a c c i n p o p 3 、a c c 烈w w w 、a c c o i 限s m t p 。这六个链的结构关系如图 3 4 所示,功能说明如表3 2 所示。 iia c c i n 一硎 f o p x v a 氓, x ) 。! a c c 一玳 a c c - i n - f t p lla c c i n p o p 3 ia c c o u t a c c o u t s m t p 图3 4 新建链的关系图 表3 2 新建链的功能说明 流量统计类协议类型端口流量统计链备注 型 总流入t c p 口 木 a c c i n 总流出 t c p 口 木 a c c o u t 木 f t p 流入 t c p2 0a c c 【n f t p w w w 流入t c p 8 0 a c c 【n w 弋v w针对透明代理 p o p 3 流入t c p1 1 0a c c d j p o p 3 木 s m t p 流出 t c p2 5a c c o u t - s m t p 木 在f o r w a r d 链中创建基于口地址是1 9 2 1 6 8 1 0 3 的两条过滤规则: 1 ) 若包头内的目的d 地址为1 9 2 1 6 8 1 0 3 ,则跳转到a c c i n 链; 2 ) 若包头内的源m 地址为1 9 2 1 6 8 1 0 3 ,则跳转到a c c o u t 链。 a c c i n 链是f o r w a r d 链的子链,在a c c i n 链中创建基于目的口地址 是1 9 2 1 6 8 1 0 3 的三条规则: 1 ) 若包头内的源协议端1 :3 号是2 1 ,则跳转到a c c i n - f t p 链: 2 ) 若包头内的源协议端口号是8 0 ,则跳转到a c c i n - w w w 链; 3 ) 若包头内的源协议端口号是1 1 0 ,则跳转到a c c i n p o p 3 链。 武汉理工大学硕士学位论文 a c c o u t 链是f o r w a r d 链的子链,在a c c o u t 链中创建基于源疋地 址是1 9 2 1 6 8 1 0 3 的一条规则: 1 ) 若包头内的目的协议端口号是2 5 ,则跳转到a c c o u t - s m t p 链。 a c c i n f t p 、a c c i n w w w 、a c c i n p o p 3 是a c c 玳链的三个子链, 当中没有过滤规则,数据流经过这三个链后就返回到上一级父链。 a c c o u t - s m t p 是a c c o u t 链的子链,当中没有过滤规则,数据流经过 这个链后就返回到上_ 级父链。 添加新的链和规则后数据包在f o r w a r d 链中的流向如图3 5 所示。 图3 5 新建链和规则后的数据包流向图 上面只是以单个被监控口地址为例来说明,如要监控多个m 地址可以在 f o r w a r d 链中创建多条基于被监控口地址的过滤规则。i p t a b l e s 自带有计数 器功能,这样就可以通过i p t a b l c s - tf i l t e r x n v l 命令来查看经过每条链的流量; 如图3 6 所示。 1 6 武汉理工大学硕士学位论文 图3 6i p t a b l e s 计数器所统计的流量数据 l i n u x 下的c r o n t a b 命令的功能是在一定的时间间隔调用一些命令或脚爿 执行。这样就可以把调用i p t a b l e s 计数器来统计流量的命令串写成s h e l l 脚爿 通过c r o n t a b 命令来定时地调用这个s h e l l 脚本来生成流量统计中间数据,趋 把c r o n t a b 命令的时间间隔设为1 分钟。每经过6 0 秒,s h e l l 脚本都会将中m 据清零并重新开始统计,这样产生的中间数据就是每分钟的流量统计数据。 数据库摄务器通过l i n u x 下w g e t 命令将网关上的中间数据读取到数据层 存储,然后进行分类和累加处理,这样就能绘出基于不同口地址和不同协蟊 某段时间内的流量统计柱状图。内网管理人员就可以通过这些柱状图来对$ 带宽资源做出合理的分配。流量统计的5 分钟、1 5 分钟、3 0 分钟、6 0 分争 状图分别如图37 、3 8 、3 9 、31 0 所示。 武汉理i 大学顶 学位论文 m 岫t l 伸t 6 e 1 01 5e w 岫5 - l 1 r a i l l l 札h * 圈37 流量统计5 分钟柱状图 h 1 0 ,5 “e lt r “ fj c i 圈38 流量统计1 5 分钟柱状圈 些堡望! 查堂堡二兰兰垡堡兰 t 卵1 e 8i o 脚蛐m t ks t d t l 。i i d 图3 9 流量统计3 0 分钟柱状图 n 竹“m i o 怖叫n lm i c 觚i r 一 图3 1 0 流量统计6 0 分钟柱状图 武汉理工大

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论