一种虚拟网络内的数据转发方法及系统技术方案

技术编号:16761256 阅读:26 留言:0更新日期:2017-12-09 05:16
本发明专利技术提供一种虚拟网络内的数据转发方法及系统,方法在进行虚拟网络内跨子网的数据转发时,获取由第一虚拟机发送的数据报文,判断数据报文是否需要跨子网发送,如果是,则对该数据报文进行MAC地址和IP地址修改,然后令第一虚拟机直接将修改后的数据报文发送至第二虚拟机。通过本发明专利技术的方案,能够不经过虚拟路由器的转发,使得数据报文直接在虚拟机之间进行收发,提高东西向传输效率,降低虚拟路由器宿主机上的网络资源竞争。

A data forwarding method and system in virtual network

The invention provides a virtual network within the data forwarding method and system method in virtual network subnet data when forwarding the data message acquired by the first virtual machine, determine the data packets need send subnet, if yes, the data message of MAC address and IP address changes. Then the first virtual machine directly to the modified data packet sent to second virtual machine. Through the scheme of the invention, it can transmit data directly between virtual machines without forwarding through the virtual router, improving the efficiency of East-West transmission, and reducing the competition of network resources on the host of virtual router.

【技术实现步骤摘要】
一种虚拟网络内的数据转发方法及系统
本专利技术属于计算机网络领域,尤其涉及一种虚拟网络内的数据转发方法及系统。
技术介绍
目前云数据中心通常采用overlaynetwork技术对虚拟网络的数据流量进行传输,对于跨子网的东西向流量(泛指在虚拟网络内部通信流量),其是通过虚拟路由器(vRouter)进行转发,此外,虚拟路由器还承担南北向流量(泛指虚拟网络与公共网络的交互流量)转发工作。图1是一个典型的虚拟网络的示意图,如图1所示,虚线是逻辑上的虚拟网络,实线是物理上的承载网络,网络包括多个虚拟机VM1~VM4,各虚拟机间均与同一虚拟路由器vRouter虚拟连接。云数据中心在物理网络上使用VXLAN协议承载虚拟网络的数据流量。VXLAN通过对虚拟流量数据报文做UDP封包、解包实现跨域通信,每次封包、解包操作对通信效率及宿主机CPU性能都有一定的影响。图2为VM1到VM4的数据发送的流程图,如图2所示:a.在VM1宿主机上,首先VM1发出的数据报文目的MAC是vRouter的MAC,目的IP是VM4的IP。SDN控制器根据目的MAC下发对应流表,将流量指向vRouter宿主机。然后宿主机将数据报文做VXLAN封包,通过物理承载网络发送至vRouter宿主机。b.vRouter宿主机收到数据报文后,首先VXLAN解包,然后根据数据报文的目的IP判断是否是本地IP,发现需要三层转发,那么修改目的的MAC为VM4的MAC。然后vRouter宿主机将数据报文做VXLAN封包,通过物理承载网络将数据发送至VM4宿主机。c.VM4宿主机收到数据报文后,VXLAN解包,接着VM4收到数据报文。需要注意的是,此时VM4收到的数据报文的源MAC是vRouter的MAC。然而,东西向流量属于虚拟网络内部流量,一般来说流量会很大,这些流量都集中到vRouter宿主机上,容易引起vRouter宿主机上网络资源竞争。此时网络资源竞争影响包括vRouter东西向、南北向流量,而且影响其他vRouter的流量效率。另外,跨子网东西向流量需要多次进行VXLAN封包、解包,vRouter的三层转发,消耗宿主机的CPU性能,影响通信效率。
技术实现思路
(一)要解决的技术问题本专利技术的目的在于提供一种虚拟网络内的数据转发方法及系统,在虚拟网络内进行跨子网数据转发时,能够不经过虚拟路由器的转发,使得数据报文直接在虚拟机之间进行收发,提高东西向流量效率,降低虚拟路由器宿主机上的网络资源竞争。(二)技术方案本专利技术提供一种虚拟网络内的数据转发方法,虚拟网络包括多个虚拟机,各虚拟机间均与同一虚拟路由器虚拟连接,多个虚拟机包括第一虚拟机和第二虚拟机,方法包括:S1,获取由第一虚拟机发送的数据报文;S2,判断所述数据报文是否需要跨子网发送,如果是,则对该数据报文进行修改,并进入步骤S3,否则,直接进入步骤S3;S3,令第一虚拟机将该数据报文发送至第二虚拟机。进一步,第一虚拟机发送的数据报文包括源MAC地址、目的MAC地址和目的IP地址,其中,源MAC地址等于第一虚拟机的MAC地址,目的MAC地址等于所述虚拟路由器的MAC地址,目的IP地址等于第二虚拟机的IP地址;步骤S2中,对该数据报文进行修改,包括:修改目的MAC地址为第二虚拟机的MAC地址,修改源MAC地址为虚拟路由器的MAC地址。进一步,步骤S2中,对所述数据报文进行修改时:判断是否存在与所述数据报文中的MAC地址和目的IP地址所匹配的流表,如果存在,则根据该流表对所述该数据报文进行修改;如果不存在,则根据所述数据报文中的MAC地址和目的IP地址创建与其匹配的流表,并根据该流表对所述该数据报文进行修改。进一步,步骤S2中,根据网络拓扑及数据报文中的目的MAC地址和目的IP地址,判断所述数据报文是否需要跨子网发送。进一步,步骤S3包括:当第一虚拟机和第二虚拟机处于同一台宿主机上时,直接通过本地转发,使得第一虚拟机将该数据报文发送至所述第二虚拟机;当第一虚拟机和第二虚拟机不处于同一台宿主机上时,由第一虚拟机所在的宿主机将该数据报文通过物理承载网络发送给第二虚拟机所在的宿主机,使得第一虚拟机将该数据报文发送至所述第二虚拟机。本专利技术还提供一种虚拟网络内的数据转发系统,所述虚拟网络包括多个虚拟机,各虚拟机间均与一虚拟路由器虚拟连接,所述多个虚拟机包括第一虚拟机和第二虚拟机,系统包括:报文获取模块,用于获取由第一虚拟机发送的数据报文;判断模块;用于判断数据报文是否需要跨子网发送,若是,则对数据报文进行修改;控制模块,用于令第一虚拟机将该数据报文发送至所述第二虚拟机。进一步,第一虚拟机发送的数据报文包括源MAC地址、目的MAC地址和目的IP地址,其中,源MAC地址等于第一虚拟机的MAC地址,目的MAC地址等于所述虚拟路由器的MAC地址,目的IP地址等于第二虚拟机的IP地址;所述判断模块对该数据报文进行修改,包括:修改目的MAC地址为第二虚拟机的MAC地址,修改源MAC地址为虚拟路由器的MAC地址。进一步,判断模块对所述数据报文进行修改时:判断是否存在与所述数据报文中的MAC地址和目的IP地址所匹配的流表,如果存在,则根据该流表对所述该数据报文进行修改;如果不存在,则根据所述数据报文中的MAC地址和目的IP地址创建与其匹配的流表,并根据该流表对所述该数据报文进行修改。进一步,判断模块根据网络拓扑及数据报文中的目的MAC地址和目的IP地址,判断所述数据报文是否需要跨子网发送。进一步,控制模块执行:当第一虚拟机和第二虚拟机处于同一台宿主机上时,直接通过本地转发,使得第一虚拟机将该数据报文发送至所述第二虚拟机;当第一虚拟机和第二虚拟机不处于同一台宿主机上时,由第一虚拟机所在的宿主机将该数据报文通过物理承载网络发送给第二虚拟机所在的宿主机,使得第一虚拟机将该数据报文发送至所述第二虚拟机。(三)有益效果通过本专利技术,当进行虚拟网络内跨子网的数据转发时,将数据报文进行地址修改后,通过物理承载网络直接将该数据报文发送给相应的虚拟机,避免采用虚拟路由器进行数据报文转发,减轻虚拟路由器的流量负担,降低虚拟路由器所在的宿主机的网络资源竞争的可能性。另外,由于无需通过虚拟路由器进行数据报文转发,从而减少了一次VXLAN封包、解包过程,数据报文在宿主机与宿主机之间直接传递,极大的提高了东西向跨子网流量的通信效率。最后,虚拟路由器只需关心南北向流量的转发工作,便于集群对虚拟路由器的管理和维护。附图说明图1是现有技术中虚拟网络的结构示意图。图2是现有技术中虚拟网络内的数据转发的流程图。图3是本专利技术提供的虚拟网络内的数据转发方法的流程图。图4是本专利技术提供的虚拟网络内的数据转发系统的结构示意图。具体实施方式根据结合附图对本专利技术示例性实施例的以下详细描述,本专利技术的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。在本专利技术中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。在本说明书中,下述用于描述本专利技术原理的各种实施例只是说明,不应该以任何方式解释为限制专利技术的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本专利技术的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示本文档来自技高网
...
一种虚拟网络内的数据转发方法及系统

【技术保护点】
一种虚拟网络内的数据转发方法,所述虚拟网络包括多个虚拟机,各虚拟机间均与一虚拟路由器虚拟连接,所述多个虚拟机包括第一虚拟机和第二虚拟机,其特征在于,方法包括:S1,获取由第一虚拟机发送的数据报文;S2,判断所述数据报文是否需要跨子网发送,如果是,则对该数据报文进行修改,并进入步骤S3,否则,直接进入步骤S3;S3,令第一虚拟机将该数据报文发送至所述第二虚拟机。

【技术特征摘要】
2016.05.30 CN 20161037060251.一种虚拟网络内的数据转发方法,所述虚拟网络包括多个虚拟机,各虚拟机间均与一虚拟路由器虚拟连接,所述多个虚拟机包括第一虚拟机和第二虚拟机,其特征在于,方法包括:S1,获取由第一虚拟机发送的数据报文;S2,判断所述数据报文是否需要跨子网发送,如果是,则对该数据报文进行修改,并进入步骤S3,否则,直接进入步骤S3;S3,令第一虚拟机将该数据报文发送至所述第二虚拟机。2.根据权利要求1所述的虚拟网络内的数据转发方法,其特征在于,所述第一虚拟机发送的数据报文包括源MAC地址、目的MAC地址和目的IP地址,其中,源MAC地址等于第一虚拟机的MAC地址,目的MAC地址等于所述虚拟路由器的MAC地址,目的IP地址等于第二虚拟机的IP地址;所述步骤S2中,对该数据报文进行修改,包括:修改目的MAC地址为第二虚拟机的MAC地址,修改源MAC地址为虚拟路由器的MAC地址。3.根据权利要求2所述的虚拟网络内的数据转发方法,其特征在于,所述步骤S2中,对所述数据报文进行修改时:判断是否存在与所述数据报文中的MAC地址和目的IP地址所匹配的流表,如果存在,则根据该流表对所述该数据报文进行修改;如果不存在,则根据所述数据报文中的MAC地址和目的IP地址创建与其匹配的流表,并根据该流表对所述该数据报文进行修改。4.根据权利要求2所述的虚拟网络内的数据转发方法,其特征在于,所述步骤S2中,根据网络拓扑及数据报文中的目的MAC地址和目的IP地址,判断所述数据报文是否需要跨子网发送。5.根据权利要求1所述的虚拟网络内的数据转发方法,其特征在于,所述步骤S3包括:当第一虚拟机和第二虚拟机处于同一台宿主机上时,直接通过本地转发,使得第一虚拟机将该数据报文发送至所述第二虚拟机;当第一虚拟机和第二虚拟机不处于同一台宿主机上时,由第一虚拟机所在的宿主机将该数据报文通过物理承载网络发送给第二虚...

【专利技术属性】
技术研发人员:李国超杨万里
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1