具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
由于隧道是单向的,即一对隧道对应一条进入隧道和一条外出隧道,为了便于描述,本文中所指隧道均包含了进入隧道和外出隧道。
参阅图1,图1是本发明实施例提供的一种网关设备虚拟隧道性能的测试方法的应用场景图,该应用场景可以包括:被测网关设备161、管理服务器162、多个云节点163以及被测网关设备端的服务器164。
其中,管理服务器162控制多个云节点163,多个云节点163用于模拟与被测网关设备161间同时建立海量的测试隧道165,以测试被测网关设备161在同时建立海量隧道时的性能。需要说明的是,本发明实施例提供的单个云节点163也可与被测网关设备161之间建立大量测试隧道165。
管理服务器162提供了图形化的窗口配置界面,方便实现L2TP、L2TP和IPSec、IKEv1、IKEv2、IKEv2和EAP等隧道协议的配置,避免在每个云节点163上手动输入配置命令。同时管理服务器162对云节点163的运行进行控制,并接收云节点163返回的被测网关设备隧道性能的测试结果,将此测试结果在界面中显示。
云节点163和被测网关设备161之间建立海量测试隧道165,并在测试隧道165上向位于被测网关设备161端的服务器164发送测试数据包,同时接收服务器164端返回的经被测网关设备161处理过的测试数据包的响应数据包。
隧道协商功能,产生、发送和接收数据包的功能,数据包加解密功能均是由云节点163实现。不同于传统在操作系统的内核空间实现隧道165的方法,本发明云节点163的所有功能均是在操作系统的用户空间实现。本发明实施例中,云节点163可以是普通的个人计算机。
通过这种方式,在进行隧道协商时可以不受本地云节点上有限的IP地址的限制,可使用海量的虚拟IP地址进行隧道协商,以达到海量测试隧道165并发的目的。同时,也便于对隧道新建速率和测试隧道165上承载的测试数据包流量进行控制。
参阅图2,图2是本发明实施例提供的一种网关设备虚拟隧道性能的测试方法的流程图,本实施方式是从云节点端来描述的,该方法包括:
步骤S101:接收管理服务器发送的隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
隧道测试信息是指对被测网关设备的虚拟隧道性能进行测试时所需要的信息。管理服务器是一个管理者的角色,主要用于对被测网关设备的虚拟隧道性能的测试进行控制。
通过管理服务器发送的隧道测试信息可以获知待测试隧道的协议类型和待测试隧道的数量。测试隧道信息还可以包括但不限于:隧道新建速率、起始的虚拟IP地址等等。
隧道的协议类型包括但不限于:第二层隧道协议(Layer TwoTunneling Protocol,L2TP)、第二层隧道协议L2TP和互联网协议安全性IPSec、互联网密钥交换版本1(Internet Key Exchange version 1,IKEv1)、互联网密钥交换版本2(Internet Key Exchange version 2,IKEv2)、互联网密钥交换版本2IKEv2和可扩展认证协议(Extensibleauthentication protocol,EAP)、GPRS隧道协议GTP、通用路由封装协议(Generic Routing Encapsulation,GRE)以及以太网上的点到点连接协议(Point to Point Protocol over Ethernet,PPPOE)中的至少一个。
步骤S102:根据待测试的隧道的数量配置N个虚拟IP地址,其中N为大于1的自然数。
根据待测试的隧道的数量,配置N个虚拟IP地址。如果隧道测试信息中包含有起始的虚拟IP地址,则从该起始的虚拟IP地址开始,按顺序配置N个虚拟IP地址。
IP地址包括但不限于:满足IPv4(网络协议版本四)协议类型的IP地址和满足IPv6(网络协议版本六)协议类型的IP地址。
步骤S103:通过配置的N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道。
操作系统将自身划分为两部分,一部分为核心软件,即是kernel,也称作内核空间,另一部分为普通应用程序,这部分称为用户空间。用户空间中的代码运行在较低的特权级别上,只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备,以及其它一些具体的使用限制。操作系统包括但不限于:Windows、Linux、嵌入式操作系统等等。
隧道是一种封装技术,它利用一种网络协议来传输另一种网络协议,即利用一种网络传输协议,将其他协议产生的数据报文封装在它自己的报文中,然后在网络中传输。实际上隧道可以看作一个虚拟的点到点连接。简单地说就是:原始报文在A地进行封装,到达B地后把封装去掉,还原成原始报文,这样就形成了一条由A到B的通信隧道。隧道技术是指包括数据封装、传输和解封装在内的全过程的技术。
本发明实施例可以根据配置的N个虚拟IP地址在操作系统的用户空间与被测网关设备建立测试隧道,因此可以不受操作系统的内核空间有限的IP地址的限制,可以控制隧道新建速率,可以控制发送或者接受数据包的流量。
可以理解的是,一个配置的虚拟IP地址与被测网关设备的IP地址可建立一个隧道,配置的N个虚拟IP地址中,每个虚拟IP地址与被测网关设备的IP地址从理论上说可以建立N个测试隧道。但是,在实际情况中,有些测试隧道协商失败,因而没有建立成功。
步骤S104:通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
在测试隧道建立成功后,通过建立的测试隧道与被测网关设备通信,也就是通过建立的测试隧道向被测网关设备发送测试数据包或者接受来自被测网关设备的测试数据包的响应数据包,通过这种方式,可以测试被测网关设备的隧道性能。
本发明实施例中通过接收管理服务器发送的隧道测试信息;通过根据待测试的隧道的数量配置N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道;并通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能,使得在测试被测网关设备的隧道性能时,可以通过少量的测试节点对被测网关设备同时建立海量隧道的能力进行测试,节约了测试资源和测试成本。
参阅图3,图3是本发明实施例提供的另一种网关设备虚拟隧道性能的测试方法的流程图,本实施方式是从云节点端来描述的,该方法包括:
步骤S201:接收管理服务器发送的隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
隧道测试信息是指对被测网关设备的虚拟隧道性能进行测试时所需要的信息。管理服务器是一个管理者的角色,主要用于对被测网关设备的虚拟隧道性能的测试进行控制。
通过管理服务器发送的隧道测试信息可以获知待测试隧道的协议类型和待测试隧道的数量。测试隧道信息还可以包括但不限于:隧道新建速率、起始的虚拟IP地址等等。
隧道的协议类型包括但不限于:L2TP、L2TP和IPSec、IKEv1、IKEv2、IKEv2和EAP、GTP、GRE以及PPPOE中的至少一个。
步骤S202:根据待测试的隧道的数量配置N个虚拟IP地址,其中N为大于1的自然数。
根据待测试的隧道的数量,配置N个虚拟IP地址。如果隧道测试信息中包含有起始的虚拟IP地址,则从该起始的虚拟IP地址开始,按顺序配置N个虚拟IP地址。
IP地址包括但不限于:满足IPv4协议类型的IP地址和满足IPv6协议类型的IP地址。
步骤S203:通过配置的N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道。
其中,步骤S203可以包括:步骤S203a、步骤S203b、步骤S203c、步骤S203d以及步骤S203e。
步骤S203a:根据配置的N个虚拟IP地址以及待测试的隧道的协议类型,在操作系统的用户空间构建N个隧道协商报文。
在隧道建立之前,需要在所要建立隧道的两端(操作系统的用户空间和被测网关设备)进行隧道协商。
根据配置的N个虚拟IP地址以及待测试的隧道的协议类型,在操作系统的用户空间构建N个隧道协商报文,具体的,可以包括如下步骤:
首先,生成每条隧道协商所需要的协议栈。
协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程:由上层协议到底层协议,再由底层协议到上层协议。使用最广泛的是英特网协议栈,由上到下的协议分别是:应用层协议(如HTTP、FTP、TFTP、TELNET、DNS、EMAIL等),传输层协议(如TCP、UDP等),网络层协议(如IP等),数据链路层协议(如WI-FI、以太网、令牌环、FDDI、MAC等)。
由于网络协议栈分层的特性,自底层协议向上层协议主要构造数据链路层、网络层、传输层,应用层等。例如对于IKEV2协议,主要构造的协议栈就是MAC、IP、UDP、IKEV2等。
其次,根据每条隧道协商所需要的协议栈,依次构建每个隧道的隧道协商报文。
在隧道协商报文发送之前,先构造顶层的报文数据和报文头,然后把报文传给下一层的协议栈,按顺序一直构造好整个完整的隧道协商报文。
步骤S203b:通过网络数据包捕获函数包向被测网关设备发送已构建好的N个隧道协商报文。
为了将在操作系统的用户空间构造好的隧道协商报文向被测网关设备发送时无需经过操作系统的内核空间的TCP/IP协议栈的处理,直接经物理链路层发送到被测网关设备,在本发明实施例中,可以采用通过网络数据包捕获函数包向被测网关设备发送已构建好的N个隧道协商报文。例如,unix/linux操作系统平台下的libpcap,在windows操作系统平台下的winpcap。通过上述方式,可以实现操作系统的用户空间直接和被测网关设备之间的隧道协商。
在一种情况下,为了控制隧道新建速率,在本步骤中,还可以通过网络数据包捕获函数包,按照预设的隧道新建速率向被测网关设备发送已构建好的N个隧道协商报文。
步骤S203c:通过具有映射功能的原始套接字接收来自被测网关设备的所述隧道协商报文的隧道响应报文。
其中,具有映射功能的原始套接字包括MAP_RAW_SOCKET,MAP_RAW_SOCKET 用于实现底层数据包的接收。MAP_RAW_SOCKET的特点包括:(1)它的接收缓存可由用户手动设置;(2)使用了零拷贝技术,直接将物理链路层(例如网卡)接收到的数据包映射到用户空间设置好的缓存区,减少拷贝时的系统开销。
本发明实施例通过具有映射功能的原始套接字接收来自被测网关设备的所述隧道协商报文的隧道响应报文,可以使来自被测网关设备的隧道响应报文直接通过带映射功能的原始套接字映射到用户空间的缓存区,而不需要经过操作系统的内核空间,实现了操作系统的用户空间和被测网关设备之间的直接通信。
在实际应用中,如果来自被测网关设备的隧道响应报文的量不大,也可以采用网络数据包捕获函数包(例如libpcap)来接收来自被测网关设备的隧道响应报文。
步骤S203d:在操作系统的用户空间解析来自被测网关设备的隧道响应报文,获得解析结果。
操作系统的用户空间接收到来自被测网关设备的隧道响应报文后,对该隧道响应报文在操作系统的用户空间进行解析。首先,把隧道响应报文送到底层的协议栈进行解析,解析好之后,剥去报文头,送到上一层协议栈处理。如果所有的协议栈解析都没有错误,表明相应的隧道协商成功。如果解析出错,等待一段时间后,重新进行协商,经过若干次重新协商失败后,判定为协商失败。
步骤S203e:若解析结果是隧道协商成功,则确认在操作系统的用户空间与被测网关设备之间成功建立测试隧道。
如果所有的协议栈解析都没有错误,表明相应的隧道协商成功,则可确认在操作系统的用户空间与被测网关设备之间成功建立测试隧道。
步骤S204:通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
步骤S204可以具体是:通过建立的测试隧道,将处理后的测试数据包按照预设的时间间隔和预设的发送数量向被测网关设备发送,并接收被测网关设备发送的测试数据包的响应数据包,以获得被测网关设备的隧道性能。
其中,步骤S204可以包括:步骤S204a、步骤S204b、步骤S204c以及步骤S204d。
步骤S204a:按照建立的测试隧道,将测试数据包在操作系统的用户空间进行处理,处理包括:应用层协议处理、传输层协议处理、隧道加密处理、网络层协议处理以及数据链路层协议处理。
在隧道协商成功后,按照建立的测试隧道,将测试数据包在操作系统的用户空间进行处理,这些处理包括但不限于:应用层协议处理、传输层协议处理、隧道加密处理、网络层协议处理以及数据链路层协议处理;经过这些处理后获得的测试数据包,即可在建立的测试隧道上传输。
步骤S204b:通过网络数据包捕获函数包将处理后的测试数据包在建立的测试隧道向被测网关设备发送。
其中,步骤S204b具体包括:通过网络数据包捕获函数包将处理后的测试数据包在建立的测试隧道按照预设的时间间隔和预设的发送数量向被测网关设备发送。
为了控制测试数据包的发送流量,可以预先设置发送测试数据包的时间间隔和每次发送测试数据包的数量。
例如,当测试数据包发送流量要求较小时,可以增加发送测试数据包的间隔时间和减少每次发送的测试数据包的数量;当测试数据包发送流量要求较大时,可以减少发送测试数据包的间隔时间和增加每次发送的测试数据包的数量。
步骤S204c:通过具有映射功能的原始套接字,在建立的测试隧道上接收来自被测网关设备的测试数据包的响应数据包。
步骤S204d:在操作系统的用户空间对接收的来自被测网关设备的测试数据包的响应数据包进行处理,获得被测网关设备的隧道性能。
在操作系统的用户空间对接收的来自被测网关设备的测试数据包的响应数据包进行处理,该处理包括但不限于:去除数据链路层报头、网络层报头、传输层报头、应用层报头,解密处理等等。
经过步骤S204a、步骤S204b、步骤S204c以及步骤S204d即可实现对被测网关设备的隧道性能进行测试的目的。
本发明实施例通过接收管理服务器发送的隧道测试信息;通过根据待测试的隧道的数量配置N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道;并通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能,使得在测试被测网关设备的隧道性能时,可以通过少量的测试节点对被测网关设备同时建立海量隧道的能力进行测试,从而节约了测试资源和测试成本。另外,本发明实施例还通过预设的隧道新建速率来控制隧道新建速率,通过预设的发送测试数据包的时间间隔和每次发送测试数据包的数量来控制测试数据包的发送流量。
参阅图4,图4是本发明实施例提供的又一种网关设备虚拟隧道性能的测试方法的流程图,包括:
步骤S301:管理服务器向受控的至少一个云节点发送隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
管理服务器是一个管理者的角色,主要用于对被测网关设备的虚拟隧道性能的测试进行控制。管理服务器可以控制至少一个云节点,通过受控的云节点,从而实现对被测网关设备的虚拟隧道性能的测试进行控制的目的。
隧道测试信息是指对被测网关设备的虚拟隧道性能进行测试时所需要的信息。通过管理服务器发送的隧道测试信息可以获知待测试隧道的协议类型和待测试隧道的数量。测试隧道信息还可以包括但不限于:隧道新建速率、起始的虚拟IP地址等等。
隧道的协议类型包括但不限于:L2TP、L2TP和IPSec、IKEv1、IKEv2、IKEv2和EAP、GTP、GRE以及PPPOE中的至少一个。
例如,在实际应用中,用户可以在管理服务器的图形化的窗口界面中输入受控的至少一个云节点的IP地址,将隧道测试信息向该受控的至少一个云节点发送。
步骤S302:至少一个云节点接收管理服务器发送的隧道测试信息。
步骤S303:至少一个云节点根据隧道测试信息在操作系统的用户空间与被测网关设备建立测试隧道。
步骤S303主要是云节点在接收到管理服务器发送的隧道测试信息后,根据该隧道测试信息在操作系统的用户空间与被测网关设备建立测试隧道。
步骤S304:至少一个云节点通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
在操作系统的用户空间与被测网关设备之间的测试隧道建立成功后,至少一个云节点通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
本发明实施例中,管理服务器向云节点发送隧道测试信息;云节点根据隧道测试信息在操作系统的用户空间与被测网关设备建立测试隧道;云节点通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。通过这种方式,云节点在操作系统的用户空间与被测网关设备之间可以建立海量测试隧道,管理服务器又控制至少一个云节点,因而管理服务器可以测试网关设备海量隧道的建立能力,也可以控制被测网关设备的隧道性能的测试。
参阅图5,图5是本发明实施例提供的又一种网关设备虚拟隧道性能的测试方法的流程图,包括:
步骤S401:管理服务器向受控的至少一个云节点发送隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
步骤S401具体包括:管理服务器通过套接字向受控的至少一个云节点发送可扩展标记语言XML文件类型的隧道测试信息。
可扩展标记语言XML用于标记电子文件,使电子文件具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML仅仅存储数据,它与其他数据表现形式最大的不同是:XML极其简单。XML的简单使其易于在任何应用程序中读写数据,且非常适合Web传输。
步骤S402:至少一个云节点接收管理服务器发送的隧道测试信息。
步骤S403:至少一个云节点根据隧道测试信息在操作系统的用户空间与被测网关设备建立测试隧道。
其中,步骤S403可以包括如下内容:
(1)根据待测试的隧道的数量配置N个虚拟IP地址,其中N为大于1的自然数。
(2)根据配置的N个虚拟IP地址以及待测试的隧道的协议类型,在操作系统的用户空间构建N个隧道协商报文。
(3)通过网络数据包捕获函数包向被测网关设备发送已构建好的N个隧道协商报文。
(4)通过具有映射功能的原始套接字接收来自被测网关设备的隧道响应报文。
(5)在操作系统的用户空间解析来自被测网关设备的隧道响应报文,获得解析结果。
(6)若解析结果是隧道协商成功,则确认在操作系统的用户空间与被测网关设备之间成功建立测试隧道。
步骤S404:至少一个云节点通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
步骤S405:至少一个云节点向管理服务器发送被测网关设备的隧道性能。
在至少一个云节点获得被测网关设备的隧道性能后,向管理服务器发送被测网关设备的隧道性能。
在实际应用中,至少一个云节点还可以向管理服务器发送建立成功的测试隧道的实际数量、测试隧道的运行状态、隧道新建速率、数据包的最大发送流量等相关信息。
步骤S406:管理服务器接收至少一个云节点发送的被测网关设备的隧道性能。
步骤S407:管理服务器在图形化窗口中显示被测网关设备的隧道性能。
管理服务器在图形化窗口中显示被测网关设备的隧道性能,以便于用户查看被测网关设备的隧道性能。
如果至少一个云节点向管理服务器发送建立成功的测试隧道的实际数量、测试隧道的运行状态、隧道新建速率、数据包的最大发送流量等相关信息,则管理服务器可以汇总至少一个云节点发送的这些信息,根据这些信息,可以确定被测网关设备总的建立成功的测试隧道的数量、所有测试隧道的运行状态、隧道新建最大速率、最大隧道数据流量等信息,从而还可以达到测试被测网关设备的性能的目的。
综上,本发明实施例管理服务器向云节点发送隧道测试信息;云节点根据隧道测试信息在操作系统的用户空间与被测网关设备建立测试隧道;云节点通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。通过这种方式,云节点在操作系统的用户空间与被测网关设备之间建立海量的测试隧道,管理服务器又控制至少一个云节点,因此管理服务器可以测试被测网关设备建立海量隧道的能力,也可以控制云节点对被测网关设备隧道性能的测试。另外,管理服务器可以将云节点发送的被测网关设备隧道性能的测试结果等相关信息显示在图像化窗口界面中,便于用户观察和监控。
参阅图6,图6是本发明实施例提供的一种网关设备虚拟隧道性能的测试装置的结构示意图,该装置包括:接收模块101、配置模块102、隧道建立模块103以及通信模块104。
可选地,图6的装置可以执行图2和图3中的步骤。
接收模块101用于接收管理服务器发送的隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
隧道测试信息是指对被测网关设备的虚拟隧道性能进行测试时所需要的信息。管理服务器是一个管理者的角色,主要用于对被测网关设备的虚拟隧道性能的测试进行控制。
通过管理服务器发送的隧道测试信息可以获知待测试隧道的协议类型和待测试隧道的数量。测试隧道信息还可以包括但不限于:隧道新建速率、起始的虚拟IP地址等等。
隧道的协议类型包括但不限于:L2TP、L2TP和IPSec、IKEv1、IKEv2、IKEv2和EAP、GTP、GRE以及PPPOE中的至少一个。
配置模块102用于根据待测试的隧道的数量配置N个虚拟IP地址,其中N为大于1的自然数。
根据待测试的隧道的数量,配置N个虚拟IP地址。如果隧道测试信息中包含有起始的虚拟IP地址,则从该起始的虚拟IP地址开始,按顺序配置N个虚拟IP地址。
IP地址包括但不限于:满足IPv4协议类型的IP地址和满足IPv6协议类型的IP地址。
隧道建立模块103用于通过配置的N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道。
操作系统将自身划分为两部分,一部分为核心软件,即是kernel,也称作内核空间,另一部分为普通应用程序,这部分称为用户空间。用户空间中的代码运行在较低的特权级别上,只能看到允许它们使用的部分系统资源,并且不能使用某些特定的系统功能,也不能直接访问内核空间和硬件设备,以及其它一些具体的使用限制。
操作系统包括但不限于:Windows、Linux、嵌入式操作系统等等。
本发明实施例可以根据配置的N个虚拟IP地址在操作系统的用户空间与被测网关设备建立测试隧道,因此可以不受操作系统的内核空间有限的IP地址的限制,可以控制隧道新建速率,可以控制发送或者接受数据包的流量。
可以理解的是,一个配置的虚拟IP地址与被测网关设备的IP地址可建立一个隧道,配置的N个虚拟IP地址中,每个虚拟IP地址与被测网关设备的IP地址从理论上说可以建立N个测试隧道。但是,在实际情况中,有些测试隧道协商失败,因而没有建立成功。
通信模块104用于通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
在测试隧道建立成功后,通过建立的测试隧道与被测网关设备通信,也就是通过建立的测试隧道向被测网关设备发送测试数据包或者接受来自被测网关设备的测试数据包的响应数据包,通过这种方式,可以测试被测网关设备的隧道性能。
总之,本发明实施例中通过接收管理服务器发送的隧道测试信息;通过根据待测试的隧道的数量配置N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道;并通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能,使得在测试被测网关设备的隧道性能时,可以通过少量的测试节点对被测网关设备同时建立海量隧道的能力进行测试,节约了测试资源和测试成本。
参阅图7,图7是本发明实施例提供的另一种网关设备虚拟隧道性能的测试装置的结构示意图,该装置包括:接收模块201、配置模块202、隧道建立模块203以及通信模块204。
可选地,图7的装置可以执行图3中的步骤。
接收模块201用于接收管理服务器发送的隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
隧道测试信息是指对被测网关设备的虚拟隧道性能进行测试时所需要的信息。管理服务器是一个管理者的角色,主要用于对被测网关设备的虚拟隧道性能的测试进行控制。
通过管理服务器发送的隧道测试信息可以获知待测试隧道的协议类型和待测试隧道的数量。测试隧道信息还可以包括但不限于:隧道新建速率、起始的虚拟IP地址等等。
隧道的协议类型包括但不限于:L2TP、L2TP和IPSec、IKEv1、IKEv2、IKEv2和EAP、GTP、GRE以及PPPOE中的至少一个。
配置模块202用于根据待测试的隧道的数量配置N个虚拟IP地址,其中N为大于1的自然数。
根据待测试的隧道的数量,配置N个虚拟IP地址。如果隧道测试信息中包含有起始的虚拟IP地址,则从该起始的虚拟IP地址开始,按顺序配置N个虚拟IP地址。
IP地址包括但不限于:满足IPv4协议类型的IP地址和满足IPv6协议类型的IP地址。
隧道建立模块203用于通过配置的N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道。
其中,隧道建立模块203包括:构建单元2031、第一发送单元2032、第一接收单元2033、解析单元2034以及确认单元2035。
构建单元2031用于根据配置的N个虚拟IP地址以及待测试的隧道的协议类型,在操作系统的用户空间构建N个隧道协商报文。
第一发送单元2032用于通过网络数据包捕获函数包向被测网关设备发送已构建好的N个隧道协商报文。
第一发送单元2032具体用于通过网络数据包捕获函数包,按照预设的隧道新建速率向被测网关设备发送已构建好的N个隧道协商报文。
第一接收单元2033用于通过具有映射功能的原始套接字接收来自被测网关设备的所述隧道协商报文的隧道响应报文。
解析单元2034用于在操作系统的用户空间解析来自被测网关设备的隧道响应报文,获得解析结果。
确认单元2035用于在解析结果是隧道协商成功时,确认在操作系统的用户空间与被测网关设备之间成功建立测试隧道。
通信模块204用于在隧道建立模块建立测试隧道后,通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。
通信模块204具体用于通过建立的测试隧道,将处理后的测试数据包按照预设的时间间隔和预设的发送数量向被测网关设备发送,并接收被测网关设备发送的测试数据包的响应数据包,以获得被测网关设备的隧道性能。
其中,通信模块204可以包括:第一处理单元2041、第二发送单元2042、第二接收单元2043以及第二处理单元2044。
第一处理单元2041用于按照建立的测试隧道,将用于测试的数据包在操作系统的用户空间进行处理,处理包括:应用层协议处理、传输层协议处理、隧道加密处理、网络层协议处理以及数据链路层协议处理。
第二发送单元2042用于通过网络数据包捕获函数包在建立的测试隧道上将处理后的测试数据包向被测网关设备发送。
第二发送单元2042具体用于通过网络数据包捕获函数包在建立的测试隧道上将处理后的测试数据包按照预设的时间间隔和预设的发送数量向被测网关设备发送。
第二接收单元2043用于通过具有映射功能的原始套接字在建立的测试隧道上接收来自被测网关设备的测试数据包的响应数据包。
第二处理单元2044用于在操作系统的用户空间对接收的来自被测网关设备的响应数据包进行处理,获得被测网关设备的隧道性能。
总之,本发明实施例通过接收管理服务器发送的隧道测试信息;通过根据待测试的隧道的数量配置N个虚拟IP地址以及待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道;并通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能,使得在测试被测网关设备的隧道性能时,可以通过少量的测试节点对被测网关设备同时建立海量隧道的能力进行测试,从而节约了测试资源和测试成本。另外,本发明实施例还通过预设的隧道新建速率来控制隧道新建速率,通过预设的发送测试数据包的时间间隔和每次发送测试数据包的数量来控制测试数据包的发送流量。
参阅图8,图8是本发明实施例提供的一种网关设备虚拟隧道性能的测试系统的结构示意图,该系统包括:管理服务器301、至少一个云节点302以及被测网关设备303,管理服务器301控制至少一个云节点302测试被测网关设备303构建隧道的能力。
可选地,图8的装置可以执行图4和图5中的步骤。
管理服务器301用于向受控的至少一个云节点302发送隧道测试信息,隧道测试信息中包含有待测试隧道的协议类型和数量。
其中,管理服务器301具体用于通过套接字向受控的至少一个云节点发送可扩展标记语言XML文件类型的隧道测试信息。
至少一个云节点302用于接收管理服务器301发送的隧道测试信息;根据隧道测试信息在操作系统的用户空间与被测网关设备303建立测试隧道;并通过建立的测试隧道与被测网关设备303通信以测试被测网关设备303的隧道性能。
其中,云节点302包括:接收模块、配置模块、隧道建立模块以及通信模块。
接收模块用于接收管理服务器发送的隧道测试信息,所述隧道测试信息中包含有待测试隧道的协议类型和数量。
配置模块用于根据所述待测试的隧道的数量配置N个虚拟IP地址,其中N为大于1的自然数。
隧道建立模块用于通过配置的所述N个虚拟IP地址以及所述待测试的隧道的协议类型在操作系统的用户空间与被测网关设备建立测试隧道。
通信模块用于通过建立的所述测试隧道与所述被测网关设备通信以测试所述被测网关设备的隧道性能。
其中,至少一个云节点302还用于向管理服务器301发送被测网关设备的隧道性能;管理服务器301还用于接收至少一个云节点302发送的被测网关设备的隧道性能;并在图形化窗口中显示被测网关设备的隧道性能。
本发明实施例管理服务器向云节点发送隧道测试信息;云节点根据隧道测试信息在操作系统的用户空间与被测网关设备建立测试隧道;云节点通过建立的测试隧道与被测网关设备通信以测试被测网关设备的隧道性能。通过这种方式,云节点在操作系统的用户空间与被测网关设备之间建立海量的测试隧道,管理服务器又控制至少一个云节点,因此管理服务器可以测试被测网关设备建立海量隧道的能力,也可以控制云节点对被测网关设备隧道性能的测试。另外,管理服务器可以将云节点发送的被测网关设备隧道性能的测试结果等相关信息显示在图像化窗口界面中,便于用户观察和监控。
在本发明所提供的几个实施方式或实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式或实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式或实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式或实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的实施方式或实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。