买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】通信方法、通信系统、计算机系统及计算机可读存储介质_北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司_201610534735.1 

申请/专利权人:北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司

申请日:2016-07-07

公开(公告)日:2020-11-24

公开(公告)号:CN107453971B

主分类号:H04L12/46(20060101)

分类号:H04L12/46(20060101);H04L12/801(20130101);H04L12/911(20130101)

优先权:["20160530 CN 2016103676053"]

专利状态码:有效-授权

法律状态:2020.11.24#授权;2018.01.05#实质审查的生效;2017.12.08#公开

摘要:本发明提供了一种多个虚拟机之间的通信方法及系统,用于实现分布在多个物理机中的多个虚拟机之间的通信,本方法只需为每个物理机配置一条虚拟隧道,然后利用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。采用本发明的技术方案,能在建立较少的虚拟隧道的情况下,实现大规模的物理机集群中虚拟机之间的通信,并且防止集群中物理机器的变动影响到其他物理机器上的隧道。

主权项:1.一种多个虚拟机之间的通信方法,所述多个虚拟机分布在多个物理机中,其特征在于,方法包括:S1,为每个物理机配置一条虚拟隧道,各虚拟隧道通信连接;S2,利用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信;其中,每个物理机上设置有一虚拟隧道端点,其中,根据所述虚拟隧道端点,为每个物理机配置一条虚拟隧道;各虚拟隧道通过虚拟路由器通信连接,所述SDN控制器下发一流表至所述虚拟路由器中,所述虚拟路由器获取该流表后,安装流表中的信息对虚拟网络中的流量进行传导,以对各虚拟隧道的流量进行控制。

全文数据:一种多个虚拟机之间的通信方法及系统技术领域[0001]本发明属于计算机网络领域,尤其涉及一种多个虚拟机之间的通信方法及系统,用于实现分布在多个物理机中的多个虚拟机之间的通信。背景技术[0002]虚拟可扩展局域网(VXLAN是一种隧道封装技术,能在三层网络的基础上建立二层网络隧道,为了避免VALN协议数量的限制以及获得更好的网络可伸缩性,云数据中心内部常使用VXLAN来承载虚拟网络。VXLAN通过在物理网络的边缘设置实体VTEP,互相之间建立一对一的隧道,从而实现跨域通信和虚拟网络与物理网络的隔离,如图1所示,在VTEP之间通信需要一组3元数据,即LOCALIP、REM0TEIP和VXLANID,其中LOCALIP、REM0TEIP在建立隧道时指定,VXLANID后续通信时由SDN动态指定。隧道建立后,VXLANID在VM通信时由SDN控制器动态指定。例如,VM1与VM3进行通信时,由软件定义网络(SDN控制器下发流表:[0003]dl_vlan=2,dl_dst=fa:16:3e:89:cb:deactions=strip_vlan,set_tunnel:0x88,output:93[0004]其中,dl_vlan为VM1所在物理机器上的VLANID,0x88为VXLANID,93对应VTEP在虚拟路由器上的port。[0005]然而,建立隧道的总数X与物理机器数量n的关系为x=nXn-1,由此可知,随着物理机集群规模的增大,隧道总量呈几何级增长,在集群达到一定规模后,其中任一物理机器的变动都会影响大量的隧道。发明内容[0006]一要解决的技术问题[0007]本发明的目的在于,提供一种多个虚拟机之间的通信方法及系统,能在建立较少的虚拟隧道的情况下,实现大规模的物理机集群中虚拟机之间的通信,并且防止集群中物理机器的变动影响到其他物理机器上的隧道。[0008]二技术方案[0009]本发明提供一种多个虚拟机之间的通信方法,多个虚拟机分布在多个物理机中,方法包括:[0010]S1,为每个物理机配置一条虚拟隧道,各虚拟隧道通信连接;[0011]S2,利用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。[0012]进一步,每个物理机上设置有一虚拟隧道端点VTEP,其中,根据虚拟隧道端点,为每个物理机配置一条虚拟隧道。[0013]进一步,各虚拟隧道通过虚拟路由器通信连接,SDN控制器下发一流表至所述虚拟路由器中,以对各虚拟隧道的流量进行控制。[0014]进一步,流表包括有多个变量:[0015]VLANID,用于表示发送数据的虚拟机的网络ID号;[0016]VXLANID,用于表示需要使用的虚拟隧道的ID号;[0017]RemoteIP,用于表示参与通信的目的虚拟机所在的物即机的IP地址;[0018]port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。[0019]进一步,SDN控制器对流表中的VLANID、VXLANID、RemoteIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。[0020]本发明还提供一种多个虚拟机之间的通信系统,多个虚拟机分布在多个物理机中,系统包括:[0021]配置模块,用于为每个物理机配置一条虚拟隧道,各虚拟隧道通信连接;[0022]控制模块,用于使用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。[0023]进一步,每个物理机上设置有一虚拟隧道端点,其中,配置模块根据所述虚拟隧道端点,为每个物理机配置一条虚拟隧道。[0024]进一步,各虚拟隧道通过虚拟路由器通信连接,所述SDN控制器下发一流表至所述虚拟路由器中,以对各虚拟隧道的流量进行控制。[0025]进一步,流表包括有多个变量:[0026]VLANID,用于表示参与通信的虚拟机的ID号;[0027]VXLANID,用于表示需要使用的虚拟隧道的ID号;[0028]RemoteIP,用于表示参与通信的目的虚拟机所在的物理机的IP地址;[0029]port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。[0030]进一步,控制模块利用SDN控制器对流表中的VLANID、VXLANID、RemoteIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。[0031]三有益效果[0032]本发明提供的通信方法只需为每个物理机建立一条虚拟隧道,即隧道的总数x与物理机数量n的关系为x=n,在有大量物理机存在使远小于现有技术中的nXn-l,解决了因隧道数而导致的物理机集群规模瓶颈,并且,由于各物理机的虚拟隧道并不是一一对应地与其他物理机连接,故集群中物理机的变化对其它物理机器上的虚拟隧道没有任何影响。附图说明[0033]图1是现有技术中建立虚拟隧道的示意图。[0034]图2是本发明提供的多个虚拟机之间的通信方法及流程图。[0035]图3是本发明提供的多个虚拟机之间的通信系统的结构示意图。[0036]图4是本发明实施例中建立虚拟隧道的示意图。具体实施方式[0037]图2是本发明提供的多个虚拟机之间的通信方法及流程图,多个虚拟机分布在多个物理机中,其中,一个物理机可以包括有多台虚拟机,并且,同一台物理机中的虚拟机在虚拟网络中可以处于同一网段,也可以处于不同的网段,如图2所示,方法包括:[0038]S1,为每个物理机配置一条虚拟隧道,其中,该虚拟隧道从每台物理机出发与虚拟路由器连接,通过该虚拟路由器的数据转发,实现各虚拟隧道的通信连接。[0039]S2,利用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。SDN控制器是软件定义网络中的应用程序,由于虚拟路由器本身并不像物理路由器那样存储有路由表,并可对数据报文进行转发,所以本发明采用SDN控制器来下发流表,以告知虚拟路由器如何转发数据。流表可被视作是对网络设备的数据转发功能的一种抽象,在传统网络设备中,交换机和路由器的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层IP地址路由表,而虚拟交换机中使用的流表也是如此,不过在它的表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。[0040]每个物理机上设置有一虚拟隧道端点,其中,根据虚拟隧道端点,为每个物理机配置一条虚拟隧道,虚拟隧道端点相当于一个流量端口,每个物理机中虚拟机收发的流量均需通过该虚拟隧道端点连通虚拟隧道。[0041]各虚拟隧道通过虚拟路由器通信连接,SDN控制器下发流表至虚拟路由器中,虚拟路由器获取该流表后,安装流表中的信息对虚拟网络中的流量进行传导,以对各虚拟隧道的流量进行控制。[0042]流表包括有多个变量:[0043]VLANID,用于表示参与通信的虚拟机的网络ID号,其能唯一标识每个虚拟机,虚拟路由器根据VLANID能识别出数据发送端的虚拟机;[0044]VXLANID,用于表示需要使用的虚拟隧道的ID号,其能唯一标识每个虚拟隧道,虚拟路由器根据VXLANID可获知在数据转发时,应走哪一条虚拟隧道;[0045]RemoteIP,用于表示参与通信的目的虚拟机所在的物理机的IP地址,虚拟路由器根据RemoteIP能够获知数据到达的目的物理机;[0046]port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。[0047]SDN控制器对流表中的VLANID、VXLANID、RemoteIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。[0048]图3是本发明提供的多个虚拟机之间的通信系统的结构示意图,多个虚拟机分布在多个物理机中,如图3所示,系统100包括:[0049]配置模块101,用于为每个物理机配置一条虚拟隧道,其中,该虚拟隧道从每台物理机出发与虚拟路由器连接,通过该虚拟路由器的数据转发,实现各虚拟隧道的通信连接。[0050]控制模块102,用于使用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。SDN控制器是软件定义网络中的应用程序,由于虚拟路由器或交换机本身并不像物理路由器那样存储有路由表,并可对数据报文进行转发,所以本发明采用SDN控制器来下发流表,以告知虚拟路由器如何转发数据。流表可被视作是对网络设备的数据转发功能的一种抽象,在传统网络设备中,交换机和路由器的数据转发需要依赖设备中保存的二层MAC地址转发表或者三层IP地址路由表,而虚拟交换机中使用的流表也是如此,不过在它的表项中整合了网络中各个层次的网络配置信息,从而在进行数据转发时可以使用更丰富的规则。[0051]每个物理机上设置有一虚拟隧道端点,其中,配置模块1〇1根据虚拟隧道端点,为每个物理机配置一条虚拟隧道。[0052]各虚拟隧道通过虚拟路由器通信连接,所述SDN控制器下发一流表至所述虚拟路由器中,以对各虚拟隧道的流量进行控制。[0053]流表包括有多个变量:[0054]VLANID,用于表示参与通信的虚拟机的ID号;[0055]VXLANID,用于表示需要使用的虚拟隧道的ID号;[0056]RemoteIP,用于表示参与通信的目的虚拟机所在的物理机的IP地址;[0057]port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。[0058]控制模块利用SDN控制器对流表中的VLANID、VXLANID、RemoteIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。[0059]根据结合附图对本发明示例性实施例的以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。[0060]在本发明中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和或。[0061]在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同参考数字用于相似功能和操作。[0062]本发明实施例提供一种多个虚拟机之间的通信方法,用于实现分布在多个物理机中的多个虚拟机之间的通信。方法包括:[0063]S1,为每个物理机配置一条虚拟隧道,各虚拟隧道通信连接,图4是本发明实施例中建立虚拟隧道的示意图,如图4所示,每个物理机上设置有一虚拟隧道端点VTEP,根据VTEP可以为相应的物理机配置虚拟通道,各虚拟隧道通过虚拟路由器通信连接。[OOM]S2,利用SDN控制器下发一流表至所述虚拟路由器中,以对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信,其中,流表包括有多个变量:[0065]VLANID,用于表示参与通信的虚拟机的ID号;[0066]VXLANID,用于表示需要使用的虚拟隧道的ID号;[0067]RemoteIP,用于表示参与通信的目的虚拟机所在的物理机的IP地址;[0068]port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。SDN控制器对流表中的VLANID、VXLANID、Rem〇teIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。例如,图2中VM1与VM3进行通信时,由SDN下发流表:[0069]VLANID:2[0070]VXLANID:0x88[0071]RemoteIP:0xc0a80002十六进制)[0072]port:94[0073]这样,虚拟路由器能根据以上流表中的信息,能够获知路由器出口端口的ID号、远端物理机IP以及所采用的虚拟隧道,从而完成数据发送。[0074]综上所述,本发明提供的通信方法只需为每个物理机建立一条虚拟隧道,即隧道的总数x与物理机数量n的关系为x==n,在有大量物理机存在使远小于现有技术中的nXn-1,解决了因隧道数而导致的物理机集群规模瓶颈,并且,由于各物理机的虚拟隧道并不是一一对应地与其他物理机连接,故集群中物理机的变化对其它物理机器上的虚拟隧道没有任何影响。[0075]根据本发明各实施例的上述方法、系统和或模块可以通过有计算能力的电子设备执行包含计算机指令的软件来实现。所述有计算能力的电子设备可以是通用处理器、数字信号处理器、专用处理器、可重新配置处理器等,但不限于此。执行这样的指令使得电子设备被配置为执行根据本发明的上述各项操作。上述各设备和或部件可以在一个电子设备中实现,也可以在不同电子设备中实现。这些软件可以存储在计算机可读存储介质中。计算机可读存储介质存储一个或多个程序软件模块),所述一个或多个程序包括指令,当电子设备中的一个或多个处理器执行所述指令时,所述指令使得电子设备执行本发明的方法。[0076]这些软件可以存储为易失性存储器或非易失性存储装置的形式(比如类似ROM等存储设备),不论是可擦除的还是可重写的,或者存储为存储器的形式(例如RAM、存储器芯片、设备或集成电路),或者被存储在光可读介质或磁可读介质上(比如,CD、DVD、磁盘或磁带等等)。应该意识到,存储设备和存储介质是适于存储一个或多个程序的机器可读存储装置的实施例,所述一个程序或多个程序包括指令,当所述指令被执行时,实现本发明的实施例。实施例提供程序和存储这种程序的机器可读存储装置,所述程序包括用于实现本发明的任何一项权利要求所述的装置或方法的代码。此外,可以经由任何介质(比如,经由有线连接或无线连接携带的通信信号来电传递这些程序,多个实施例适当地包括这些程序。[0077]根据本发明各实施例的方法、系统和或模块还可以使用例如现场可编程门阵列FPGA、可编程逻辑阵列(PLA、片上系统、基板上的系统、封装上的系统、专用集成电路ASIC或可以以用于对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。在以这些方式实现时,所使用的的软件、硬件和或固件被编程或设计为执行根据本发明的相应上述方法、步骤和或功能。本领域技术人员可以根据实际需要来适当地将这些系统和模块中的一个或多个,或其中的一部分或多个部分使用不同的上述实现方式来实现。这些实现方式均落入本发明的保护范围。[0078]尽管已经参照本发明的特定不例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

权利要求:1.一种多个虚拟机之间的通信方法,所述多个虚拟机分布在多个物理机中,其特征在于,方法包括:S1,为每个物理机配置一条虚拟隧道,各虚拟隧道通信连接;S2,利用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。2.根据权利要求1所述的多个虚拟机之间的通信方法,其特征在于,每个物理机上设置有一虚拟隧道端点,其中,根据所述虚拟隧道端点,为每个物理机配置一条虚拟隧道。3.根据权利要求2所述的多个虚拟机之间的通信方法,其特征在于,各虚拟隧道通过虚拟路由器通信连接,所述SDN控制器下发一流表至所述虚拟路由器中,以对各虚拟隧道的流量进行控制。4.根据权利要求3所述的多个虚拟机之间的通信方法,其特征在于,所述流表包括有多个变量:VLANID,用于表示发送数据的虚拟机的网络ID号;VXLANID,用于表示需要使用的虚拟隧道的ID号;RemoteIP,用于表示参与通信的目的虚拟机所在的物理机的IP地址;port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。所述SDN控制器对流表中的VLANID、VXLANID、Rem〇teIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。5.—种多个虚拟机之间的通信系统,所述多个虚拟机分布在多个物理机中,其特征在于,系统包括:配置模块,用于为每个物理机配置一条虚拟隧道,各虚拟隧道通信连接;控制模块,用于使用SDN控制器对各虚拟隧道的流量进行控制,以使多个物理机中的多个虚拟机相互通信。6.根据权利要求5所述的多个虚拟机之间的通信系统,其特征在于,每个物理机上设置有一虚拟隧道端点,其中,配置模块根据所述虚拟隧道端点,为每个物理机配置一条虚拟隧道。7.根据权利要求6所述的多个虚拟机之间的通信系统,其特征在于,各虚拟隧道通过虚拟路由器通信连接,在虚拟机产生流量时,所述SDN控制器下发一流表至所述虚拟路由器中,以对各虚拟隧道的流量进行控制。8.根据权利要求7所述的多个虚拟机之间的通信系统,其特征在于,所述流表包括有多个变量:VLANID,用于表示参与通信的虚拟机的ID号;VXLANID,用于表示需要使用的虚拟隧道的ID号;RemoteIP,用于表示参与通信的目的虚拟机所在的物理机的IP地址;port,用于表示参与通信的虚拟机所在的物理机的虚拟隧道端点的ID号。所述控制模块利用SDN控制器对流表中的VLANID、VXLANID、RemoteIP及port进行配置,并下发流表到虚拟路由器中,以对各虚拟隧道的流量进行控制。

百度查询: 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 通信方法、通信系统、计算机系统及计算机可读存储介质

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。