网络设备虚拟测试系统的设计方法

文档序号:7740316阅读:800来源:国知局

专利名称::网络设备虚拟测试系统的设计方法
技术领域
:本发明涉及测试领域,具体涉及到虚拟测试系统,尤其是网络设备的虚拟测试系统。(二)
背景技术
:网络设备内部一般包括两部分网络芯片和系统软件。为了提高网络设备处理报文的速度,减少CPU的负荷,一般将需要高速处理的逻辑放到网络芯片里面,实现硬件高速处理,其他部分则由系统软件处理。网络设备的测试工作主要包括两部分对网络芯片的测试和对系统软件的测试。现在对网络芯片的测试一般采用硬件仿真,将网络芯片的RTL代码编译综合成目标文件,然后装载到仿真板的FPGA里面,最后在仿真板上进行测试。对系统软件的测试一般在软件开发板上进行,因为开发板上需要网络芯片,所以一般需要等到网络芯片流片完成后才能进行。如果想要提前测试,縮短系统软件的研发周期,也可以在硬件仿真板上进行。测试过程中所需的测试仪器主要包括测试仪表和被测设备。测试仪表一般是IXIA或SmartBits等,主要用来发送报文,接收报文和分析结果。被测设备为硬件仿真板或软件开发板,上面装载有被测目标文件。这种测试方法有二个主要的缺点1)需要大量的测试仪器,测试成本非常高。测试仪表,硬件仿真板和开发板都非常昂贵,由于测试工作量很大,一般需要很多测试人员同时测试,因此对测试仪器的需求量很大。同时如果要进行复杂拓扑结构的测试,就需要多台被测设备,这样进一步增加了对测试仪器的需求量。2)诊断问题不方便。由于测试是在硬件仿真板上进行,当测试中发现了问题,没法轻易地跟踪网络芯片内部的处理流程,使得对许多问题的诊断比较麻烦。(三)
发明内容发明的目的在于克服上述不足,提供一种网络设备虚拟测试系统的设计方法,实现在虚拟的环境中完成对网络设备的测试,节省在网络设备测试中对测试仪器的需求,并且使得诊断测试中发现的问题更加简单方便。本发明中的特定名词解释模拟测试仪表用软件实现的测试仪表,和物理的测试仪表类似,可以进行发送报文,接收报文和分析结果。将模拟测试仪表的网口跟计算机上的网口绑定,可以实现从计算机上的网口发送出报文,或者接收报文,并可以分析接收报文的结果。模拟网络芯片用软件实现的网络芯片,从用户角度看,除了处理速度可能不一样和不关心的部分,模拟网络芯片对报文的处理跟真实网络芯片完全相同。将网络芯片上的网口跟计算机上的网口绑定,可以实现从计算机上的网口上接收报文,然后对其进行相应的处理,最后可以再将报文从计算机网口转发出去。为了实现上述目的,本发明的技术解决方案是一种网络设备虚拟测试系统的设计方法,通过软件模拟网络设备中的网络芯片和测试仪表,模拟网络芯片和测试仪表都是运行在虚拟机上,运行模拟网络芯片的虚拟机为被测设备,运行模拟测试仪表的虚拟机为测试仪表,模拟网络芯片和模拟测试仪表的网络端口映射到虚拟机的网络端口,虚拟机的网口间进行虚拟连接;从用户角度看,除了处理速度可能不一样和虚拟测试中不关心的部分,模拟网络芯片对报文的处理跟真实网络芯片完全相同;系统软件可以使用模拟网络芯片为其提供API与之交互;模拟测试仪表可以根据用户配置,发送报文,接收报文和分析报文结果。上述模拟网络芯片的端口与虚拟机的网口的映射关系可以在端口映射表中动态配置。上述模拟测试仪表的端口与虚拟机的网口的映射关系可以在端口映射表中动态配置。上述模拟网络芯片和模拟测试仪表同样可以运行在真实的计算机上,通过真实的网线连接计算机的网口,构成一个可以跟其他真实网络设备互通的测试系统。上述模拟网络芯片中,如果某部分功能在测试中不关心,则此部分功能可以不在模拟网络芯片中实现或者与真实网络芯片实现得不同。上述模拟网络芯片中可以增加额外的调试系统,方便问题的诊断。上述虚拟机是一台抽象的计算机,拥有网络接口设备,文件系统,能够在其中执行其他应用程序,进行系统调用。上述每台虚拟机拥有一个管理网口,测试人员可以远程登陆到每台虚拟机上,实现自动化测试。当此测试系统应用在真实计算机环境中时,如果模拟网络芯片和模拟测试仪表的端口与计算机的网口一对一地映射,这样就需要很多物理网卡。为了节约成本,可以通过在报文中插入一个字段,携带报文的源端口信息,这样可以将多个模拟网络芯片或者模拟测试仪表的端口映射到一个物理网络端口,减少测试中所需计算机网卡的数量。上述运行系统软件的虚拟机跟真实的被测设备使用的操作系统平台相同。本发明网络设备虚拟测试系统解决了上述的两个问题。通过使用软件模拟网络芯片和测试仪表,然后分别运行在虚拟机上,网络芯片和测试仪表的网口分别映射到虚拟机上的网口,然后连接虚拟机的网口,就可以构建出所需的测试网络拓扑结构。所有虚拟机都是运行在测试服务器上,不需要任何物理测试仪表和被测设备。当测试中发现了问题,可以使用调试工具跟踪模拟网络芯片处理报文的内部流程,使得对很多问题的诊断变得更加简单方便。本发明的有益效果是通过本发明,可以实现在虚拟测试环境中完成对网络设备的测试,而不需要大量的物理测试设备,大大节省了测试成本。同时可以使用软件调试工具跟踪模拟网络芯片内部的处理过程,使得问题的诊断更加便利。图1是本发明所提供的虚拟测试系统示意图。5图2是本发明虚拟测试系统搭建的流程图。图3是本发明模拟网络芯片处理单播报文的流程图。图4是本发明测试系统应用在真实计算机上的系统示意图。图5是本发明报文格式示意图。标号说明1、测试服务器11、虚拟机111、虚拟机网口112、模拟测试仪表113、模拟网络芯片114、系统软件12、虚拟网络连接4X、测试系统应用在真实计算机环境中的测试组件41、计算机411、计算机网口42、物理网线5X、报文中的域51、以太网报文二层头52、报文载荷53、报文校验54、内部报文头541、内部报文头的其他信息542、源端口号。具体实施例方式图1示出了本发明的一个实施例。在此实施例中,虚拟测试系统为本发明提供的虚拟测试系统,运行在测试服务器上。虚拟测试系统由一台或多台虚拟机组成,每台虚拟机拥有指定数量的网口,如果某台虚拟机被用作测试仪表,则此虚拟机上需运行模拟测试仪表。如果某台虚拟机被用作被测设备,则此虚拟机上需运行模拟网络芯片,如果是进行系统软件测试,同时还需要在此虚拟机上运行系统软件。虚拟机的网口之间的连接为虚拟网络连接。模拟网络芯片或者模拟测试仪表的网口跟虚拟机的网口是一一映射的,这个映射信息存放在一张端口映射表中。虚拟机的网口接收到报文后,会被转交给模拟网络芯片或者模拟测试仪进行处理,模拟网络芯片或者模拟测试仪根据接收报文的虚拟机网口在端口映射表中查找对应的模拟网络芯片端口号或者模拟测试仪的端口号。表1为一张模拟网络芯片的端口映射表。6<table>tableseeoriginaldocumentpage7</column></row><table>表1模拟网络芯片或者模拟测试仪表的每个网络端口都有一个对应的虚拟机的网口。一般虚拟机上会多创建一个网口,作为虚拟机自身的管理网口,方便测试人员远程登陆到虚拟机上,实现自动化测试。模拟网络芯片会为系统软件提供与真实网络芯片类似的API。这些API主要包括配置网络芯片,与网络芯片间的报文交互等等。图2示出了虚拟测试系统的创建流程图。首先进入步骤201,运行一台虚拟机,虚拟机上创建指定数量的网口,然后进入步骤202。在步骤202中,判断此虚拟机是否被用着被测设备,如果是,则进入步骤203,否则,则虚拟机就是被用着测试仪表,因此进入步骤204。在步骤203中,运行模拟网络芯片,然后进入步骤205。在步骤204中,运行模拟测试仪表,然后进入步骤207。在步骤205中,判定是否需要进行系统软件测试,如果需要,则进入步骤206,否则进入步骤207。在步骤206中,运行系统软件,然后进入步骤207。在步骤207中,判定是否还需要创建测试仪表或者被测设备。这要根据测试的需求判断,如果还需要创建,则返回步骤201,否则进入步骤208。在步骤208中,按照测试网络拓扑,连接虚拟机间的网口,至此,虚拟测试系统创建完成。图3示出了模拟网络芯片处理单播报文的流程图。首先进入步骤301,判定接收到的报文是否来自虚拟机网口,如果是,则进入步骤302,否则此报文就是来自系统软件,因此进入步骤303。在步骤302中,在端口映射表中查找接收到此报文的虚拟机网口所对应的模拟网络芯片的端口号,此端口号被用作报文的源端口号。然后进入步骤304。在步骤303中,将报文的源端口号设置为系统软件所对应的端口号。然后进入步骤304。在步骤304中,模拟网络芯片根据内部处理逻辑,配置和报文所带信息,对报文进行处理。报文处理包括报文目的端口查询,报文编辑等等。然后进入步骤305。在步骤305中,判断在步骤304中查询出来的报文的目的端口为那一类,如果报文的目的端口为虚拟机网口所对应的端口,则进入步骤306。如果报文的目的端口为系统软件所对应的端口,则进入步骤308。否则进入步骤307。在步骤306中,再次查找端口映射表,找到与报文目的端口对应的虚拟机的网口,然后将报文从此网口发出。至此,此报文处理结束。在步骤307中,丢弃此报文。至此,此报文的处理结束。在步骤308中,将报文发转交给系统软件,由系统软件对报文做进一步处理。至此,此报文的处理结束。图4示出了测试系统应用在真实计算机环境中的实施例。运行有模拟测试仪表的计算机就是一台功能相对简单的测试仪表。运行有模拟网络芯片和系统软件的计算机就是一台通过软件转发的被测设备。使用物理网线连接这些计算机的网口,就可以搭建成真实的测试网络拓扑。这些计算机还可以跟其他真实的网络设备进行互联,进行产品的互通测试。由于模拟网络芯片或者模拟测试仪表的每个网口都需要跟计算机上的一个物理网口绑定,这样当模拟网络芯片或者模拟测试仪表有很多端口的时候,就相应地需要很多物理网卡,这样就增加了测试成本。为了减少对物理网卡的需求,可以将报文的端口信息放到报文内,这样可以实现多个模拟网络芯片或者模拟测试仪表的端口映射到一个物理网□。图5示出了携带有端口信息的以太网报文格式。端口信息放到一个内部报文头中。发送端会将它所期望的接收端的接收端口的端口号放到内部报文头中,然后插入到报文内,接收端收到此报文后,首先会提取内部报文头中的端口号信息,此端口号就会作为报文的源端口号,然后删除内部报文头,最后对报文进行进一步处理。权利要求一种网络设备虚拟测试系统的设计方法,其特征在于所述方法是通过软件模拟网络设备中的网络芯片和测试仪表,模拟网络芯片和模拟测试仪表都是运行在虚拟机上,运行模拟网络芯片的虚拟机为被测设备,运行模拟测试仪表的虚拟机为测试仪表,模拟网络芯片和模拟测试仪表的网络端口映射到虚拟机的网络端口,虚拟机的网口间进行虚拟连接;从用户角度看,除了处理速度可能不一样和虚拟测试中不关心的部分,模拟网络芯片对报文的处理跟真实网络芯片完全相同;系统软件可以使用模拟网络芯片为其提供API与之交互;模拟测试仪表可以根据用户配置,发送报文,接收报文和分析报文结果。2.根据权利要求1所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述模拟网络芯片和模拟测试仪表的端口与虚拟机的网口的映射关系在端口映射表中动态配置,所述模拟测试仪表的端口与虚拟机的网口的映射关系在端口映射表中动态配置。3.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述模拟网络芯片和模拟测试仪表同样可以运行在真实的计算机上,通过真实的网线连接计算机的网口,构成一个可以跟其他真实网络设备互通的测试系统。4.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述模拟网络芯片中,如果某部分功能在测试中不关心,则此部分功能不在模拟网络芯片中实现或者与真实网络芯片实现得不同。5.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述模拟网络芯片中增加额外的调试系统。6.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述虚拟机是一台抽象的计算机,拥有网络接口设备,文件系统,能够在其中执行其他应用程序,进行系统调用。7.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述每台虚拟机拥有一个管理网口。8.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于通过在报文中插入一个字段,携带报文的源端口信息,这样将多个模拟网络芯片或者模拟测试仪表的端口映射到一个物理网络端口。9.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述运行系统软件的虚拟机跟真实的被测设备使用的操作系统平台相同。10.根据权利要求1或2所述的一种网络设备虚拟测试系统的设计方法,其特征在于所述虚拟测试系统的创建流程为首先进入步骤201,运行一台虚拟机,虚拟机上创建指定数量的网口,然后进入步骤202,在步骤202中,判断此虚拟机是否被用着被测设备,如果是,则进入步骤203,否则,则虚拟机就是被用着测试仪表,因此进入步骤204,在步骤203中,运行模拟网络芯片,然后进入步骤205,在步骤204中,运行模拟测试仪表,然后进入步骤207,在步骤205中,判定是否需要进行系统软件测试,如果需要,则进入步骤206,否则进入步骤207,在步骤206中,运行系统软件,然后进入步骤207,在步骤207中,判定是否还需要创建测试仪表或者被测设备,这要根据测试的需求判断,如果还需要创建,则返回步骤201,否则进入步骤208,在步骤208中,按照测试网络拓扑,连接虚拟机间的网口,至此,虚拟测试系统创建完成;所述模拟网络芯片处理单播报文的流程为首先进入步骤301,判定接收到的报文是否来自虚拟机网口,如果是,则进入步骤302,否则此报文就是来自系统软件,因此进入步骤303,在步骤302中,在端口映射表中查找接收到此报文的虚拟机网口所对应的模拟网络芯片的端口号,此端口号被用作报文的源端口号,然后进入步骤304,在步骤303中,将报文的源端口号设置为系统软件所对应的端口号,然后进入步骤304,在步骤304中,模拟网络芯片根据内部处理逻辑,配置和报文所带信息,对报文进行处理,报文处理包括报文目的端口查询,报文编辑,然后进入步骤305,在步骤305中,判断在步骤304中查询出来的报文的目的端口为那一类,如果报文的目的端口为虚拟机网口所对应的端口,则进入步骤306,如果报文的目的端口为系统软件所对应的端口,则进入步骤308,否则进入步骤307,在步骤306中,再次查找端口映射表,找到与报文目的端口对应的虚拟机的网口,然后将报文从此网口发出,至此,此报文处理结束,在步骤307中,丢弃此报文,至此,此报文的处理结束,在步骤308中,将报文发转交给系统软件,由系统软件对报文做进一步处理,至此,此报文的处理结束;所述源端口信息放到一个内部报文头中,发送端会将它所期望的接收端的接收端口的端口号放到内部报文头中,然后插入到报文内,接收端收到此报文后,首先会提取内部报文头中的端口号信息,此端口号就会作为报文的源端口号,然后删除内部报文头,最后对报文进行进一步处理。全文摘要本发明涉及一种网络设备虚拟测试系统的设计方法,是通过软件模拟网络设备中的网络芯片和测试仪表,模拟网络芯片和模拟测试仪表都是运行在虚拟机上,模拟网络芯片和模拟测试仪表的网络端口映射到虚拟机的网络端口,虚拟机的网口间进行虚拟连接;从用户角度看,除了处理速度可能不一样和虚拟测试中不关心的部分,模拟网络芯片对报文的处理跟真实网络芯片完全相同;系统软件可以使用模拟网络芯片为其提供API与之交互;模拟测试仪表可以根据用户配置,发送报文,接收报文和分析报文结果。本发明方法大大节省了网络设备的测试成本,并且使得诊断测试中发现的问题更加简单方便。文档编号H04L12/26GK101778016SQ20101001711公开日2010年7月14日申请日期2010年1月1日优先权日2010年1月1日发明者丁贤根,何慈康,郑有为,颜小波申请人:江苏华丽网络工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1