一种网络测试系统和方法

文档序号:7690249阅读:117来源:国知局
专利名称:一种网络测试系统和方法
技术领域
本发明涉及网络测试领域,尤其涉及对基于netflow协议的网络流量分析设备进行测试的网络测试系统及网络测试方法。
背景技术
网络流量的复杂性给网络相关的运营维护带来了巨大挑战,网络运营维护人员通常关心的问题包括两大类一类是与网络和业务规划相关的问题,即关于网络流量成分组成以及地域分布的情况;而另一类是与网络安全运营相关的问题。诸如流量分析产品之类的网络产品可以解决运维人员这两个方面的问题。就网络安全运营而言,主要涉及对网络异常流量的分析和控制。网络异常流量对网络的影响包括占用带宽资源使网络拥塞,造成网络丢包、时延增大,严重时可导致网络不可用;以及占用网络设备系统资源(CPU、内存等),使网络不能提供正常服务。目前已经存在各种网络流量分析设备来通过监控流量大小的变化来帮助系统管理员发现异常流量,特别是大流量异常流量的流向,从而进一步帮助系统管理员查找异常流量的源、目的地址。现有的网络流量分析设备通常利用netflow进行网络流量分析。Netflow为思科公司开发的一种用于收集网络流量信息的网络协议,目前netflow已经成为业界用于采集网络流量信息的标准协议,该协议具有占用网络带宽小,并且采集数据全等特点,并且适合用于在流量较大的网络中。图1示出了现有的对利用netflow的网络流量分析设备进行测试的网络测试系统 100。如图1所示,该测试系统100包括测试仪110、交换机120、目标网络设备130、流量分析设备140和测试控制设备150。如图1所示,在进行测试时,由测试仪110发出预先定制的测试网络包到目标网络设备130,这些测试网络包都需要经由交换机120才能到达目标网络设备130。交换机120上配置了 netflow功能,因此,交换机120利用netflow功能来对流经交换机的测试网络包进行数据统计,以产生根据netflow协议的网络统计数据包, 并将该网络统计数据包发送到流量分析设备140进行分析。测试控制设备150根据测试仪 110发出的异常流量能否被流量分析设备140分析出来确定流量分析设备140能否正确地对网络流量进行分析。可以看出,在图1所示的网络测试系统100中,即使为了对流量分析设备140能否正确地根据netflow数据包来判断出是否存在异常流量,也必须构造包括测试仪110、交换机120和目标网络设备130在内的复杂网络测试系统,因此,现有的网络测试系统100存在成本较大的缺点。另外,由于流量分析设备140是针对有交换机120提供的netflow数据包而进行判断的,如果交换机120中有关netf low的配置出现错误,也会导致流量分析设备无法正常工作,因此,现有的网络测试系统100由于涉及多个网络单元,从而增加了测试失败的风险。因此,所希望的是一种可以简单和可靠的方式来对基于netflow协议的流量分析设备进行测试的网络测试系统和方法。

发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决或者减缓上述问题的网络测试系统和方法。根据本发明的一个方面,提供了一种网络测试系统,包括客户机,适于直接构造以netflow协议封装的网络流量信息数据包,并发送所构造的网络流量信息数据包;以及流量分析设备,接收所述以netflow协议封装的网络流量信息数据包,并基于所述网络流量信息数据包生成流量分析结果。根据本发明的网络测试系统通过由客户机直接构造并发送以netflow协议封装的网络流量信息数据包,省略了测试系统中的测试仪、交换机和目标网络设备等测试单元, 这大大简化了测试系统所采用的网络拓扑结构,使得测试更加可靠和快捷。可选地,根据本发明的网络测试系统还包括测试控制设备,用于控制所述客户机来构造表示异常流量的网络流量信息数据包,以及根据所述流量分析设备的流量分析结果来确定所述流量分析设备是否检测出所述异常流量。利用测试控制设备,一方面测试控制设备可以控制客户机来产生各种代表异常和正常流量的网络流量信息数据包,另一方面测试控制设备可以获取流量分析设备的流量分析结果,并根据该流量分析结果来判断流量分析设备是否正确地做出了流量分析。这样,可以使得测试过程更加自动化,例如可以自动地进行多个测试案例,并确定流量分析设备在哪些方面存在欠缺。根据本发明的另一个方面,提供了一种网络测试方法,包括步骤直接构造并发送以netflow协议封装的网络流量信息数据包;以及接收所述以netflow协议封装的网络流量信息数据包,并基于所述网络流量信息数据包生成流量分析结果。根据本发明的网络测试系统和网络测试方法基于对netflow协议的理解,通过在客户机处直接构造根据netflow协议的网络流量信息数据,从而直接消除了对启用 netflow功能的路由器的需要。另外,由于可以根据输入参数来构造各种根据netflow协议的网络流量信息数据,因此可以方便地对作为测试目标的流量分析设备进行各种流量分析测试。


通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中
图1示出了现有的网络测试系统的示意图; 图2示出了根据本发明一个实施例的网络测试系统的示意图; 图3示出了根据本发明一个实施例的网络测试系统中的客户机的示意图;以及图4示出了根据本发明一个实施例的网络测试方法的流程图。
具体实施方式
下面结合附图和具体的实施方式对本发明作进一步的描述。图2示出了根据本发明一个实施例的网络测试系统200的示意图。如图2所示, 网络测试系统200包括客户机210和流量分析设备220。和图1所示的现有网络测试系统 100不同之处在于,在网络测试系统200中,并不需要交换机和目标网络设备,而且客户机 210和图1中的测试仪也存在明显不同。客户机210直接构造以netflow协议封装的网络流量信息数据包,并且将所构造的网络流量信息数据包发送到流量分析设备220来进行分析。流量分析设备220,也就是网络测试系统200中的测试目标,和图1所示的流量分析设备140类似,接收来着客户机210的、以netflow协议封装的网络流量信息数据包,并基于所述网络流量信息数据包生成流量分析结果。网络测试系统200通过由客户机210直接构造根据netflow协议的网络流量信息数据,从而省略了对交换机和目标网络设备的需要, 这大大简化了测试系统200的拓扑结构。可选地,为了更方便地针对流量分析设备210进行测试,测试系统200还包括测试控制设备230,用于控制整个测试过程。具体而言,测试控制设备230控制客户机210来构造各种表示正常和异常流量的网络流量信息数据包,随后根据流量分析设备220的流量分析结果来确定该流量分析设备220是否检测出正常和异常流量。利用测试控制设备230,可以自动地控制客户机210来构造各种根据netflow协议的网络流量信息数据包,从而可以自动地进行多个测试案例的测试,从而加快测试速度。图3示出了网络测试系统200中的客户机210的示意图。如图3所示,客户机210 包括UDP报头构造器310、netfloW报头构造器320、NetflOW协议数据单元构造器330和网络流量数据包生成器;340。由于netflow协议属于UDP协议,而UDP协议属于TCP/IP协议族。根据TCP/IP协议族的多层协议分部的特点,一个根据netflow协议的数据包通常包括 UDP报头、netf low协议报头和netf low协议数据单元(PDU)。因此,相应的UDP报头构造器 310用于构造UDP报头;netflow报头构造器320用于构造netf low报头;以及netflow协议数据单元构造器330用于构造netflow协议数据单元(PDU)。UDP报头的具体细节在现有技术中早已进行了详细描述,这里不在进行论述。根据本发明的一个实施例,netflow报头可以具有如下格式
struct mynetfIowhdr{
—ul6 nh—version; —ul6 nh—count; —u32 nh_ sysup time ; struct timeval nh—unixtime —u32 nh—sequence; —u8 nh— engine— type ; —u8 nh_ engine_ id; —ul6 nh_pad;
};
而netflow协议数据单元(PDU)可以具有如下格式
struct myrecord{
struct in_addr nf—src—ip;/*pdu src ip氺/
/* net flow version */ /* net flow packet count */ /* net flow system uptime */ /* session generate time */
/* net flow sequence */ /* net flow engine type */ /* net flow engine id */ /* net flow pad */struct in—addr nf_dst_ip; struct in—addr nf_nexthop_ip, —ul6 ηf_input; —ul6 ηf—output; —u32 ηf—packets; —u32 ηf—octets; —u32 ηf_first; —u32 nf_last; —ul6 nf—src—port; —ul6 nf_dst_port; —u8 nf_padl; —u8 nf_ tcpflags; —u8 nf_proto; —u8 nf_ tos; —ul6 nf_src_as; —ul6 nf_dst_as; —u8 nf—src—mask; —u8 nf—dst—mask; —ul6 nf_pad2;
/氺pdu des tip氺/ /^pdu next hop ip 氺/
/^pdu input interface氺/ /^pdu output interface氺/ /^pdu packets氺/ /氺pdu octets*/
/^pdu start time氺/ /^pdu end time氺/ /氺pud src port氺/ /^pdu dest port氺/
/^pdu tcpflags氺/ /^pdu protocol氺/ /^pdu tos氺/ Z氺pdu src as氺/ Z氺pdu dest as氺/ Z氺pdu src mask*/ Z氺pdu dest mask*/
在分别由UDP报头构造器310构造了 UDP报头、netflow报头构造器320构造了 netflow报头以及netflow协议数据单元构造器330构造了 netflow协议数据单元(PDU) 之后,网络流量数据包生成器340将UDP报头、netflow报头和netflow协议数据单元封装在一起以便生成根据netflow协议的网络流量数据包。可选地,客户机210还包括接口单元350,用于获取构造网络流量数据包所需要的各种netflow参数,用于将相关的参数发送到相应的UDP报头构造器310、Netflow报头构造器320和Netflow协议数据单元构造器330,从而构造相应的UDP报头、netflow报头和 netflow协议数据单元。这样,网络测试系统200中的测试控制设备230可以通过自动地向接口单元350提供各种测试案例所需的参数来生成代表各种正常和/或异常流量的网络流量信息数据包,从而对流量分析设备210进行全面的测试。应当注意的是,客户机210中的各个部件可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现。根据本发明的一个实施例,当客户机210中的各个部件以软件模块实现时,可以利用现有的hping (http://www. hping. org/)软件框架。Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令, 但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,因此, hping常用于检测网络和主机。根据本发明的一个实施例,可以通过对现有hping代码框架进行修改,从而加入根据本发明的客户机210中的各个部件,以使得修改后的hping可以直接发送根据netflow协议封装的网络流量信息数据包,来实现根据本发明的客户机210。 因此,以此方式实现的客户机还支持TCP、UDP、ICMP和RAW-IP协议。
如上所述,根据在根据本发明的网络测试系统中,由于客户机210可以直接生成并发送以netflow协议构造的网络流量信息数据包,这样,针对流量分析设备220的测试就不需要交换机、目标网络设备和用于产生各种网络流量的测试仪,这大大简化了网络测试系统的拓扑结构。图4示出了根据本发明一个实施例的网络测试方法400的流程图。该网络测试方法400适于在如图2所示的网络测试系统200中执行。如图4所示,该测试方法400始于步骤S410,其中直接构造并发送以netflow协议封装的网络流量信息数据包,这个步骤可以在例如图2的客户机210中执行。随后在步骤S420中,接收在步骤S410中构造的以 netflow协议封装的网络流量信息数据包,并基于该网络流量信息数据包生成流量分析结果。该步骤S420可以在例如图2所示的、作为测试目标的流量分析设备220中执行。可选地,该测试方法400还可以包括步骤S430,用于判断步骤S420的流量分析结果是否正确。另外,在步骤S410中构造网络流量信息数据包时,会构造代表各种正常流量和/或异常流量的网络流量信息数据包,从而使得步骤S430的判断更为准确。可选地,当该测试方法400用于自动地进行多个测试案例的测试时,测试方法400 还包括步骤S440,其中判断是否还有针对其他测试案例的测试,如果有,则该测试方法继续到步骤S450,以便加载新的测试案例,并根据该测试案例的要求来调用恰当的参数,并返回到步骤S410,以便根据新调用的参数来直接构造并发送以netflow协议封装的网络流量信息数据包。相反,如果在步骤S440确定所有测试案例都测试完毕,则在步骤S460输出测试结果,并结束该方法。另外,可选地,在步骤S410中,可以有多种方式来构造以netflow协议封装的网络流量信息数据包。根据本发明的一个实施方式,根据TCP/IP协议的分层特性,步骤S410可以包括下列步骤构造UDP报头;构造netflow报头;构造netf low协议数据单元;以及封装所述UDP报头、netflow报头以及netflow协议数据单元来生成所述网络流量数据包。另外,步骤S410还包括步骤获取构造网络流量数据包所需要的参数,并根据所述参数构造相应的UDP报头、netflow报头和netflow协议数据单元。根据本发明的方法除了构造基于netflow协议的网络流量信息数据包之外,还适于直接构造以TCP、UDP或者ICMP协议封装的测试数据包;并根据这些测试数据包产生流量分析结果。根据本发明所提供的方法,可以通过直接构造netflow流量,模拟各种异常流量和攻击,用来测试网络流量分析设备,从而大大简化了现有测试系统所需要的网络拓扑结构,节省了测试步骤及时间。另外,通过利用参数来定制代表各种正常/异常流量的网络流量信息数据包,可以模拟各种攻击(如syn flood, ack flood等)以便进行攻击检测测试。应当注意的是,在本发明的客户机210的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的测试系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中, 不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
权利要求
1.一种网络测试系统,包括客户机,适于直接构造以netflow协议封装的网络流量信息数据包,并发送所构造的网络流量信息数据包;流量分析设备,接收所述以netflow协议封装的网络流量信息数据包,并基于所述网络流量信息数据包生成流量分析结果。
2.如权利要求1所述的网络测试系统,还包括测试控制设备,用于控制所述客户机来构造表示异常流量的网络流量信息数据包,以及根据所述流量分析设备的流量分析结果来确定所述流量分析设备是否检测出所述异常流量。
3.如权利要求1或者2所述的网络测试系统,其中所述客户机包括 UDP报头构造器,用于构造UDP报头;Netflow报头构造器,用于构造netflow报头; Netflow协议数据单元构造器,用于构造netflow协议数据单元;以及网络流量数据包生成器,用于封装所述UDP报头构造器构造的UDP报头、netflow报头构造器构造的netf low报头以及Netflow协议数据单元构造器构造的netf low协议数据单元来生成所述网络流量数据包。
4.如权利要求3所述的网络测试系统,其中所述客户机还包括接口单元,用于获取构造网络流量数据包所需要的参数,并将所述参数发送到所述UDP 报头构造器、Netf low报头构造器和Netflow协议数据单元构造器,以便构造相应的UDP报头、netflow报头和netflow协议数据单元。
5.如权利要求1-4中的任一个所述的网络测试系统,其中所述客户机还适于直接构造以TCP、UDP或者ICMP协议封装的测试数据包;以及所述流量分析设备适于接收所述客户机发送的各种测试数据包,并基于所接收的测试数据包产生流量分析结果。
6.一种网络测试方法,包括步骤直接构造并发送以netflow协议封装的网络流量信息数据包;以及接收所述以netflow协议封装的网络流量信息数据包,并基于所述网络流量信息数据包生成流量分析结果。
7.如权利要求6所述的网络测试方法,其中所构造的以netflow协议封装的网络流量信息数据包为指示异常流量的网络流量信息数据包,并且该方法还包括步骤根据所述流量分析结果来确定是否检测出所述异常流量。
8.如权利要求6或者7所述的网络测试方法,其中所述直接构造以netflow协议封装的网络流量信息数据包的步骤包括构造UDP报头;构造netflow报头;构造netflow协议数据单元;以及封装所述UDP报头、netflow报头以及netflow协议数据单元来生成所述网络流量数据包。
9.如权利要求8所述的网络测试方法,其中所述直接构造以netflow协议封装的网络流量信息数据包的步骤还包括用于获取构造网络流量数据包所需要的参数,并根据所述参数构造相应的UDP报头、 netflow报头和netflow协议数据单元。
10.如权利要求6-9中的任一个所述的网络测试方法,还包括步骤 直接构造以TCP、UDP或者ICMP协议封装的测试数据包;以及接收所述测试数据包,并基于所接收的测试数据包产生流量分析结果。
全文摘要
本发明公开了一种网络测试系统,包括客户机,适于直接构造以netflow协议封装的网络流量信息数据包,并发送所构造的网络流量信息数据包;以及流量分析设备,接收所述以netflow协议封装的网络流量信息数据包,并基于所述网络流量信息数据包生成流量分析结果。本发明还公开了一种适于在该网络测试系统中执行的网络测试方法。
文档编号H04L12/26GK102209010SQ201110155558
公开日2011年10月5日 申请日期2011年6月10日 优先权日2011年6月10日
发明者李志昕, 薛瑞芳 申请人:北京神州绿盟信息安全科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1