掌桥专利:专业的专利平台
掌桥专利
首页

虚拟网络通信方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 19:30:30


虚拟网络通信方法、装置、计算机设备及存储介质

技术领域

本发明涉及网络通信领域,尤其涉及一种虚拟网络通信方法、装置、计算机设备及存储介质。

背景技术

当前云数据中心正在蓬勃发展,其中一个主要技术方向是弹性网络,即根据租户需求为其动态的分配计算资源(虚拟机)、存储资源(虚拟存储)、网络资源(虚拟网络)。其中虚拟网络通常采用EVPN-VXLAN(Ethernet Virtual Private Network VirtualeXtensible Local Area Network,二层VPN虚拟可扩展局域网)技术在数据中心承载网上构建overlay网络来实现,当前我们使用一个VNI(VXLAN网络标识)标识一个租户虚拟网络,基于此,云数据中心的运营者可以在VNI粒度(租户虚拟网粒度)上进行数据中心网络的编排、分配等操作。例如基于VNI进行数据中心承载网(物理拓扑网络)的QOS,保证高优先级租户的网络质量;可以基于VNI进行流量统计分析;也可以实现基于VNI粒度的其他特定功能。但当进入租户虚拟网络内部时,租户同样也有其内部业务编排的需求。但是租户只能看到虚拟网,他的任何策略在VXLAN网络边缘就终结了,无法影响承载网。也就是说租户的业务策略/编排是无法打通整个真实网络的。

发明内容

第一方面,本申请提供一种虚拟网络通信方法,应用于虚拟可扩展局域网隧道端点VTEP中,所述方法包括:

接收虚拟机发送的通信报文,获取所述通信报文对应的网络标识符,从所述网络标识符中获取网络号和动作号;

根据所述网络号,匹配对应的动作表,根据所述动作号和所述动作表,确定所述通信报文的转发动作;

将所述通信报文按照所述转发动作,转发至所述网络标识符对应虚拟网络的下一跳。

进一步的,所述网络标识符包括网络号和动作号;

所述网络标识符包括多个位,将所述网络标识符的前若干个位作为所述网络号,用于定位所述虚拟网络;

所述网络标识符剩下的位作为所述动作号,用于和所述转发动作绑定。

进一步的,在所述接收虚拟机发送的通信报文的步骤之前,所述方法还包括:

接收数据中心控制器下发的所述虚拟网络的网络号、动作号及其对应的转发动作;

根据所述网络号、动作号及其对应的转发动作建立所述网络号的动作表。

进一步的,所述获取所述通信报文对应的网络标识符,包括:

根据所述通信报文,获取所述通信报文的报文特征;

根据所述报文特征,在数据中心控制器下发的的路由策略中,确定和所述报文特征对应的网络标识符。

进一步的,在所述接收虚拟机发送的通信报文的步骤之前,所述方法还包括:

与对端VTEP通过私有类型路由进行协商,确定所述网络号的长度是否相同,若相同,则协商成功,使用所述动作号进行通信报文的转发,若不同,则使用现有VXLAN转发方式对通信报文进行转发。

第二方面,本申请提供了一种虚拟网络通信装置,配置于虚拟可扩展局域网隧道端点VTEP中,包括:

识别模块,用于接收虚拟机发送的通信报文,获取所述通信报文对应的网络标识符,从所述网络标识符中获取网络号和动作号;

匹配模块,用于根据所述网络号,匹配对应的动作表,根据所述动作号和所述动作表,确定所述通信报文的转发动作;

转发模块,用于将所述通信报文按照所述转发动作,转发至所述网络标识符对应虚拟网络的下一跳。

进一步的,所述获取所述通信报文对应的网络标识符,所述识别模块还用于根据所述通信报文,获取所述通信报文的报文特征;

根据所述报文特征,在数据中心控制器下发的的路由策略中,确定和所述报文特征对应的网络标识符。

进一步的,所述识别模块还用于,在接收虚拟机发送的通信报文之前,与对端VTEP通过私有类型路由进行协商,确定所述网络号的长度是否相同,若相同,则协商成功,使用所述动作号进行通信报文的转发,若不同,则使用现有VXLAN转发方式对通信报文进行转发。第三方面,本申请还提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行所述的虚拟网络通信方法。

第四方面,本申请还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行所述的虚拟网络通信方法。

本发明涉及通信领域,公开了一种虚拟网络通信方法、装置、计算机设备及存储介质,该方法包括:接收虚拟机发送的通信报文,获取所述通信报文对应的网络标识符,从所述网络标识符中获取网络号和动作号;根据所述网络号,匹配对应的动作表,根据所述动作号和所述动作表,确定所述通信报文的转发动作;将所述通信报文按照所述转发动作,转发至所述网络标识符对应虚拟网络的下一跳。通过将VNI拆分为网络号和动作号进行规划,以实现EVPN-VXLAN网络可灵活编排的思想,使得用户可以通过VNI对动作号的设定,配置不同的转发动作,使得用户可以对其业务进行全网的转发编排。

附图说明

为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。

图1示出了本申请实施例一种虚拟网络通信方法流程示意图;

图2示出了本申请实施例一种虚拟网结构拓扑图;

图3示出了本申请实施例一种虚拟网络通信装置结构示意图。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。

通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。

此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。

本申请的技术方案应用于在VXLAN网络中,每个用户所租用的虚拟机之间进行交互时的工作场景。因为在VXLAN网络中,通过VNI对每个租户的虚拟网进行标记,通过对VNI进行分割,使得VNI的一部分字节作为网络号,继续用于表示各个虚拟网,剩下的另一部分字节作为动作号,用于标识特定的转发动作,或者转发策略,使得每个租户的业务策略可以打通整个网络,而不是在虚拟网边缘就终结了。

接下来以具体实施例说明本申请的技术方案。

实施例1

如图1所示,本实施例的虚拟网控制方法包括以下步骤:

步骤S100,接收虚拟机发送的通信报文,获取所述通信报文对应的网络标识符,从所述网络标识符中获取网络号和动作号。

VXLAN是一种网络虚拟化技术,可以改进大型云计算在部署时的扩展问题,是对VLAN的一种扩展。VXLAN可以穿透三层网络对二层进行扩展。

如图2所示,为VXLAN的承载网简要拓扑图。该网络中包括数据中心100、VXLAN隧道端点(VTEP)200和服务器300。VXLAN隧道端点VTEP200具有路由功能,用于帮助服务器300之间进行通信。服务器300则是虚拟机的具体执行硬件,租户远程租借虚拟机时,虚拟机程序就运行在服务器300上。

租户要租用虚拟网络中的虚拟机时,数据中心100的控制器会根据租户的请求,为其分配具体的服务器300以及其上运行的虚拟机。例如一个租户需要两个虚拟机,并在所属虚拟机上执行两种业务,则数据中心的控制器可能将图2中的服务器A和服务器C上的各一个虚拟机租借给用户来执行用户的业务任务。

可以理解的是,当租户租借了虚拟机后,就会产生虚拟机之间的通信,而对于虚拟机的通信,都是由上述的VTEP200将这些通信信息进行转发的,而本实施例的技术方案也是在该VTEP200上执行的。

在VXLAN中,会通过VNI这么一个网络标识符对各个租户的网络进行标识,将不同VNI的网络之间进行隔离,避免不同租户之间的网络混乱。VNI一般都是24位(二进制下)的标识符,本实施例中,将该VNI进行分割,变成两段,将前若干位作为网络号,用于继续承担对各个租户的网络的标识任务,剩下的位数则作为动作号,用于对各个转发动作进行标识。

例如将VNI的前16位作为网络号,后8位作为动作号,则一个为257的VNI,将高位的0去掉,则其二进制形式为100000001,在转换成使用点分格式表示后,就成为了1.1,其中“.”前面的1表示网络号是1的网络,后面的1表示动作号是1的转发动作。可以理解的是,上述的网络号由数据中心分配给租户,动作号由租户根据自身的需求进行设置,在租户刚进行虚拟机租借,组建成虚拟网络时,数据中心通过分配网络号,将网络号填入VNI的前16位中。此时若租户没有进行动作号的配置,则后8位的动作号可以为默认值的0,若租户配置了动作号,则将动作号填入VNI的后8位中,形成完整的VNI。然后通过将VNI和服务器中的虚拟机进行绑定,进而将转发动作和虚拟机绑定。

以图2为例,若数据中心的控制器分配了服务器A和服务器C下的各一个虚拟机给一个租户,两个服务器分别执行不同的业务,同时为该租户分配了网络号100,并配置好了该网络号对应的VXLAN网络用于客户虚拟机间的通信。同时,数据中心间该虚拟网络内的网络规划和编排权限开放给租户。为了方便规划和管理虚拟网络中的业务通信优先级,可以采用网段划分的方式,例如将服务器A被分配了网段192.168.10.0/24,而服务器C被分配了网段192.168.20.0/24,通过设定网段一192.168.10.0/24用于第一优先级业务的通信,网段二192.168.20.0/24用于第二优先级业务的通信,使得服务器A的网络转发优先级要优先于服务器C。

其中转发操作和动作号绑定,因此针对动作号,会先形成如下的动作表:

然后再根据租户的需求,将将根据业务的特征如网段、端口或者网段+DSCP值等,和对应的VNI号绑定,得到路由策略:

由此可知,在虚拟网络组建的同时,虚拟机上业务特征如通信IP地址和VNI号就已经对应绑定了,而通信报文中,都会含有源地址和目的地址,源地址即发出通信报文的虚拟机的某类业务的通信IP,通过对通信报文进行解析,就可获取上述的网络标识符。进而根据对VNI的划分,确定其网络号的动作号。

可以理解的是,除了通过IP和VNI的绑定方式外,也可以通过将虚拟机的具体业务代码、DSCP值、端口等业务报文特征的组合和VNI绑定或者虚拟机的某种特殊标识符和VNI绑定,以实现虚拟机和VNI的绑定。具体如何绑定确定VNI和虚拟机的对应关系,本申请对此不做限定。

步骤S200,根据所述网络号,匹配对应的动作表,根据所述动作号和所述动作表,确定所述通信报文的转发动作。

得到网络号后,可以匹配步骤S100中的动作表,可以理解的是,一个隧道端点下面会连有多个服务器,不同的服务器可以被租借给不同的租户,因此会产生不同的网络号,所以在隧道端点中,会存有多个网络号对应的动作表,通过网络号确定归属该网络号的动作表后,才可以使用动作号确定对应的转发动作。并使用该转发动作对通信报文进行转发。

例如从服务器A下的虚拟机发出的通信报文,其VNI为100.10,则其网络号为100,动作号为10,通过查动作表可知该通信报文需要入优先级1转发队列,则在执行相应的转发动作时,就会将该通信报文发送至优先级1转发队列,该报文就会以最高优先级被转发出去。

步骤S300,将所述通信报文按照所述转发动作,转发至所述网络标识符对应虚拟网络的下一跳。

确定了转发动作后,就可以按照该转发动作进行该报文的转发处理。

例如当服务器A下的虚拟机向服务器C下的虚拟机发送通信报文时,将使用同一网段下的IP地址进行通信,此时VTEP A先接收到通信报文,对该通信报文进行处理,获取了源地址,确认其网段是192.168.10.0/24,然后在路由策略中匹配,确定了对应的VNI为100.10,从而确定了其动作号为10,动作号10所对应的转发动作在动作表中为“入优先级1转发队列”,则表示其转发优先级最高。因此将该通信报文分发到优先级1转发队列中,进行高优先级的转发。转发完成后,有VTEP B接收到该报文,进行如VTEP A的操作,确定了其转发优先级,同时也根据目的地址,确定是服务器C的地址,则将通信报文放入优先级1转发队列中向服务器C转发。

同理,当服务器C向服务器A发送报文时,也会进行类似上述的操作,区别在于因为其网段是192.168.20.0/24,所以匹配到的VNI为100.20,其动作号为20,对应的转发动作为“入优先级2转发队列”,从服务器C发出的通信报文会从优先级2转发队列发送至VTEP A再到服务器A,完成整个通信过程。

此外,以服务器A向服务器C发送通信报文为例,这两个服务器的VNI配置如上述的路由配置所示,则需要通过VTEP A和VTEP B通信,为了可以顺利的使用上述方式获取网络号的动作号,需要确定这两个隧道端点都可以使用上述的VNI分割方式。为此,在租户租用了两台服务器,并建立了虚拟网络之后,VTEP A和VTEP B之间会先进行协商。该协商可以通过EVPN进行,相互确认对方的网络号长度和自己配置中的网络号长度是否相同,若相同,则告知对端所支持的功能相同,可以进行通过上述的动作号来进行对应转发动作的设置。若不相同,则表示不适合使用上述的动作号进行转发动作的设置,则不会执行上述的步骤。此外,在不相同的时候,可以使用默认格式来替代原本的VNI,例如原本的VNI为100.10,表示网络号100下使用10的“入优先级1转发队列”的动作。而因为不匹配,所以默认格式为100.0,并约定0表示不作任何特殊处理,使用默认的转发操作进行转发。使得在两个隧道端点所使用的网络号不匹配的情况下,也可以使用原本的方法通信。

实施例2

如图3所示,本申请还提供一种虚拟网络通信装置,包括:

识别模块10,用于当接收到通信报文时,获取发送所述通信报文的源端的网络标识符,从所述网络标识符中获取网络号和动作号;

匹配模块20,用于根据所述网络号,匹配对应的动作表,根据所述动作号和所述动作表,确定所述通信报文的转发动作;

转发模块30,用于将所述通信报文按照所述转发动作,转发至下一跳地址。

本申请还提供一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行所述的虚拟网络通信方法。

本申请还提供一种可读存储介质,其存储有计算机程序,所述计算机程序在处理器上运行时执行所述的虚拟网络通信方法。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

相关技术
  • 虚拟资源数据处理方法、装置、计算机设备及存储介质
  • 一种虚拟机启动方法、装置、存储介质和计算机设备质
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 虚拟乐器处理方法、装置、虚拟乐器设备及存储介质
  • 一种元数据存储方法、装置、设备及计算机可读存储介质
  • 网络通信方法、装置、电子设备及计算机可读存储介质
  • 网络通信方法、装置、计算机设备和存储介质
技术分类

06120115933070