一种转发路由信息生成方法、控制器及软件定义网络系统的利记博彩app

文档序号:7818836阅读:257来源:国知局
一种转发路由信息生成方法、控制器及软件定义网络系统的利记博彩app
【专利摘要】本发明适用于SDN【技术领域】,提供一种软件定义网络中多控制器协同生成转发路由信息的方法及系统,所述方法包括针对每一个控制器,获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息;针对每一个控制器,获取对应控制域与其它控制域的连接关系;针对每一个控制器,根据主机的广播报文获取直接连接到对应控制域的所有主机信息;通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。本发明基于网络拓扑信息,通过各控制器相互协作,为进入网络的数据包自动生成转发路由信息,从而解决整个网络的路由问题。
【专利说明】一种转发路由信息生成方法、控制器及软件定义网络系统

【技术领域】
[0001]本发明属于软件定义网络领域,尤其涉及一种软件定义网络中多控制器协同生成转发路由信息的方法及系统。

【背景技术】
[0002]互联网已成为人类社会的基础设施和必不可少的工具,对人们生活、工作、学习的影响日渐显著,其发展速度更是日新月异。但是,互联网在发展过程中也已发现存在很多问题,面临各种挑战。其体系架构复杂度高、可扩展性差、对硬件设备依赖性强、虚拟化能力弱等等问题与应用对网络的高效、智能、开放、灵活、低成本的矛盾日渐尖锐,难以调和。
[0003]软件定义网络(Software Defined Networking, SDN)为互联网存在的上述问题带来了解决契机。它正好是针对现有包括互联网的各种网络体系架构上的不足而生,基于软件定义的网络能够满足未来应用对网络的各种需求。
[0004]SDN技术目前尚在发展阶段,有很多问题尚待解决,比如路由的生成问题。按照目前业界广为接受的SDN架构,转发设备和控制器是SDN网络中基本和核心的组成成分,其中,转发设备只负责数据转发,控制功能交给控制器去实施。那么传统网络中的路由功能也移交到控制器上来,这通常由对转发设备的流表实施管理来实现。由于流表信息量巨大,通过手工配置来维护流表工作量巨大、不科学。因此,需要控制器采用一定的方法自动完成流表信息的管理从而实现转发路由的自动生成。
[0005]另一方面,单控制器的控制能力是有限的,而SDN网络的规模则可能很大,大规模网络的信息量巨大,如一千台转发设备的网络仅转发设备间连接信息就需要兆级别的存储量,由此产生的计算量同样飞速增长,有可能超出了单控制器管理的能力限度。这通常需要通过多控制器协同完成整个网络的控制。在这种情况下,需要所有控制器合作,才能够满足整个网络的控制要求。同样,自动生成网络中所有转发设备的流表信息也是需要所有控制器协同完成的。


【发明内容】

[0006]鉴于上述问题,本发明的目的在于提供一种多控制器协同生成转发路由信息的方法及系统,该方法基于网络拓扑信息,通过各控制器相互协作,为进入网络的数据包自动生成转发路由信息,从而解决整个网络的路由问题。
[0007]—方面,所述转发路由信息生成方法包括下述步骤:
[0008]针对每一个控制器,获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息;
[0009]针对每一个控制器,获取对应控制域与其它控制域的连接关系;
[0010]针对每一个控制器,根据主机的广播报文获取直接连接到对应控制域的所有主机信息;
[0011]通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。。
[0012]另一方面,所述控制器包括:
[0013]拓扑结构获取单元,用于获取对应控制域的网络拓扑结构,;
[0014]路由信息计算单元,用于计算出本控制域中任意两台转发设备间的最短路由信息;
[0015]连接关系获取单元,用于获取对应控制域与其它控制域的连接关系;
[0016]主机信息获取单元,用于根据主机的广播报文获取直接连接到对应控制域的所有主机信息;
[0017]路由获取修改单元,用于通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。
[0018]第三方面,所述软件定义网络系统,包括多个控制器,每个控制器控制一个控制域,每个控制域中包括有若干转发设备,每个控制域连接有若干主机。
[0019]本发明的有益效果是:在软件定义网络中,控制器或控制器群收集控制域的网络拓扑和其它信息,并计算出各控制域内转发设备间的最短转发路由;并根据进入软件定义网络的数据包得到数据包的源和目的主机信息,再根据上述信息计算或查询得到最短转发路由,通过更新该路由上所有转发设备的流表信息使该路由生效。因此,本发明通过各控制器间的协作,自动更新相应转发设备的流表,实现了为进入网络的数据包自动生成转发路由。

【专利附图】

【附图说明】
[0020]图1是一种SDN网络系统结构图;
[0021]图2是本发明第一实施例提供的转发路由信息生成方法的流程图;
[0022]图3是控制域拓扑结构存储示意图;
[0023]图4是控制域转发设备间最短路由信息存储示意图;
[0024]图5是控制域间连接存储示意图;
[0025]图6是制域主机群存储示意图;
[0026]图7是本发明第二实施例提供的转发路由信息生成方法的流程图;
[0027]图8是非报文源主机直连控制域对应控制器的生成最短转发路由的工作流程图;
[0028]图9是报文源主机直连控制域对应控制器的生成最短转发路由的工作流程图;
[0029]图10是控制器逻辑连接示意图;
[0030]图11是本发明第三实施例提供的控制器的结构方框图。

【具体实施方式】
[0031]本发明技术方案基于多控制器软件定义网络,每台控制器负责控制网络中所有转发设备中的一个子集(以下称控制域)。基于特定协议,各控制器可以得到对应控制域的网络拓扑图,并计算出任意两台转发设备之间的最短路由,同时可得到对应控制域与其它控制域的连接信息(以下称控制域间连接)。基于网络中主机发出的广播报文,各控制器可得到与本控制域直接相连的所有主机信息(以下称控制域主机群)。当某一数据包(即一报文)进入某一控制域中某一转发设备时,如果流表中无对应的条目,则该报文送至本控制域对应的控制器,否则直接按对应条目转发。当控制器收到该报文时,如果目的主机也连接到本控制域,则根据前述的最短路由,更新路由中所有转发设备的流表。如果目的主机并非连接到本控制域,则当前控制域的控制器与其它控制器协同,基于前述的最短路由及控制域间连接计算出整个网络(包含所有控制域)对应的最短路由,然后更新整个路由中所有转发设备的流表以使该路由生效,最后根据该路由转发该报文至目的主机。为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0032]实施例一:
[0033]图1示出了一种SDN网络系统结构,包括多个控制器1,每个控制器控制一个控制域,每个控制域中包括有若干转发设备2,每个控制域连接有若干主机3。图示中包含三个控制域,每个控制域中包含若干转发设备,控制域之间相互连接。基于上述SDN网络系统,图2示出了本发明实施例提供的转发路由信息生成方法的流程,为了便于说明仅示出了与本发明实施例相关的部分。
[0034]本实施例在控制器一侧,描述了转发路由信息生成方法的流程,包括下述步骤:
[0035]步骤S101、针对每一个控制器,获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息。
[0036]SDN网络的规模有可能很大,而控制器需要存储和处理的信息可能随着网络的规模成幂函数或指数级增长,如一个一千台转发设备的网络,则仅仅存储网络拓扑信息,就需要以兆为单位的存储空间。但是,如果划分为二十个控制域,则每台控制器的需存储和处理的信息仅为划分前的四百分之一。因此实现本步骤前,对转发设备进行网络控制域划分,可以降低对系统的性能要求。
[0037]因此实现本步骤前,首先在SDN网络中,根据网络的规模、结构、控制器的能力、应用需要等因素部署多台控制器,各控制器分别控制网络的一个子集,即控制域,比如图1中,划分了三个控制域,每个控制域对应一个控制器,同时各控制域间有可能存在一条或多条连接通道。
[0038]本步骤中,每个控制器根据特定协议,可以是任意标准协议或专有协议,比如链路层发现协议LLDP,获取控制器对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息并存储。网络拓扑结构表明了控制域内转发设备的连接关系,作为一种网络拓扑结构存储方式,图3示出一种控制域拓扑结构示例,实际上相当于以邻接矩阵的方式存储了控制域网络拓扑图,而且,示例图中包含了连接所用端口的信息,图示中,“端口 P12-端口 P21”表示转发设备I的第2个端口与转发设备2的第I个端口连接;其他意思相同。如果两台转发设备并无直接连接,则对应的信息为空;如果网络拓扑是无向图,则示例图相当于对称矩阵。
[0039]根据拓扑结构计算出控制域内转发设备间的最短路由就比较容易了,可采用经典的迪杰斯特拉算法来完成,计算出的结果可存储在类似于图4给出的信息结构中。图4同样相当于邻接矩阵的方式,如果网络拓扑是无向图,则示例图相当于对称矩阵。图示中包含了以第一列转发设备为源节点,以第一行设备为目的节点的所有最短路由信息,如果不存在这样的路由,则对应的最短路由信息为空。
[0040]步骤S102、针对每一个控制器,获取对应控制域与其它控制域的连接关系。
[0041]同样本步骤中,各个控制器可以根据特定协议,比如链路层发现协议LLDP,获取本控制器对应控制域与其他控制域的连接关系,即控制域间连接。作为控制域间连接的一种示例,如图5所示,同样相当于邻接矩阵的方式,如果网络拓扑是无向图,则示例图相当于对称矩阵,控制域间连接可以O条,也可以是多条。
[0042]步骤S103、针对每一个控制器,根据主机的广播报文获取直接连接到对应控制域的所有主机信息。
[0043]每个控制域中可能连接有一个或多个主机,网络系统中的报文数据来由其中一个主机发送至另一个主机。本步骤需要获取到每个控制器对应的控制域所连接的主机信息,即控制域主机群信息,具体的,各控制器根据直接连接到本控制域的主机发出的广播报文,生成本控制域主机群信息。作为一种控制域主机群示例,如图6所示,以表格的形式说明了与控制域直接连接的主机的相关信息,包括主机地址、主机直接连接的转发设备、转发设备对应的端口等信息。
[0044]步骤S104、通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。
[0045]在得到每个控制域的最短路由信息、控制域间连接、控制域主机群信息后,针对一个进入系统网络中的报文,首先分析报文的源地址和目的地址,然后通过控制器间的协作,找到从源地址主机到目的地址主机间的最短转发路由,并并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。最后各个控制器根据流表表项转发该报文,实现了报文转发。当控制域网络拓扑发生改变时,针对每一个控制器,重新获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息;当控制域间连接发生改变时,针对每一个控制器,重新获取对应控制域与其它控制域的连接关系O
[0046]实施例二:
[0047]本实施例提供的转发路由信息生成方法的流程如图7所示,包括下述步骤:
[0048]步骤S701、针对每一个控制器,获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息;
[0049]步骤S702、针对每一个控制器,获取对应控制域与其它控制域的连接关系;
[0050]步骤S703、针对每一个控制器,根据主机的广播报文获取直接连接到对应控制域的所有主机信息。
[0051]这里上述步骤S701-S703与实施例一中步骤S101-S103相同,这里不再赘述。
[0052]步骤S704、当报文进入网络时,如果转发设备上没有对应的流表表项,则为进入控制域的报文创建流表表项;
[0053]步骤S705、若当前报文的源主机和目的主机属于同一控制域时,根据查询所述最短路由信息得到当前报文的最短转发路由,并更新最短转发路由上所有转发设备的流表;
[0054]步骤S706、若当前报文的源主机和目的主机不属于同一控制域时,与其他控制器协同生成整个网络中当前报文的最短转发路由,各控制器根据最短转发路由更新对应控制域中相应转发设备的流表。
[0055]上述步骤S704-S706是实施例一中步骤S104的一种具体优选实现方式。当当报文进入网络时,如果转发设备上已经存在对应的流表表项,表示该报文需要的转发路由已建立,则无需控制器或控制器群生成新的路由,按流表转发报文即可。若转发设备上没有对应的流表表项,则需要控制器或控制器群为其生成转发路由信息。具体的,首先为进入控制域的报文创建流表表项;然后获取报文的源地址和目的地址,分析当前报文的源主机和目的主机是否属于同一控制域,若属于同一控制域,则不需其它控制器参与,查询得到本控制器已计算好的最短路由信息,即可得到当前报文的最短转发路由,最后更新最短转发路由上所有转发设备的流表;若不属于同一控制域,则需要多个控制器协同操作生成最短转发路由,各控制器根据最短转发路由更新对应控制域中相应转发设备的流表。本实施例中,当报文进入某控制域A的控制器B并产生转发路由生成需求时,控制器B开始着手计算最短转发路由。如果该报文关联的源、目的主机同属控制域A,则控制器B通过查询最短路由信息就可完成;如果该报文关联的源、目的主机不同属控制域A,则需要多台控制器协同完成最短转发路由的生成。
[0056]在具体实现流表更新时,与源主机直连的控制域A对应的控制器B计算出最短转发路由后,控制器B首先更新控制域A上与该路由关联的转发设备的流表信息,然后将在该路由上且不在本控制域的转发设备流表信息发给相邻控制器D。然后控制器D像控制器B一样操作处理,直至所有在该路由上的转发设备的关联流表更新完成。
[0057]对于上述步骤S706,不同类型的控制器所执行的步骤流程不同,对于不是报文源主机直连控制域对应的控制器,如图8所示,其工作流程如下:
[0058]步骤S801、接收相邻控制域控制器发出的路由请求信息;
[0059]步骤S802、判断目的主机与本控制域是否直接相连;
[0060]步骤S803、若直接相连,则针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询从该连接到目的主机的最短路径并缓存;
[0061]步骤S804、若是不是直接连接,则针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询到其它控制域间连接的最短路由并缓存;
[0062]步骤S805、通过控制器间交换信息的虚通道,向其它相邻控制域的控制器发路由请求消息,并发送目的主机地址信息;
[0063]步骤S806、等待并接收相邻控制域的控制器反馈从各条域间连接到到目的主机的最短路由信息结果;
[0064]步骤S807、根据其它相邻控制器的反馈结果结合所述最短路由信息计算出与所述控制域间连接对应的的最短路由;
[0065]步骤S808、将各控制域间连接对应的最短路由发送给请求路由的控制器。
[0066]当控制器D收到控制器X(对应控制域Y)的路由请求消息后,如果判断目的主机在本控制域C,则针对每条控制器Y关联的控制域间连接,查询出从该连接到目的主机的最短路由,反馈到控制器X。否则,继续向与之相连的其它控制器(不包括控制器X)发送路由请求消息及必要的信息。当控制器D收到控制器F发来的路由反馈信息后,它针对与控制域Y关联的每条控制域间连接,结合控制域C的最短路由信息计算出从该控制域间连接到目的主机的最短转发路由,然后反馈到控制器X。
[0067]对于报文源主机直连控制域对应的控制器,如图9所示,其工作流程如下:
[0068]步骤S901、获取本控制域的控制域间连接;
[0069]步骤S902、针对每条控制域间连接,查询从源主机经过该控制域间连接到相邻控制域的最短路由并缓存;
[0070]步骤S903、通过控制器间交换信息的虚通道,向相邻控制域的控制器发出路由请求消息,并发送目的主机的地址信息;
[0071]步骤S904、等待并接收相邻控制域的控制器反馈的从各条控制域间连接到目的主机的最短路由信息结果;
[0072]步骤S905、根据相邻控制域的控制器反馈的最短路由信息结果,并结合本控制域的最短路由信息计算出全网的最短转发路由。
[0073]当控制器B发现目的主机不在控制域A时,通过控制器间交换信息的虚通道向相邻控制域的控制器发送路由请求消息及必要的信息。当收到其它控制器反馈的路由信息后,控制器B结合控制域A的最短路由信息计算出整个网络的最短转发路由。
[0074]这里需要说明的是,本实施例中,控制器间交换信息采用虚通道V,也就是说,控制器间并不需要专门的物理连接来完成相互的信息交换,通过控制域间连接L就可以建立控制器间交换信息的通路。就本实施例而言,控制器间需要交换的信息有如下三个方面:路由请求消息、路由计算反馈结果、流表信息传递。控制器器间交换信息可以使用标准协议、标准协议扩展或专有协议来实现。
[0075]实施例三:
[0076]本实施例提供了一种控制器结构,如图11所示,包括:
[0077]拓扑结构获取单元11,用于获取对应控制域的网络拓扑结构,;
[0078]路由信息计算单元12,用于计算出本控制域中任意两台转发设备间的最短路由信息;
[0079]连接关系获取单元13,用于获取对应控制域与其它控制域的连接关系;
[0080]主机信息获取单元14,用于根据主机的广播报文获取直接连接到对应控制域的所有主机信息;
[0081]路由获取修改单元15,用于通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。
[0082]上述拓扑结构获取单元11、路由信息计算单元12对应实现了实施例一中的步骤S101,主要完成获取各个控制域的拓扑结构,并且计算出控制域中任意两台转发设备间的最短路由信息。上述连接关系获取单元13、主机信息获取单元14、路由获取修改单元15分别实现了实施例一中的步骤S102-S104,主要完成获取控制域间连接、控制域主机群信息以及通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并更新流表。
[0083]上述结构中,作为一种具体优选实施方式,所述路由获取修改单元15包括:
[0084]流表创建模块151,用于当报文进入网络时,如果转发设备上没有对应的流表表项,则为进入控制域的报文创建流表表项;
[0085]直接获取更新模块152,用于用于若当前报文的源主机和目的主机属于同一控制域时,根据查询所述最短路由信息得到当前报文的最短转发路由,并更新最短转发路由上所有转发设备的流表;
[0086]协同获取更新模块153,用于用于若当前报文的源主机和目的主机不属于同一控制域时,与其他控制器协同生成整个网络中当前报文的最短转发路由,各控制器根据最短转发路由更新对应控制域中相应转发设备的流表。
[0087]本优选结构中,对于单控制域的最短转发路由生成方案通过直接获取更新模块152实现,对于多控制域的最短转发路由生成方案通过协同获取更新模块153实现,具体实现方式在实施例二中已描述,这里不再赘述。
[0088]对于上述协同获取更新模块153,若所述控制器不是报文源主机直连控制域对应的控制器,所述协同获取更新模块153包括:
[0089]请求信息接收单元,用于接收相邻控制域控制器发出的路由请求信息;
[0090]连接判断单元,用于判断目的主机与本控制域是否直接相连;
[0091]第一查询单元,用于当连接判断单元判断是时,针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询从该连接到目的主机的最短路径并缓存;
[0092]第二查询单元,用于当连接判断单元判断否时,针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询到其它控制域间连接的最短路由并缓存;
[0093]信息发送单元,用于通过控制器间交换信息的虚通道,向其它相邻控制域的控制器发路由请求消息,并发送目的主机地址信息;
[0094]反馈接收单元,用于等待并接收相邻控制域的控制器反馈从各条域间连接到到目的主机的最短路由信息结果;
[0095]最短路由计算单元,用于根据其它相邻控制器的反馈结果结合所述最短路由信息计算出与所述控制域间连接对应的的最短路由;
[0096]路由发送单元,用于将各控制域间连接对应的最短路由发送给请求路由的控制器。
[0097]若所述控制器为报文源主机直连控制域对应的控制器,所述协同获取更新模块包括:
[0098]连接获取单元,用于获取本控制域的控制域间连接;
[0099]第三查询单元,用于针对每条控制域间连接,查询从源主机经过该控制域间连接到相邻控制域的最短路由并缓存;
[0100]消息发送单元,用于通过控制器间交换信息的虚通道,向相邻控制域的控制器发出路由请求消息,并发送目的主机的地址信息;
[0101]路由反馈接收单元,用于等待并接收相邻控制域的控制器反馈的从各条控制域间连接到目的主机的最短路由信息结果;
[0102]最短路由获取单元,根据相邻控制域的控制器反馈的最短路由信息结果,并结合本控制域的最短路由信息计算出全网的最短转发路由。
[0103]上述各个功能单元对应实现了实施二中所述的步骤S801-S808、S901-S905。这里不再赘述。
[0104]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种转发路由信息生成方法,其特征在于,所述方法包括: 针对每一个控制器,获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息; 针对每一个控制器,获取对应控制域与其它控制域的连接关系; 针对每一个控制器,根据主机的广播报文获取直接连接到对应控制域的所有主机信息; 通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。
2.如权利要求1所述方法,其特征在于,所述通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效步骤,具体包括: 当报文进入网络时,如果转发设备上没有对应的流表表项,则为进入控制域的报文创建流表表项; 若当前报文的源主机和目的主机属于同一控制域时,根据查询所述最短路由信息得到当前报文的最短转发路由,并更新最短转发路由上所有转发设备的流表; 若当前报文的源主机和目的主机不属于同一控制域时,与其他控制器协同生成整个网络中当前报文的最短转发路由,各控制器根据最短转发路由更新对应控制域中相应转发设备的流表。
3.如权利要求2所述方法,其特征在于,所述与其他控制器协同生成整个网络中当前报文的最短转发路由步骤,具体包括: 对于不是报文源主机直连控制域对应的控制器,首先接收相邻控制域控制器发出的路由请求信息; 判断目的主机与本控制域是否直接相连; 若直接相连,则针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询从该连接到目的主机的最短路径并缓存; 若是不是直接连接,则针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询到其它控制域间连接的最短路由并缓存; 通过控制器间交换信息的虚通道,向其它相邻控制域的控制器发路由请求消息,并发送目的主机地址信息; 等待并接收相邻控制域的控制器反馈从各条域间连接到到目的主机的最短路由信息结果; 根据其它相邻控制器的反馈结果结合所述最短路由信息计算出与所述控制域间连接对应的的最短路由; 将各控制域间连接对应的最短路由发送给请求路由的控制器; 对于报文源主机直连控制域对应的控制器,首先获取本控制域的控制域间连接; 针对每条控制域间连接,查询从源主机经过该控制域间连接到相邻控制域的最短路由并缓存; 通过控制器间交换信息的虚通道,向相邻控制域的控制器发出路由请求消息,并发送目的主机的地址信息; 等待并接收相邻控制域的控制器反馈的从各条控制域间连接到目的主机的最短路由 息结果; 根据相邻控制域的控制器反馈的最短路由信息结果,并结合本控制域的最短路由信息计算出全网的最短转发路由。
4.如权利要求1-3任一项所述方法,其特征在于,所述方法还包括: 当控制域网络拓扑发生改变时,针对每一个控制器,重新获取对应控制域的网络拓扑结构,并计算出本控制域中任意两台转发设备间的最短路由信息; 当控制域间连接发生改变时,针对每一个控制器,重新获取对应控制域与其它控制域的连接关系。
5.一种控制器,其特征在于,所述控制器包括: 拓扑结构获取单元,用于获取对应控制域的网络拓扑结构,; 路由信息计算单元,用于计算出本控制域中任意两台转发设备间的最短路由信息; 连接关系获取单元,用于获取对应控制域与其它控制域的连接关系; 主机信息获取单元,用于根据主机的广播报文获取直接连接到对应控制域的所有主机信息; 路由获取修改单元,用于通过控制器间的协作,为进入网络中的报文寻找最短转发路由,并修改所述最短转发路由上的所有转发设备的流表表项信息,以使该转发路由生效。
6.如权利要求5所述控制器,其特征在于,所述路由获取修改单元包括: 流表创建模块,用于当报文进入网络时,如果转发设备上没有对应的流表表项,则为进入控制域的报文创建流表表项; 直接获取更新模块,用于用于若当前报文的源主机和目的主机属于同一控制域时,根据查询所述最短路由信息得到当前报文的最短转发路由,并更新最短转发路由上所有转发设备的流表; 协同获取更新模块,用于用于若当前报文的源主机和目的主机不属于同一控制域时,与其他控制器协同生成整个网络中当前报文的最短转发路由,各控制器根据最短转发路由更新对应控制域中相应转发设备的流表。
7.如权利要求6所述控制器,其特征在于,若所述控制器不是报文源主机直连控制域对应的控制器,所述协同获取更新模块包括: 请求信息接收单元,用于接收相邻控制域控制器发出的路由请求信息; 连接判断单元,用于判断目的主机与本控制域是否直接相连; 第一查询单元,用于当连接判断单元判断是时,针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询从该连接到目的主机的最短路径并缓存; 第二查询单元,用于当连接判断单元判断否时,针对每一条与发送路由请求消息的控制器对应控制域直连的控制域间连接,查询到其它控制域间连接的最短路由并缓存; 信息发送单元,用于通过控制器间交换信息的虚通道,向其它相邻控制域的控制器发路由请求消息,并发送目的主机地址信息; 反馈接收单元,用于等待并接收相邻控制域的控制器反馈从各条域间连接到到目的主机的最短路由信息结果; 最短路由计算单元,用于根据其它相邻控制器的反馈结果结合所述最短路由信息计算出与所述控制域间连接对应的的最短路由; 路由发送单元,用于将各控制域间连接对应的最短路由发送给请求路由的控制器; 若所述控制器为报文源主机直连控制域对应的控制器,所述协同获取更新模块包括: 连接获取单元,用于获取本控制域的控制域间连接; 第三查询单元,用于针对每条控制域间连接,查询从源主机经过该控制域间连接到相邻控制域的最短路由并缓存; 消息发送单元,用于通过控制器间交换信息的虚通道,向相邻控制域的控制器发出路由请求消息,并发送目的主机的地址信息; 路由反馈接收单元,用于等待并接收相邻控制域的控制器反馈的从各条控制域间连接到目的主机的最短路由信息结果; 最短路由获取单元,根据相邻控制域的控制器反馈的最短路由信息结果,并结合本控制域的最短路由信息计算出全网的最短转发路由。
8.如权利要求5-7任一项所述控制器,其特征在于,所述拓扑结构获取单元还用于当控制域网络拓扑发生改变时,针对每一个控制器,重新获取对应控制域的网络拓扑结构,所述路由信息计算单元还用于当控制域网络拓扑发生改变时,重新计算出本控制域中任意两台转发设备间的最短路由信息;所述连接关系获取单元还用于当控制域间连接发生改变时,针对每一个控制器,重新获取对应控制域与其它控制域的连接关系。
9.一种软件定义网络系统,其特征在于,所述系统包括多个控制器,每个控制器控制一个控制域,每个控制域中包括有若干转发设备,每个控制域连接有若干主机。
【文档编号】H04L12/741GK104363173SQ201410616629
【公开日】2015年2月18日 申请日期:2014年10月31日 优先权日:2014年10月31日
【发明者】戴锦友, 余少华, 董喜明, 汪学舜, 朱国胜 申请人:武汉烽火网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1