CN106330508A - 一种OpenFlow协议的资源控制方法、装置和系统 - Google Patents
一种OpenFlow协议的资源控制方法、装置和系统 Download PDFInfo
- Publication number
- CN106330508A CN106330508A CN201510373310.2A CN201510373310A CN106330508A CN 106330508 A CN106330508 A CN 106330508A CN 201510373310 A CN201510373310 A CN 201510373310A CN 106330508 A CN106330508 A CN 106330508A
- Authority
- CN
- China
- Prior art keywords
- resource
- transponder
- controller
- forwarding
- idle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/72—Admission control; Resource allocation using reservation actions during connection setup
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/83—Admission control; Resource allocation based on usage prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/70—Virtual switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
Abstract
本发明公开了一种OpenFlow协议的资源控制方法、装置和系统,用于解决对转发资源利用不够充分的问题。本发明提供的一种方法可包括:控制器向转发器发送资源分配请求消息,所述控制器和所述转发器之间建立有OpenFlow接口;所述控制器接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;所述控制器根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种OpenFlow协议的资源控制方法、装置和系统。
背景技术
OpenFlow是开放网络基金会(英文:Open Networking Foundation,ONF)定义的通讯协议。OpenFlow在软件定义网络(英文:software-definednetworking,SDN)中用于提供控制器(英文:controller)到转发器(英文:forwarder)的访问。SDN的特点是开放,可编程,支持控制转发分离。
SDN技术的原理是把转发过程抽象成匹配(英文:match)和指令(英文:instruction)两种对象,报文的转发过程就是根据报文信息匹配流表,匹配后按流表规定的指令执行转发。
传统SDN中,业务的转发面在转发器上,并且所有业务各自的控制面都在控制器上。转发器接收流表,按照流表中的表项要求转发,从而实现转发控制分离。控制器一般用服务器来运行。但是在SDN的混合模式(英文:ofhybrid)下,转发器上的多个业务中有些业务的控制面在控制器上,有些业务的控制面在该转发器上。以下将控制面在该业务的转发面所在的转发器上的业务称为转发器上的业务,将控制面在控制器上的业务称为控制器上的业务。例如在SDN中配置虚拟局域网(英文:virtual local area network,VLAN)业务时,一部分转发资源(例如VLAN ID)需要分配给转发器上的VLAN业务使用,一部分转发资源需要分配给控制器上的VLAN业务使用,则分配给控制器使用的VLAN ID和分配给转发器使用的VLAN ID可能冲突。即使在转发器和控制器配置不同的业务,如果这些不同的业务间有共同的转发特征,也会存在冲突的问题。例如转发器配置2层的虚拟专用网络(英文:virtualprivate network,VPN)业务,控制器配置3层的VPN业务,2层的VPN业务和3层的VPN业务按照标签(英文:label)转发时都需要分配标签,这也会存在冲突。
为了解决转发器和控制器的对于转发资源的使用冲突,可以将转发资源分成两个部分,一部分转发资源分配给控制器使用,另一部分转发资源分配给转发器使用,比如转发资源为VLAN ID,所有的VLAN ID为0-4096,假定VLAN ID资源在控制器上分配100-4096,转发器上分配0-99,由于控制器和转发器上使用的是不同的转发资源,因此可以解决上述的冲突问题。但是这样会降低转发资源的利用率。例如,若只有控制器上配置有业务而转发器上没有配置业务,则分给转发器的转发资源就会浪费;如果只在转发器上配置有业务而控制器上没有配置业务,则分配给控制器的资源也会存在浪费。
发明内容
本发明实施例提供了一种OpenFlow协议的资源控制方法、装置和系统,用于解决对转发资源利用不够充分的问题。
第一方面,提供一种OpenFlow协议的资源控制方法,包括:
控制器向转发器发送资源分配请求消息,所述控制器和所述转发器之间建立有OpenFlow接口;
所述控制器接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;
所述控制器根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
结合第一方面,在第一方面的第一种可能的实现方式中,所述控制器向转发器发送资源分配请求消息,包括:
当所述控制器和所述转发器建立初始连接时,所述控制器向所述转发器发送包括请求获取多个资源的资源分配请求消息;
若所述控制器获取到的多个空闲转发资源已分配完毕,所述控制器向所述转发器再次发送包括请求获取多个资源的资源分配请求消息;
所述控制器接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,包括:
所述控制器接收所述转发器响应于所述资源分配请求消息再次发送的资源配置消息,所述转发器再次发送的资源配置消息包括:所述转发器从总转发资源中再次获取到的多个空闲转发资源。
第二方面,还提供一种OpenFlow协议的资源控制方法,包括:
转发器接收控制器发送的资源分配请求消息,所述转发器和所述控制器之间建立有OpenFlow接口;
所述转发器根据所述资源分配请求消息从总转发资源中获取到空闲转发资源;
所述转发器向所述控制器发送资源配置消息,所述资源配置消息包括:所述转发器获取到的所述空闲转发资源。
结合第二方面,在第二方面的第一种可能的实现方式中,所述转发器接收控制器发送的资源分配请求消息,包括:
当所述转发器和所述控制器建立初始连接时,所述转发器接收包括请求获取多个资源的资源分配请求消息;
所述转发器根据所述资源分配请求消息从总转发资源中获取到空闲转发资源,具体为:
所述转发器根据包括请求获取多个资源的资源分配请求消息从所述总转发资源中获取多个的空闲转发资源。
第三方面,还提供一种控制器,包括:
发送模块,用于向转发器发送资源分配请求消息,所述控制器和所述转发器之间建立有OpenFlow接口;
接收模块,用于接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;
资源分配模块,用于根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
结合第三方面,在第三方面的第一种可能的实现方式中,所述发送模块,具体用于当所述控制器和所述转发器建立初始连接时,向所述转发器发送包括请求获取多个资源的资源分配请求消息;若所述控制器获取到的多个空闲转发资源已分配完毕,向所述转发器再次发送包括请求获取多个资源的资源分配请求消息;
所述接收模块,具体用于接收所述转发器响应于所述资源分配请求消息再次发送的资源配置消息,所述转发器再次发送的资源配置消息包括:所述转发器从总转发资源中再次获取到的多个空闲转发资源。
第四方面,还提供一种转发器,包括:
接收模块,用于接收控制器发送的资源分配请求消息,所述转发器和所述控制器之间建立有OpenFlow接口;
资源管理模块,用于根据所述资源分配请求消息从总转发资源中获取到空闲转发资源;
发送模块,用于向所述控制器发送资源配置消息,所述资源配置消息包括:所述转发器获取到的所述空闲转发资源。
结合第四方面,在第四方面的第一种可能的实现方式中,所述接收模块,具体用于当所述转发器和所述控制器建立初始连接时,接收包括请求获取多个资源的资源分配请求消息;
所述资源管理模块,具体用于根据包括请求获取多个资源的资源分配请求消息从所述总转发资源中获取多个的空闲转发资源。
第五方面,还提供一种OpenFlow协议的资源控制系统,包括:控制器和转发器,所述控制器和所述转发器之间建立有OpenFlow接口;
所述控制器为如第三方面中任一项所述的控制器;
所述转发器为如第四方面中任一项所述的转发器。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种OpenFlow协议的资源控制方法的流程方框示意图;
图2为本发明实施例提供的另一种OpenFlow协议的资源控制方法的流程方框示意图;
图3为本发明实施例提供的控制器向转发器查询空闲转发资源的一种场景示意图;
图4-a为本发明实施例中控制器向转发器查询空闲转发资源的一种应用场景示意图;
图4-b为本发明实施例中控制器向转发器查询空闲转发资源的另一种应用场景示意图;
图4-c为本发明实施例中控制器向转发器查询空闲转发资源的另一种应用场景示意图;
图5-a为本发明实施例提供的一种控制器的组成结构示意图;
图5-b为本发明实施例提供的另一种控制器的组成结构示意图;
图6为本发明实施例提供的一种转发器的组成结构示意图;
图7为本发明实施例提供的一种OpenFlow协议的资源控制系统的组成结构示意图;
图8为本发明实施例提供的一种控制器的组成结构示意图;
图9为本发明实施例提供的一种转发器的组成结构示意图。
具体实施方式
本发明实施例提供了一种OpenFlow协议的资源控制方法、装置和系统,用于解决对转发资源利用不够充分的问题。
为使得本发明实施例的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述。
本发明OpenFlow协议的资源控制方法的一个实施例,可应用于在控制器和转发器上控制和业务混合部署场景下,实现控制器向转发器查询空闲转发资源,可以应用于控制器和转发器都配置业务的混合模式,请参阅图1所示,本发明一个实施例提供的OpenFlow协议的资源控制方法,具体可以包括如下步骤:
101、控制器向转发器发送资源分配请求消息,控制器和转发器之间建立有OpenFlow接口。
控制器可实现SDN的控制面与转发面分离架构下的控制面功能,控制器的具体实现可以是服务器。转发器可实现SDN的控制面与转发面分离架构下的转发面功能,转发器的具体实现可以是交换机、路由器等。在本发明的实施例中控制器和转发器之间可以基于OpenFlow协议进行通信,控制器和转发器之间建立有OpenFlow接口,控制器与转发器可以对OpenFlow接口进行扩展,扩展后的OpenFlow接口可用于实现控制器向转发器查询空闲转发资源。具体的,可以在OpenFlow接口中的查询消息中增加字段,该增加的字段用于实现控制器向转发器查询空闲转发资源,例如,本发明实施例中可以在OpenFlow接口的多方消息(英文:multipart messages)中增加控制字段,用于实现控制器向转发器查询空闲转发资源,multipart messages是OpenFlow协议中用于控制器和转发器交互的一种消息。
控制器通过控制器和转发器之间的OpenFlow接口向转发器发送资源分配请求消息,以向转发器查询空闲转发资源。其中,在转发器上存在的转发资源指的是用于描述转发的标识(英文:identity,ID)资源,例如VLAN ID资源、标签资源、虚拟路由转发(英文:virtual routing forwarding,VRF)资源等。在本发明的实施例中,控制器需要向转发器查询空闲转发资源,并由转发器为控制器返回转发资源。
在本发明实施例的一些实现中,控制器向转发器发送资源分配请求消息,具体可以包括如下步骤:
A1、当控制器和转发器建立初始连接时,控制器向转发器发送包括请求获取多个资源的资源分配请求消息;
或,
A2、当控制器上的业务需要分配转发资源时,控制器向转发器发送与需要分配转发资源的业务对应的资源分配请求消息。
具体的,A1中对控制器向转发器查询空闲转发资源的一种具体实现方式进行了详细说明,A2中对控制器向转发器查询空闲转发资源的另一种具体实现方式进行了详细说明,在本发明实施例的一些实现中,控制器还可以采用A1以及A2的方式向转发器查询空闲转发资源。另外,控制器向转发器查询空闲转发资源可以不局限于上述的A1和A2的实现方式。A1是控制器和转发器建立初始连接时控制器就向转发器查询空闲转发资源,即控制器和转发器首次建立连接关系时就可以向转发器查询空闲转发资源,这种向转发器查询空闲转发资源的方式是在控制器上的业务创建以前就进行空闲转发资源的预先查询,控制器在业务创建之前就已经从转发器获取到了空闲转发资源,并且控制器可以向转发器同时查询多个资源,以满足控制器上的多个业务的资源分配需要,但是控制器向转发器查询多个资源只是一种可实现的方式,另外控制器向转发器还可以查询单个资源,具体实现方式不做限定。A2是当控制器上的业务需要分配转发资源时,控制器才向转发器查询空闲转发资源,实现按照控制器上的业务需要实时查询空闲转发资源。
进一步的,在采用A1的向转发器查询空闲转发资源的方式的实现中,控制器向转发器发送包括请求获取多个资源的资源分配请求消息之后,还可以包括如下步骤:
B1、若控制器获取到的多个空闲转发资源已分配完毕,控制器向转发器再次发送包括请求获取多个资源的资源分配请求消息。
其中,在步骤B1的实现方式下,控制器是在向控制器上已创建的业务分配转发资源之前就会向转发器查询空闲转发资源,那么在控制器获取到的多个空闲转发资源已分配完毕的情况下,控制器还需要向转发器再次发送包括请求获取多个资源的资源分配请求消息,控制器仍然可以按照在为业务分配空闲转发资源之前就预先查询的方式向转发器再次查询空闲转发资源,以满足控制器上的业务对资源的需要。
102、控制器接收转发器响应于资源分配请求消息发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源。
在本发明实施例中,控制器通过OpenFlow接口向转发器发送资源分配请求消息之后,转发器可以接收到控制器发送的资源分配请求消息,转发器可以根据资源分配请求消息从总转发资源中获取到空闲转发资源。举例说明,转发器可以保存有总转发资源,或者转发器中也可以不保存总转发资源,而是通过默认配置的方式确定出总转发资源,转发器自身的业务可能会占用总转发资源中的一部分转发资源,在转发器上当前没有创建的业务时,转发器也可以为自己预留总转发资源中的一部分转发资源,转发器可以根据转发器上是否创建有业务以及已创建的业务占用了多少转发资源来决定从总转发资源中选择哪些转发资源作为发送给控制器的空闲转发资源,例如,转发器从总转发资源中预留出一部分转发资源给自己的业务使用,然后将总转发资源中剩余的转发资源作为空闲转发资源发送给控制器。转发器根据控制器的查询可以按照前述的实现方式从总转发资源中选择出空闲转发资源,然后转发器将携带空闲转发资源的资源配置消息发送给控制器,控制器通过OpenFlow接口接收到转发器发送的资源配置消息。
其中,转发器发送的资源配置消息包括转发器从总转发资源中获取到的空闲转发资源,具体可以有多种实现方式,举例说明,转发器发送的资源配置消息中可以包括直接包括空闲转发资源,转发器发送的资源配置消息中也可以包括已经占用的转发资源,则在总转发资源中除了已经占用的转发资源剩余的就是空闲转发资源,控制器从资源配置消息中包括的已经占用的转发资源也可以确定出空闲转发资源。控制器根据接收到的资源配置消息可以获取到转发器从总转发资源中为控制器获取的空闲转发资源,从而控制器可以完成空闲转发资源的预留,以保证控制器上创建的业务的需要。
在本发明实施例的前述实现中,描述了控制器和转发器之间通过OpenFlow接口实现控制器向转发器查询空闲转发资源和转发器向控制器返回转发资源。若执行步骤B1,则本发明实施例中的步骤102,具体可以包括如下步骤:
B2、控制器接收转发器响应于资源分配请求消息再次发送的资源配置消息,转发器再次发送的资源配置消息包括:转发器从总转发资源中再次获取到的多个空闲转发资源。
其中,在步骤B2的实现方式下,控制器向转发器查询空闲转发资源采用的是预查询多个资源的方式,那么在控制器获取到的多个空闲转发资源已分配完毕的情况下,控制器还需要向转发器再次发送包括请求获取多个资源的资源分配请求消息,控制器仍然是按照预查询多个资源的方式,转发器从总转发资源中再次获取到多个空闲转发资源,然后将再次获取到的多个空闲转发资源发送给控制器,则控制器在上一次查询到的多个转发资源用完之后,继续预查询多个空闲转发资源,从而控制器可以完成多个空闲转发资源的预留,以满足控制器上的业务分配需要。
在本发明的一些实现中,步骤102控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,具体可以包括如下步骤:
C1、控制器将资源配置消息中包括的空闲转发资源保存到资源池中;
C2、控制器从资源池获取空闲转发资源分配给控制器上已创建的业务。
具体的,在本发明控制器为控制器上已创建的业务分配业务可用转发资源的实现场景下,控制器可以在控制器上给每个转发器分别创建一个资源池,资源池作用有两个,一是保存转发器的空闲转发资源,二是为控制器上的业务做资源分配管理。当控制器从转发器获取到空闲转发资源之后,控制器将收集到的空闲转发资源保存到资源池中,当控制器上的业务需要使用空闲转发资源时,控制器可以从资源池获取空闲转发资源分配给控制器上已创建的业务,控制器通过使用资源池,可以方便的实现对空闲转发资源的管理。
103、控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。
在本发明实施例中,控制器根据接收到的资源配置消息可以获取到转发器从总转发资源中为控制器分配的空闲转发资源之后,控制器从空闲转发资源中为控制器上已创建的业务分配业务可用转发资源,其中业务可用转发资源为控制器从接收到的空闲转发资源中为该控制器上创建的业务分配的空闲转发资源,控制器为业务分配业务可用资源的具体方式可以有多种,例如可以根据控制器上已创建的业务的规模、优先级等决定如何分配空闲转发资源。
在本发明实施例的一些实现中,步骤103控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源之后,本发明提供的OpenFlow协议的资源控制方法还可以包括如下步骤:
D1、控制器向转发器发送资源释放请求消息,资源释放请求消息包括:控制器释放的空闲转发资源。
在步骤D1的实现中可以用于转发器独立运行然后由控制器接管的应用场景。在本发明的实施例中对控制器和转发器之间的OpenFlow接口进行了扩展,扩展的OpenFlow接口不仅可以用于空闲转发资源的查询,还可以用于空闲转发资源的释放。具体的,控制器在自身不需要使用一些空闲转发资源时,可以确定需要释放哪些空闲转发资源后向转发器发送资源释放请求消息。转发器接收到资源释放请求消息之后,转发器可以获取到控制器释放的空闲转发资源,转发器可以回收控制器释放的空闲转发资源,抓发器将控制器释放的空闲转发资源加入到总转发资源中,转发器向控制器返回资源释放成功消息,转发器回收的空闲转发资源可以用于控制器的下次查询时返回给控制器,或者提供给自己的业务使用。
在本发明实施例的一些实现中,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源之后,本发明提供的OpenFlow协议的资源控制方法还可以包括如下步骤:
E1、将控制器上已创建的业务、分配给业务的业务可用转发资源之间建立关联关系,并将关联关系存储到控制器的本地缓存中,以使控制器根据关联关系为业务重新分配业务可用转发资源。
也就是说,在本发明实施例的一些实现中,例如,可以建立业务A和分配给该业务A的业务可用转发资源之间的关联关系,在一些异常情况下业务可用转发资源被释放后,还可以从本地缓存中根据关联关系重新找到该业务A分配的业务可用转发资源,将找到的业务可用转发资源重新分配给该业务A。举例说明如下,可以基于业务进行缓存,将业务可用转发资源跟业务特征一起缓存,这样可以实现由于错误删除了配置,可以马上重新配置,还能获取到原来的业务可用转发资源。例如配置静态VPN,将分配的VRFID跟VPN实例一起缓存,因此保存了VRFID跟VPN实例之间的关联关系,假定VPN实例1对应VRFID等于1,那么缓存的时候,将VRFID:1+VPN实例1一起缓存下来,那么这个VRFID等于1的资源,就只能给VPN实例1使用了。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
前述实施例对本发明OpenFlow协议的资源控制方法应用于控制器的实现情况进行了说明,在控制器和转发器上控制和业务混合部署场景下,例如控制器和转发器可以都配置业务的混合模式,实现控制器向转发器查询空闲转发资源,接下来对本发明OpenFlow协议的资源控制方法应用于转发器的实现情况进行说明,请参阅图2所示,本发明一个实施例提供的OpenFlow协议的资源控制方法,具体可以包括如下步骤:
201、转发器接收控制器发送的资源分配请求消息,转发器和控制器之间建立有OpenFlow接口。
在本发明的实施例中,控制器可实现SDN的控制面与转发面分离架构下的控制面功能,控制器的具体实现可以是服务器,转发器可实现SDN的控制面与转发面分离架构下的转发面功能,转发器的具体实现可以是交换机、路由器等。在本发明的实施例中控制器和转发器之间可以基于OpenFlow协议进行通信,控制器和转发器之间建立有OpenFlow接口,控制器与转发器可以对OpenFlow接口进行扩展,扩展后的OpenFlow接口可用于实现控制器向转发器查询空闲转发资源。具体的,可以在OpenFlow接口中的查询消息中增加字段,例如,本发明实施例中可以在OpenFlow接口的multipart messages中增加控制字段,用于实现控制器向转发器查询空闲转发资源,multipart messages是OpenFlow协议中用于控制器和转发器实现交互的一种消息。
在本发明的实施例中,控制器通过控制器和转发器之间的OpenFlow接口向转发器发送资源分配请求消息,以向转发器查询空闲转发资源。其中,在转发器上存在的转发资源指的是用于描述转发的ID资源,包括VLAN ID资源、标签资源、VRF资源等。在本发明的实施例中,控制器需要向转发器查询空闲转发资源,转发器接收到控制器发送的资源分配请求消息,然后触发执行步骤202。
202、转发器根据资源分配请求消息从总转发资源中获取到空闲转发资源。
在本发明实施例中,控制器通过OpenFlow接口向转发器发送资源分配请求消息之后,转发器接收到控制器发送的资源分配请求消息,转发器可以根据资源分配请求消息从总转发资源中获取到空闲转发资源,举例说明,转发器可以保存有总转发资源,转发器自身的业务可能会占用总转发资源中的一部分转发资源,在转发器上当前没有创建的业务时,转发器也可以为自己预留总转发资源中的一部分转发资源,转发器可以根据转发器上是否创建有业务以及已创建的业务占用了多少转发资源来决定从总转发资源中选择哪些转发资源作为发送给控制器的空闲转发资源,例如,转发器从总转发资源中预留出一部分转发资源给自己的业务使用,然后将总转发资源中剩余的转发资源作为空闲转发资源发送给控制器。转发器根据控制器的查询从总转发资源中选择出空闲转发资源。举例说明,转发器上的总转发资源为从0-4096的VLAN ID资源,若转发器自身的业务占用了0-2000的VLAN ID资源,或者转发器将0-2000的VLAN ID资源预留给自身的业务使用,在总转发资源中VLANID从2001-4096仍是空闲的,转发器可以从总转发资源中选择2001-2201的空闲转发资源发送给控制器使用。
在本发明实施例的一些实现中,前述内容中描述了控制器和转发器之间通过OpenFlow接口实现空闲转发资源的查询和返回,这里具体指的是控制器与一个转发器的交互,也可以指的是控制器与多个转发器的交互,即控制器也可以向多个转发器分别查询空闲转发资源,在这种实现场景下,步骤201和步骤202中可以指的是某一个转发器执行的资源控制方法,与控制器建立OpenFlow协议的其它转发器也可以执行上述资源控制方法。其中,控制器与多个转发器的交互可以是同时进行的,也可以根据控制器的实际情况决定先与其中的部分转发器交互,或者同时与多个转发器交互,具体实现过程不做限定。
在本发明实施例的一些实现中,步骤201转发器接收控制器发送的资源分配请求消息,具体可以包括如下步骤:
F1、当转发器和控制器建立初始连接时,转发器接收包括请求获取多个资源的资源分配请求消息。
在本发明执行步骤F1的实现场景下,步骤202转发器根据资源分配请求消息从总转发资源中获取到空闲转发资源,具体为:
G1、转发器根据包括请求获取多个资源的资源分配请求消息从总转发资源中获取多个的空闲转发资源。
具体的,步骤F1中对控制器向转发器查询空闲转发资源的具体实现方式进行了详细说明,其中,控制器向转发器查询空闲转发资源可以有多种不同的实现方式。一种是控制器和转发器建立初始连接时控制器就向转发器查询空闲转发资源,即控制器和转发器首次建立连接关系时就可以向转发器查询空闲转发资源,这种向转发器查询空闲转发资源的方式是在控制器上的业务创建以前,控制器就已经事先从转发器获取到了空闲转发资源,对控制器而言可以实现空闲转发资源的预留,并且控制器可以向转发器获取到多个空闲转发资源,以满足控制器上的多个业务的需要。若转发器接收到控制器对多个资源的查询,则转发器可以为控制器一次返回多个的空闲转发资源。另一种是当控制器上的业务需要分配转发资源时,控制器才向转发器查询空闲转发资源,实现按照控制器上的业务需要实时获取。转发器按照可以控制器的实时查询向控制器返回控制器上的当前业务需要使用的空闲转发资源。
203、转发器向控制器发送资源配置消息,资源配置消息包括:转发器获取到的空闲转发资源。
在本发明实施例中,转发器从总转发资源中获取到空闲转发资源之后,转发器可以将获取到的空闲转发资源携带在资源配置消息中发送给控制器,控制器通过OpenFlow接口接收到转发器发送的资源配置消息。控制器根据接收到的资源配置消息可以获取到转发器从总转发资源中为控制器分配的空闲转发资。
在本发明实施例的一些实现中,步骤203转发器向控制器发送资源配置消息之后,本发明提供的OpenFlow协议的资源控制方法还可以包括如下步骤:
H1、转发器接收控制器发送的资源释放请求消息,资源释放请求消息包括:控制器确定的需要释放的空闲转发资源;
H2、转发器将需要释放的空闲转发资源加入到总转发资源中。
也就是说,在本发明的实施例中对控制器和转发器之间的OpenFlow接口进行了扩展,扩展的OpenFlow接口不仅可以用于空闲转发资源的查询,还可以用于空闲转发资源的释放。具体的,控制器在自身不需要使用一些空闲转发资源时,可以确定需要释放哪些空闲转发资源向转发器发送资源释放请求消息,转发器接收到资源释放请求消息之后,转发器可以获取到控制器释放的空闲转发资源,转发器可以回收控制器释放的空闲转发资源,转发器向控制器反馈资源释放成功,转发器回收的空闲转发资源可以用于控制器的下次查询时返回给控制器,或者提供给自己的业务使用。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
接下来以SDN的控制器和转发器上控制和业务混合部署场景为例进行说明,引入控制器向转发器查询空闲转发资源,控制器完成转发资源的预留,从而支持混合模式。请参阅如图3所示,为本发明实施例中控制器向转发器查询空闲转发资源的一种场景示意图。控制器中包括业务模块和转发资源管理模块,其中业务模块用于控制器上的业务创建以及根据业务向转发资源管理模块查询空闲转发资源,转发资源管理模块用于向转发器查询空闲转发资源以及为控制器上已创建的业务分配业务可用转发资源。在SDN中新增加转发器时,控制器与新增加的转发器之间实现转发资源的动态同步,主要过程如下:
1、新增转发器时,对控制器和新增的转发器之间扩展OpenFlow接口,例如扩展multipart messages的消息字段,支持控制器向转发器的查询空闲转发资源,以及转发器向控制器返回空闲转发资源以及释放空闲转发资源,控制器和转发器通过扩展OpenFlow接口实现空闲转发资源的查询与返回。
2、在控制器上增加转发资源管理模块,通过OpenFlow接口收集空闲转发资源,控制器中的转发资源管理模块用于向转发器查询空闲转发资源和在控制器上向业务分配空闲转发资源,例如,有些空闲转发资源是给不同业务,转发资源管理模块按照不同业务来分配具体的空闲转发资源,例如标签资源可以分配给标签分发协议(英文:Label Distribution Protocol,LDP)业务和边界网关协议(英文:border gateway protocol,BGP)业务使用,又如VLANID资源可以分配给VLAN业务使用。
3、转发资源管理模块按照每个转发器独立查询该转发器上的空闲转发资源,在控制器上给每个转发器创建一个资源池。资源池作用有两个,一是保存转发器的空闲转发资源,二是为控制器上的业务做空闲转发资源的分配管理。
4、当控制器上的业务需要使用空闲转发资源时,控制器上的业务模块向控制器上的转发资源管理模块请求分配空闲转发资源,控制器上的转发资源管理模块向转发器查询空闲转发资源,只有为业务成功分配业务可用转发资源之后才能下发业务对应的报文。转发资源管理模块向转发器查询空闲转发资源具体可以有如下的两种方式。一种是在控制器上的业务创建以前,转发资源管理模块已经事先向转发器获取到了一大部分空闲转发资源,若获取到的空闲转发资源使用完,可以重新向转发器查询空闲转发资源。另一种是控制器上有业务需要使用空闲转发资源时,转发资源管理模块才向转发器查询空闲转发资源,转发资源管理模块从转发器获取到空闲转发资源后可以同时缓存该空闲转发资源,避免向转发器的反复查询。接下来对控制器向转发器查询空闲转发资源以及转发器返回空闲转发资源的实现方式进行举例说明。
请参阅如图4-a所示,为本发明实施例中控制器向转发器查询空闲转发资源的一种应用场景示意图,该方案下控制器可以实现查询多个空闲转发资源。当控制器和转发器首次连接时,向转发器查询空闲转发资源,图4-a中以VLAN ID资源为例,转发资源是动态的,转发器自己也有可能自己占用一部分转发资源,转发器将总转发资源(0-4096),和当前的空闲转发资源(2000-4096)返回给控制器使用,控制器利用空闲转发资源(2000-4096)建立资源管理。控制器上通过转发器返回的总转发资源和空闲转发资源来预测转发器上是否还存在空闲转发资源,比如转发器返回的总转发资源和空闲转发资源相等时,说明转发器已经将所有的转发资源都给控制器了,转发器上没有空闲转发资源。当控制器上的业务需要使用转发资源时,业务模块向转发资源管理模块请求分配转发资源,业务可用转发资源分配成功后才能使用业务可用转发资源进行业务对应的报文的转发。
请参阅如图4-b所示,为本发明实施例中控制器向转发器查询空闲转发资源的另一种应用场景示意图,当控制器上的空闲转发资源使用完后,控制器可以继续向转发器查询一批空闲转发资源,比如(1800-1999)。当控制器的空闲转发资源和总转发资源相等时,这种情况可能说明转发器自身没有配置业务,转发器上的业务数据全部来源于控制器,因此控制器不再需要向转发器查询空闲转发资源。前述举例中的实现使用的是预查询多个空闲转发资源的方式,这种方式适用于转发器使用转发资源较少,控制器使用转发资源较多的场景,转发资源的分配效率很高。
请参阅如图4-c所示,为本发明实施例中控制器向转发器查询空闲转发资源的另一种应用场景示意图,此方案下控制器按照业务的需要向转发器查询空闲转发资源,具体可以包括如下步骤:
1、控制器和转发器初始连接时,控制器先向转发器查询空闲转发资源,创建资源管理,也可以在控制器和转发器初始连接时不进行转发资源的查询,而是直接在控制器上创建空资源池。
2、控制器的业务模块向控制器的转发资源管理模块请求分配转发资源。
3、转发资源管理模块优先查看控制器的本地缓存,如果控制器的本地缓存中还保存有空闲转发资源,则转发资源管理模块向控制器上已创建的业务分配业务可用转发资源,接下来开始执行对已创建的业务对应的报文进行发送,完成报文发送后结束整个过程。如果本地缓存中没有保存空闲转发资源,执行后续步骤4。
4、控制器第一次查询本地缓存时,本地缓存为空,转发资源管理模块则向转发器查询空闲转发资源。此时控制器按照业务的需要向转发器查询空闲转发资源,控制器上的业务对转发资源需求多少,转发资源管理模块就向转发器获取多少空闲转发资源。
5、转发器将空闲转发资源发送给控制器,同时转发器将分配给控制器的空闲转发资源在转发器中置为已分配状态。
6、控制器的业务模块在得到业务可用转发资源后,使用业务可用转发资源进行报文的发送。
其中,上述缓存空闲转发资源的方式可以包括以下两种方式:
1、基于业务特征进行缓存,即将业务可用转发资源和业务特征一起缓存,这样可以实现由于错误删除了配置,马上可以重新配置业务可用转发资源,例如配置静态VPN业务,将分配的VRFID和VPN业务共同缓存,假定VPN业务1对应的VRFID等于1,那么在缓存的时候,将VRFID:1+VPN业务1一起缓存起来,那么这个VRFID等于1的VRFID资源,就只分配能给VPN业务1使用。
2、基于转发资源进行缓存,在业务被释放后,控制器可以将空闲转发资源分配给任何新创建的业务使用。在本发明实施例的一些实现中缓存的释放机制通常可以有多种,例如可以定时释放(比如120秒),或者按照空闲比例释放(比如总转发资源的20%),或者二者相结合。
在本发明的实施例中对控制器和转发器之间OpenFlow接口进行扩展,具体可以是在multipart messages中新增加控制字段,对于multipart messages可参考OpenFlow-spec-v1.4.0中规定。例如,在multipart messages中扩展一个资源类,将OFPMP_RESOURCE=17,在multipart messages中增加具体控制字,例如,在资源类下扩展具体的资源,每个资源分成查询、返回、释放三种方式。
通过以上对本发明的举例说明可知,通过在控制器中部署转发资源管理模块,完成对转发资源的管理,从而实现控制器、转发器可以同时配置业务,增加网络的灵活性,可适用于目前的网络结构向SDN过渡的场景。转发器只需要按照前述的发明内容做少量改动后即可以支持混合模式。控制器通过查询多个空闲转发资源然后预留空闲转发资源的实现方式,减少了向转发器的频繁查询,提升了空闲转发资源的分配效率。通过按需分配算法加上缓存机制,增加了转发资源分配的灵活性,并保持了转发资源的高效利用。通过扩展OpenFlow接口进行增加控制字段,例如OFPMP_RESOURCE=17是新增的控制字,实现控制器可以向转发器查询、释放空闲转发资源。
本发明提供的OpenFlow协议的资源控制方法还可以适用于控制器切换的场景,通过扩展的multipart messages,切换后的新控制器可以按照前述的执行方法从转发器获取到空闲转发资源,实现控制器在没有备份的情况下顺利完成切换,并且可以保证业务可以分配到转发资源,避免业务分配转发资源的过程中断。例如开始由控制器1从转发器获取到空闲转发资源然后分配给业务使用,这时将控制器1切换为控制器2,若控制器1和控制器2之间并没有做控制数据的备份,那么当控制器2替换控制器1之后,控制器2可以通过从转发器获取空闲转发资源,来实现切换前后的空闲转发资源的一致,控制器2可以继续分配给业务使用空闲转发资源。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图5-a所示,本发明实施例提供的一种控制器500,可以包括:发送模块501、接收模块502、资源分配模块503,其中,
发送模块501,用于向转发器发送资源分配请求消息,所述控制器和所述转发器之间建立有OpenFlow接口;
接收模块502,用于接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;
资源分配模块503,用于根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
在本发明实施例的一些实现中,所述发送模块501,具体用于当所述控制器和所述转发器建立初始连接时,向所述转发器发送包括请求获取多个资源的资源分配请求消息;若所述控制器获取到的多个空闲转发资源已分配完毕,向所述转发器再次发送包括请求获取多个资源的资源分配请求消息。
所述接收模块502,具体用于接收所述转发器响应于所述资源分配请求消息再次发送的资源配置消息,所述转发器再次发送的资源配置消息包括:所述转发器从总转发资源中再次获取到的多个空闲转发资源。
在本发明实施例的一些实现中,所述发送模块501,还用于所述资源分配模块根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源之后,发送资源释放请求消息,所述资源释放请求消息包括:所述控制器确定的需要释放的空闲转发资源。
在本发明实施例的一些实现中,所述资源分配模块503,具体用于将所述资源配置消息中包括的空闲转发资源保存到资源池中;从所述资源池获取空闲转发资源分配给所述控制器上已创建的业务。
在本发明实施例的一些实现中,请参阅如图5-b所示,所述控制器500,还包括:缓存模块504,用于所述资源分配模块503根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源之后,将所述控制器上已创建的业务、分配给所述业务的业务可用转发资源之间建立关联关系,并将所述关联关系存储到所述控制器的本地缓存中,以使所述控制器根据所述关联关系为所述业务重新分配所述业务可用转发资源。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
请参阅图6所示,本发明实施例提供的一种转发器600,可以包括:接收模块601、资源管理模块602、发送模块603,其中,
接收模块601,用于接收控制器发送的资源分配请求消息,所述转发器和所述控制器之间建立有OpenFlow接口;
资源管理模块602,用于根据所述资源分配请求消息从总转发资源中获取到空闲转发资源;
发送模块603,用于向所述控制器发送资源配置消息,所述资源配置消息包括:所述转发器获取到的所述空闲转发资源。
在本发明实施例的一些实现中,所述接收模块601,具体用于当所述转发器和所述控制器建立初始连接时,接收包括请求获取多个资源的资源分配请求消息;
所述资源管理模块602,具体用于根据包括请求获取多个资源的资源分配请求消息从所述总转发资源中获取多个的空闲转发资源。
在本发明实施例的一些实现中,所述接收模块601,还用于所述发送模块向所述控制器发送资源配置消息之后,接收所述控制器发送的资源释放请求消息,所述资源释放请求消息包括:所述控制器确定的需要释放的空闲转发资源;
所述资源管理模块602,还用于将所述需要释放的空闲转发资源加入到所述总转发资源中。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
请参阅图7所示,本发明实施例提供的一种OpenFlow协议的资源控制系统700,可以包括:如前述图5-a和图5-b中任一项所述的控制器500、如前述图6所述的转发器600,所述控制器500和所述转发器600之间建立有OpenFlow接口。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器请求总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
接下来介绍本发明实施例提供的一种控制器,请参阅图8所示,控制器800包括:
网络接口801、处理器802和存储器803(其中控制器800中的处理器802的数量可以一个或多个,图8中以一个处理器为例)。在本发明实施例的一些实现中,网络接口801、处理器802和存储器803可通过总线或其它方式连接,其中,图8中以通过总线连接为例。控制器的一种实现方式举例如下,控制器800中的处理器802具体为中央处理器(英文:central processing unit,CPU),用来计算和处理转发资源的使用;存储器803用于存储转发资源,存储器803可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,HDD)或固态硬盘(英文:solid-state drive,SSD),存储器803还可以包括上述种类的存储器的组合;网络接口801,可以是以太网接口、同步数字体系(英文:Synchronous Digital Hierarchy,SDH)接口等,用来和转发器实现基于OpenFlow协议的通信。
其中,处理器802,用于执行如下步骤:
向转发器发送资源分配请求消息;
接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;
根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
在本发明实施例的一些实现中,处理器802,具体用于执行如下步骤:
当所述控制器和所述转发器建立初始连接时,向所述转发器发送包括请求获取多个资源的资源分配请求消息;
若所述控制器获取到的多个空闲转发资源已分配完毕,向所述转发器再次发送包括请求获取多个资源的资源分配请求消息;
接收所述转发器再次发送的资源配置消息,所述转发器再次发送的资源配置消息包括:所述转发器从总转发资源中再次获取到的多个空闲转发资源。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
接下来介绍本发明实施例提供的一种转发器,请参阅图9所示,转发器900包括:
网络接口901、转发芯片902、处理器903和存储器904(其中转发器900中的处理器903的数量可以一个或多个,图9中以一个处理器为例)。在本发明实施例的一些实现中,网络接口901、转发芯片902、处理器903和存储器904可通过总线或其它方式连接,其中,图9中以通过总线连接为例。转发器的一种实现方式举例如下,转发器900中的处理器903具体为中央处理器(英文:central processing unit,CPU),用来计算和处理数据,例如用于转发器上的控制面计算;存储器904用于存储数据,存储器904的具体实现可以与前述实施例中的存储器803相类似;网络接口901,可以是以太网接口、SDH接口等,用来和控制器实现基于OpenFlow协议的通信,以及业务对应的报文的转发;转发芯片902可以是CPU中的一个或多个用于转发的核,网络处理器(英文:network processor,NP),硬件芯片,或其任意组合。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,ASIC),可编程逻辑器件(英文:programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,FPGA),通用阵列逻辑(英文:generic array logic,GAL)或其任意组合。
其中,处理器903,用于执行如下步骤:
接收控制器发送的资源分配请求消息;
根据所述资源分配请求消息从总转发资源中获取到空闲转发资源;
向所述控制器发送资源配置消息,所述资源配置消息包括:所述转发器获取到的所述空闲转发资源。
在本发明实施例的一些实现中,处理器903,具体用于执行如下步骤:
当所述转发器和所述控制器建立初始连接时,接收包括请求获取多个资源的资源分配请求消息;
根据包括请求获取多个资源的资源分配请求消息从所述总转发资源中获取多个的空闲转发资源。
通过以上实施例对本发明的描述可知,控制器和转发器之间建立有OpenFlow接口,控制器向转发器发送资源分配请求消息,控制器接收转发器发送的资源配置消息,资源配置消息包括:转发器从总转发资源中获取到的空闲转发资源,控制器根据空闲转发资源为控制器上已创建的业务分配业务可用转发资源,业务可用转发资源为空闲转发资源中的部分或者全部资源。控制器为业务分配好业务可用转发资源之后,控制器可以为已创建的业务下发数据。本发明实施例中控制器向转发器查询总转发资源中的空闲转发资源分配给业务使用,既不影响转发器对自身业务的转发资源分配,又可以满足控制器上业务对转发资源的需要,转发器和控制器对转发资源的使用不会造成冲突,也可以解决现有技术对转发资源利用不够充分的问题。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络设备上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。本发明的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,闪存、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述的方法。
综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。
Claims (9)
1.一种OpenFlow协议的资源控制方法,其特征在于,包括:
控制器向转发器发送资源分配请求消息,所述控制器和所述转发器之间建立有OpenFlow接口;
所述控制器接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;
所述控制器根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
2.根据权利要求1所述的方法,其特征在于,所述控制器向转发器发送资源分配请求消息,包括:
当所述控制器和所述转发器建立初始连接时,所述控制器向所述转发器发送包括请求获取多个资源的资源分配请求消息;
若所述控制器获取到的多个空闲转发资源已分配完毕,所述控制器向所述转发器再次发送包括请求获取多个资源的资源分配请求消息;
所述控制器接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,包括:
所述控制器接收所述转发器响应于所述资源分配请求消息再次发送的资源配置消息,所述转发器再次发送的资源配置消息包括:所述转发器从总转发资源中再次获取到的多个空闲转发资源。
3.一种OpenFlow协议的资源控制方法,其特征在于,包括:
转发器接收控制器发送的资源分配请求消息,所述转发器和所述控制器之间建立有OpenFlow接口;
所述转发器根据所述资源分配请求消息从总转发资源中获取到空闲转发资源;
所述转发器向所述控制器发送资源配置消息,所述资源配置消息包括:所述转发器获取到的所述空闲转发资源。
4.根据权利要求3所述的方法,其特征在于,所述转发器接收控制器发送的资源分配请求消息,包括:
当所述转发器和所述控制器建立初始连接时,所述转发器接收包括请求获取多个资源的资源分配请求消息;
所述转发器根据所述资源分配请求消息从总转发资源中获取到空闲转发资源,具体为:
所述转发器根据包括请求获取多个资源的资源分配请求消息从所述总转发资源中获取多个的空闲转发资源。
5.一种控制器,其特征在于,包括:
发送模块,用于向转发器发送资源分配请求消息,所述控制器和所述转发器之间建立有OpenFlow接口;
接收模块,用于接收所述转发器响应于所述资源分配请求消息发送的资源配置消息,所述资源配置消息包括:所述转发器从总转发资源中获取到的空闲转发资源;
资源分配模块,用于根据所述空闲转发资源为所述控制器上已创建的业务分配业务可用转发资源,所述业务可用转发资源为所述空闲转发资源中的部分或者全部资源。
6.根据权利要求5所述的控制器,其特征在于,所述发送模块,具体用于当所述控制器和所述转发器建立初始连接时,向所述转发器发送包括请求获取多个资源的资源分配请求消息;若所述控制器获取到的多个空闲转发资源已分配完毕,向所述转发器再次发送包括请求获取多个资源的资源分配请求消息;
所述接收模块,具体用于接收所述转发器响应于所述资源分配请求消息再次发送的资源配置消息,所述转发器再次发送的资源配置消息包括:所述转发器从总转发资源中再次获取到的多个空闲转发资源。
7.一种转发器,其特征在于,包括:
接收模块,用于接收控制器发送的资源分配请求消息,所述转发器和所述控制器之间建立有OpenFlow接口;
资源管理模块,用于根据所述资源分配请求消息从总转发资源中获取到空闲转发资源;
发送模块,用于向所述控制器发送资源配置消息,所述资源配置消息包括:所述转发器获取到的所述空闲转发资源。
8.根据权利要求7所述的转发器,其特征在于,所述接收模块,具体用于当所述转发器和所述控制器建立初始连接时,接收包括请求获取多个资源的资源分配请求消息;
所述资源管理模块,具体用于根据包括请求获取多个资源的资源分配请求消息从所述总转发资源中获取多个的空闲转发资源。
9.一种OpenFlow协议的资源控制系统,其特征在于,包括:控制器和转发器,所述控制器和所述转发器之间建立有OpenFlow接口;
所述控制器为如权利要求5至6中任一项所述的控制器;
所述转发器为如权利要求7至8中任一项所述的转发器。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510373310.2A CN106330508B (zh) | 2015-06-30 | 2015-06-30 | 一种OpenFlow协议的资源控制方法、装置和系统 |
EP16817187.4A EP3306860B1 (en) | 2015-06-30 | 2016-06-22 | Openflow protocol resources control method, device and system |
PCT/CN2016/086759 WO2017000823A2 (zh) | 2015-06-30 | 2016-06-22 | 一种OpenFlow协议的资源控制方法、装置和系统 |
US15/858,815 US11140091B2 (en) | 2015-06-30 | 2017-12-29 | Openflow protocol-based resource control method and system, and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510373310.2A CN106330508B (zh) | 2015-06-30 | 2015-06-30 | 一种OpenFlow协议的资源控制方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106330508A true CN106330508A (zh) | 2017-01-11 |
CN106330508B CN106330508B (zh) | 2019-10-25 |
Family
ID=57607897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510373310.2A Active CN106330508B (zh) | 2015-06-30 | 2015-06-30 | 一种OpenFlow协议的资源控制方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11140091B2 (zh) |
EP (1) | EP3306860B1 (zh) |
CN (1) | CN106330508B (zh) |
WO (1) | WO2017000823A2 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108390784A (zh) * | 2018-02-13 | 2018-08-10 | 中国联合网络通信集团有限公司 | 一种资源回收的方法及装置 |
CN109120555A (zh) * | 2017-06-26 | 2019-01-01 | 中兴通讯股份有限公司 | 一种资源分配方法及系统 |
CN109787804A (zh) * | 2017-11-15 | 2019-05-21 | 华为技术有限公司 | 一种业务资源管理的方法、设备和系统 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106330508B (zh) * | 2015-06-30 | 2019-10-25 | 华为技术有限公司 | 一种OpenFlow协议的资源控制方法、装置和系统 |
US20200151010A1 (en) * | 2018-11-10 | 2020-05-14 | Nutanix, Inc. | Scheduling of fixed number of non-sharable resources |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104125576A (zh) * | 2013-04-25 | 2014-10-29 | 华为技术有限公司 | 控制和承载分离架构下的频谱策略调整方法及装置 |
CN104253767A (zh) * | 2013-06-27 | 2014-12-31 | 华为技术有限公司 | 一种虚拟分片网络的实现方法及一种交换机 |
US20150023210A1 (en) * | 2012-01-09 | 2015-01-22 | Telefonaktiebolaget L M Ericsson (Publ) | Network Device Control in a Software Defined Network |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8873398B2 (en) * | 2011-05-23 | 2014-10-28 | Telefonaktiebolaget L M Ericsson (Publ) | Implementing EPC in a cloud computer with openflow data plane |
US9306840B2 (en) * | 2012-09-26 | 2016-04-05 | Alcatel Lucent | Securing software defined networks via flow deflection |
US20140173018A1 (en) * | 2012-12-13 | 2014-06-19 | Futurewei Technologies, Inc. | Content Based Traffic Engineering in Software Defined Information Centric Networks |
CN103338163B (zh) * | 2013-07-16 | 2016-03-23 | 清华大学 | 支持动态弹性资源调度的软件定义网络控制器 |
US9847951B2 (en) * | 2013-11-04 | 2017-12-19 | Ciena Corporation | Dynamic bandwidth allocation systems and methods using content identification in a software-defined networking controlled multi-layer network |
US20150154258A1 (en) * | 2013-12-04 | 2015-06-04 | Nec Laboratories America, Inc. | System and method for adaptive query plan selection in distributed relational database management system based on software-defined network |
CN103780471B (zh) * | 2014-01-04 | 2017-02-15 | 浙江工商大学 | 一种应用于软件定义网络的多控制器管理网络设备的方法 |
US9882797B2 (en) * | 2014-10-30 | 2018-01-30 | International Business Machines Corporation | Enabling software-defined control in passive optical networks |
EP3227779A1 (en) * | 2014-12-04 | 2017-10-11 | Nokia Solutions And Networks Management International GmbH | Steering of virtualized resources |
US10148575B2 (en) * | 2014-12-22 | 2018-12-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive load balancing in packet processing |
US9680762B2 (en) * | 2015-01-05 | 2017-06-13 | Futurewei Technologies, Inc. | Method and system for providing QoS for in-band control traffic in an openflow network |
CN106330508B (zh) * | 2015-06-30 | 2019-10-25 | 华为技术有限公司 | 一种OpenFlow协议的资源控制方法、装置和系统 |
US9948518B2 (en) * | 2015-07-22 | 2018-04-17 | International Business Machines Corporation | Low latency flow cleanup of openflow configuration changes |
-
2015
- 2015-06-30 CN CN201510373310.2A patent/CN106330508B/zh active Active
-
2016
- 2016-06-22 EP EP16817187.4A patent/EP3306860B1/en active Active
- 2016-06-22 WO PCT/CN2016/086759 patent/WO2017000823A2/zh active Application Filing
-
2017
- 2017-12-29 US US15/858,815 patent/US11140091B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150023210A1 (en) * | 2012-01-09 | 2015-01-22 | Telefonaktiebolaget L M Ericsson (Publ) | Network Device Control in a Software Defined Network |
CN104125576A (zh) * | 2013-04-25 | 2014-10-29 | 华为技术有限公司 | 控制和承载分离架构下的频谱策略调整方法及装置 |
CN104253767A (zh) * | 2013-06-27 | 2014-12-31 | 华为技术有限公司 | 一种虚拟分片网络的实现方法及一种交换机 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109120555A (zh) * | 2017-06-26 | 2019-01-01 | 中兴通讯股份有限公司 | 一种资源分配方法及系统 |
CN109120555B (zh) * | 2017-06-26 | 2022-10-14 | 中兴通讯股份有限公司 | 一种资源分配方法及系统 |
CN109787804A (zh) * | 2017-11-15 | 2019-05-21 | 华为技术有限公司 | 一种业务资源管理的方法、设备和系统 |
CN109787804B (zh) * | 2017-11-15 | 2022-04-26 | 华为技术有限公司 | 一种业务资源管理的方法、设备和系统 |
CN108390784A (zh) * | 2018-02-13 | 2018-08-10 | 中国联合网络通信集团有限公司 | 一种资源回收的方法及装置 |
CN108390784B (zh) * | 2018-02-13 | 2019-10-08 | 中国联合网络通信集团有限公司 | 一种资源回收的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017000823A3 (zh) | 2017-02-16 |
US20180123969A1 (en) | 2018-05-03 |
EP3306860B1 (en) | 2020-08-26 |
CN106330508B (zh) | 2019-10-25 |
WO2017000823A2 (zh) | 2017-01-05 |
US11140091B2 (en) | 2021-10-05 |
EP3306860A2 (en) | 2018-04-11 |
EP3306860A4 (en) | 2018-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
CN102986172B (zh) | 虚拟集群交换 | |
CN104954281B (zh) | 通信方法、系统、资源池管理系统、交换机和控制装置 | |
CN106330508A (zh) | 一种OpenFlow协议的资源控制方法、装置和系统 | |
US10855530B2 (en) | Method and apparatus for implementing composed virtual private network VPN | |
CN109218046A (zh) | 网络切片的管理方法及系统和存储介质 | |
CN109660441B (zh) | Overlay网络中组播复制的方法及装置 | |
CN103997513B (zh) | 一种可编程虚拟网络服务系统 | |
CN104301256A (zh) | 一种sdn网络动态预留带宽的方法及控制器 | |
CN103684960A (zh) | 网络系统以及虚拟节点的迁移方法 | |
CN112187517A (zh) | 一种数据中心sdn虚拟路由的配置方法、平台及控制器 | |
CN104956629B (zh) | 软件定义网络中的事件分发方法,控制设备和处理器 | |
CN109842642A (zh) | 一种容器化集群系统的部署方法及装置、容器化集群系统 | |
CN105577540B (zh) | 一种业务链路的建立方法、装置及系统 | |
CN104919762B (zh) | 软件定义网络中的控制方法,控制设备和处理器 | |
CN110351135B (zh) | 多dc中的网络设备配置方法及装置 | |
CN105681218A (zh) | 一种Openflow 网络中流量处理的方法及装置 | |
CN106850435A (zh) | 一种跨域端到端标签交换路径建立方法和系统 | |
CN107809495A (zh) | 地址管理方法及装置 | |
CN101471879A (zh) | 一种层次化有序地址分组网络的路径控制系统和方法 | |
CN110535673B (zh) | 虚拟子网的构建方法、设备及存储介质 | |
CN102394803B (zh) | Vpn业务的规划部署方法和系统 | |
CN108512737A (zh) | 一种数据中心ip层互联的方法和sdn控制器 | |
CN116319296A (zh) | 一种跨sd-wan融合部署数据中心的方法及装置 | |
CN108667729A (zh) | 一种基于mpls的sdn业务隔离及选路的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |