(通信与信息系统专业论文)网络协议分析与流量控制的研究与实现.pdf_第1页
(通信与信息系统专业论文)网络协议分析与流量控制的研究与实现.pdf_第2页
(通信与信息系统专业论文)网络协议分析与流量控制的研究与实现.pdf_第3页
(通信与信息系统专业论文)网络协议分析与流量控制的研究与实现.pdf_第4页
(通信与信息系统专业论文)网络协议分析与流量控制的研究与实现.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 在当今的网络应用中,许多与工作无关的应用占去了绝大部分网络带宽, 如p 2 p 下载、在线视频等,这严重地影响了网页浏览、邮件收发、视频会议等 应用的正常运行,而传统防火墙对应用层的流量管理又无能为力,因此,如何 精确地给流量分类并有效地控制成为了一个重要的课题。 本文设计并实现了一套高性能的带宽管理系统。带宽管理系统主要由协议 分析和流量控制两大部分组成。协议分析部分是在l i n u x 系统n e t f i l t e r 框架下实 现的,本文基于深度包检测思想,实现了一个高性能的协议分析引擎h p a ,h p a 的应用,使协议分析人员更加高效,同时也让整个系统的吞吐性能较传统方法 提升了9 4 ,并支持多达5 0 余种常用协议的识别。流量控制部分是在l i n u x 下 流量控制框架下完成的,本文基于实际应用的需求,设计并实现了基于i p 地址 平均分配带宽的流量控制算法,再结合分层令牌桶流控算法,使系统的流量控 制功能更加完善。 本文所实现的带宽管理系统既可以在装有l i n u x 系统和两块网卡的p c 机上 使用,也可以嵌入到专用设备里使用。此系统作为嘲络管理设备a s c e n f l o w 的 一个主要模块已经通过测试。 关键词:协议分析流量控制带宽管理 n e t f i l t e r a b s t r a c t ab s t r a c t i nt o d a y sn e t w o r ka p p l i c a t i o n s ,m a n yn o n w o r k r e l a t e da p p l i c a t i o n sa c c o u n t e d f o rt h em a j o r i t yo fn e t w o r kb a n d w i d t h ,s u c ha sp 2 pd o w n l o a d ,o n l i n ev i d e o ,w h i c h h a ss e r i o u s l ya f f e c t e dt h ec r i t i c a la p p l i c a t i o n s ,s u c ha sw e b ,m a i l ,v e d i oc o n f e r e n c e t r a d i t i o n a lf i r e w a l li sp o w e r l e s si na p p l i c a t i o n - l a y e rt r a f f i cm a n a g e m e n t ,s oh o wt o a c c u r a t e l yc l a s s i f yt h et r a f f i c si nn e t w o r ka n de f f e c t i v e l yc o n t r o lt h e m ,h a sb e c o m ea l l i m p o r t a n ti s s u e t h i sp a p e rp r e s e n t st h e d e s i g na n di m p l e m e n t a t i o no fah i g h - p e r f o r m a c e n e t w o r kb a n d w i d t hm a n a g e m e n ts y s t e m , w h i c hi sc o m p o s e do ft w op a r t s ,o n ei s p r o t o c o la n a l y s i s ,a n dt h eo t h e ri st r a f f i cc o n t r 0 1 t h ep r o t o c o la n a l y s i si sa c h i e v e d u n d e rt h en e t f i l t e rf r a m e w o r ki n s i d et h el i n u xs y s t e m t h i sp a p e ra l s op r e s e n t st h e d e s i g na n di m p l e m e n t a t i o no fah i g h p e r f o r m a n c ep r o t o c o la n a l y s i se n e g i n eh p a b a s e do nt h et h o u g h to fd e e pp a c k e ti n s p e c t i o n ,w i t ht h ea p p l i c a t i o n so fh p a , p r o t o c o la n a l y s i ss t a f fb e c o m em o r ee f f i c i e n t ,a n dt h es y s t e mt h r o u g h p u tp e r f o r m a n c e i n c r e a s e d9 4 c o m p a r e dt ot r a d i t i o n a lm e t h o d s ,f u r t h e rm o r e ,i tc a ns u p p o r tm o r e t h a n5 0p r o t o c o l s t h et r a f f i cc o n t r o lp a r ti sa c h i e v e du n d e rt h et r a 伍cc o n t r o l f r a m e w o r ki n s i d et h el i n u xs y s t e m b a s e do nt h ep r a c t i c a ld e m a n d ,t h i sp a p e r p r o v i d e sat r a f f i cc o n t r o la l g o r i t h m ,t h ea v e r a g ea l l o c a t i o no fb a n d w i d t hb a s e do ni p a d d r e s s ,w i t hh i e r a r c h i c a lt o k e nb u c k e tt r a f f i cc o n t r o la l g o r i t h m , i tw i l lg i v eaw e l l f u n c t i o n i n gt r a f f i cc o n t r o ls y s t e m t h eb a n d w i d t hm a n a g e m e n ts y s t e mp r e s e n t e di n t h i sp a p e rc a nb eu s e di na p e r s o n a lc o m p u t e rw i t hal i n u xs y s t e ma n dt w on i cc a r d ,a n dc a na l s ob ee m b e d d e d i nas p e c i a le q u i p m e n t t h i ss y s t e ma sam a i nc o m p o n e n to fn e t w o r km a n a g e m e n t e q u i p m e n ta s c e n f l o wh a sp a s s e dt h et e s t k e yw o r d s :p r o t o c o la n a l y s i s ,t r a f f i cc o n t r o l ,b a n d w i d t hm a n a g e m e n t ,n e t f i l t e r i i 南开大学学位论文使用授权书 根据南开大学关于研究生学位论文收藏和利用管理办法,我校的博士、硕士学位获 得者均须向南开大学提交本人的学位论文纸质本及相应电子版。 本人完全了解南开大学有关研究生学位论文收藏和利用的管理规定。南开大学拥有在 著作权法规定范围内的学位论文使用权,即:( 1 ) 学位获得者必须按规定提交学位论文( 包 括纸质印刷本及电子版) ,学校可以采用影印、缩印或其他复制手段保存研究生学位论文, 并编入南开大学博硕士学位论文全文数据库;( 2 ) 为教学和科研目的,学校可以将公开 的学位论文作为资料在图书馆等场所提供校内师生阅读,在校园网上提供论文目录检索、文 摘以及论文全文浏览、下载等免费信息服务:( 3 ) 根据教育部有关规定,南开大学向教育部 指定单位提交公开的学位论文:( 4 ) 学位论文作者授权学校向中国科技信息研究所和中国学 术期刊( 光盘) 电子出版社提交规定范围的学位论文及其电子版并收入相应学位论文数据库, 通过其相关网站对外进行信息服务。同时本人保留在其他媒体发表论文的权利。 非公开学位论文,保密期限内不向外提交和提供服务,解密后提交和服务同公开论文。 论文电子版提交至校图书馆网站:h t t p :2 0 2 1 1 3 2 0 1 6 1 :8 0 0 1 i n d e x h t m 。 本人承诺:本人的学位论文是在南开大学学习期间创作完成的作品,并已通过论文答辩; 提交的学位论文电子版与纸质本论文的内容一致,如因不同造成不良后果由本人自负。 本人同意遵守上述规定。本授权书签署一式两份,由研究生院和图书馆留存。 作者暨授权人签字: 2 0 年月 日 南开大学研究生学位论文作者信息 论文题目 姓名学号答辩日期年月日 论文类别博士口学历硕士口硕士专业学位口高校教师口同等学力硕士口 院系所专业 联系电话e m a r l 通信地址( 邮编) : 各注: 是否批准为非公开论文 注:本授权书适用我校授予的所有博士、硕士的学位论文。由作者填写( 一式两份) 签字后交校图书 馆,非公开学位论文须附南开大学研究生申请非公开学位论文审批表。 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外;本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 年月日 第一章引言 第一章引言 随着基于t c p 、u d p 的应用层协议的增多,p 2 p 1 】【2 】【3 1 流量的逐渐泛滥,一 些重要应用很难正常进行,因此如何改善网络质量成为一个重要问题。l i n u x 提 供了n e t f i l t e r i p t a b l e s t c 框架来进行网络质量的管理,许多厂商也是基于这个框 架做出了一些网络管理产品。 第一节课题背景及意义 目前的互联网基本都是采用尽力而为( b e s t e f f o r t ) 的网络模型,在这种网 络模型中,网络尽可能地为所有用户分配带宽,如果网络发生拥塞,路由器等 网络设备就会丢弃数据包,这样会严重影响关键网络应用的正常进行。 随着p 2 p 技术应用的增多,互联网改变了以大嘲站为中心的状态,重返非 中心化,使资源共享变得更加容易,如现在流行的迅雷、在线电视等。在许多 用户共享带宽的环境下,由于p 2 p 流量占用了绝大部分带宽,导致大量用户的 一些正常应用运行不流畅,如浏览网页、收发邮件、网络电话等。 1 1 1 传统防火墙的局限性 传统防火墙【4 】【5 1 都工作在o s i 模型的第2 、3 或4 层,通过对数据包的源目 的i p 地址、m a c 地址、t c p u d p 端口等进行过滤,实现对网络流量的监视。 一般的过滤策略都是通过对当前数据包的包头来做的,并不关心整个连接信息。 传统防火墙对网络流量的一般处理方法有阻塞某种协议常用端口、切断客户端 和服务器的连接等。 随着网络的发展,网络应用的增多,越来越多的应用开始使用动态端口, 再加上近年来很多应用都是通过w e b 端口8 0 进行的,有些p 2 p 就可以伪装成 h t t p 的流量,因此采用传统防火墙对端口处理的方法已经无法对数据包进行准 确有效地识别与控制。现在许多应用都采用p 2 p 相关技术,如p p l i v e 之类的, 它们与生俱来就带有一种防御特性,它们没有固定的服务器与客户端,而且随 时可以用新的端口建立新的连接,它们经常采用短连接,即一个连接只有几个 l 第。章引言 数据包,如果一条连接被阻断,它可以马上选取一个新i p 地址和端口发起新的 连接。采用传统防火墙阻断连接的方法对p 2 p 类应用也无法实现准确地识别与 控制【6 】【7 】【8 】。 因此为了更好地识别与控制网络流量,尤其是对p 2 p 类流量地识别与控制, 必须使用第7 层对流量分析的方法。l i n u x 提供了n e t f i l t e r i p t a b l e s 框架可以实 现协议分析功能,本文所研究的就是在此框架下基于数据包内容的一种协议识 别方法。 1 1 2o o s 与带宽管理 i p 嗍络的q o s 9 1 ( q u a l i t yo fs e r v i c e ,服务质量) 是当今网络研究领域最重 要、最富有魅力的研究方向之一,是计算机网络研究与开发的热点,被称为新 一代计算机网络的核心问题之一。支持q o s 服务,不仅需要对相关网络协议进 行开发和完善,也需要使包括路由器、防火墙在内的设备能够对彳i 同类型的数 据流提供有区分的服务。 q o s 旨在针对不同的应用需求,为其提供不同的服务质量,例如:提供专用 带宽、减少数据包丢失率、降低数据包传递时延及时延抖动等。为实现上述目 的,q o s 提供了下述功能:报文分类、网络拥塞管理、流量控制和流量整形。 q o s 可以控制各种网络应用并能满足多种网络应用需求,如: 控制资源:如可以限制骨干网络上f t p 、h t l 甲、b t 等的使用带宽,也 可以给数据库访问以较高优先级。 可裁剪的服务:对于i s p ( i n t e r n e ts e r v i c ep r o v i d e r ,i n t e m e t 服务提供商) , 其用户可能传输语音、视频或其他实时业务数据,q o s 可以使i s p 能够区分出这 些不同的业务,并提供不同的服务。 多种需求并存:q o s 可以为时间敏感的多媒体业务提供大带宽和低时延 保证,而其他应用在使用嘲络时,也不会影响这些实时业务的质量。 q o s 是随着网络中数据流的不断增长和变化而发展的,从2 0 世纪8 0 年代的 无q o s 保证到2 0 世纪末的r s v p 等q o s 技术,再到现在的基于数据流内容的 q o s 技术。q o s 技术的发展推动了路由器、防火墙等不断升级更新,同时也使带 宽管理产品成为q o s 发展下的必然产物。 带宽管理【i o 】【1 1 1 是基于q o s 技术中流量控制和流量整形来实现的。l i n u x 提供 2 第- 章引言 了一个完整的流量控制框架,即t c q d i s c 1 2 l f l 3 1 1 1 4 l ( t r a f f i cc o n t r o l ,q u e u i n g d i s c i p l i n e ) 系统。采用合理的流量控制算法,t c q d i s c 系统可以实现带宽保证和 限制、带宽互借、根据优先级保证、根据i p 地址平均分配带宽等带宽管理功能, 从而可以实现根据不同的流量类型采用不同的流量控制策略,在有限的带宽下 让网络发挥最大作用。 第二节课题任务及所要做的主要工作 为了实现数据流区分服务,本文研究了在l i n u x 的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 等不准确的特征,从数据包的内容抓取某种 协议的真实特征,这种方法可以准确识别出伪装成其他协议的应用流量,如使 用8 0 端口的p 2 p 流量,也可以用来识别运行在非标准端口的特定流量,如运行 在8 0 8 0 端口上的h t t p 流量。同时,这种方法对使用动态交换端口的应用如f t p ( 控制与数据在不同端口实现) 和h 3 2 3 等应用也可以实现完美识别。 基于数据包内容来分析协议,必然会对数据包进行搜索,字符串搜索是一 项很耗系统资源的方法,这就又引出了一个新的问题,即如何在保证协议分析 精确度的情况下,提高协议分析效率,减少对整个数据包的搜索次数,从而提 高整个系统的性能,即系统的吞吐量。从市场的角度看,网络流量管理设备的 吞吐量是一个很重要的参数。本文基于深度包检测思想实现了一种新的协议分 析方法h p a ,并在天津宽宇科技有限公司实验室对传统方法和h p a 在准确度和 吞吐量上做了详细的对比测试。 为了更好地改善网络的q o s 服务质量,本文在l i n u x 的t c q d i s c 框架下, 对各种流量控制算法做了分析和比较,并对h t b 算法的实现做了改进,同时设 计并实现了基于i p 地址的平均分配带宽的流量控制算法。 第三节内容安排 本文分六章进行论述。 第一章是全文的一个概述,主要介绍课题背景、发展现状,以及本文所做 3 第一章引言 的主要工作和论文内容安排。 第二章介绍了一些带宽管理系统的基础知识,并从整体上对本文所研究的 带宽管理系统作了解释。 第三章和第四章分别详细介绍了作者对协议分析部分和流量控制部分所做 的研究。 第五章实现了带宽管理系统,并在实际环境下作了测试,并分析了测试结 果。 第六章对本文进行了总结,并指出本文所做研究的不足和今后的工作方向。 4 第二章带宽管理系统的概念与设计 第二章带宽管理系统的概念与设计 我们把协议分析和流量控制合称为带宽管理系统,l i n u x 系统在很早就提出 了网络q o s 框架,即n e t f i l t e r i p t a b l e s 、t c q d i s c 框架,同时提供了一些简单的 协议分析方法和流量控制算法。l i n u x 作为一个开源系统,它方便了用户在已有 的框架下去实现自己的算法,缩短了软件的研发周期,本文所做的研究就是基 于l i n u x 所提供的q o s 框架。 第一节l i n u x 相关知识介绍 l i n u x 是个开源的类u n i x 系统,它的代码由散布在全球各地成千上万的 程序员设计和维护,其目的是建立不受任何商品化软件版权的制约,并在全世 界都能使用的u n i x 兼容产品。同时l i n u x 也是一套自由软件,用户可以无尝地 获取其源代码,并且可以无偿地得到大量应用程序,用户可以任意地修改和补 充它们,当然,一些底层驱动程序用户也可任意修改。这些在微软w i n d o w s 和 苹果等系统是不可能实现的。l i n u x 虽然是一套免费操作系统,并且是由爱好者 开发的,但它在很多方面上是相当稳定的,尤其是它的网络【i5 】方面,功能强大 而且全面。l i n u x 框架如图2 1 所示: 图2 1l i n u x 原理图 l i n u x 一般有三个主要部分:内核【1 6 】,s h e l l ,实用工具。 5 第二章带宽管理系统的概念与设计 内核 内核是整个系统的心脏,是运行程序和管理硬件设备的核心程序,包括驱 动部分、文件系统、内存管理等。它接受用户送过来的命令并执行它们。 s h e l l s h e l l 是系统的用户界面,提供了用户和内核进行交互操作的种接口,它 接收用户的命令并把它送入内核去执行。其实s h e l l 是一个强大的命令解释器, 它的强大之处还在于,它有自己的编程语言用于对命令的编辑,s h e l l 编程语言 具有普通编程语言的许多特点,比如它也有循环结构和分支控制结构等。l i n u x 也提供像微软w i n d o w s 那样的图形界面,叫x w i n d o w ,在此不再详述。 实用工具 标准的l i n u x 系统都提供了一套实用工具集,它们是专门的程序,例如编辑 器、执行标准的计算操作、过滤器、交互程序等。当然用户也可以制作自己的 类似实用工具集的工具。 l i n u x 操作系统在短短的几年之内得到了迅猛的发展,这与l i n u x 的良好特 性是分不开的。简单的说,l i n u x 具有以下几个特点: 开放性 开放性是指系统遵循o s i 规范,凡是遵循同一国际标准所开发的硬件和软 件,都能彼此兼容,并可以容易的实现互连。 多用户 多用户是指系统资源可以被不同用户同时拥有并使用,即每个用户对自己 的资源都有特定权限,互不影响。 多任务 多任务是现代计算机最主要的一个特点,它是指计算机同时执行多个程序, 而且各个程序在运行时相互独立。l i n u x 系统调度是尽可能地使每一个进程平等 的使用c p u ,由于c p u 的速度非常快,进程调度时间又极其短,所以在用户看 来程序是并行运行的。 设备独立性 设备独立性是指操作系统把所有外部设备统当作文件来看待,只要安装 了它们的驱动程序,任何用户都可以像使用文件样,操纵使用这些文件,而 不必知道它们的具体存在形式。 提供了丰富的网络功能f 1 刁 6 第二章带宽管理系统的概念与设计 完善的网络系统是l i n u x 的一大优点,l i n u x 在通信和网络功能方面优于其 他操作系统。l i n u x 是个完全兼容u n i x 的操作系统,而i n t e r n e t 是在u n i x 领 域中建立并繁荣起来的,并且l i n u x 提供了大量的免费网络软件,可以提供强大 的文件传输、远程访问等功能。 可靠的系统安全 l i n u x 采取了许多安全技术措施,包括对读、写、执行进行权限控制,带保 护的子系统,审计跟踪,核心授权等,这为网络多用户环境中的用户提供了必 要的安全保障。 良好的可移植性 可移植性是指操作系统及其软件可以从一个硬件平台转移到另一个硬件平 台,但仍然可以按其自身的方式运行的能力。l i n u x 可以在从单片机到大型计算 机的任何平台上运行。 第二节n e t f ii t e r i p t a b l e s 框架介绍 l i n u x 是一个优秀的网络操作系统,它在内核集成了防火墙系统【1 8 】。它随着 内核的不断发展,经历了以下几个发展阶段,如表2 1 所示: 表2 1l i n u x 内核防火墙的发展 防火墙名称用户空间工具名称内核版本出现时间 l p f wl p f w a d m 2 01 9 9 4 l p c h a i n si p c h a i n s 2 21 9 9 8 n e t f i i t e r p t a b l e s 2 41 9 9 9 在l i n u x1 1 内核中已经有了包过滤,它是基于b s d 的i p f w ,可以称为是 l i n u x 的第一代防火墙。1 9 9 4 年,它被重新编写,并随着l i n u x2 0 发布,用户 空间工具为i p f w a d m ,它可以称为l i n u x 的第二代防火墙。l i n u x 的第三代防火 墙是在1 9 9 8 年由r u s t yr u s s e l l 负责完成的,他也是现在的l i n u x 内核防火墙维 护负责人,他对原有的防火墙部分作了很大的修改,称之为i p c h a i n s ,同时用户 空间工具也叫做i p c h a i n s 。存这之后不到一年的时间里,r u s 够r u s s e l l 发现了 i p c h a i n s 的一些不足之处,于是又对其做了一些重大调整,实现了l i n u x 内核防 火墙的通用框架n e t f i l t e r ,其用户空间工具称之为i p t a b l e s ,这可以称为l i n u x 7 第二章带宽管理系统的概念与设计 的第四代防火墙。 本文所研究的协议分析部分就是在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 框架主要包括两个基本组件,定义在内 核空间中的通用框架n e t f i l t e r 和数据包选择系统( p a c k e ts e l e c t i o n ) 。其中数据 包选择系统又由两部分组成:在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 。 2 2 1l i n u x2 4 内核中的n e t f ii t e r n e t f i l t e r 核心【1 9 1 工作在i p 层,它在l i n u x 内核网络结构中的位置如图2 2 所 示。n e t f i l t e r 利用模块化实现的,它比较灵活也利于系统的扩展。 图2 2n e t f i l t e r 、i p 层与内核防火墙模块关系图 在内核中通过n e t f i l t e r 结构将防火墙对数据包的处理引入到i p 层中实现, 防火墙的代码与内核i p 层的代码完全分离,从而构成不同的模块,使得防火墙 8 第二章带宽管理系统的概念与设计 的修改与扩充变得容易,这样也为内核中其他模块动态参与i p 层数据包处理提 供了途径。l i n u x 可以支持不同的网络协议,如i p v 4 、i p v 6 、x 2 5 等,在内核中 每一个协议都对应一个特定的协议号,每个协议都可以有自己的防火墙。 因为n e t f i l t e r 工作在i p 层,所以它关心和控制的对象是i p 包。n e t f i l t e r 为 每种网络协议( i p v 4 ,i p v 6 等) 定义了一套钩子( h o o k ) 函数。这些钩子函数 在数据包流经协议栈的几个关键点被调用,这些关键点被称为钩子点( h o o k p o i n t ) 。数据包在经过i p 层时,会检查所经过的h o o k 点是否有注册过的函数, 如果存在函数,n e t f i l t e r 会沿着链表顺序执行这些函数。内核模块可以注册自己 的钩子函数,这样用户就可以通过模块来控制数据包在内核中的行为,可以实 现检查、修改或丢弃数据包及指示n e t f i l t e r 将该数据包传入用户空间的队列。 在n e t f i l t e r 内核模块中,二维数组n fh o o k s n p r o t o n f】m a xh o o k s 定义了钩子函数链表的链表头,它通过协议号和h o o k 点来索引。模块注册钩子 函数就是找到对应协议的防火墙链表的入口,按照优先级将一个包含钩子函数 的结点插入到相应的钩子链表中,而注销过程就是将该钩子结点从相应链表中 删除。 n e t f i l t e r 框架主要包括以下三部分: ( 1 ) 在数据流经的网络协议栈的几个关键位置上,对各种网络协议定义了一 套捕捉点,即h o o k 点。 ( 2 ) 内核模块函数可以被注册到各种协议的任何h o o k 点上。当数据包被送 到n e t f i | t e r 框架时,内核检查在h o o k 点上是否有注册的模块函数,如果有,则 这些函数就可以按照一定的顺序来检查或修改数据包了,并返回如下值: n fa c c e p t 接收,数据包继续正常传输,送往下一钩子函数。 n fd r o p 丢弃,该数据包不被继续传输。 n fs t o l e n 模块接管该数据包,不再继续传输。 n fq u e u e 对数据包进行排队。 n fr e p e a t 再次调用该h o o k 点函数进行处理。 ( 3 ) 排队的数据包可以被传递给用户空间异步地进行处理。 通过定义这样一个框架,可以把包过滤、包处理和网络地址转换( n a t ) 等 都放到这个框架下实现,内核中和防火墙相关的代码被组织的更为有序。 接下来介绍一下n e t f i l t e r 在i p v 4 中的五个钩子点,在钩子点切换对数据包 的处理权,在i p v 4 中,数据包是按照图2 3 所示的过程通过n e t f i l t e r 防火墙【2 0 1 。 9 第二章带宽管理系统的概念与设计 图2 ,3n e t f i l t e r 在 p v 4 中的五个h o o k 点 各个钩子点的具体含义如下: ( 1 ) n fi pp i l er o u t i n g ,通过版本号、校验和等检测的数据包,进入网 络协议栈时,在此点进行源地址转换。 ( 2 ) n fi pl o c a li n ,经过路由查找后,送往本机的包通过此点进行 i n p u t 包过滤。 ( 3 ) n f - i p f o r w a r d ,经过路由检查后,要转发的包通过此检测点进行 f o r w a r d 包过滤。 ( 4 ) n fi pp o s tr o u t i n g ,所以即将通过网络设备出去的包通过此点进 行目的地址转换( 包括地址伪装) 。 ( 5 ) n fi pl o c a lo u t ,本机发出的包通过此检测点进行o u t p u t 包过 滤。 从网络接口传入的i p 数据包从左边进入n e t f i l t e r 防火墙,进行校验以后, 经过第一个钩子函数进行处理;然后就进行路由选择,来决定数据包是发送 本机的还是需要转发:如果是发往本机的数据包,则它经过钩子函数处理后 传递给上层协议;如果是需要转发的数据包,则经过钩子函数处理,然后再 把处理过的数据包转给钩子函数进行处理,最后通过网卡发送到网络上;由 本地产生的数据包经钩子函数处理后,再送到钩子函数处理,然后发送到 网络上。所以任一合法的i p 数据包只能经过三条路径,即- 、一 一 和一 。 2 2 2 包选择系统i p t a b i e s 用户空间程序i p t a b l e s 是防火墙的配置工具,用户可以通过i p t a b l e s 来组建 1 0 第二章带宽管理系统的概念与设计 自己想要的数据包过滤规则集。i p t a b l e s 的语法如下: # i p t a b l e s 一tt a b l e 】c o m m a n d 【m a t c h 】 t a r g e t 】 t a b l e 有三种可用的选项,它们是内核中内建的三张表:n a t ,f i l t e r ,m a n g l e 。 该选项不是必需的,如未指定,则f i l t e r 作为缺省表。绝大部分数据包处理功能 都可能通过在这三个表中填入规则完成。 c o m m a n d 是必需部分,它告诉i p t a b l e s 要做什么,例如,新建规则链、插入 规则、把规则加到链尾或删除规则,具体命令不再详述。 比较重要的两个部分就是m a t c h 和t a r g e t 了,内核主要是以模块的形式实现, 比较灵活。m a t c h 所做的工作就是匹配数据包的特征( 如i p 地址、端口号等) , t a r g e t 的工作是如何处理数据包( 如接受、丢弃、返回等) ,把数据包交给m a t c h 模块,如果数据包满足m a t c h 模块的规则,则把数据包交给t a r g e t 模块去处理, 否则跳到下一条规则。一般m a t c h 部分可以有一个或多个,也可以没有,但是 t a r g e t 只能有一个。 f i l t e r 表( 过滤表) ,该表的功能是过滤数据包,但不对数据包作任何修改, 它里面的钩子函数的返回值可以是接受也可以是拒绝。它在n fi pl o c a lr n 、 n fi pf o r w a r d 和n fi pl o c a lo u t 三个点注册了钩子函数,也就是说所 有的数据包都要经过f i l t e r 表的处理。 n a t 表( 网络地址转换表) ,该表以c o n n e c t i o n t r a c k i n g ( 连接跟踪) 模块为 基础的,仅对每个连接的第一个数据包进行匹配和处理,然后由连接跟踪模块 将处理结果应用到该连接的第一个数据包以后的所有数据包。n a t 表在 n fi pp r er o u t i n g 和n fi pp o s tr o u t i n g 注册了钩子函数,提供对本 地数据包( 出入) 的地址转换。n a t 仅对数据包头的地址信息进行修改,而不修 改数据包内容,按所修改的内容,n a t 可分为源n a t ( s n a t ) 和目的n a t ( d n a t ) 两类,前者修改连接第一个数据包的源地址部分,后者修改连接第一个数据包 的目的地址部分,s n a t 可实现i p 地址伪装,而d n a t 是实现透明代理的基础。 m a n g l e 表( 包处理表) ,此表中的钩子函数可以对数据包的内容进行修改, 可供修改的报文内容包括m a r k 、t o s 、t t l 等部分,m a n g l e 表的钩子函数嵌 入在n e t f i l t e r 的n fi pp r er o u t i n g 和n fi pl o c a lo u t 两处。 内核编程人员可以模块的形式注册自己的m a t c h 和t a r g e t l 2 1 】钩子函数,实现 对数据包的监控与控制。 下面以一条简单的i p t a b l e s 规则为例进行说明: 第二章带宽管理系统的概念与设计 # i p t a b l e s - tm a n g l e af o r w a r d pt c p - d2 0 2 1 1 3 1 6 1 0 - jd r o p 它首先是m a n g l e 表的一条规则,加入到f o r w a r d 链,有两个m a t c h 模块, 即- pt c p 和d2 0 2 1 1 3 1 6 1 0 ,第一个意思是t c p 协议的包,第二个意思是目的 地址为2 0 2 1 1 3 1 6 1 0 的包,t a r g e t 模块为? jd r o p ,意思为丢弃,整个i p t a b l e s 规则的意思就是,丢弃送往地址为2 0 2 1 1 3 1 6 1 0 的t c p 包。 以上只是对i p t a b l e s 的一个简介,具体原理和使用方法可以参阅官方帮助文 档【2 2 1 。 2 2 3 连接跟踪c o n n e c t i o nt r a c k i n g 在n e t f i l t e r 系统中,连接跟踪是一个非常重要的结构,它用来记录数据包之 间的关系,记录连接的状态,这里的连接并不仅仅指的是t c p 连接,它也包括 u d p 、i c m p 等协议的虚拟连接。连接跟踪作为一个单独的模块被实现,这样设 计的目的是在此基础上容易扩展为一个新的包过滤系统。网络地址转换就是建 立在它之上。在h o o k 点n fi pp r er o u t i n g 、n fi pl o c a lo u t 上,连 接跟踪模块会判断数据包属于哪条连接,它把数据包划分为以下几类: n e w ,表示新的连接。 e s t a b l i s h e d ,表示已经建立的连接。 r e l a t e d ,表示新的连接,但与某个已经建立的连接有关系。 i n v a l i d ,无效,和任何连接都没有关系。 连接跟踪的关键数据结构i pc o n n t r a c k 结构如下所示: s t r u c ti p _ c o n n t r a c k s t r u c tn f c o n n t r a c kc t _ g e n e r a l ;结构的引用计数幸 u n s i g n e dl o n gs t a t u s ;产连接的状态奎 不同连接方向上的t u p l e 的h a s h 值 s t r u c ti p _ c o n n t r a c k _ t u p l e _ h a s ht u p l e h a s h i pc td i r _ m a x ; s t r u c tt i m e r l i s tt i m e o u t ; s t r u c tl i s t h e a ds i b l i n g _ l i s t ; 与此结构关联的e x p e c t 链表 u n s i g n e di n te x p e c t i n g ;产与此连接关联的e x p e c t 的数量木 s t r u c ti p 产指向创建此结构的 母,_ c o n n t r a c k * m a s t e r ;e x p e c t 1 2 第二章带宽管理系统的概念与设计 s t r u c ti p _ _ c o n n t r a c k _ h e l p e r 木h e l p e r ;严与此结构关联的h e l p e r s t r u c tn f c t i n f oi n f o s i p _ c 1j 她m b e r ; u n i o ni p _ _ c o n n t r a c k _ _ p r o t op r o t o ; u n i o ni p _ c o n n t r a c k _ _ h e l ph e l p ; s t r u c t s t r u c ti p _ n a t _ i n f oi n f o ; u n i o ni p _ c o n n t r a c k _ n a t _ h e l ph e l p ; i n tm a s q _ _ i n d e x ; ln a t ;严网络地址转换相关的部分 ) 在这个结构中,t u p l e h a s h 【】记录了此连接的正反两个方向数据包的参数,这 些参数包括数据包协议、源i p 地址源端口、目的i p 地址目的端口等,如果没 有端e l ,比如i c m p 协议,就用它的i d ,t y p e ,c o d e 域来代替。每个连接都根据 这些参数计算哈希值并把它连接到一个全局的哈希表中。连接是双向的,所以 每个连接在哈希表中出现两次,分别匹配连接的发起和回应两个方向上的包。 我们可以适当地修改i p结构,可以加入我们想要的字段,从而扩展了conntrack i p 的功能,本文所研究的协议分析算法就是用结构体保conntrack i pc o n n t r a c k 存了些数据包内容相关的连接信息用于协议分析。 不同协议连接跟踪的建立过程不同,下面分别以t c p 、u d p 和i c m p 的过 程为例来说明,a 、b 为两台主机,如图2 4 所示: ab 图2 4 连接建立拓扑图 t c p 连接跟踪的建立可以用表2 2 来说明,它是一个典型的三次握手过程: 1 3 第二章带宽管理系统的概念与设计 表2 - 2t c p 连接建立时的状态变化 包的传输方向 数据包头标志位连接状态补充说明 a 专bs y n i p c t n e w a 发起连接请求 b 专as y n a c k i p c t e s t a b l i s h e d b 响应a 的连接 + i p c t i s r e p l y 请求 a 专ba c k i p c t e s t a b l i s h e d a 确认b 的响应 u d p 连接跟踪的建立可以用表2 3 来说明: 表2 3u d p 连接建立时的状态变化 包的传输方向连接状态补充说明 a 专b i p c t n e w a 向b 发送第一个u d p 包 b 专a i p c t e s t a b l i s h e db 向a 发送u d p 数据包( 端口 + i p c t - i s r e p l y 不变) i c m p 连接跟踪的建立可以用表2 4 来说明: 表2 4i c m p 连接建立时的状态变化 包的传输方向连接状态补允说明 a 专b i p c n e w a 向b 发送i c m p 查询包 b 专a i p c t e s t a b l i s h e d b 向a 发送l c m p 回应包 + i p _ c t i s r e p l y i c m p 协议也是一个无状态的协议,连接跟踪记录的是查询包和查询应答 包,只有在记录了查询包的情况下才允许相应查询应答包通过。 第三节带宽管理与t c q d i s c 框架 t c l 2 3 是l i n u x 平台下的一个功能非常强大的流量控制工具,从l i n u x 2 2 开 始并入l i n u x 内核,它把队列规定( q u e u i n gd i s c i p l i n e ) 、类( c l a s s ) 、过滤器( f i l t e r ) 结合在一起,其性能可以与专业的带宽管理系统相媲美。t c 的目的就是力图区 分不同的用户和业务,根据其需求的不同而分配不同的带宽。t c 给用户提供了 一个进行流量控制的接口,通过这个接口可以改变l i n u x 内核对其接收到的数据 包的处理方式。 1 4 第二章带宽管理系统的概念与设计 3 3 1带宽管理的基本原理 带宽管理的基本原理是充分运用q o s 技术中定义

温馨提示

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

评论

0/150

提交评论