实现层次化网络抽象的方法和系统转让专利

申请号 : CN201410418452.1

文献号 : CN105376197B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 荆瑞泉张成良

申请人 : 中国电信股份有限公司

摘要 :

本发明公开一种实现层次化网络抽象的方法和系统。其中第一控制器在利用Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识;第一控制器将Openflow协议消息发送给第二控制器;第二控制器在接收到第一控制器发送的Openflow协议消息后,根据Openflow协议消息中包括的节点标识,确定与Openflow协议消息相关联的虚拟节点。从而可在第一控制器与第二控制器之间只采用一个Openflow协议进程的情况下,实现层次化网络拓扑的抽象,以满足采用层次化SDN控制器架构实现多域组网的需求。

权利要求 :

1.一种实现层次化网络抽象的方法,其特征在于,包括:

第一控制器在利用开放流Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识;

第一控制器将所述Openflow协议消息发送给第二控制器;

第二控制器在接收到第一控制器发送的所述Openflow协议消息后,根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点;

其中,第一控制器在利用Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识的步骤包括:第一控制器在利用Openflow协议与第二控制器进行通信时,在所述Openflow协议消息的消息体中增加节点标识信息;

判断是否存在与所述Openflow协议消息相关联的虚拟节点;

若存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为相关虚拟节点的节点标识;

若不存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为0;

其中,第一控制器在所述Openflow协议消息的消息体中增加节点标识信息的步骤包括:第一控制器判断所述Openflow协议消息是否包括cookie字段;

若所述Openflow协议消息包括cookie字段,则第一控制器将节点标识信息添加到cookie字段中;

若所述Openflow协议消息不包括cookie字段,则第一控制器在所述Openflow协议消息的消息体中新增一个节点标识字段,将节点标识信息添加到新增的节点标识字段中。

2.根据权利要求1所述的方法,其特征在于,

第一控制器在所述Openflow协议消息中增加节点标识信息的步骤包括:第一控制器在所述Openflow协议消息的消息头中增加节点标识信息。

3.根据权利要求1-2中任一项所述的方法,其特征在于,第一控制器为多域控制器;

第二控制器为单域控制器;

第二控制器根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点的步骤包括:第二控制器根据所述Openflow协议消息中包括的节点标识,确定将所述Openflow协议信息发送给与节点标识相关联的虚拟节点。

4.根据权利要求1-2中任一项所述的方法,其特征在于,第一控制器为单域控制器;

第二控制器为多域控制器;

第二控制器根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点的步骤包括:第二控制器根据所述Openflow协议消息中包括的节点标识,确定所述Openflow协议消息来自于与节点标识相关联的虚拟节点。

5.根据权利要求4所述的方法,其特征在于,还包括:

第一控制器在上报虚拟节点之间的邻接关系时,在Openflow协议端口属性上报消息中增加远端节点标识字段和远端端口号字段,将远端节点标识添加到远端节点标识字段中,将远端节点相应的远端端口号添加到远端端口号字段中;

第一控制器将所述Openflow协议端口属性上报消息发送给第二控制器,以便第二控制器根据所述Openflow协议端口属性上报消息了解单域的网络拓扑信息。

6.一种实现层次化网络抽象的系统,其特征在于,包括第一控制器和第二控制器,其中:第一控制器,用于在利用Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识;将所述Openflow协议消息发送给第二控制器;其中在利用Openflow协议与第二控制器进行通信时,在所述Openflow协议消息的消息体中增加节点标识信息,判断是否存在与所述Openflow协议消息相关联的虚拟节点;若存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为相关虚拟节点的节点标识;若不存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为0;其中用于判断所述Openflow协议消息是否包括cookie字段;若所述Openflow协议消息包括cookie字段,则将节点标识信息添加到cookie字段中;若所述Openflow协议消息不包括cookie字段,则在所述Openflow协议消息的消息体中新增一个节点标识字段,将节点标识信息添加到新增的节点标识字段中;

第二控制器,用于在接收到第一控制器发送的所述Openflow协议消息后,根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点。

7.根据权利要求6所述的系统,其特征在于,

第一控制器还用于在所述Openflow协议消息的消息头中增加节点标识信息。

8.根据权利要求6-7中任一项所述的系统,其特征在于,第一控制器为多域控制器;

第二控制器为单域控制器;

第二控制器具体根据所述Openflow协议消息中包括的节点标识,确定将所述Openflow协议信息发送给与节点标识相关联的虚拟节点。

9.根据权利要求6-7中任一项所述的系统,其特征在于,第一控制器为单域控制器;

第二控制器为多域控制器;

第二控制器具体根据所述Openflow协议消息中包括的节点标识,确定所述Openflow协议消息来自于与节点标识相关联的虚拟节点。

10.根据权利要求9所述的系统,其特征在于,还包括:

第一控制器还用于在上报虚拟节点之间的邻接关系时,在Openflow协议端口属性上报消息中增加远端节点标识字段和远端端口号字段,将远端节点标识添加到远端节点标识字段中,将远端节点相应的远端端口号添加到远端端口号字段中;将所述Openflow协议端口属性上报消息发送给第二控制器,以便第二控制器根据所述Openflow协议端口属性上报消息了解单域的网络拓扑信息。

说明书 :

实现层次化网络抽象的方法和系统

技术领域

[0001] 本发明涉及通信领域,特别涉及一种实现层次化网络抽象的方法和系统。

背景技术

[0002] 在大型运营商的传送网络中,由于分区域网络管理(如骨干网、省网、城域网)或厂家竞争性的原因,多域组网的场景是必然存在的。如何在多域网络中实现端到端连接的控制和管理是运营商长期面临的一个难题。
[0003] SDN(Software Defined Network,软件定义网络)是目前通信和IT(Information Technology,信息技术)领域的热点技术之一。SDN是一种新型的网络架构,它的核心理念是网络的控制平面与数据转发平面进行分离,从而实现对网络资源的可编程化软件控制。SDN理念应用到传送网络后,传送网将从多系统分离式和人工交互的架构演进成以传送SDN控制器为中心的集成式自动化架构。而实现对多厂商设备和多层多域网络的统一控制和管理是传送SDN的主要应用场景之一。
[0004] 当SDN用于多域组网时,一般采用层次化的SDN控制器架构,包括单域控制器和多域控制器,如图1所示。单域控制器和多域控制器之间采用Openflow(开放流)协议进行信息交互。单域控制器将其所控制的网络域的网络拓扑进行抽象后,通过Openflow上报给多域控制器。多域控制器将各个单域控制器上报的抽象网络拓扑整合后形成全网的网络拓扑视图。
[0005] 在现有技术方案中,由于Openflow协议最初是用于SDN控制器控制网元设备的场景,在控制器和每个网元之间都有一个Openflow协议进程,控制器通过网元的IP(Internet Protocol,互联网协议)地址就可以唯一识别每个网元,如图1所示。因此在Openflow的端口属性上报、连接建立、删除、修改、查询等消息中没有标识节点地址的字段,从而对Openflow应用于单域控制器和多域控制器之间通信时的技术实现方案造成影响,主要体现在以下两个方面:
[0006] 1)当将Openflow用于单域控制器和多域控制器之间的通信时,相当于多域控制器与每个单域控制器模拟的N个节点进行通信,因此多域控制器与每个单域控制器之间需要采用N个Openflow协议进程。该方案存在系统实现复杂、通信信令处理效率低等问题。当单域网络规模达到几十~几百个节点时,将对单域控制器和多域控制器的处理能力造成比较大的挑战。
[0007] 2)由于Openflow端口属性上报消息中没有本地节点标识符、远端节点标识符和远端端口号等信息,因此单域控制器虽然已经具有本域网络的拓扑信息,但是却无法通过端口属性上报消息将节点之间的连接关系上报给多域控制器。从而造成多域控制器还需要与每个单域控制器模拟的N个节点之间运行邻居发现协议,以便获取单域的网络拓扑信息。带来了单域控制器和多域控制器软件实现的复杂性。

发明内容

[0008] 本发明实施例提供一种实现层次化网络抽象的方法和系统,从而可在多域控制器与每个单域控制器之间只采用一个Openflow协议进程的情况下,实现层次化网络拓扑的抽象,以满足采用层次化SDN控制器架构实现多域组网的需求。
[0009] 根据本发明的一个方面,提供一种实现层次化网络抽象的方法,包括:
[0010] 第一控制器在利用开放流Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识;
[0011] 第一控制器将所述Openflow协议消息发送给第二控制器;
[0012] 第二控制器在接收到第一控制器发送的所述Openflow协议消息后,根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点。
[0013] 在一个实施例中,第一控制器在利用Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识的步骤包括:
[0014] 第一控制器在利用Openflow协议与第二控制器进行通信时,在所述Openflow协议消息中增加节点标识信息;
[0015] 判断是否存在与所述Openflow协议消息相关联的虚拟节点;
[0016] 若存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为相关虚拟节点的节点标识;
[0017] 若不存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为0。
[0018] 在一个实施例中,第一控制器在所述Openflow协议消息中增加节点标识信息的步骤包括:
[0019] 第一控制器在所述Openflow协议消息的消息体中增加节点标识信息。
[0020] 在一个实施例中,第一控制器在所述Openflow协议消息的消息体中增加节点标识信息的步骤包括:
[0021] 第一控制器判断所述Openflow协议消息是否包括cookie字段;
[0022] 若所述Openflow协议消息包括cookie字段,则第一控制器将节点标识信息添加到cookie字段中;
[0023] 若所述Openflow协议消息不包括cookie字段,则第一控制器在所述Openflow协议消息的消息体中新增一个节点标识字段,将节点标识信息添加到新增的节点标识字段中。
[0024] 在一个实施例中,第一控制器在所述Openflow协议消息中增加节点标识信息的步骤包括:
[0025] 第一控制器在所述Openflow协议消息的消息头中增加节点标识信息。
[0026] 在一个实施例中,第一控制器为多域控制器;
[0027] 第二控制器为单域控制器;
[0028] 第二控制器根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点的步骤包括:
[0029] 第二控制器根据所述Openflow协议消息中包括的节点标识,确定将所述Openflow协议信息发送给与节点标识相关联的虚拟节点。
[0030] 在一个实施例中,第一控制器为单域控制器;
[0031] 第二控制器为多域控制器;
[0032] 第二控制器根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点的步骤包括:
[0033] 第二控制器根据所述Openflow协议消息中包括的节点标识,确定所述Openflow协议消息来自于与节点标识相关联的虚拟节点。
[0034] 在一个实施例中,第一控制器在上报虚拟节点之间的邻接关系时,在Openflow协议端口属性上报消息中增加远端节点标识字段和远端端口号字段,将远端节点标识添加到远端节点标识字段中,将远端节点相应的远端端口号添加到远端端口号字段中;
[0035] 第一控制器将所述Openflow协议端口属性上报消息发送给第二控制器,以便第二控制器根据所述Openflow协议端口属性上报消息了解单域的网络拓扑信息。
[0036] 根据本发明的另一方面,提供一种实现层次化网络抽象的系统,包括第一控制器和第二控制器,其中:
[0037] 第一控制器,用于在利用Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识;将所述Openflow协议消息发送给第二控制器;
[0038] 第二控制器,用于在接收到第一控制器发送的所述Openflow协议消息后,根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点。
[0039] 在一个实施例中,第一控制器具体在利用Openflow协议与第二控制器进行通信时,在所述Openflow协议消息中增加节点标识信息,判断是否存在与所述Openflow协议消息相关联的虚拟节点;若存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为相关虚拟节点的节点标识;若不存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为0。
[0040] 在一个实施例中,第一控制器还用于在所述Openflow协议消息的消息体中增加节点标识信息。
[0041] 在一个实施例中,第一控制器具体判断所述Openflow协议消息是否包括cookie字段;若所述Openflow协议消息包括cookie字段,则将节点标识信息添加到cookie字段中;若所述Openflow协议消息不包括cookie字段,则在所述Openflow协议消息的消息体中新增一个节点标识字段,将节点标识信息添加到新增的节点标识字段中。
[0042] 在一个实施例中,第一控制器还用于在所述Openflow协议消息的消息头中增加节点标识信息。
[0043] 在一个实施例中,第一控制器为多域控制器;
[0044] 第二控制器为单域控制器;
[0045] 第二控制器具体根据所述Openflow协议消息中包括的节点标识,确定将所述Openflow协议信息发送给与节点标识相关联的虚拟节点。
[0046] 在一个实施例中,第一控制器为单域控制器;
[0047] 第二控制器为多域控制器;
[0048] 第二控制器具体根据所述Openflow协议消息中包括的节点标识,确定所述Openflow协议消息来自于与节点标识相关联的虚拟节点。
[0049] 在一个实施例中,第一控制器还用于在上报虚拟节点之间的邻接关系时,在Openflow协议端口属性上报消息中增加远端节点标识字段和远端端口号字段,将远端节点标识添加到远端节点标识字段中,将远端节点相应的远端端口号添加到远端端口号字段中;将所述Openflow协议端口属性上报消息发送给第二控制器,以便第二控制器根据所述Openflow协议端口属性上报消息了解单域的网络拓扑信息。
[0050] 本发明通过在Openflow协议消息中加入相关虚拟节点的节点标识,便于区分消息是发送给哪个虚拟节点或来自于哪个虚拟节点,从而可在多域控制器与每个单域控制器之间只采用一个Openflow协议进程的情况下,实现层次化网络拓扑的抽象,以满足采用层次化SDN控制器架构实现多域组网的需求。

附图说明

[0051] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0052] 图1为现有技术中SDN控制器架构一个实施例的示意图。
[0053] 图2为本发明实现层次化网络抽象的方法一个实施例的示意图。
[0054] 图3为本发明实现层次化网络抽象的方法另一实施例的示意图。
[0055] 图4为本发明实现层次化网络抽象的系统一个实施例的示意图。
[0056] 图5为本发明SDN控制器架构一个实施例的示意图。
[0057] 图6为本发明SDON系统架构一个实施例的示意图。

具体实施方式

[0058] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0059] 除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
[0060] 同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0061] 对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0062] 在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0063] 应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0064] 图2为本发明实现层次化网络抽象的方法一个实施例的示意图。其中:
[0065] 步骤201,第一控制器在利用开放流Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识。
[0066] 步骤202,第一控制器将所述Openflow协议消息发送给第二控制器。
[0067] 步骤203,第二控制器在接收到第一控制器发送的所述Openflow协议消息后,根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点。
[0068] 优选的,在SDN控制器架构中,第一控制器可以为单域控制器或多域控制器,相应的,第二控制器可以为多域控制器或单域控制器。即多域控制器和单域控制器均可采用上述方式进行通信。
[0069] 在一个实施例中,第一控制器为多域控制器,第二控制器为单域控制器。在这种情况下,第二控制器(即单域控制器)在接收到第一控制器(即多域控制器)发送的Openflow协议消息后,根据Openflow协议消息中包括的节点标识,确定将Openflow协议信息发送给与节点标识相关联的虚拟节点。
[0070] 在另一实施例中,第一控制器为单域控制器,第二控制器为多域控制器。在这种情况下,第二控制器(即多域控制器)在接收到第一控制器(即单域控制器)发送的Openflow协议消息后,根据Openflow协议消息中包括的节点标识,确定Openflow协议消息来自于与节点标识相关联的虚拟节点。
[0071] 基于本发明上述实施例提供的实现层次化网络抽象的方法,通过在Openflow协议消息中加入相关虚拟节点的节点标识,便于区分消息是发送给哪个虚拟节点或来自于哪个虚拟节点,从而可在多域控制器与每个单域控制器之间只采用一个Openflow协议进程的情况下,实现层次化网络拓扑的抽象,以满足采用层次化SDN控制器架构实现多域组网的需求。
[0072] 在一个实施例中,上述第一控制器在利用Openflow协议与第二控制器进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识的步骤可包括:
[0073] 第一控制器在利用Openflow协议与第二控制器进行通信时,在所述Openflow协议消息中增加节点标识信息。第一控制器判断是否存在与所述Openflow协议消息相关联的虚拟节点;若存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为相关虚拟节点的节点标识;若不存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为0。
[0074] 例如,对于不是发送给特定节点的消息,即用于多域控制器与单域控制器之间进行信息交互的消息(如OFPT_HELLO,OFPT_SET_CONFIG等),将节点标识信息设置为0。
[0075] 优选的,在Openflow协议消息中加入节点标识信息的方式可以有以下两种:
[0076] 方式一:在Openflow协议消息的消息体中增加节点标识信息。下面以第一控制器发送Openflow协议消息为例进行说明。第二控制器的相关处理与此相同。
[0077] 第一控制器判断Openflow协议消息是否包括cookie字段。若Openflow协议消息包括cookie字段,则第一控制器将节点标识信息添加到cookie字段中。若Openflow协议消息不包括cookie字段,则第一控制器在Openflow协议消息的消息体中新增一个节点标识字段,将节点标识信息添加到新增的节点标识字段中。
[0078] 例如,对于包含cookie的消息(如OFPT_FLOW_MOD和部分OFPT_MULTIPART_REQUEST/OFPT_MULTIPART_REPLY消息),可以利用现有的cookie字段携带节点标识符。Openflow协议中的cookie字段共有64位,是由控制器分配的一个标识符,表示一个流表项,在传送SDN中可以用于表示连接ID。当利用其表示节点标识符时,约定前32位表示连接ID,后32位表示节点ID。该方式的优点是可以维持现有消息格式不变,便于实现。
[0079] 对于不包含cookie的消息,如OFPT_PORT_STATUS和OFPT_ERROR等,需要新增一个字段用于表示节点标识符。在Openflow1.3版本中的消息格式示例如下:
[0080] OFPT_PORT_STATUS消息为:
[0081]
[0082]
[0083] OFPT_ERROR消息为:
[0084]
[0085] 方式二:在消息头中增加节点标识信息
[0086] 由于Openflow协议消息具有统一的消息头格式,因此可以在Openflow协议消息头中增加节点标识信息。这种方式具有实现统一性好、不需要改变消息体结构的优点。修改后的Openflow消息头格式示例如下:
[0087]
[0088] 图3为本发明实现层次化网络抽象的方法另一实施例的示意图。如图3所示,单域控制器在上报虚拟节点间的邻接关系时,可采用以下步骤:
[0089] 步骤301,单域控制器在上报虚拟节点之间的邻接关系时,在Openflow协议端口属性上报消息中增加远端节点标识字段和远端端口号字段。
[0090] 步骤302,单域控制器将远端节点标识添加到远端节点标识字段中,将远端节点相应的远端端口号添加到远端端口号字段中。
[0091] 步骤303,单域控制器将Openflow协议端口属性上报消息发送给第二控制器。
[0092] 步骤304,多域控制器根据单域控制器发送的Openflow协议端口属性上报消息,了解单域的网络拓扑信息。
[0093] 例如,在Openflow1.3版本中的具体消息格式示例如下:
[0094]
[0095] 从而通过在Openflow协议端口属性上报消息中增加远端节点标识和相应的远端端口号,实现节点间邻接关系的上报。
[0096] 图4为本发明实现层次化网络抽象的系统一个实施例的示意图。如图4所示,该系统可包括第一控制器401和第二控制器402。其中:
[0097] 第一控制器401,用于在利用Openflow协议与第二控制器402进行通信时,在Openflow协议消息中加入相关虚拟节点的节点标识;将所述Openflow协议消息发送给第二控制器402。
[0098] 第二控制器402,用于在接收到第一控制器401发送的所述Openflow协议消息后,根据所述Openflow协议消息中包括的节点标识,确定与所述Openflow协议消息相关联的虚拟节点。
[0099] 优选的,在SDN控制器架构中,第一控制器401可以为单域控制器或多域控制器,相应的,第二控制器402可以为多域控制器或单域控制器。即多域控制器和单域控制器均可采用上述方式进行通信。
[0100] 在一个实施例中,第一控制器401为多域控制器,第二控制器402为单域控制器。在这种情况下,第二控制器(即单域控制器)402在接收到第一控制器(即多域控制器)401发送的Openflow协议消息后,根据Openflow协议消息中包括的节点标识,确定将Openflow协议信息发送给与节点标识相关联的虚拟节点。
[0101] 在另一实施例中,第一控制器401为单域控制器,第二控制器402为多域控制器。在这种情况下,第二控制器(即多域控制器)402在接收到第一控制器(即单域控制器)401发送的Openflow协议消息后,根据Openflow协议消息中包括的节点标识,确定Openflow协议消息来自于与节点标识相关联的虚拟节点。
[0102] 基于本发明上述实施例提供的实现层次化网络抽象的系统,通过在Openflow协议消息中加入相关虚拟节点的节点标识,便于区分消息是发送给哪个虚拟节点或来自于哪个虚拟节点,从而可在多域控制器与每个单域控制器之间只采用一个Openflow协议进程的情况下,实现层次化网络拓扑的抽象,以满足采用层次化SDN控制器架构实现多域组网的需求。
[0103] 在一个实施例中,第一控制器401具体在利用Openflow协议与第二控制器进行通信时,在所述Openflow协议消息中增加节点标识信息。第一控制器401判断是否存在与所述Openflow协议消息相关联的虚拟节点;若存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为相关虚拟节点的节点标识;若不存在与所述Openflow协议消息相关联的虚拟节点,则将节点标识信息设置为0。
[0104] 优选的,在Openflow协议消息中加入节点标识信息的方式可以有以下两种,以第一控制器401为例。第一控制器401在所述Openflow协议消息的消息体中增加节点标识信息,或者第一控制器401在所述Openflow协议消息的消息头中增加节点标识信息。
[0105] 其中,第一控制器401在Openflow协议消息的消息体中增加节点标识信息时,判断Openflow协议消息是否包括cookie字段。若Openflow协议消息包括cookie字段,则将节点标识信息添加到cookie字段中;若Openflow协议消息不包括cookie字段,则在Openflow协议消息的消息体中新增一个节点标识字段,将节点标识信息添加到新增的节点标识字段中。
[0106] 在一个实施例中,第一控制器401作为单域控制器时,还用于在上报虚拟节点之间的邻接关系时,在Openflow协议端口属性上报消息中增加远端节点标识字段和远端端口号字段,将远端节点标识添加到远端节点标识字段中,将远端节点相应的远端端口号添加到远端端口号字段中;将所述Openflow协议端口属性上报消息发送给作为多域控制器的第二控制器402,以便第二控制器402根据所述Openflow协议端口属性上报消息了解单域的网络拓扑信息。
[0107] 通过实施本发明,可得到以下有益效果:
[0108] 1、在多域控制器与每个单域控制器之间只采用一个Openflow协议进程的情况下,即可以实现单域网络拓扑的上报,以及连接建立、删除、修改、查询等功能。本发明的SDN控制器架构如图5所示。
[0109] 2、只需要在现有协议中增加节点标识符、远端节点标识符和远端端口号三个字段,即可实现本发明提出的方案,具有实现简单的特点。
[0110] 3、采用本发明提出的技术方案,可以避免现有技术方案存在的实现复杂、通信信令效率低的问题。
[0111] 此外,通过将本发明应用于SDON(Software Defined Optical Network,软件定义光网络)系统的CVNI(Control Virtual Network Interface,虚拟网络控制接口)接口,如图6所示,可以实现层次化网络拓扑的抽象,满足传送网采用层次化SDN控制器架构实现多域组网的需求,实现多域组网场景下的端到端连接的自动建立,以及网络拓扑的可视化管理。
[0112] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0113] 本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。