数据分发方法及系统与流程

文档序号:11138480阅读:2874来源:国知局
数据分发方法及系统与制造工艺

本发明涉及互联网技术领域,特别涉及一种数据分发方法及系统。



背景技术:

随着互联网技术发展,互联网成为人们生活中必不可少的组成部分,借助互联网用户可召开视频会议、观看直播视频、了解股市行情等。以召开视频会议为例,在召开视频会议时,通常会有多个用户同时参与,为使这些用户及时获取到所需数据,需要将数据分发给各个用户。

相关技术在进行数据分发时,主要采用如下两种方式:

第一种方式:发送端维护一个列表,根据该列表中的接收端数量,对待发送的数据进行复制,进而将复制后的数据通过网络发送至各个接收端。

第二种方式:发送端将数据发送至包含指定网络的计算节点上,由计算节点采用广播的方式将数据发送至每个接收端。

在实现本发明的过程中,发明人发现相关技术至少存在以下问题:

由于第一种方式需要发送端维护一个列表,维护不便,且将多份数据在网络上传输,增加了网络压力。

由于第二种方式将数据发送至计算节点中的每个接收端,而实际上计算节点上的各个接收端并不都需要接收数据,将数据发送至无关的接收端,不仅存在安全隐患,而且增加了网络压力。



技术实现要素:

为了解决相关技术的问题,本发明实施例提供了一种数据分发方法及系统。所述技术方案如下:

第一方面,提供了一种数据分发方法,所述方法包括:

虚拟交换机接收虚拟机发送的组播报文,所述组播报文携带组播组标识及网络标识,所述组播组标识指示所述虚拟机所属的组播组,所述网络标识指示 所述虚拟机所在的网络;

所述虚拟交换机获取所述组播组标识对应的目标网络标识;

所述虚拟交换机根据所述组播组标识及所述目标网络标识,获取所述目标网络标识对应的目标虚拟交换机标识;

所述虚拟交换机根据所述目标网络标识及所述网络标识,通过目标网络将所述组播报文发送至所述目标虚拟交换机标识对应的目标虚拟交换机。

结合第一方面,在第一方面的第一种可能的实现方式中,所述虚拟交换机根据所述目标网络标识及所述网络标识,通过目标网络将所述组播报文发送至所述目标虚拟交换机标识对应的目标虚拟交换机之后,还包括:

所述目标虚拟交换机接收虚拟交换机发送的所述组播报文;

所述目标虚拟交换机通过所述目标网络将所述组播报文发送至所述组播组标识对应的组播组内所连接的虚拟机。

结合第一方面,在第一方面的第二种可能的实现方式中,所述虚拟交换机获取所述组播组标识对应的目标网络标识,包括:

所述虚拟交换机将所述组播组标识发送至路由器,所述路由器根据存储的组播组标识与网络标识之间的对应关系,获取所述组播组标识对应的目标网络标识;

所述虚拟交换机接收所述路由器返回的所述组播组标识对应的目标网络标识。

结合第一方面,在第一方面的第三种可能的实现方式中,所述虚拟交换机根据所述组播组标识及所述目标网络标识,获取所述目标网络标识对应的目标虚拟交换机标识,包括:

所述虚拟交换机将所述组播组标识及所述目标网络标识上报至SDN(Software Defined Network,软件定义网络)控制器;

所述SDN控制器根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识对应的目标虚拟交换机标识;

所述虚拟交换机接收所述SDN控制器返回的所述目标网络标识对应的目标虚拟交换机标识。

结合第一方面,在第一方面的第四种可能的实现方式中,所述虚拟交换机根据所述组播组标识及所述目标网络标识,获取所述目标网络标识对应的目标虚拟交换机标识,包括:

所述虚拟交换机根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识对应的目标虚拟交换机标识。

结合第一方面,在第一方面的第五种可能的实现方式中,所述虚拟交换机根据所述目标网络标识及所述网络标识,通过目标网络将所述组播报文发送至所述目标虚拟交换机标识对应的目标虚拟交换机,包括:

如果所述虚拟交换机根据所述目标网络标识及所述网络标识,确定与所述目标虚拟交换机在同一数据中心内,则通过目标网络将所述组播报文发送至所述目标虚拟交换机标识对应的目标虚拟交换机。

结合第一方面,在第一方面的第六种可能的实现方式中,所述虚拟交换机根据所述目标网络标识及所述网络标识,通过目标网络将所述组播报文发送至所述目标虚拟交换机标识对应的目标虚拟交换机,包括:

如果所述虚拟交换机根据所述目标网络标识及所述网络标识,确定与所述目标虚拟交换机在不同的数据中心内,则将所述组播报文发送至用户路由器,所述用户路由器将所述组播报文发送至包含所述目标网络标识的网络节点,所述网络节点上的虚拟交换机通过所述目标网络将所述组播报文发送至所述目标虚拟交换机标识对应的目标虚拟交换机。

结合第一方面的第一种可能的实现方式,在第一方面的第七种可能的实现方式中,所述目标虚拟交换机通过所述目标网络将所述组播报文发送至所述组播组标识对应的组播组内所连接的虚拟机,包括:

所述目标虚拟交换机将所述组播组标识、所述目标网络标识、所述目标虚拟交换机标识上报至软件定义网络SDN控制器;

所述SDN控制器根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系中,在所述组播组标识对应的组播组内,获取所述目标网络标识与所述目标虚拟交换机标识对应的虚拟机标识;

所述目标虚拟交换机接收所述SDN控制器返回的所述目标网络标识与所述目标虚拟交换机标识对应的虚拟机标识;

所述目标虚拟交换机通过所述目标网络将所述组播报文发送至所述虚拟机标识对应的虚拟机。

结合第一方面的第一种可能的实现方式,在第一方面的第八种可能的实现方式中,所述目标虚拟交换机通过所述目标网络将所述组播报文发送至所述组播组标识对应的组播组内所连接的虚拟机,包括:

所述目标虚拟交换机根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识与所述目标虚拟交换机标识对应的虚拟机标识;

所述目标虚拟交换机通过所述目标网络将所述组播报文发送至所述虚拟机标识对应的虚拟机。

结合第一方面的第七种或第八种可能的实现方式,在第一方面的第九种可能的实现方式中,所述目标虚拟交换机通过所述目标网络将所述组播报文发送至所述组播组标识对应的组播组内所连接的虚拟机之前,还包括:

所述虚拟交换机接收同一数据中心同一计算节点上的虚拟机发送的组加入消息,所述组加入消息中携带所加入的组播组标识、网络标识及虚拟机标识;

所述虚拟交换机将所述组加入消息及自身的虚拟交换机标识上报至所述SDN控制器,所述SDN控制器根据所述虚拟交换机发送的组加入消息及虚拟交换机标识,存储所述组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系;

所述虚拟交换机存储所述SDN控制器返回的所述组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

第二方面,提供了一种数据分发系统,所述系统包括发送端虚拟交换机及接收端虚拟交换机;

所述发送端虚拟交换机,用于接收虚拟机发送的组播报文,所述组播报文携带组播组标识及网络标识,所述组播组标识指示所述虚拟机所属的组播组,所述网络标识指示所述虚拟机所在的网络;

所述发送端虚拟交换机,还用于获取所述组播组标识对应的目标网络标识;

所述发送端虚拟交换机,还用于根据所述组播组标识及所述目标网络标识,获取所述目标网络标识对应的接收端虚拟交换机标识;

所述发送端虚拟交换机,还用于根据所述目标网络标识及所述网络标识, 通过目标网络将所述组播报文发送至所述接收端虚拟交换机标识对应的接收端虚拟交换机。

结合第二方面,在第二方面的第一种可能的实现方式中,所述接收端虚拟交换机,用于接收所述发送端虚拟交换机发送的所述组播报文;

所述接收端虚拟交换机,还用于通过所述目标网络将所述组播报文发送至所述组播组标识对应的组播组内所连接的虚拟机。

结合第二方面,在第二方面的第二种可能的实现方式中,所述系统还包括:路由器;

所述路由器,用于根据存储的组播组标识与网络标识之间的对应关系,获取所述组播组标识对应的目标网络标识;

所述发送端虚拟交换机,还用于接收所述路由器返回的所述组播组标识对应的目标网络标识。

结合第二方面,在第二方面的第三种可能的实现方式中,所述系统还包括:软件定义网络SDN控制器;

所述发送端虚拟交换机,还用于将所述组播组标识及所述目标网络标识上报至所述SDN控制器;

所述SDN控制器,用于根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识对应的接收端虚拟交换机标识;

所述发送端虚拟交换机,还用于接收所述SDN控制器返回的每个目标网络标识对应的接收端虚拟交换机标识。

结合第二方面,在第二方面的第四种可能的实现方式中,所述发送端虚拟交换机,还用于根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识对应的接收端虚拟交换机标识。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述发送端虚拟交换机,还用于当所述虚拟交换机根据所述目标网络标识及所述网络标识,确定与所述接收端虚拟交换机在同一数据中心内,通过目标网络将所述组播报文发送至所述接收端虚拟交换机标识对应的接收端虚拟交换机。

结合第二方面,在第二方面第六种可能的实现方式中,所述系统还包括用户路由器及网络节点上的虚拟交换机;

所述发送端虚拟交换机,还用于当所述虚拟交换机根据所述目标网络标识及所述网络标识,确定与所述接收端虚拟交换机在不同的数据中心内,将所述组播报文发送至用户路由器;

所述用户路由器,用于将所述组播报文发送至包含所述目标网络标识的网络节点;

所述网络节点上的虚拟交换机,用于通过所述目标网络将所述组播报文发送至所述接收端虚拟交换机标识对应的接收端虚拟交换机。

结合第二方面的第一种可能的实现方式,在第二方面的第七种可能的实现方式中,所述系统还包括:软件定义网络SDN控制器;

所述接收端虚拟交换机,用于将所述组播组标识、所述目标网络标识、所述接收端虚拟交换机标识上报至所述SDN控制器;

所述SDN控制器,用于根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识与所述接收端虚拟交换机标识对应的虚拟机标识;

所述接收端虚拟交换机,还用于接收所述SDN控制器返回的所述目标网络标识与所述接收机端虚拟交换机标识对应的虚拟机标识;

所述接收端虚拟交换机,还用于通过所述目标网络将所述组播报文发送至所述虚拟机标识对应的虚拟机。

结合第二方面的第一种可能的实现方式,在第二方面的第八种可能的方式中,所述接收端虚拟交换机,还用于根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在所述组播组标识对应的组播组内,获取所述目标网络标识与所述目标虚拟交换机标识对应的虚拟机标识;

所述接收端虚拟交换机,还用于通过所述目标网络将所述组播报文发送至所述虚拟机标识对应的虚拟机。

结合第二方面的第七种或第八种可能的实现方式,在第二方面的第九种可能的实现方式中,所述发送端虚拟交换机,还用于接收同一数据中心同一计算节点上的虚拟机发送的组加入消息,所述组加入消息中携带所加入的组播组标识、网络标识及虚拟机标识;

所述发送端虚拟交换机,还用于将所述组加入消息及自身的虚拟交换机标识上报至所述SDN控制器;

所述SDN控制器,还用于根据所述虚拟交换机发送的组加入消息及虚拟交换机标识,存储所述组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系;

所述发送端虚拟交换机,还用于存储所述SDN控制器返回的所述组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

本发明实施例提供的技术方案带来的有益效果是:

将组播报文发送有针对性地发送至组播组内的目标虚拟交换机,避免了多份数据同时在网络上传输,节省了网络流量,减轻了网络压力,同时使得未加入组播组的其他虚拟交换机无法接收到组播报文,提高了通信安全性。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1(A)是本发明一个实施例提供的一种组播协议的示意图;

图1(B)是本发明另一个实施例提供的一种数据中心组网的示意图;

图2是本发明另一个实施例提供的一种数据分发方法的流程图;

图3是本发明另一个实施例提供的一种数据分发方法的流程图;

图4是本发明另一个实施例提供的一种在虚拟网络内进行数据分发的示意图;

图5是本发明另一个实施例提供的一种数据分发方法的流程图;

图6是本发明另一个实施例提供的一种虚拟网络间组播组建立的示意图;

图7是本发明另一个实施例提供的一种在虚拟网络间进行数据分发的示意图;

图8是本发明另一个实施例提供的一种数据分发方法的流程图;

图9是本发明另一个实施例提供的一种跨数据中心组播组建立的示意图;

图10是本发明另一个实施例提供的一种跨数据中心进行数据分发的示意 图;

图11是本发明另一个实施例提供的一种数据分发系统的结构示意图;

图12是本发明另一个实施例提供的一种数据分发系统的结构示意图;

图13是本发明另一个实施例提供的一种数据分发系统的结构示意图;

图14是本发明另一个实施例提供的一种数据分发系统的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

在互联网技术领域,为了便于对网络进行管理,常以地域为单位,将网络划分为不同的数据中心,例如,可以城市为单位,将北京市的所有网络组成一个数据中心,将上海市的所有网络组成一个数据中心等;还可以国家为单位,将中国的所有网络组成一个数据中心,将美国的所有网络组成一个数据中心等等。

目前,基于所划分的数据中心进行数据分发时,主要采用三种方式,分别为单播、广播、组播。单播是指在发送端和接收端之间实现点对点的网络连接,采用单播的方式进行数据分发时,发送端需要将数据复制出与接收端数量相同的份数,并将复制后的数据通过网络传输给多个接收端,然而当接收端数量较多时,在网络上传输多份数据必然会增加网络压力;广播是指接收端在IP(Internet Protocol,网络之间的互联协议)子网内广播数据包,由于子网内的所有接收端无论需要与否都会接收到这些数据包,因而采用广播的方式进行数据分发时,不仅数据安全性较差,而且网络压力较大;组播是指在发送端和接收端之间实现点对多点的网络连接,采用组播的方式进行数据分发时,发送端可借助路由器及交换机将数据在尽可能远的节点上才开始进行复制和分发,降低了网络压力。

然而,采用组播的方式进行数据分发时,需要在数据中心部署大量的路由器及交换机,不仅配置复杂,维护不便,而且路由器和交换机之间彼此进行通信时,需要借助一些通信协议才能实现,使得组播的应用受到了极大地限制。具体地,在交换机上需要实现IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探),在路由器上需要实现组播路由协 议,例如,PIM-SM(Protocol Independent Multicast-Sparse Mode,稀疏模式独立组播协议)、PIM-DM(Protocol Independent Multicast-Dense Mode,密集模式独立组播协议)、DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由选择协议)、BIDIR-PIM(Bidirectional Protocol Independent Multicast,双向协议独立组播)等。如图1(A)所示,路由器与路由器之间进行通信需借助PIM(Protocol Independent Multicast,组播协议)实现,路由器与交换机之间进行通信需借助IGMP(Internet Group Management Protocol,互联网组管理协议)实现,交换机与接收端之间进行通信需借助IGMP协议实现。

为了克服上述采用组播进行数据分发的缺陷,本发明对原有的数据的组网方式进行了改进,并采用虚拟交换机及分布式虚拟路由器代替原有数据中心中的交换机和路由器在虚拟网络内进行数据分发。参见图1(B),其示出了一种数据中心组网示意图。由图1(B)可知,数据中心通常包括Openstack(云计算管理平台)、SDN(Software Defined Network,软件定义网络)控制器、组播应用、计算节点、网络节点、CE及公网等。Openstack包括多个服务模块,如Nova、Neutron等,可对SDN控制器进行控制;SDN控制器架设于Openstack之下,通过安装的组播应用可对计算节点及网络节点上的虚拟交换机进行控制,进而对虚拟网络的控制;每个计算节点上配置有一个虚拟交换机以及多个虚拟机,可为数据分发过程提供网络及存储资源;网络节点上配置有一个虚拟交换机,可通过CE连接到数据中心外部的网络(公网)中。在数据中心内,计算节点和网络节点上的虚拟交换机可通过物理网络建立连接,彼此进行通信。另外,为了实现对组播组内的报文进行监控,每个计算节点和网络节点的虚拟交换机上均部署一个IGMP Snooping模块,该IGMP Snooping模块负责截获所连接的虚拟机发出的IGMP消息,并将截获到的IGMP消息上报至SDN控制器,同时IGMP Snooping模块也可接收SDN控制器下发的指令,并根据SDN控制器下发的指令对组播报文进行转发。其中,IGMP消息包括组加入消息、组离开消息等等。

基于上述图1(B)所示的数据中心示意图,采用组播方式进行数据分发时,可实现以下三种功能:在虚拟网络内的数据分发功能、在虚拟网络间的数据分发功能以及跨虚拟网络与外部网络的数据分发。针对这三种功能,在后续的实施例中将分别进行详述。

本发明实施例提供一种数据分发方法,参见图2,本实施例提供的数据分发方法包括:

201、虚拟交换机接收虚拟机发送的组播报文,该组播报文携带组播组标识及网络标识,该组播组标识指示虚拟机所属的组播组,该网络标识指示虚拟机所在的网络。

202、虚拟交换机获取组播组标识对应的目标网络标识。

203、虚拟交换机根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟交换机标识。

204、虚拟交换机根据目标网络标识及网络标识,通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机。

本发明实施例提供的方法,将组播报文发送有针对性地发送至组播组内的目标虚拟交换机,避免了多份数据同时在网络上传输,节省了网络流量,减轻了网络压力,同时使得未加入组播组的其他虚拟交换机无法接收到组播报文,提高了通信安全性。

在本发明的另一个实施例中,虚拟交换机根据目标网络标识及网络标识,通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机之后,还包括:

目标虚拟交换机接收虚拟交换机发送的组播报文;

目标虚拟交换机通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机。

在本发明的另一个实施例中,虚拟交换机获取组播组标识对应的目标网络标识,包括:

虚拟交换机将组播组标识发送至路由器,路由器根据存储的组播组标识与网络标识之间的对应关系,获取组播组标识对应的目标网络标识;

虚拟交换机接收路由器返回的组播组标识对应的目标网络标识。

在本发明的另一个实施例中,虚拟交换机根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟交换机标识,包括:

虚拟交换机将组播组标识及目标网络标识上报至软件定义网络SDN控制器;

SDN控制器根据存储的组播组标识、网络标识及虚拟交换机标识之间的对 应关系,在组播组标识对应的组播组内,获取目标网络标识对应的目标虚拟交换机标识;

虚拟交换机接收SDN控制器返回的目标网络标识对应的目标虚拟交换机标识。

在本发明的另一个实施例中,虚拟交换机根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟交换机标识,包括:

虚拟交换机根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的目标虚拟交换机标识。

在本发明的另一个实施例中虚拟交换机根据目标网络标识及网络标识,通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机,包括:

如果虚拟交换机根据目标网络标识及网络标识,确定与目标虚拟交换机在同一数据中心内,则通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机。

在本发明的另一个实施例中,虚拟交换机根据目标网络标识及网络标识,通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机,包括:

如果虚拟交换机根据目标网络标识及网络标识,确定与目标虚拟交换机在不同的数据中心内,则将组播报文发送至用户路由器,用户路由器将组播报文发送至包含目标网络标识的网络节点,网络节点上的虚拟交换机通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机。

在本公开的另一个实施例中,目标虚拟交换机通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机,包括:

目标虚拟交换机将组播组标识、目标网络标识、目标虚拟交换机标识上报至软件定义网络SDN控制器;

SDN控制器根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系中,在组播组标识对应的组播组内,获取目标网络标识与目标虚拟交换机标识对应的虚拟机标识;

目标虚拟交换机接收SDN控制器返回的目标网络标识与目标虚拟交换机标 识对应的虚拟机标识;

目标虚拟交换机通过目标网络将组播报文发送至虚拟机标识对应的虚拟机。

在本公开的另一个实施例中,目标虚拟交换机通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机,包括:

目标虚拟交换机根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识与目标虚拟交换机标识对应的虚拟机标识;

目标虚拟交换机通过目标网络将组播报文发送至虚拟机标识对应的虚拟机。

在本公开的另一个实施例中,目标虚拟交换机通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机之前,还包括:

虚拟交换机接收同一数据中心同一计算节点上的虚拟机发送的组加入消息,组加入消息中携带所加入的组播组标识、网络标识及虚拟机标识;

虚拟交换机将组加入消息及自身的虚拟交换机标识上报至SDN控制器,SDN控制器虚拟交换机发送的组加入消息及虚拟交换机标识,存储组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系;

虚拟交换机存储SDN控制器返回的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

本发明实施例提供了一种数据分发方法,该方法应用于虚拟网络内的数据分发场景,在该场景下发送组播报文的虚拟机、虚拟交换机、目标虚拟交换机以及接收组播报文的虚拟机均位于同一数据中心的同一网络内。以发送组播报文的虚拟机所在的网络为第一网络为例,参见图3,本实施例提供的方法流程包括:

301、虚拟交换机接收虚拟机发送的组播报文,该组播报文携带组播组标识及网络标识。

在本实施例中,虚拟交换机与虚拟机位于同一计算节点上,连接着包括虚拟机在内的多个虚拟机。虚拟交换机中配置有一个IGMP Snooping模块,可接收同一计算节点上的虚拟机发送的组播报文及IGMP Snooping消息。

当虚拟机有数据需要与组播组内的其他虚拟机进行分享时,虚拟机可将待分享的数据生成组播报文,并在计算节点内发送。虚拟交换机中的IGMP Snooping模块截获虚拟机所发送的组播报文,并通过后续步骤对接收到的组播报文进行发送。其中,组播报文中至少携带组播组标识及网络标识等,该网络标识可以为网络的IP地址等等。

302、虚拟交换机根获取组播组标识对应的目标网络标识。

由于本实施例中的虚拟交换机与组播组内的目标虚拟交换机均在同一数据中心的同一网络内,因而虚拟交换机可确定出组播组标识对应的目标网络标识为组播报文中携带的网络标识,进而确定出第一网络为组播组的目标网络。

303、虚拟交换机根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟机标识。

当确定出组播报文中携带的网络标识为目标网络标识后,虚拟交换机可根据组播组标识及网络标识,在组播标识对应的组播组内,获取网络标识对应的目标虚拟机标识。

具体地,虚拟交换机根据组播组标识及网络标识,获取网络标识对应的目标虚拟机标识时,包括但不限于如下两种方式:

第一种方式:虚拟交换机将组播组标识及网络标识上传至SDN控制器,SDN控制器根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的目标虚拟交换机标识,并将获取到的目标虚拟交换机标识发送至虚拟交换机,虚拟交换机接收SDN控制器返回的网络标识对应的目标虚拟交换机标识,并据此获取网络标识对应的目标虚拟机标识。

第二种方式:虚拟交换机根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的目标虚拟交换机标识。

在本实施例中,虚拟交换机根据组播组标识及网络标识,获取网络标识对应的目标虚拟机标识之前,还需要存储组播组标识、网络标识、虚拟交换机标 识及虚拟机标识之间的对应关系。

具体实施时,虚拟机可接收同一数据中心同一计算节点上的虚拟机发送的组加入消息,该组加入消息中至少携带所加入的组播组标识、虚拟机标识及网络标识。之后,虚拟交换机将接收到的组加入消息及自身的虚拟交换机标识上报至SDN控制器。SDN控制器根据接收到的组加入消息及虚拟交换机标识,设置组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

需要说明的是,上述过程以SDN控制器根据虚拟交换机发送的组加入消息及自身的虚拟交换机标识,设置组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系为例进行说明的,在实际应用中,同一数据中心内的其他虚拟交换机也向SDN控制器发送组加入消息及自身的虚拟交换机标识,由SDN控制器对设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系进行更新。

为了便于后续的应用,SDN控制器还将存储所设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,具体存储时,SDN控制器可将组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系存储在对应的存储单元中。之后,SDN控制器还可将设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系发送至虚拟交换机,由虚拟交换机对SDN控制器发送的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系进行存储。具体存储时,虚拟交换机可将组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系存储在内存、闪存等存储介质中。

需要说明的是,通常组播组的内的虚拟机并不是固定不变的,当组播组内的有新虚拟机加入时,加入的虚拟机将发送组加入消息,SDN控制器根据组加入消息,对设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系进行更新。当然,当组播组内有虚拟机离开时,离开的虚拟机将发送组离开消息,该组离开消息中至少携带离开的组播组标识、虚拟机标识及网络标识,此时SDN控制器可根据接收到的组离开消息,将该虚拟机的相关信息从存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系中删除。

304、虚拟交换机通过第一网络将组播报文发送至目标虚拟交换机标识对应 的目标虚拟交换机。

通常组播报文主要是由不同计算节点上的虚拟交换机进行转发的,因而当确定出目标虚拟交换机标识之后,虚拟交换机可根据目标虚拟交换机的数量,对组播报文进行复制,进而将复制后的组播报文通过第一网络发送至目标虚拟交换机标识对应的目标虚拟交换机。

305、当接收到虚拟交换机发送的组播报文,目标虚拟交换机通过第一网络将组播报文发送至组播组标识对应的组播内所连接的虚拟机。

目标虚拟交换机通过第一网络将组播报文发送至组播组标识对应的组播内所连接的虚拟机时,可采用如下两种方式:

第一种方式:如果目标虚拟交换机中存储了组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,则在接收到组播报文时,目标虚拟交换机从组播报文中获取组播组标识,并根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取网络标识与目标虚拟交换机标识对应的虚拟机标识,进而根据获取到的虚拟机标识的数量,对组播报文进行复制,并将复制后的组播报文通过第一网络发送至虚拟机标识对应的虚拟机。

第二种方式:如果目标虚拟交换机中未存储组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,则在接收到组播报文时,目标虚拟交换机从组播报文中获取组播组标识,并将组播组标识、网络标识、目标虚拟交换机标识上报至SDN控制器,SDN控制器根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取网络标识与目标虚拟交换机标识对应的虚拟机标识,并将网络标识与目标虚拟交换机标识对应的虚拟机标识发送至目标虚拟交换机。目标虚拟交换机根据获取到的虚拟机标识的数量,对组播报文进行复制,并将复制后的组播报文通过第一网络发送至虚拟机标识对应的目标虚拟机。

对于上述过程,为了便于理解,下面将以图4为例进行说明。

参见图4,计算节点1、计算节点2、计算节点3为数据中心内的三个计算节点。其中,虚拟交换机1、虚拟机1、虚拟机2及虚拟机3位于计算节点1上,且虚拟机1上配置有IGMP Snooping1模块;虚拟交换机2、虚拟机4、虚拟机5及虚拟机6位于计算节点2上,且虚拟交换机2上配置有IGMP Snooping2模块; 虚拟交换机3、虚拟机7、虚拟机8及虚拟机9位于计算节点3上,且虚拟交换机3上配置有IGMP Snooping3模块。当虚拟机2、虚拟机4、虚拟机6加入到组播组时,虚拟机2、虚拟机4、虚拟机6将发送组加入消息,虚拟交换机1上的IGMP Snooping1截获到虚拟机2发送的组加入消息之后,将截获到的组加入消息及自身的虚拟交换机标识发送至SDN控制器,同时,虚拟交换机2上的IGMP Snooping2截获到虚拟机4和虚拟机6发送的组加入消息之后,也会将截获到的组加入消息及自身的虚拟交换机标识发送至SDN控制器。SDN控制器根据接收到的组加入消息,设置并存储组播组标识与虚拟机2、虚拟机4、虚拟机6的属性信息之间的对应关系。

当虚拟交换机1上的IGMP Snooping1接收到已加入组播组的虚拟机1发送的组播报文之后,将组播组标识及N1网络标识发送至SDN控制器,SDN控制器获取N1网络标识对应的目标虚拟交换机标识为虚拟交换机1标识和虚拟交换机2标识,并将获取到的虚拟交换机1标识和虚拟交换机2标识发送至虚拟交换机1。当接收到SDN控制器发送的虚拟交换机1标识和虚拟交换机2标识,虚拟交换机1获取到组播组标识对应的组播组内所连接的虚拟机为虚拟机2,进而将组播报文发送至虚拟机2。同时虚拟交换机1通过N1网络将组播报文发送至虚拟交换机2,虚拟交换机2获取到组播组标识对应的组播组内所连接的虚拟机为虚拟机4和虚拟机6,进而通过N1网络将组播报文发送至虚拟机4和虚拟机6。

本发明实施例提供的方法,将组播报文发送有针对性地发送至组播组内的目标虚拟交换机,避免了多份数据同时在网络上传输,节省了网络流量,减轻了网络压力,同时使得未加入组播组的其他虚拟交换机无法接收到组播报文,提高了通信安全性。

本发明实施例提供了一种数据分发方法,该方法应用于虚拟网络间的数据分发场景,在该场景下发送组播报文的虚拟机、虚拟交换机、目标虚拟交换机以及接收组播报文的虚拟机均位于同一数据中心的不同网络内。参见图5,本实施例提供的方法流程包括:

501、虚拟交换机接收虚拟机发送的组播报文,该组播报文携带组播组标识及网络标识。

该步骤的具体实现过程与上述步骤301相同,具体参见上述步骤301,此处不再赘述。

502、虚拟交换机获取组播组标识对应的目标网络标识。

本实施例中的虚拟交换机与组播组内的目标虚拟交换机在同一数据中心的不同网络内,为了进一步地确定组播组内的目标虚拟交换机所在的网络,当接收到组播组标识时,虚拟交换机可将组播组标识发送至同一计算节点上的M-DVR(Multicast Distributed Virtual Router,组播-分布式路由器),由M-DVR根据存储的组播组标识与网络标识之间的对应关系,获取组播组标识对应的目标网络标识,并将获取到的组播组标识对应的目标网络标识发送至虚拟交换机。当接收M-DVR发送的组播组标识对应的目标网络标识,虚拟交换机即可确定出目标网络标识。

为使M-DVR能够获取到组播组标识对应的目标网络标识,在本实施例中,当数据中心内任一计算节点上的虚拟机加入到组播组后,该虚拟机将发送组加入消息,与该虚拟机在同一计算节点上的虚拟交换机中的IGMP Snooping模块截获到组加入消息,并确认该虚拟机为网络内第一个加入组播组的虚拟机时,虚拟交换机将组加入消息发送至M-DVR,由M-DVR根据接收到的组加入消息,存储组播组标识与网络标识之间的对应关系。

需要说明的是,M-DVR存储了组播组标识与网络之间的对应关系后,如果计算节点上与上述虚拟机在同一网络内的其他虚拟机也加入到该组播组,计算节点上的虚拟机的IGMP Snooping模块截获到组加入消息之后,不再将该组播加入消息发送至M-DVR。另外,由于每个计算节点上的M-DVR仅能接收到自身计算节点上的虚拟交换机发送的组加入消息,并不能接收到同一数据中心内的其他计算节点上的虚拟交换机发送的组加入消息,因而M-DVR所存储的组播组标识与网络标识之间的对应关系并不全面,为解决这一问题,当存储了组播组标识与网络标识之间的对应关系之后,SDN控制器存储的组播组标识与网络标识之间的对应关系发送至数据中心内的各个M-DVR,数据中心内的各个M-DVR接收到SDN控制器发送的组播组标识与网络标识之间的对应关系,即可对存储的组播组标识与网络标识之间的对应关系进行更新。

503、虚拟交换机根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟交换机标识。

当确定出目标网络标识后,虚拟交换机可根据组播组标识及目标网络标识,在组播标识对应的组播组内,获取目标网络标识对应的目标虚拟机标识。

具体的,虚拟交换机可根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟机标识时,包括但不限于如下两种方式。

第一种方式:虚拟交换机将组播组标识及网络标识上传至SDN控制器,SDN控制器根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的目标虚拟交换机标识,并将获取到的目标虚拟交换机标识发送至虚拟交换机,虚拟交换机接收SDN控制器返回的网络标识对应的目标虚拟交换机标识,并据此获取网络标识对应的目标虚拟机标识。

第二种方式:虚拟交换机根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的目标虚拟交换机标识。

在本实施例中,虚拟交换机根据组播组标识及网络标识,获取网络标识对应的目标虚拟机标识之前,还需要存储组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

具体实施时,虚拟机可接收同一数据中心同一计算节点上的虚拟机发送的组加入消息,该组加入消息中至少携带所加入的组播组标识、虚拟机标识及网络标识。之后,虚拟交换机将接收到的组加入消息及自身的虚拟交换机标识上报至SDN控制器。SDN控制器根据接收到的组加入消息及虚拟交换机标识,设置组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

需要说明的是,上述过程以SDN控制器根据虚拟交换机发送的组加入消息及自身的虚拟交换机标识,设置组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系为例进行说明的,在实际应用中,同一数据中心内的其他虚拟交换机也向SDN控制器发送组加入消息及自身的虚拟交换机标识,由SDN控制器对设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系进行更新。

为了便于后续的应用,SDN控制器还将存储所设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,具体存储时,SDN控制器可将组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系存 储在对应的存储单元中。之后,SDN控制器还可将设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系发送至虚拟交换机,由虚拟交换机对SDN控制器发送的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系进行存储。具体存储时,虚拟交换机可将组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系存储在内存、闪存等存储介质中。

对于上述过程,为了便于理解,下面将以图6为例进行说明。

参见图6,计算节点1、计算节点2、计算节点3为数据中心内的三个计算节点。其中,M-DVR1、虚拟交换机1、虚拟机1、虚拟机2及虚拟机3位于计算节点1上,且虚拟机1上配置有IGMP Snooping1模块;M-DVR2、虚拟交换机2、虚拟机4、虚拟机5及虚拟机6位于计算节点2上,且虚拟交换机2上配置有IGMP Snooping2模块;M-DVR3、虚拟交换机3、虚拟机7、虚拟机8及虚拟机9位于计算节点3上,且虚拟交换机3上配置有IGMP Snooping3模块。当虚拟机2、虚拟机5加入到组播组时,虚拟机2、虚拟机5发送组加入消息,虚拟交换机1上的IGMP Snooping1截获虚拟机2发送的组加入消息,确认虚拟机2是N1网络第一个加入组播组的虚拟机后,将截获到的组加入消息发送至M-DVR1,M-DVR1根据接收到组加入消息,存储组播组标识与NI网络标识之间的对应关系。虚拟交换机2上的IGMP Snooping2截获到虚拟机5发送的组加入消息,发现虚拟机5是N2网络第一个加入组播组的虚拟机后,将截获到的组加入消息发送至M-DVR2,由M-DVR2根据接收到组加入消息,存储组播组标识与N2网络标识之间的对应关系。在该过程中,虚拟交换机1还将虚拟机2发送的组加入消息及自身的虚拟交换机标识发送至SDN控制器,虚拟交换机2也会将虚拟机5发送的组加入消息及自身的虚拟交换机标识发送至SDN控制器。SDN控制器根据接收到的组加入消息,设置并存储组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

之后,SDN控制器还将存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系发送至数据中心内的各个M-DVR,由每个M-DVR对存储的第一组播组标识与网络标识之间的对应关系进行更新。

需要说明的是,通常组播组的内的各个虚拟机并不是固定不变的,当组播组内的有新虚拟机加入且该虚拟机为所在网络内唯一的虚拟机时,加入的虚拟 机将发送组加入消息,M-DVR根据接收到的组该加入消息,更新组播组标识及网络标识之间的对应关系,SDN控制器也根据该组加入消息,对设置的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系进行更新。当然,当组播组内有虚拟机离开时,离开的虚拟机将发送组离开消息,该组离开消息中至少携带离开的组播组标识、虚拟机标识及网络标识,与该虚拟机位于同一计算节点上的虚拟交换机接收到组离开消息,同样会将组离开消息发送至M-DVR,由M-DVR根据接收到的组离开消息,将该虚拟机所在网络从存储的组播组标识与网络标识中删除,同时与该虚拟机位于同一计算节点上的虚拟交换机也会将组离开消息及自身的虚拟交换机标识上报至SDN控制器,SDN控制器根据接收到的组离开消息及虚拟交换机标识,将该虚拟机的相关信息从存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系中删除。

504、虚拟交换机通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机。

通常组播报文主要是由不同计算节点上的虚拟交换机进行转发的,因而当确定出目标虚拟交换机标识之后,虚拟交换机可根据目标虚拟交换机的数量,对组播报文进行复制,进而将复制后的组播报文通过目标网络发送至目标虚拟交换机标识对应的目标虚拟交换机。

505、当接收到组播报文时,目标虚拟交换机通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机。

目标虚拟交换机通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机时,可采用如下两种方式。

第一种方式:如果目标虚拟交换机中存储了组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,则在接收到组播报文时,目标虚拟交换机从组播报文中获取组播组标识,并根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识与目标虚拟交换机标识对应的虚拟机标识,进而根据获取到的虚拟机标识的数量,对组播报文进行复制,并将复制后的组播报文通过目标网络发送至虚拟机标识对应的虚拟机。

第二种方式:如果目标虚拟交换机中未存储组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,则在接收到组播报文时,目标虚拟交换机从组播报文中获取组播组标识,并将组播组标识、目标网络标识、目标虚拟交换机标识上报至SDN控制器,SDN控制器根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识与目标虚拟交换机标识对应的虚拟机标识,并将目标网络标识与目标虚拟交换机标识对应的虚拟机标识发送至目标虚拟交换机。目标虚拟交换机根据获取到的虚拟机标识的数量,对组播报文进行复制,并将复制后的组播报文通过目标网络发送至虚拟机标识对应的目标虚拟机。

对于上述过程,为了便于理解,下面将以图7为例进行说明。

参见图7,计算节点1、计算节点2、计算节点3为数据中心内的三个计算节点。其中,M-DVR1、虚拟交换机1、虚拟机1、虚拟机2及虚拟机3位于计算节点1上,且虚拟机1上配置有IGMP Snooping1模块;M-DVR2、虚拟交换机2、虚拟机4、虚拟机5及虚拟机6位于计算节点2上,且虚拟交换机2上配置有GMP Snooping2模块;M-DVR3、虚拟交换机3、虚拟机7、虚拟机8及虚拟机9位于计算节点3上,且虚拟交换机3上配置有IGMP Snooping3模块。当虚拟交换机1上的IGMP Snooping1接收到虚拟机1发送的组播报文之后,将播组标识发送至M-DVR1,M-DVR1从存储的组播组标识与网络标识之间的对应关系中,获取组播组对应的目标网络标识为N1网络标识和N2网络标识,并将组播组标识对应的N1网络标识与N2网络标识发送至虚拟交换机1。之后,虚拟交换机1将组播组标识、N1网络标识及N2网络标识及自身的虚拟交换机标识发送至SDN控制器。SDN控制器根据组播组标识及N1网络标识,获取N1网络标识对应的目标虚拟交换机标识,根据组播组标识及N2网络标识,获取N2网络标识对应的目标虚拟交换机标识,并将N1网络标识对应的目标虚拟交换机标识及N2网络对应的目标虚拟交换机标识发送至虚拟交换机1。虚拟交换机1根据组播组获取组播组标识对应的组播组内所连接的虚拟机2,同时将组播报文通过N2网络发送至虚拟交换机2,虚拟交换机2获取到组播组标识对应的组播组内所连接的虚拟机为虚拟机5,进而通过N2网络将组播报文发送至虚拟机5。

本发明实施例提供的方法,将组播报文发送有针对性地发送至组播组内的 目标虚拟交换机,避免了多份数据同时在网络上传输,节省了网络流量,减轻了网络压力,同时使得未加入组播组的其他虚拟交换机无法接收到组播报文,提高了通信安全性。

本发明实施例提供了一种数据分发方法,该方法应用于跨虚拟网络与外部网络分发场景,在该场景下发送组播报文的虚拟机、虚拟交换机、目标虚拟交换机以及接收组播报文的虚拟机并不全在一个数据中心内,此时在进行数据分发时,可分为两种情况,针对发送组播报文的虚拟交换机与接收组播报文的部分虚拟交换机在同一数据中心的情况,可采用上述图3所示的实施提供的方法将组播报文在同一数据中心的同一网络内进行分发,采用上述图5所示的实施例提供的方法将组播报文在同一数据中心的不同网络内进行分发,本实施例对该种情况不再进行赘述,仅针对发送组播报文的虚拟交换机与接收组播报文的部分虚拟交换机在不同数据中心的情况进行说明。参见图8,本实施例提供的方法流程包括:

801、虚拟交换机接收虚拟机发送的组播报文,该组播报文携带组播组标识及网络标识。

该步骤的具体实现过程与上述步骤301相同,具体参见上述步骤301,此处不再赘述。

802、虚拟交换机获取组播组标识对应的网络节点标识。

在跨数据中心进行组播报文发送的场景下,组播报文通常由不同数据中心网络节点上的虚拟交换机进行发送的,因而需要先获取组播组内其他虚拟机所在的网络节点标识。

本实施例中的虚拟交换机与组播组内的目标虚拟机在不同数据中心内,为了进一步地确定组播组内的其他目标虚拟交换机所在的数据中心,当接收到组播组标识时,虚拟交换机可将组播组标识发送至同一计算节点上的M-DVR,由M-DVR将接收到的组播组标识发送至同一数据中心网络节点上的IGMP Proxy。之后,IGMP Proxy将组播标识发送至用户路由器,用户路由器根据存储的组播组标识与网络节点标识之间的对应关系,获取组播组标识对应的网络节点标识,并将获取到的网络节点标识发送至虚拟交换机。

为使用户路由器能够获取到组播组标识对应的网络节点标识,在本实施例 中,当数据中心内任一虚拟机加入到组播组后,该虚拟机将发送组加入消息,与同一计算节点上虚拟交换机中的IGMP Snooping模块截获到该组加入消息,并确认该虚拟机为网络内第一个加入组播组的虚拟机时,将该组加入消息发送至M-DVR,由M-DVR根据接收到的组加入消息,存储组播组标识与网络标识之间的对应关系。同时M-DVR还将组加入消息发送至IGMP Proxy,如果IGMP Proxy确认该虚拟机为数据中心内第一个加入组播组的虚拟机,则将该组加入消息发送至用户路由器,用户路由器根据接收到的组加入消息,存储组播组标识与网络节点标识之间的对应关系。

需要说明的是,用户路由器存储了组播组标识与网络节点之间的对应关系后,如果计算节点上与上述虚拟机在同一网络内的其他虚拟机也加入到该组播组,计算节点上的虚拟机的IGMP Snooping模块截获到组加入消息之后,不再将该组播加入消息发送至M-DVR,更不会发送至用户路由器,也即是,用户路由器仅接收一个数据中心内第一个加入组播组的虚拟机发送的组加入消息。另外,由于每个计算节点上的M-DVR仅能接收到自身计算节点上的虚拟交换机发送的组加入消息,并不能接收到同一数据中心内的其他计算节点上的虚拟交换机发送的组加入消息,因而M-DVR所存储的组播组标识与网络标识之间的对应关系并不全面,为解决这一问题,当存储了组播组标识与网络标识之间的对应关系之后,SDN控制器存储的组播组标识与网络标识之间的对应关系发送至数据中心内的各个M-DVR,数据中心内的各个M-DVR接收到SDN控制器发送的组播组标识与网络标识之间的对应关系,即可对存储的组播组标识与网络标识之间的对应关系进行更新。

对于上述过程,为了便于理解,下面将以图9为例进行说明。

参见图9,数据中心由计算节点1、计算节点2及网络节点1组成。其中,M-DVR1、虚拟交换机1、虚拟机1、虚拟机2及虚拟机3位于计算节点1上,且虚拟机1上配置有IGMP Snooping1模块;M-DVR2、虚拟交换机2、虚拟机4、虚拟机5及虚拟机6位于计算节点2上,且虚拟交换机2上配置有IGMP Snooping2模块;IGMP Proxy、M-DVR3、虚拟交换机3位于网络节点1上,且虚拟交换机3上配置有IGMP Snooping3模块。当虚拟机1加入到组播组时,虚拟机1将发送组加入消息,虚拟交换机1上的IGMP Snooping1截获虚拟机1发送的组加入消息,将截获到的组加入消息发送至M-DVR1,M-DVR1确认虚拟 机1是数据中心第一个加入组播组的虚拟机,将组加入消息发送至IGMP Proxy。由IGMP Proxy将组加入消息发送至用户路由器,用户路由器根据接收到的组加入消息,设置并存储组播组标识与网络节点之间的对应关系。

803、虚拟交换机将组播报文发送至用户路由器。

在跨数据中心进行组播报文分发的场景下,需要通过外部网络将组播报文发送至用户路由器,由用户路由器将组播报文由一个数据中心转发到另一个数据中心。

804、用户路由器将组播报文发送至网络节点标识对应的网络节点。

当接收到组播报文,用户路由器根据网络节点的数量,对组播报文进行复制,进而将复制后的组播报文通过外部网络发送至网络节点标识对应的网络节点上的IGMP Proxy。

805、网络节点上的虚拟交换机获取组播组标识对应的目标网络标识。

网络节点上的IGMP Proxy将组播报文发送至网络节点上的M-DVR,M-DVR根据存储的组播组标识与网络标识之间的对应关系,获取组播组标识对应的目标网络标识。

本步骤中网络节点上的M-DVR存储组播组标识与网络标识的方式与上述步骤502中M-DVR存储组播组标识与网络标识的方式相同,具体参见上述步骤502,此处不再赘述。

806、网络节点上的虚拟交换机根据组播组标识及目标网络标识,获取目标网络标识对应的目标虚拟交换机标识。

本步骤中网络节点上的虚拟交换机获取目标网络标识对应的目标虚拟交换机标识的方式与上述步骤503中虚拟交换机获取目标网络标识对应的目标虚拟交换机标识的方式相同,具体参见上述步骤503,此处不再赘述。

807、网络节点上的虚拟交换机通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机。

本步骤中网络节点上的虚拟交换机通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机的方式与上述步骤504中虚拟交换机通过目标网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机的方式相同,具体参见上述步骤504,此处不再赘述。

808、当接收到组播报文时,目标虚拟交换机通过目标网络将组播报文发送 至组播组标识对应的组播组内所连接的虚拟机。

该步骤的具体实现方式与上述步骤505相同,具体参见上述步骤505,此处不再赘述。

对于上述过程,为了便于理解,下面将以图10为例进行说明。

参见图10,当用户路由器接收到组播报文,用户路由器根据存储的组播组标识与网络节点标识,获取组播组标识对应的网络节点,并将组播报文发送至每个网络节点上的IGMP Proxy,IGMP Proxy接收到组报文之后,将组播报文发送至将组播报文发送至M-DVR3,M-DVR3根据存储的组播组标识与网络标识之间的对应关系,获取到组播组标识对应的目标网络标识为N1网络标识和N2网络标识,之后,分别通过N1网络和N2网络将组播报文发送至网络节点上的虚拟交换机,虚拟交换机接收到M-DVR3通过N1网络和N2网络发送的组播报文后,将组播组标识与N1网络标识及N2网络标识发送至同一数据中心内的SDN控制器,SDN控制器根据接收到的组播组标识及N1网络标识、N2网络标识,根据存储的组播组标识、网络标识及虚拟交换机标识的对应关系,获取N1网络标识对应的目标虚拟交换机及N2网络标识对应的目标虚拟交换机标识,并通过N1网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机,通过N2网络将组播报文发送至目标虚拟交换机标识对应的目标虚拟交换机,由目标虚拟交换机标识采用图3所示的实施例提供的方法在虚拟网络内发送。

本发明实施例提供的方法,将组播报文发送有针对性地发送至组播组内的目标虚拟交换机,避免了多份数据同时在网络上传输,节省了网络流量,减轻了网络压力,同时使得未加入组播组的其他虚拟交换机无法接收到组播报文,提高了通信安全性。

参见图11,本实施例提供了一种数据分发系统,该系统包括:发送端虚拟交换机1101及接收端虚拟交换机1102;

发送端虚拟交换机1101,用于接收虚拟机发送的组播报文,该组播报文携带组播组标识及网络标识,该组播组标识指示虚拟机所属的组播组,该网络标识指示虚拟机所在的网络;

发送端虚拟交换机1101,还用于获取组播组标识对应的目标网络标识;

发送端虚拟交换机1101,还用于根据组播组标识及目标网络标识,获取目 标网络标识对应的接收端虚拟交换机标识;

发送端虚拟交换机1101,还用于根据目标网络标识及网络标识,通过目标网络将组播报文发送至接收端虚拟交换机标识对应的接收端虚拟交换机1102。

在本发明的另一个实施例中,接收端虚拟交换机1102,用于接收发送端虚拟交换机1101发送的组播报文;

接收端虚拟交换机1102,还用于通过目标网络将组播报文发送至组播组标识对应的组播组内所连接的虚拟机。

参见图12,该系统还包括:路由器1103;

路由器1103,用于根据存储的组播组标识与网络标识之间的对应关系,获取组播组标识对应的目标网络标识;

发送端虚拟交换机1101,还用于接收路由器返回的组播组标识对应的目标网络标识。

参见图13,系统还包括:SDN控制器1104;

发送端虚拟交换机1101,还用于将组播组标识及目标网络标识上报至SDN控制器;

SDN控制器1104,用于根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的接收端虚拟交换机标识;

发送端虚拟交换机1101,还用于接收SDN控制器1104返回的每个目标网络标识对应的接收端虚拟交换机标识。

在本公开的另一个实施例中,发送端虚拟交换机1101,还用于根据存储的组播组标识、网络标识及虚拟交换机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识对应的接收端虚拟交换机标识。

在本发明的另一个实施例中,发送端虚拟交换机1101,还用于当虚拟交换机根据目标网络标识及网络标识,确定与接收端虚拟交换机1102在同一数据中心内,通过目标网络将组播报文发送至接收端虚拟交换机标识对应的接收端虚拟交换机。

参见图14,该系统还包括:用户路由器1105及网络节点上的虚拟交换机1106;

发送端虚拟交换机1101,还用于当虚拟交换机根据目标网络标识及网络标 识,确定与接收端虚拟交换机1102在不同的数据中心内,将组播报文发送至用户路由器1105;

用户路由器1105,用于将组播报文发送至包含目标网络标识的网络节点;

网络节点上的虚拟交换机1106,用于通过目标网络将组播报文发送至接收端虚拟交换机标识对应的接收端虚拟交换机1102。

在本发明的另一个实施例中,该系统还包括:SDN控制器;

接收端虚拟交换机1102,用于将组播组标识、目标网络标识、接收端虚拟交换机标识上报至SDN控制器1104;

SDN控制器1104,用于根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识与接收端虚拟交换机标识对应的虚拟机标识;

接收端虚拟交换机1102,还用于接收SDN控制器1104返回的目标网络标识与接收机端虚拟交换机标识对应的虚拟机标识;

接收端虚拟交换机1102,还用于通过目标网络将组播报文发送至虚拟机标识对应的虚拟机。

在本发明的另一个实施例中,接收端虚拟交换机1102,还用于根据存储的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系,在组播组标识对应的组播组内,获取目标网络标识与目标虚拟交换机标识对应的虚拟机标识;

接收端虚拟交换机1102,还用于通过目标网络将组播报文发送至虚拟机标识对应的虚拟机。

在本发明的另一个实施例中,发送端虚拟交换机1101,还用于接收同一数据中心同一计算节点上的虚拟机发送的组加入消息,组加入消息中携带所加入的组播组标识、网络标识及虚拟机标识;

发送端虚拟交换机1101,还用于将组加入消息及自身的虚拟交换机标识上报至SDN控制器;

SDN控制器1104,还用于虚拟交换机发送的组加入消息及虚拟交换机标识,存储组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系;

接收端虚拟交换机1101,还用于存储SDN控制器返回的组播组标识、网络标识、虚拟交换机标识及虚拟机标识之间的对应关系。

本发明实施例提供的系统,将组播报文发送有针对性地发送至组播组内的目标虚拟交换机,避免了多份数据同时在网络上传输,节省了网络流量,减轻了网络压力,同时使得未加入组播组的其他虚拟交换机无法接收到组播报文,提高了通信安全性。。

需要说明的是:上述实施例提供的数据分发系统在分发数据时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将数据分发系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据分发系统与数据分发方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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