一种虚拟交换机转发数据的方法及装置与流程

文档序号:16630314发布日期:2019-01-16 06:30阅读:212来源:国知局
一种虚拟交换机转发数据的方法及装置与流程

本发明涉及虚拟化网络技术,尤指一种虚拟交换机转发数据的方法及装置。



背景技术:

随着云计算、sdn、虚拟化等理念和技术的不断成熟,云计算生产环境部署的规模也在不断增长,传统vlan4k的数量已经不能满足租户容量的划分。虚拟化网络中一般采用vxlan扩容数据中心租户的规模,但是,由于vxlan采用udp封装的报文,在没有硬件加速或者物理交换机支持加速的虚拟交换机下,容易导致报文分片,性能比较差,存在隧道加解封装的性能损耗。



技术实现要素:

为了解决上述技术问题,本申请实施例提供了一种虚拟交换机转发数据的方法及装置,以满足中小规模的数据中心租户容量的扩容需求。

根据本申请的一个方面,本申请实施例提供了一种虚拟交换机转发数据的方法,包括:

虚拟交换机根据openflow流表匹配数据流;

对来自虚拟机的数据流封装外层vlan标签后进行转发;

对进入虚拟机的数据流剥离外层vlan标签后进行转发。

可选地,在所述虚拟交换机根据openflow流表匹配数据流之前,还包括:软件定义网络sdn控制器获取外层vlan以及内层vlan范围的配置信息并保存。

可选地,所述方法还包括:所述虚拟交换机接收所述sdn控制器下发的根据所述配置信息创建的openflow流表。

可选地,其中所述openflow流表包括:

当判断数据流的vlan标签为预设的内层vlan标签时,对所述数据流封装预设的外层vlan标签;

当判断数据流的vlan标签为预设的外层vlan标签时,剥离所述数据流的外层vlan标签。

可选地,所述方法还包括:虚拟机根据所述外层vlan以及内层vlan范围的配置信息建立数据关系,内层vlan标签不同的虚拟机之间数据不能互通。

根据本申请的另一方面,还提供了一种虚拟交换机转发数据的装置,包括:

匹配模块,用于根据openflow流表匹配数据流;

封装模块,用于根据所述匹配模块的匹配结果,对来自虚拟机的数据流封装外层vlan标签后进行转发;

去封装模块,用于根据所述匹配模块的匹配结果,对进入虚拟机的数据流剥离外层vlan标签后进行转发。

可选地,所述装置还包括:

软件定义网络sdn控制器,用于获取外层vlan以及内层vlan范围的配置信息并保存。

可选地,所述装置还包括:

接收模块,用于接收所述sdn控制器下发的根据所述配置信息创建的openflow流表。

可选地,其中,所述openflow流表包括:

当判断数据流的vlan标签为预设的内层vlan标签时,对所述数据流封装预设的外层vlan标签;

当判断数据流的vlan标签为预设的外层vlan标签时,剥离所述数据流的外层vlan标签。

根据本申请的又一方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

本申请针对中小规模的数据中心租户扩容需求,基于虚拟化网络,提出了一种采用vlan双层标签栈技术来提升数据中心租户容量和网络转发性能的方案。通过双层标签栈技术,既可以将租户容量扩增至4k*4k,又可以避免隧道加解封装的性能损耗,从而保证安全、快速、稳定的网络服务。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本申请实施例一提供的虚拟交换机转发数据的方法示意图;

图2为本申请实施例二提供的虚拟交换机转发数据的装置示意图;

图3为本申请提供的一种虚拟交换机转发数据的示范性实施例。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

由于传统vlan4k的数量已经不能满足租户容量的划分,虚拟化网络中一般采用vxlan扩容数据中心租户的规模,由于vxlan采用udp封装的报文,在没有硬件加速或者物理交换机支持加速的虚拟交换机下,容易导致报文分片,性能比较差,存在隧道加解封装的性能损耗的缺陷。

本申请针对中小规模的数据中心租户扩容需求,基于虚拟化网络,提出了一种采用vlan双层标签栈技术来提升数据中心租户容量和网络转发性能的方案。通过双层标签栈技术,既可以将租户容量扩增至4k*4k,又可以避免隧道加解封装的性能损耗,从而保证安全、快速、稳定的网络服务。

如图1所示,本申请实施例一提供了一种虚拟交换机转发数据的方法,包括:

步骤s02:虚拟交换机根据openflow流表匹配数据流;

步骤s04:对来自虚拟机的数据流封装外层vlan标签后进行转发;对进入虚拟机的数据流剥离外层vlan标签后进行转发。

根据本申请的实施例,虚拟交换机根据openflow流表匹配数据流,对来自虚拟机的数据流封装外层vlan标签后进行转发,对进入虚拟机的数据流剥离外层vlan标签后进行转发,可以针对虚拟机化网络应用vlan双层标签栈技术扩展数据中心的租户。利用双层vlan标签技术,既可以将租户容量扩增至4k*4k,又可以避免vxlan隧道加解封装的性能损耗,保证安全、快速、稳定的网络服务。

可选地,在步骤s02的所述虚拟交换机根据openflow流表匹配数据流之前,还包括:步骤s00:软件定义网络sdn控制器获取外层vlan以及内层vlan范围的配置信息并保存。

在规划数据中心租户规模时,可以根据需要由用户确定外层vlan的范围,以及内层vlan的范围。外层vlan的范围可以是0~4096,内层vlan的范围可以是0~4096。因此,根据本申请提供的方法,容易将租户容量扩展至4k*4k范围,满足中小规模的数据中心扩容需求。

可选地,在步骤s00之后、步骤s02之前,所述方法还包括:

步骤s01:所述虚拟交换机接收所述sdn控制器下发的根据所述配置信息创建的openflow流表。

根据本申请的实施例,sdn控制器接收用户输入的预设的外层vlan以及内层vlan的范围的配置信息,还接收用户基于所述配置信息创建openflow流表,并将所述openflow流表下发到虚拟交换机,以便虚拟交换机对数据流进行匹配,进行相应的封装外层vlan标签或剥离外层vlan标签处理。

可选地,所述openflow流表包括:

当判断数据流的vlan标签为预设的内层vlan标签时,对所述数据流封装预设的外层vlan标签;

当判断数据流的vlan标签为预设的外层vlan标签时,剥离所述数据流的外层vlan标签。

根据本申请的实施例,用户可以在sdn中基于预设的外层vlan以及内层vlan的范围的配置信息,设计相应的openflow流表并下发到虚拟交换机。当虚拟交换机接收到来自虚拟机的数据流时,如果判断该数据流的vlan标签为预设的内层vlan标签,自动对所述数据流封装预设的外层vlan标签,然后进行转发到外部网络;当虚拟交换机接收到来自外部网络的数据流时,如果判断数据流的vlan标签为预设的外层vlan标签,自动剥离所述数据流的外层vlan标签,然后转发给相应的虚拟机。

本申请提供的方法,还包括:虚拟机根据所述外层vlan以及内层vlan范围的配置信息建立数据关系,内层vlan标签不同的虚拟机之间数据不能互通。

根据本申请提供的实施例,用户可以根据数据中心租户规模的需要,规划外层vlan以及内层vlan范围的配置信息,所述配置信息确定了虚拟机之间的数据关系,即:内层vlan标签不同的虚拟机之间数据不能互通,内层vlan标签相同的虚拟机之间的数据可以互通。

本申请提供的虚拟交换机转发数据的方法,sdn控制器可以获取用户预设的外层vlan及内层vlan范围的配置信息以及基于所述配置信息创建的openflow流表,并将所述openflow流表下发到虚拟交换机。虚拟交换机根据所述openflow流表对接收的数据流进行匹配,根据数据流的vlan标签状态,对数据流封装外层vlan标签后转发到外部网络或剥离外层vlan标签后转发到虚拟机。通过对虚拟机化网络应用vlan双层标签栈技术,可以方便地扩展数据中心的租户规模。既可以将租户容量扩增至4k*4k,又可以避免vxlan隧道加解封装的性能损耗,保证安全、快速、稳定的网络服务。

如图2所示,本申请实例二还提供了一种虚拟交换机转发数据的装置,包括:

匹配模块12,用于根据openflow流表匹配数据流;

封装模块14,用于根据所述匹配模块的匹配结果,对来自虚拟机的数据流封装外层vlan标签后进行转发;

去封装模块16,用于根据所述匹配模块的匹配结果,对进入虚拟机的数据流剥离外层vlan标签后进行转发。

可选地,所述装置还包括:

软件定义网络sdn控制器08,用于获取外层vlan以及内层vlan范围的配置信息并保存。

可选地,所述装置还包括:

接收模块10,用于接收所述sdn控制器下发的根据所述配置信息创建的openflow流表。

可选地,所述openflow流表包括:

当判断数据流的vlan标签为预设的内层vlan标签时,对所述数据流封装预设的外层vlan标签;

当判断数据流的vlan标签为预设的外层vlan标签时,剥离所述数据流的外层vlan标签。

相应地,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现图1所述的方法步骤。

图3是本申请提供的一种虚拟交换机转发数据的示范性实施例。如图3所示,软件定义网络sdn(softwaredefinenetwork)控制器获取用户配置的外层vlan标签以及内层vlan标签的范围,保存相关配置信息。虚拟机根据所述配置信息建立数据关系,内层vlan标签不一样的虚拟机不能互通。

sdn控制器获取用户基于所述双层vlan配置创建的openflow流表并下发该openflow流表给虚拟交换机。这样,虚拟机带内层vlan的数据流量转发到虚拟交换机之后就会自动打上外层vlan标签转发出去。来自外部网络的数据流量进入虚拟交换机后,被剥离外层vlan标签,转发到相应的虚拟机。内层vlan标签相同的虚拟机之间数据可以互通,内层vlan标签不同的虚拟机之间数据不能互通。

假设虚拟机1和虚拟机2内层vlan标签配置为100,外层vlan标签配置为200(虚拟机1、2仅是示例性,每台虚拟机交换机下的虚拟机1或2分别可以有多台,虚拟交换机1或2也仅是示例性,根据数据中心的规模需要,虚拟交换机1或2分别可以有多台)。sdn控制器会下发包括封装外层vlan200和剥离外层vlan200的流表指令给虚拟交换机1和虚拟交换机2。外部网络进入虚拟机交换机1、2的数据流量是双层vlan封装,包括外层vlan200和内层vlan100,虚拟交换机1、2剥离外层vlan200后,将仅包含内层vlan100的数据流量转发给虚拟机1、2;虚拟机1、2带内层vlan100标签的数据流量到达虚拟交换机1、2后,自动封装外层vlan200标签后,转发到外部网络。虚拟机1和虚拟机2流量可以正常转发。如果虚拟机内层vlan标签不一样时,则不能互通。

例如,虚拟机转发的数据流量可以采用802.1q封装,虚拟交换机对来自虚拟机的采用802.1q封装的数据流量根据openflow流表自动插入一层标签(即外层vlan200标签),采用qinq封装后转发到外部网络;同时,虚拟交换机对来自外部网络的采用qinq封装的数据流量,剥离外层vlan200标签后,变成采用802.1q封装的数据流量转发给虚拟机。

假设外层vlan为200,内层vlan为100,相应的openflow流表可以包括以下内容:

priority=100,vlan=100,actions=mod_vlan_vid:200,normal

priority=100,vlan=200,actions=strip_vlan,normal

第一条流表匹配内层vlan100,插入外层vlan200标签;第二条流表匹配到外层vlan200标签时,剥离外层vlan200出标签。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

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