一种报文转发的透明配置方法转让专利

申请号 : CN201611168459.8

文献号 : CN106506315B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 许广彬郑军张银滨刘继江谢旻沈肖

申请人 : 无锡华云数据技术服务有限公司

摘要 :

本发明提供了一种报文转发的透明配置方法,计算执行机构通过VTEP接入VxLAN隧道,SDN控制器全局维护用于标记计算执行机构的信息表,所述信息表中包含若干条至少由MAC,IP,PORT及VxLAN ID所组成的记录,SDN控制器将所述信息表下发和/或更新至VTEP,VTEP查询信息表以对计算执行机构经由VxLAN隧道转发的数据报文进行封装及解封装操作。在本发明中,通过SDN控制器全局维护用于标记计算执行机构的信息表,实现了报文经由VxLAN隧道进行转发时,不需要将报文先打上VLAN标签,避免使用VLAN ID识别租户和网络,突破了传统的VLAN ID的数目限制;同时,由于不需要物理服务器对VLAN执行封装与解封装操作,从而降低了服务器CPU的计算开销。

权利要求 :

1.一种报文转发的透明配置方法,其特征在于,计算执行机构通过VTEP接入VxLAN隧道,SDN控制器全局维护用于标记计算执行机构的信息表,所述信息表中包含若干条至少由MAC,IP,PORT及VxLAN ID所组成的记录,SDN控制器将所述信息表下发和/或更新至VTEP,VTEP查询信息表以对计算执行机构经由VxLAN隧道转发的数据报文进行封装及解封装操作;

所述记录由MAC,IP,PORT,Tenant,Network及VxLAN ID组成,或者由MAC,IP,PORT,Tenant,Network,VxLAN ID及VTEP Locator组成;

当本地VTEP接收到本地计算执行机构发送的数据包时,首先去查询本地MAC、IP、PORT、Tenant、Network、VxLAN ID、VTEP Locator之间具有对应关系的信息表;

根据远端MAC、IP、PORT、VTEP Locator查询确认发出的数据包是发送到本地VTEP还是远端VTEP,并根据本地MAC、IP、PORT确认该数据包来自指定租户的具体网络,然后根据查询到的信息得到VxLAN ID以及VTEP Locator的IP地址,最后封装VxLAN报头,将封装后的数据进行转发;所述SDN控制器通过资源统一接口将所述信息表下发和/或更新至VTEP。

2.根据权利要求1所述的报文转发的透明配置方法,其特征在于,该方法还包括根据租户信息、网络信息或者VTEP Locator对接入VxLAN隧道的VTEP的身份进行查询及隔离。

3.根据权利要求2所述的报文转发的透明配置方法,其特征在于,所述SDN控制器通过资源统一接口将所述信息表下发和/或更新至VTEP。

4.根据权利要求3所述的报文转发的透明配置方法,其特征在于,所述资源统一接口包括:restful接口或者NETCONF接口。

5.根据权利要求1或者2所述的报文转发的透明配置方法,其特征在于,所述SDN控制器通过TCP消息或者http消息将所述信息表下发和/或更新至VTEP。

6.根据权利要求4所述的报文转发的透明配置方法,其特征在于,所述计算执行机构包括虚拟机、物理机、计算节点、集群服务器或者内部通过虚拟化技术所开启并通过虚拟交换机关联多个虚拟机的物理机。

说明书 :

一种报文转发的透明配置方法

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种报文转发的透明配置方法。

背景技术

[0002] 在现有技术中,通常通过软件或者硬件方法创建一个VTEP(VxLAN Tunneling End Point)作为接入点,将物理机或者虚拟机接入数据中心。接入点将物理机发出的报文外层封装VxLAN的包头(Header),然后将封装后的报文送入数据中心,数据中心根据VxLAN报头进行转发和路由,送达数据中心内部的VTEP接入点,内部接入点解除物理机报文的VxLAN封装,将报文送达数据中心的虚拟机(Virtual machine,VM)或者虚拟路由(router),从而实现物理机(Physical machine,PM)接入数据中心的虚拟网络中的虚拟机/虚拟路由器等设备通信。
[0003] 在图1中,VTEP10与VTEP20分别接入VxLAN隧道5。当数据报文从物理机PM_1转发至虚拟机VM_1时。需要使用转发表“Vlan<->Vxlan mapping”(以下简称“表A”),以及转发表“VTEP L2Table”(以下简称“表B”)。在表A中,记载VLAN与VxLAN的映射关系;在表B中,记载有多条由MAC、VxLAN ID及Remote VTEP组成的记录。因此,在现有技术中,数据报文经过端口配置以完成收发的过程中存在的缺陷主要包括:首先,VLAN ID(VIN)存在上限的瓶颈,最大只有4096个,因此在接入数量更多的物理机时,就无法为每个物理机实现分配VLAN ID;其次,物理机需要执行VLAN ID识别、封装和解封装操作,从而导致服务器的CPU资源开销过大;最后,现有技术中,报文在转发过程中需要对转发设备及交换机端口上进行VLAN配置才能保证VLAN数据包能够被在内外网之间进行转发,这在一定程度上也存在操作繁琐,端口配置不透明的缺陷。

发明内容

[0004] 本发明的目的在于公开一种报文转发的透明配置方法,用于突破VLAN ID区分租户和网络的数量瓶颈,降低服务器CPU的计算开销。
[0005] 为实现上述目的,本发明提供了一种报文转发的透明配置方法,计算执行机构通过VTEP接入VxLAN隧道,SDN控制器全局维护用于标记计算执行机构的信息表,所述信息表中包含若干条至少由MAC,IP,PORT及VxLAN ID所组成的记录,SDN控制器将所述信息表下发和/或更新至VTEP,VTEP查询信息表以对计算执行机构经由VxLAN隧道转发的数据报文进行封装及解封装操作。
[0006] 作为本发明的进一步改进,所述记录由MAC,IP,PORT,VxLAN ID以及下述任意一种或者多种参数组成:租户信息,网络信息及VTEP Locator。
[0007] 作为本发明的进一步改进,该方法还包括根据租户信息、网络信息或者VTEP Locator对接入VxLAN隧道的VTEP的身份进行查询及隔离。
[0008] 作为本发明的进一步改进,所述SDN控制器通过资源统一接口将所述信息表下发和/或更新至VTEP。
[0009] 作为本发明的进一步改进,所述资源统一接口包括:restful接口或者NETCONF接口。
[0010] 作为本发明的进一步改进,所述SDN控制器通过TCP消息或者http消息将所述信息表下发和/或更新至VTEP。
[0011] 作为本发明的进一步改进,所述计算执行机构包括虚拟机、物理机、计算节点、集群服务器或者内部通过虚拟化技术所开启并通过虚拟交换机关联多个虚拟机的物理机。
[0012] 与现有技术相比,本发明的有益效果是:在本发明中,通过SDN控制器全局维护用于标记计算执行机构的信息表,实现了报文经由VxLAN隧道进行转发时,不需要将报文先打上VLAN标签,避免使用VLAN ID识别租户和网络,突破了传统的VLAN ID的限制;同时,由于不需要物理服务器对VLAN执行封装与解封装操作,从而降低了服务器CPU的计算开销,实现了数据中心的高可用性。

附图说明

[0013] 图1现有技术中物理机与虚拟机通过VTEP接入VxLAN隧道时的组网图;
[0014] 图2为应用本发明一种报文转发的透明配置方法的一种组网图;
[0015] 图3为SDN控制器将信息表下发和/或更新至VTEP的示意图;
[0016] 图4为应用本发明一种报文转发的透明配置方法的另一种组网图;

具体实施方式

[0017] 下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
[0018] 本说明书中所公开的一个或者多个实施例所揭示的方法、装置、系统或者应用均可以单独或者组合的方式展现。所述模块或者单元的划分,仅仅是计算机内部的一种逻辑功能的划分,实际上也可为其他的划分方式,例如多个单元或者模块或者组件可以结合或者集成或者固化到另一个计算机系统或者计算机装置中。技术名词“数据报文”与技术名称“报文”在本文中具有等同含义。技术名词“数据包”是“数据报文”或者“报文”在转发或者通信过程中所形成的采取封装标准的数据。
[0019] SDN(Software Defined Networking,软件定义网络)是一种基于软件的网络架构及技术,其核心技术为OpenFlow技术,SDN的技术核心是通过控制器(controller)及OpenFlow交换机(switcher)将网络设备控制面与数据面分开,从而实现对网络流量的灵活控制。为了区分数据中心内的租户和网络,物理机在发送报文的时候需要将报文先打上VLAN标签(Tag),使用VLAN标签来标识租户和网络并实现隔离,在VTEP上存放有VLAN和VxLAN的对应关系表,接入点根据对应关系表将VLAN的包头剥离再做VxLAN报头封装转发如图2所示。两个接入点之间通过交换机(switcher)或者路由器(router)通过VxLAN隧道作数据报文的转发。
[0020] 本实施方式公开了一种报文转发的透明配置方法,计算执行机构通过VTEP接入VxLAN隧道5,SDN控制器30全局维护用于标记计算执行机构的信息表40,所述信息表40中包含若干条至少由MAC,IP,PORT及VxLAN ID所组成的记录,SDN控制器30将所述信息表40下发和/或更新至VTEP,VTEP查询信息表40a及信息表40b对计算执行机构经由VxLAN隧道5转发的数据报文进行封装及解封装操作。
[0021] 具体的,该计算执行机构包括虚拟机、物理机、计算节点、集群服务器或者内部通过虚拟化技术所开启并通过虚拟交换机关联多个虚拟机的物理机,在本实施例中,分别示出了将虚拟机、物理机、内部通过虚拟化技术所开启并通过虚拟交换机关联多个虚拟机的物理机分别接入VxLAN隧道5的工程实例。
[0022] 具体的,在图2所示,虚拟机VM_1至虚拟机VM_n均通过第一VTEP10接入VxLAN隧道5,物理机PM_1至物理机PM_n均通过第二VTEP20接入VxLAN隧道5,VxLAN隧道5形成计算执行机构发送或者接收的数据报文的转发通道。SDN控制器30内部运行有用于标记计算执行机构的信息表40信息表40,并通过SDN控制器30将信息表40下发或者更新至第一VTEP10与第二VTEP20中。
[0023] 该信息表40中形成有多条用于表征数据报文逻辑地址和/或物理地址属性的记录,以通过该记录确定发出或者接受的数据报文是属于本地(Local)还是远端(Remote),从而用于数据报文在转发过程中对VxLAN报文执行封装与解封装的操作,以通过VxLAN隧道在本地与对端进行转发。
[0024] 最优选的,信息表40中所包含的每一条记录可由MAC,IP,PORT,VxLAN ID,租户信息(即Tenant(UUID)),网络信息(即Network(UUID))及VTEP Locator组成。记录的逻辑结构如下表一所示。
[0025]
[0026] 表一
[0027] 当然,信息表40中的每一条记录可经由MAC,IP,PORT,VxLAN ID,租户信息(即Tenant(UUID))及网络信息(即Network(UUID))组成。记录的逻辑结构如下表二所示。
[0028]
[0029] 表二
[0030] 此外,信息表40中所包含的每一条记录可仅由MAC,IP,PORT,VxLAN ID组成。
[0031] 具体的,参图2至图4所示,当VxLAN隧道终端(VTEP)收到本地物理机(Physical Machine)或者虚拟机(Virtual Machine)发送的数据包,首先去查询本地MAC、IP、Port、Tenant、Network、VxLAN ID、VTEP Locator之间具有对应关系的信息表40a。
[0032] 根据远端MAC、IP、Port、VTEP locator查询确认发出的数据包是发送到本地VTEP还是远端VTEP,并根据本地MAC、IP、Port信息确认该数据包来自指定租户的具体网络。然后,根据查询到的信息得到VxLANID(VNI)以及VTEP locator的IP地址。得到上述信息后,封装VxLAN报头,将封装后的数据报文进行转发。
[0033] 在本实施例中,对数据报文进行封装与接封装基于现有技术,并在本申请文件中作简要阐述。
[0034] VxLAN(Virtual Extensible LAN)虚拟可扩展局域网,是一种overlay网络技术,将原始二层以太网报文进行UDP封装(MAC-in-UDP),外层增加8字节VxLAN头部,8字节UDP头部,20字节IP头部和14字节以太网头部。VxLAN使用VTEP对VxLAN报文进行封装与解封装,VTEP将原始以太网帧通过VxLAN封装后发送至对端的VTEP,对端VTEP接收到VxLAN报文后解封装然后,根据原始MAC进行转发,VTEP可以是物理交换机、物理服务器或者其他支持VxLAN的硬件设备或软件来实现。
[0035] 本实施例中,第一VTEP10与第二VTEP20在数据报文转发过程中的具体工作方式及流程如下所示。
[0036] 当租户创建一个计算执行机构时,例如,租户创建虚拟机VM_1,并将虚拟机VM_1接入第一VTEP10。Orchestrator编排协调器(位于控制层)会将虚拟机VM_1的相关属性作为一条记录发送到SDN控制器30中,并保存入如表一所示信息表40中。该记录由虚拟机VM_1的MAC,IP,PORT以及租户信息、网络信息和VxLAN ID(即VNI)等信息所组成。
[0037] 如图3所示,例如,该虚拟机VM_1的MAC地址是11:11:11:11:11:11,IP是192.168.1.1,连接到第一VTEP10的第三端口(PORT3)。该虚拟机VM_1属于租户的A网络所对应的VxLAN ID是1001,第一VTEP10的VTEP Locator为1.1.1.1。所有上述属性所构成的记录会分别保存至第一VTEP10和第二VTEP20中,通过SDN控制器30通过资源统一接口将信息表
40通过下发至第一VTEP10和第二VTEP20中,以在第一VTEP10中形成信息表40a,在第二VTEP20中形成信息表40b,信息表40a与信息表40b具有相同属性。
[0038] 当租户远程创建新的虚拟机或者管理员在后台接入新的物理机时,SDN控制器30会将向信息表40中添加新的计算执行机构的记录,并对第一VTEP10中所保存的信息表40a及第二VTEP20中所保存的信息表40b进行更新,以利于下一次数据报文的转发操作。
[0039] 具体的,该资源统一接口包括:restful接口或者NETCONF接口,并更优选为restful接口。另外,该SDN控制器30也可通过TCP消息或者http消息将所述信息表40下发和/或更新至第一VTEP10及第二VTEP20中。
[0040] 当虚拟机VM_1通过VxLAN隧道5发送一个数据报文到远端的计算执行机构(例如物理机PM_1)的时候,待转发的数据报文会先到达第一VTEP10。第一VTEP10根据虚拟机VM_1需要转发的数据报文所携带虚拟机VM_1本身的MAC,IP,Port(端口号)等属性去查询信息表40a。
[0041] 例如,该数据报文的本地MAC地址是11:11:11:11:11:11,本地的IP地址是192.168.1.1,所属于的第一VTEP10的端口号(PORT)是3,通过查询信息表40a,该第一VTEP10可以确定这个数据报文需要添加的外层VNI(VxLAN ID)是1001,根据发送数据报文中的对端MAC,IP和前面查询到的VNI,例如某个数据报文的所指向的对端的计算执行机构(例如物理机PM_1)MAC是55:55:55:55:55:55,IP是192.168.1.3,外层VNI是信息表40a所保存的参数1001。通过查询第二VTEP20中由SDN控制器30所下发/更新的信息表40b,就可以确定该数据报文所需要添加的外层VXLAN的目的IP。
[0042] 由此,第二VTEP20就获得了整个数据报文在进入VxLAN隧道5时所需要添加的所有信息。此时,第二VTEP20会将虚拟机VM_1所发送的数据报文的外层添加得到的VxLAN信息,然后将封装后的数据报文通过VxLAN隧道5转发至位于对端的物理机PM_1中。对端的物理机PM_1接收到封装后的数据报文后,通过信息表40b对由虚拟机VM_1转发的数据报文进行解封装,从而通过第二VTEP20将解封装后的数据报文发送至指定的对端(即物理机PM_1中),从而完成虚拟机VM_1向物理机PM_1进行数据报文的转发操作。
[0043] 当物理机PM_1向虚拟机VM_1逆向转发数据报文时,可参上述步骤,并将物理机PM_1定义为本端(或者本地、源),将虚拟机VM_1定义为对端(或者目的地)。
[0044] 当第一VTEP10或者第二VTEP20收到位于远端的物理机或者虚拟机发送的数据报文,首先查询外层VxLAN包头的MAC、IP信息,如果与本地VTEP locator对应,第一VTEP10或者第二VTEP20首先会将外层封装的VxLAN报文去除,并且查询本地的信息表(即信息表40a或者信息表40b),将VxLAN ID(VNI)对应的PORT列出。然后,根据去掉VxLAN头后数据报文所指向的位于对端的计算执行机构的MAC、IP、Port确认将数据报文送到位于对端的指定端口(PORT)的计算执行机构(例如虚拟机)上。由此,完成物理机和数据中心虚拟网络中的虚拟设备(如虚拟机、物理机或者内部通过虚拟化技术(例如Hyper-V虚拟化技术)所开启,并通过虚拟交换机501关联多个虚拟机的物理机)之间的相互通信。
[0045] 需要说明的是,在本实施例中在虚拟机VM_1与物理机PM_1之间建立通信过程中,信息表40、信息表40a及信息表40b中的每一条记录由MAC、IP、Port、Tenant、Network、VxLAN ID、VTEP Locator组成。进一步的,为了进一步降低第一VTEP10与第二VTEP20在对数据报文的转发过程中配置的透明性,也可将信息表40、信息表40a及信息表40b中的每一条记录仅由MAC、IP、Port及VxLAN ID组成。
[0046] 参图4所示,图4示出了应用本发明一种报文转发的透明配置方法的另一种组网图。在此工程实例中,接入第一VTEP10的计算执行机构被配置为一台物理机PM50,且该物理机PM50包含了n个虚拟机,即虚拟机VM_1~VM_n,虚拟机VM_1~VM_n通过虚拟机交换机501相互通信,并位于同一个网段内。物理机PM50与物理机PM_a接入第一VTEP10中,物理机PM_1至物理机PM_n接入第二VTEP20中。数据报文在VxLAN隧道5中进行转发的具体过程参上文所述,并实现了物理机PM50中的任意一台虚拟机与接入第二VTEP20的任意一台物理机(即物理机PM_1至物理机PM_n)进行数据报文的转发操作。
[0047] 在本说明书中,仅示出在VxLAN隧道5中接入两个VTEP,本领域技术人员可以合理预测到,还可在上述VxLAN隧道5接入数量更多的VTEP,且数据报文在多个VTEP中进行数据报文的转发机制具有相同原理,在此不再赘述。
[0048] 本说明书中的所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)磁碟、非易失性存储器装置(NVM)或者光盘等各种可以存储程序代码的介质。
[0049] 上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
[0050] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0051] 此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。