一种SDN控制器性能测试仪及测试方法与流程

文档序号:12376028阅读:401来源:国知局
一种SDN控制器性能测试仪及测试方法与流程

本发明属于软件定义网络控制器领域,特别涉及一种SDN控制器性能测试仪及测试方法,具体说是一种基于OpenFlow1.3的SDN控制器性能测试仪及测试方法。



背景技术:

软件定义网络(英语:Software‐defined networking,缩写为SDN)是一种网络虚拟化(Network virtualization)技术,是由Emulex提出。利用OpenFlow协定,把路由器的控制平面(control plane)从数据平面(data plane)中分离出来。这个架构可以让网络管理员,在不更改硬件装置的前提下,以中央控制方式,用程序重新规划网络,为控制网络流量提供了新的方法,也提供了核心网络及应用创新的良好平台。其两大平面——控制平面和数据平面之间通过OpenFlow协议通讯。

OpenFlow协议是由开放网络基金会(英语:Open Networking Foundation,缩写为ONF)开发并推动的一种SDN控制平面南向协议。它规定了控制平面与数据平面通讯的方式及内容,同时是目前应用最广泛的SDN南向协议,得到了产业界,特别是交换设备(即数据平面设备)厂商的支持。目前该协议的OpenFlow 1.3版本是其长期维护,并得到最广泛应用和部署的版本。

作为SDN实现的最主流方式,同时作为SDN网络中最核心的组件,SDN控制器对OpenFlow协议的处理性能受到了SDN控制器厂商以及SDN网络用户的关注。在此基础上,亟需一款测试工具可以模拟大量的SDN网络交换设备与控制器进行OpenFlow协议的通讯,进而测试控制器对OpenFlow协议的处理性能。该工具除可以模拟大量设备进行与控制器的OpenFlow协议交互之外,还需要具备丰富的过程控制能力以及测试结果输出能力,比如对OpenFlow协议报文内容的定制,报文发送速率与时延,详尽的测试过程记录等等,才能准确而有效地衡量控制器对OpenFlow协议的处理性能。

SDN控制器是SDN网络的核心组件,它以中心控制的方式直接管控网络中所有的交换机设备。因此,SDN控制器自身的性能将直接影响整个SDN网络的性能。控制器主要通过OpenFlow 1.3协议与交换机进行通信。控制器对OpenFlow 1.3协议报文的处理性能,将直接影响网络的灵活程度和流量调配性能。为更好地兑现SDN技术承诺的网络优势,针对网络用户切实的需求,以及业内对SDN控制器性能测试的迫切需求,设计并提出一种OpenFlow1.3控制器性能测试仪架构方法。针对SDN控制器,测试其对OpenFlow 1.3各类协议报文的吞吐、时延,同时模拟网络中可能出现的真实场景和事件,衡量控制器的处理性能。



技术实现要素:

本发明的目的是提出一种SDN控制器性能测试仪及测试方法,其特征在于,所述SDN控制器性能测试仪由3部分共6个功能模块组成;具体包括:一,由交换机模拟模块和拓扑连接生成模块连接组成的交换机控制部分;二,由OpenFlow1.3报文生成模块和测试报文控制模块连接组成的协议报文控制部分;三,由控制器响应记录模块和结果计算和输出模块组成的结果输出部分;其中模拟模块和拓扑连接生成模块分别连接OpenFlow 1.3报文生成模块和测试报文控制模块,然后测试报文控制模块连接控制器响应记录模块;

所述交换机模拟模块模拟OpenFlow 1.3交换机,与SDN控制器进行OpenFlow1.3连接,同时对控制器针对交换机的查询和保活动作给出响应,上报自身交换机信息;

所述拓扑连接生成模块在针对SDN控制器的性能测试往往需要模拟大量交换机在某一特定拓扑结构下的事件和场景,将大量单独与控制器建立OpenFlow1.3连接的交换机连缀成某一常用的拓扑类型;

所述OpenFlow 1.3报文生成模块负责生成交换机所需要发送给控制器的OpenFlow 1.3报文,以便与控制器建立正常的连接,并进行性能测试;

所述测试报文控制模块负责OpenFlow 1.3报文的可控发送,在性能测试中,需要考虑报文的发送形式、速率和顺序;

所述控制器响应记录模块针对性能测试内容,记录控制器的响应方式及性能,记录其响应的状态和速率;

所述结果计算和输出模块从响应记录中提取数据,计算控制器性能测试结果;其首先识别可用信息,根据消息类型,过滤非响应消息,再根据响应消息的时间戳,计算平均吞吐和时延,并将最后的计算结果,以文本或图形的方式输出给测试人员。

所述OpenFlow 1.3报文生成模块负责生成交换机所需要发送给控制器的OpenFlow 1.3报文包括Hello、Echo、Feature_reply、Multipart_reply和Packet_in的消息类型报文。

一种SDN控制器性能测试仪的测试方法,其特征在于,测试步骤如下:

1)开始,交换机模拟模块按照用户预定的输入,模拟若干数量的OpenFlow1.3交换机,并建立与被测SDN控制器的TCP连接;

2)OpenFlow 1.3报文生成模块按交换机模拟模块的需求生成Hello报文,与被测SDN控制器建立OpenFlow 1.3协议连接;

3)交换机模拟模块接收控制器发送的Hello消息,以及Echo控制通道保活消息;

4)OpenFlow 1.3报文生成模块按交换机模拟模块的需求生成Echo报文,与被测SDN控制器保证链路活性,该过程将持续于全部测试过程中;

5)拓扑连接生成模块按照用户预定的输入,生成交换机拓扑邻接矩阵,并按该矩阵内容,要求交换机模拟模块配置各模拟交换机端口,包括端口数量、端口号、端口特性和相邻端口;

6)交换机模拟模块接收控制器发送的Multipart_request查询请求,要求其提供端口信息;

7)交换机模拟模块将该请求转送给OpenFlow 1.3报文生成模块,该模块按拓扑连接生成模块提供的相应信息,生成对应的Multipart_reply报文,并由交换机模拟模块上报给被测SDN控制器;

8)控制器给某一台或多台模拟交换机发送LLDP(Link Layer Discovery Protocol,链路层发现协议)拓扑链路发现报文,交换机模拟模块接收此报文,并转送给测试报文控制模块;

9)测试报文控制模块从拓扑连接生成模块中取得相关拓扑连接信息,按照相邻交换机首先上报LLDP消息的顺序,上报LLDP消息,该消息由OpenFlow 1.3报文生成模块提供;

10)控制器响应记录模块记录被测SDN控制器的响应动作,当控制器给全部模拟交换机都下发过一遍LLDP消息之后,则认为测试完成,在这一过程里记录全部SDN控制器下发LLDP消息的时间戳;

11)结果计算和输出模块计算第一个控制器下发LLDP消息和最后一个LLDP消息之间的时间差,作为最终的测试结果输出,测试结束。

本发明的有益效果是本发明针对SDN控制器,测试其对OpenFlow 1.3各类协议报文的吞吐、时延;同时模拟网络中可能出现的真实场景和事件,衡量控制器的处理性能;可以为各大网络运营商、网络公司或其他网络用户在部署SDN网络时,针对控制器的选型、调研、部署测试、能力测试提供技术支撑和定量结果分析。

附图说明

图1为软件定义网络控制器性能测试仪结构示意图。

图2为软件定义网络控制器性能测试流程图。

具体实施方式

本发明提出一种基于OPenFlow 1.3协议的SDN控制器性能测试仪及测试方法,下面结合附图予以说明。

图1所示为软件定义网络控制器性能测试仪结构示意图。图中所示SDN控制器性能测试仪由3部分共6个功能模块组成;具体包括:一,由交换机模拟模块和拓扑连接生成模块连接组成的交换机控制部分;二,由OpenFlow 1.3报文生成模块和测试报文控制模块连接组成的协议报文控制部分;三,由控制器响应记录模块和结果计算和输出模块组成的结果输出部分;其中模拟模块和拓扑连接生成模块分别连接OpenFlow 1.3报文生成模块和测试报文控制模块,然后测试报文控制模块连接控制器响应记录模块。现将各部分主要功能阐述如下:

一,交换机控制部分

由交换机模拟模块和拓扑连接生成模块连接组成。根据SDN技术特点,想取得SDN控制器对OpenFlow 1.3协议报文的处理性能结果,需要模拟OpenFlow 1.3交换机与控制器进行连接,产生OpenFlow 1.3协议交互,并测试性能。该部分即是实现对模拟交换机的控制。

所述交换机模拟模块该模块模拟OpenFlow 1.3交换机。作用为与SDN控制器进行OpenFlow 1.3连接,同时对控制器针对交换机的查询和保活动作给出响应,上报自身交换机信息。需要实现的功能包括:1.与控制器TCP端口建立TCP连接2.与控制器建立OpenFlow 1.3协议连接3.针对控制器的查询请求,通过OpenFlow 1.3协议上报自身信息4.与控制器进行保活报文交互,以确保连接始终建立。

所述拓扑连接生成模块针对SDN控制器的性能测试往往需要模拟大量交换机在某一特定拓扑结构下的事件和场景。该模块需要将大量单独与控制器建立OpenFlow 1.3连接的交换机连缀成某一常用的拓扑类型,比如环形、线形或叶脊拓扑结构等,以便对SDN控制器性能取得更加综合的评定。该模块需要实现的功能包括:1.依据所要生成的拓扑类型,建立模拟控制器间的连接矩阵2.处理控制器发送的拓扑发现请求(LLDP报文),生成符合拓扑类型和连接矩阵的LLDP报文,使其发现当前拓扑结构3.控制模拟交换机以特定顺序发送LLDP报文,模拟控制器拓扑发现过程。

二,协议报文控制部分

由OpenFlow 1.3报文生成模块和测试报文控制模块连接组成。在针对SDN控制器的性能测试中,需要测定其对OpenFlow 1.3协议报文的处理能力,为到达此目的,需要交换机以一定速率发送某一特定类型的报文给控制器,记录并计算控制器对该类型报文的吞吐和处理时延;因此,需要对交换机发送协

议报文的内容、速率、顺序采取控制。

所述OpenFlow 1.3报文生成模块负责生成交换机所需要发送给控制器的OpenFlow 1.3报文。包括Hello、Echo、Feature_reply、Multipart_reply、Packet_in等消息类型。以便与控制器建立正常的连接,并进行性能测试。此模块要求可以灵活动态地调整任一类型协议报文的任一字段,以便按控制器的要求发送所需的报文,令其处理。除OpenFlow 1.3报文之外,以扩充测试内容。并且对该类报文也需要要求可以灵活调整报文中的任一字段。

所述测试报文控制模块负责OpenFlow 1.3报文的可控发送;在性能测试中,需要考虑报文的发送形式、速率和顺序。该模块即实现这部分控制内容。需要具备的功能包括:1.发送形式控制:<1>突发发送模式,即将一定数量的报文,在最短时间内发送给控制器,不考虑发送顺序和控制器接收能力。可以用来考查控制器对突发性消息事件的处理能力。<2>恒速发送模式,即将一定数量的报文,在一定时间内恒速发送给控制器,任意两个报文之间,发送时间间隔保持一致。测试仪可以自行定义该时间间隔。可以用来考查控制器在不同消息输入速率的情况下,对某一类型消息的处理吞吐量和时延。2。发送顺序控制。某些类型的报文需要一定的发送顺序以保证模拟网络与实际网络的一致性,并令控制器可以正常工作。例如LLDP报文的发送,需要按照拓扑连接的顺序进行。

三,结果输出部分

由控制器响应记录模块和结果计算和输出模块组成;结果输出部分主要用来记录在特定测试场景下,控制器的响应方式及性能,记录其响应的状态和速率。同时根据记录的内容,自动计算性能测试结果。例如针对其流表下发的速率进行性能测试,则该模块需要记录所有控制器响应Flow_mod消息的个数和响应时间,并依次计算出控制器对流表生成请求的处理吞吐和时延。

所述控制器响应记录模块针对性能测试内容,记录控制器的响应方式及性能。记录其响应的状态和速率。主要功能为,记录控制器响应OpenFlow 1.3协议报文的时间戳、协议报文的类型和协议报文的内容。另外需要记录TCP连接的状态,例如TCP Window Size等内容,以确保控制器性能测试结果不受TCP协议的影响。所有的记录都应以Log和Wireshark抓包的形式保留,以作为分析测试结果的原始资料。

所述结果计算和输出模块从响应记录中提取数据,计算控制器性能测试结果;首先识别可用信息,根据消息类型,过滤非响应消息。再根据响应消息的时间戳,计算平均吞吐和时延。并将最后的计算结果,以文本或图形的方式输出给测试人员。

依据上述各模块功能,可构建如下相互关系:

在三个架构部分中,有些模块是跨部分功能模块,例如OpenFlow 1.3报文生成模块和测试报文控制模块。另一些模块是部分内功能模块,例如拓扑连接生成模块和结果计算和输出模块。现将各功能模块与其他模块的关系分别阐述如下:

一,交换机控制部分

交换机控制模块需要控制交换机OpenFlow 1.3协议报文的发送和接收。在与控制器建立连接阶段,和连接维护阶段,都需要OpenFlow 1.3报文生成模块的协助。拓扑连接生成模块也需要报文生成模块的协助。其中,

交换机模拟模块在控制模拟交换机在与控制器建立连接时,需要OpenFlow1.3报文生成模块生成并提供Hello、Feature_reply消息以便完成建立连接的目的。在测试过程中,也需要OpenFlow1.3报文生成模块生成并提供Echo等保活协议。在模拟交换机端口时,需要拓扑连接生成模块协助,根据定义的拓扑类型和信息,模拟相应的交换机端口,例如端口数量、端口号,端口特性,相邻端口等。

拓扑连接生成模块该模块负责模拟交换机拓扑连接的生成。需要定义出模拟交换机的端口信息,例如端口数量、端口号,端口特性,相邻端口等,以便符合所定义的拓扑类型和连接方式。同时在测试报文控制模块控制报文上送顺序时,拓扑相关报文,如LLDP,需要按拓扑连接生成模块生成的连接矩阵,按相邻顺序一一上发,以便模拟真实的网络环境和报文交互过程,取得正确的控制器性能测试结果。

二,协议报文控制部分

该部分模块与交换机控制部分和结果输出部分都有联系。OpenFlow 1.3报文生成模块需要为其他模块提供定制好的OpenFlow 1.3报文内容。测试报文控制模块需要将会影响模拟交换机发送报文的形式和特点,同时也需要在测试结果中有所体现。

OpenFlow 1.3报文生成模块提供按需定制的OpenFlow 1.3报文。首先在交换机模拟模块控制模拟交换机在与控制器建立连接时,需要OpenFlow 1.3报文生成模块生成并提供Hello、Feature_reply消息以便完成建立连接的目的。在测试过程中,也需要OpenFlow1.3报文生成模块生成并提供Echo等保活协议。在测试报文控制模块中,需要要求OpenFlow1.3报文的生成速率和顺序,以便交换机模拟模块发送给控制器。例如按照MAC地址增序的要求生成ARP报文,用以测试控制器二层地址学习的能力。

测试报文控制模块需要控制发送给控制器的OpenFlow 1.3协议报文的形式、速率和顺序。需要要求OpenFlow1.3报文生成模块的生成速率和顺序,以便交换机模拟模块发送给控制器。同时该模块还需要按照拓扑生成模块提供的拓扑内容和信息,将拓扑相关报文,如LLDP,需要按拓扑连接生成模块生成的连接矩阵,按相邻顺序一一上发,以便模拟真实的网络环境和报文交互过程,取得正确的控制器性能测试结果。

三,结果输出部分

该部分为记录控制器响应,计算测试结果并输出。因针对某一测试结果,需要说明测试时的环境情况,特别是OpenFlow 1.3报文输入速率等内容。所以需要从测试报文控制模块中取得相关信息。

控制器响应记录模块针对性能测试内容,记录控制器的响应方式及性能,记录其响应的状态和速率。同时记录执行测试时,具体的测试环境,特别是OpenFlow1.3报文输入速率和报文内容。需要从测试报文控制模块中取得相关信息,并加以分别和整理,记录在案。同时为结果计算和输出模块提供计算结果的原始资料和信息。包括控制器响应报文类型、响应报文时间戳等信息。同时记录交换机与控制器的TCP连接状态,如TCP windows size,rece_buffer size等信息,确保测试结果不受TCP协议的影响。如有异常,也许一并提供给结果计算和输出模块,给出相应的提示。

结果计算和输出模块根据控制器响应记录模块所提供的信息,包括控制器响应报文类型、响应报文时间戳等,计算控制器对某一类OpenFlow 1.3报文的响应吞吐和时延。

图2所示为SDN控制器性能测试仪的测试方法的测试流程图。

测试步骤如下:

1)开始,交换机模拟模块按照用户预定的输入,模拟若干数量的OpenFlow1.3交换机,并建立与被测SDN控制器的TCP连接;

2)OpenFlow 1.3报文生成模块按交换机模拟模块的需求生成Hello报文,与被测SDN控制器建立OpenFlow 1.3协议连接;

3)交换机模拟模块接收控制器发送的Hello消息,以及Echo控制通道保活消息;

4)OpenFlow 1.3报文生成模块按交换机模拟模块的需求生成Echo报文,与被测SDN控制器保证链路活性,该过程将持续于全部测试过程中;

5)拓扑连接生成模块按照用户预定的输入,生成交换机拓扑邻接矩阵,并按该矩阵内容,要求交换机模拟模块配置各模拟交换机端口,包括端口数量、端口号、端口特性和相邻端口;

6)交换机模拟模块接收控制器发送的Multipart_request查询请求,要求其提供端口信息;

7)交换机模拟模块将该请求转送给OpenFlow 1.3报文生成模块,该模块按拓扑连接生成模块提供的相应信息,生成对应的Multipart_reply报文,并由交换机模拟模块上报给被测SDN控制器;

8)控制器给某一台或多台模拟交换机发送LLDP拓扑链路发现报文,交换机模拟模块接收此报文,并转送给测试报文控制模块;

9)测试报文控制模块从拓扑连接生成模块中取得相关拓扑连接信息,按照相邻交换机首先上报LLDP消息的顺序,上报LLDP消息,该消息由OpenFlow 1.3报文生成模块提供;

10)控制器响应记录模块记录被测SDN控制器的响应动作,当控制器给全部模拟交换机都下发过一遍LLDP消息之后,则认为测试完成,在这一过程里记录全部SDN控制器下发LLDP消息的时间戳;

11)结果计算和输出模块计算第一个控制器下发LLDP消息和最后一个LLDP消息之间的时间差,作为最终的测试结果输出,测试结束。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1