设置控制信息、建立通信的方法及管理控制器及控制器的制造方法【
技术领域:
】[0001]本发明涉及网络通信
技术领域:
,尤其涉及软件定义网络中的配置、连接方法及管理控制器及控制器。【
背景技术:
】[0002]SDN(SoftwareDefinedNetwork)是一种新型的网络架构,它的设计理念是将网络的控制平面与数据转发平面进行分离,并实现可编程化控制。SDN的典型架构共分三层,最上层为应用层,包括各种不同的业务和应用;中间的控制层主要负责处理数据平面资源的编排,维护网络拓扑、状态信息等;最底层的基础设施层负责基于流表(flowtable)的数据处理、转发和状态收集。[0003]现有网络中,对流量的控制和转发都依赖于网络设备实现,且设备中集成了与业务特性紧耦合的操作系统和专用硬件,这些操作系统和专用硬件都是各个厂家自己开发和设计的。而在SDN网络中,转发设备只负责单纯的数据转发,其硬件架构将趋向于统一化,其各个部件在各个厂家之间趋向于通用化。而原来负责路由、安全、策略、QoS、流量工程等的控制平面将由专门的SDN控制器实现。路由、安全、策略、QoS、流量工程等业务功能和特性可以通过编程实现。SDN控制器对硬件形态没有固定的要求,可以是一个装置,一个虚拟机或是一个物理服务器,完全可以采用像x86这样高性能低成本的通用架构。转发设备与SDN控制器之间通讯的协议一般是OpenFlow协议。转发设备与控制器建立连接,使用OpenFlow协议传递信息。[0004]一台转发设备可以与多台控制器建立连接,这些控制器有不同的身份(role),可以分为MASTER、SLAVE、EQUAL三种。MASTER拥有转发设备的全部控制权限,对于某一台转发设备而言,MASTER控制器是唯一的。SLAVE拥有只读权限,可以有多台控制器为此身份。EQUAL,拥有转发设备的全部控制权限,可以有多台控制器为此身份。由此可见,控制器与转发设备之间存在一种管理关系,所谓的管理关系包括:控制器以什么身份与网络中的哪些转发设备建立连接,也即:转发设备与控制器之间的连接关系和控制器的身份信息。为详细地说明控制器与转发设备之间的管理关系,下面以一个例子进行说明,请参见图1:网络中存在三台控制器,分别是第一控制器、第二控制器和第三控制器,网络中还存在四台转发设备,分别是第一转发设备、第二转发设备、第三转发设备和第四转发设备。第一控制器与第一转发设备建立连接,且第一控制器扮演第一转发设备的MASTER控制器;第二控制器与第二转发设备建立连接,且第二控制器扮演第二转发设备的MASTER控制器;第三控制器与第三、第四转发设备建立连接,且第三控制器扮演第三和第四转发设备的MASTER控制器。则该网络中,控制器与转发设备之间的管理关系是:第一控制器以MASTER控制器的身份与第一转发设备建立连接;第二控制器以MASTER控制器的身份与第二转发设备建立连接;第三控制器以MASTER控制器的身份与第三、第四转发设备建立连接。进一步地,如果第三控制器还是第一转发设备的SALVE控制器,那么网络中的管理关系还包括:第三控制器以SALVE控制器的身份与第一转发设备建立连接。[0005]现有技术中,各控制器与转发设备之间的管理关系是通过选举确定的,而且因各控制器是同级关系,独立运作,所以各控制器与转发设备之间的管理关系是互不影响的,这样会导致网络中控制器与转发设备之间的管理关系不合理。例如,网络中某控制器因性能较好,所以大多数转发设备通过选举后确定的MASTER控制器(这里以MASTER控制器为例,也可以是其他身份的控制器)都是该控制器,从而导致该控制器的负载超负荷,而网络中其他的控制器可能处于闲置的状态,因各控制器独立运作,所以各控制器与转发设备之间的管理关系互不影响,所以处于超负荷状态的控制器会一直处于超负荷,而处于闲置状态的控制器也会一致处于闲置状态。【
发明内容】[0006]本发明要解决的主要技术问题是,提供设置控制信息、建立通信的方法及管理控制器及控制器,从而解决现有的软件定义网络中控制器与转发设备之间的管理关系不合理的问题。[0007]为解决上述技术问题,本发明提供了一种设置控制信息的方法,具体包括:管理控制器获取所在网络中控制器及转发设备的信息;管理控制器依据控制器及转发设备的信息设置各控制器对转发设备的控制信息;管理控制器将控制信息发送给对应的控制器。[0008]在本发明的一种实施例中,控制信息包括:管理控制器为控制器分配的转发设备的信息;控制器对分配给控制器的转发设备的控制权限。[0009]在本发明的一种实施例中,在网络初始化过程中,管理控制器获取所在网络中控制器及转发设备的信息之前还包括:管理控制器与网络中发现的所有转发设备建立通信。[0010]在本发明的一种实施例中,当管理控制器获知以下情况中的至少一种时,管理控制器设置或更新相应控制器的控制信息:[0011]网络中新增转发设备和/或控制器;[0012]网络中有控制器处于闲置状态;[0013]转发设备和/或控制器发送故障。[0014]在本发明的一种实施例中,当网络中新增控制器或有控制器处于闲置状态时,管理控制器获取所在网络中控制器及转发设备的信息包括:新增控制器或处于闲置状态的控制器的信息;管理控制器设置控制器的控制信息包括:管理控制器依据控制器和转发设备的信息调整网络中已有控制器对转发设备的控制信息;为新增控制器或处于闲置状态的控制器分配转发设备;[0015]当网络中新增转发设备时,管理控制器获取所在网络中控制器及转发设备的信息包括:新增转发设备的信息;管理控制器设置控制器对转发设备的控制权限包括:管理控制器为新增的转发设备指定控制器,并设置为新增转发设备指定的控制器对新增转发设备的控制权限;[0016]当网络中控制器发送故障时,管理控制器设置控制器对转发设备的控制信息包括:管理控制器为与发生故障的控制器连接的转发设备指定新的控制器,并设置新控制器对与发生故障的控制器连接的转发设备的控制权限。[0017]在本发明的一种实施例中,管理控制器获取的网络中控制器的信息包括:控制器的负载情况;[0018]管理控制器依据控制器信息设置控制器对转发设备的控制信息包括:管理控制器依据负载情况设置控制器对转发设备的控制信息。[0019]在本发明的一种实施例中,管理控制器获取的网络中各控制器及转发设备的信息包括:控制器的负载情况及所在网络中控制器和转发设备的网络拓扑;[0020]管理控制器依据控制器及转发设备信息设置控制器对转发设备的控制信息包括:管理控制器依据负载情况及网络拓扑设置控制器对转发设备的控制信息。[0021]本发明还提供了一种建立通信的方法,具体包括:控制器将其自身的信息发送给管理控制器;[0022]控制器接收管理控制器依据控制器及转发设备的信息设置的控制器对转发设备的控制信息;[0023]控制器依据控制信息与相应的转发设备建立通信。[0024]在本发明的一种实施例中,发送给管理控制器的信息包括:控制器的负载情况。[0025]本发明还提供了一种管理控制器,应用在软件定义网络中,该管理控制器包括第一以太网口、第一存储器和处理器,第一以太网口用于获取网络中控制器及转发设备的信息,并存储于第一存储器中;第一存储器还用于依据控制器及转发设备的信息设置控制器对转发设备的控制信息;第一以太网口还用于将控制信息发送给相应的控制器。[0026]在本发明的一种实施例中,在网络初始化过程中,第一以太网口还用于与网络中发现的所有转发设备建立通信。[0027]在本发明的一种实施例中,处理器还用于检测网络中是否新增转发设备和/或控制器、是否有控制器处于闲置状态、转发设备和/或控制器是否发生故障中的至少一种情况,如是,则对相应控制器的控制信息进行设置或更新。[0028]在本发明的一种实施例中,第一以太网口获取的网络中的控制器及转发设备的信息为:控制器的负载情况及控制器和转发设备的网络拓扑;处理器用于依据负载情况及网络拓扑设置控制器对转发设备的控制信息。[0029]本发明还提供了一种控制器,应用在软件定义网络中,该控制器包括第二以太网口,第二以太网口用于将控制器自身的信息发送给所在网络中的管理控制当前第1页1 2 3 4