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

数据转发方法、装置及存储介质

文献发布时间:2024-04-18 20:01:55


数据转发方法、装置及存储介质

技术领域

本申请涉及通信技术领域,尤其涉及一种数据转发方法、装置及存储介质。

背景技术

随着服务器虚拟化技术得到了广泛的应用,虚拟服务器构建的虚拟网络的规模也越来越大。因此,受限于虚拟网络的网络规格,虚拟服务器之间的信息传输成了发展服务器虚拟化的阻碍。

现有信息传输方法,是通过虚拟扩展局域网(virtual extensible local areanetwork,VXLAN)封装技术,在虚拟服务器传输的原始数据上,添加VXLAN业务报文。然后虚拟服务器可以根据VXLAN业务报文中的信息确定原始数据的源地址和目的地址。但是因为VXLAN业务报文的长度较长,需要消耗大量的网络带宽,并且VXLAN业务报文过长还可能导致丢包概率的增加。

发明内容

本申请提供一种数据转发方法、装置及存储介质,用于解决现有技术中报文头的字节较多的问题。

为达到上述目的,本申请采用如下技术方案:

第一方面,提供一种数据转发方法,包括:获取业务报文;基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式。

可选的,基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式,包括:在第一预设条件下,根据第一转发方式转发业务报文;其中,第一预设条件包括:入接口具有第一绑定关系、出接口不具有第一绑定关系,且业务报文不包含第一类型报文头;第一转发方式包括:为业务报文添加第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址;第一类型报文头为承载有预设标识的报文头;预设标识包括:网络认证编码NID和安全标识编码SID;第一绑定关系为出接口、入接口与预设标识之间存在的绑定关系。

可选的,基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式,还包括:在第二预设条件下,根据第二转发方式转发业务报文;其中,第二预设条件包括:入接口不具有第一绑定关系、出接口不具有第一绑定关系,且业务报文包含第一类型报文头;第二转发方式包括:将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址。

可选的,基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式,包括:在第三预设条件下,根据第三转发方式转发业务报文;其中,第二预设条件包括:入接口不具有第一绑定关系、出接口具有第一绑定关系,且业务报文包含第一类型报文头;第三转发方式包括:删除业务报文中包含的第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一虚拟机的入接口绑定的MAC地址。

可选的,还包括:当满足第一预设条件时,判断入接口绑定的预设标识是否与预设转发表中的任一预设标识一致;预设转发表用于记录预先设置的转发规则与预设标识的对应关系;当入接口绑定的预设标识与预设转发表中的任一预设标识不一致时,丢弃业务报文。

可选的,在获取目标交换机中第一接口的接口信息之前,还包括:获取预设传输路径;预设传输路径为预先设定的多个交换机之间的传输信息路径;基于预设传输路径,确定预设传输路径对应的预设标识;将预设标识输入预设路由表中,生成预设转发表。

第二方面,提供一种数据转发装置,包括:获取单元和确定单元。获取单元,用于获取业务报文;确定单元,用于基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式。

可选的,确定单元,具体用于:在第一预设条件下,根据第一转发方式转发业务报文;其中,第一预设条件包括:入接口具有第一绑定关系、出接口不具有第一绑定关系,且业务报文不包含第一类型报文头;第一转发方式包括:为业务报文添加第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址;第一类型报文头为承载有预设标识的报文头;预设标识包括:网络认证编码NID和安全标识编码SID;第一绑定关系为出接口、入接口与预设标识之间存在的绑定关系。

可选的,确定单元,具体用于:在第二预设条件下,根据第二转发方式转发业务报文;其中,第二预设条件包括:入接口不具有第一绑定关系、出接口不具有第一绑定关系,且业务报文包含第一类型报文头;第二转发方式包括:将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址。

可选的,确定单元,具体用于:在第三预设条件下,根据第三转发方式转发业务报文;其中,第二预设条件包括:入接口不具有第一绑定关系、出接口具有第一绑定关系,且业务报文包含第一类型报文头;第三转发方式包括:删除业务报文中包含的第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一虚拟机的入接口绑定的MAC地址。

可选的,确定单元还用于:当满足第一预设条件时,判断入接口绑定的预设标识是否与预设转发表中的任一预设标识一致;预设转发表用于记录预先设置的转发规则与预设标识的对应关系;当入接口绑定的预设标识与预设转发表中的任一预设标识不一致时,丢弃业务报文。

可选的,在获取目标交换机中第一接口的接口信息之前,获取单元,还用于获取预设传输路径;预设传输路径为预先设定的多个交换机之间的传输信息路径;确定单元,基于预设传输路径,确定预设传输路径对应的预设标识;将预设标识输入预设路由表中,生成预设转发表。

第三方面,提供一种数据转发装置,包括存储器和处理器;存储器用于存储计算机执行指令,处理器与存储器通过总线连接;当数据转发装置运行时,处理器执行存储器存储的计算机执行指令,以使数据转发装置执行第一方面所述的数据转发方法。

该数据转发装置可以是网络设备,也可以是网络设备中的一部分装置,例如网络设备中的芯片系统。该芯片系统用于支持网络设备实现第一方面及其任意一种可能的实现方式中所涉及的功能,例如,获取、确定、发送上述数据转发方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。

第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得该计算机执行第一方面所述的数据转发方法。

第五方面,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在数据转发装置上运行时,使得数据转发装置执行如上述第一方面所述的数据转发方法。

需要说明的是,上述计算机指令可以全部或者部分存储在第一计算机可读存储介质上。其中,第一计算机可读存储介质可以与数据转发装置的处理器封装在一起的,也可以与数据转发装置的处理器单独封装,本申请实施例对此不作限定。

本申请中第二方面、第三方面、第四方面以及第五方面的描述,可以参考第一方面的详细描述;并且,第二方面、第三方面、第四方面以及第五方面的有益效果,可以参考第一方面的有益效果分析,此处不再赘述。

在本申请实施例中,上述数据转发装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请及其等同技术的范围之内。

本申请提供的技术方案至少带来以下有益效果:

基于上述任一方面,本申请实施例提供了一种数据转发方法,可以先获取业务报文。然后基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式。本申请通过预设一种新型的报文头类型,并根据业务报文的出接口和入接口的属性信息,确定转发添加新型报文头的业务报文转发路径,以使得在保证业务报文正常转发的前提下,减少业务报文转发过程中的报文头字节数。

附图说明

图1为本申请实施例提供的VXLAN业务报文的组成示意图;

图2为本申请实施例提供的VXLAN业务报文头的组成示意图

图3为本申请实施例提供的数据转发系统的结构示意图;

图4为本申请实施例提供的数据转发装置的一种硬件结构示意图;

图5为本申请实施例提供的数据转发装置的又一种硬件结构示意图;

图6为本申请实施例提供的一种数据转发方法的流程示意图;

图7为本申请实施例提供的又一种数据转发方法的流程示意图;

图8为本申请实施例提供的又一种数据转发方法的流程示意图;

图9为本申请实施例提供的又一种数据转发方法的流程示意图;

图10为本申请实施例提供的又一种数据转发方法的流程示意图;

图11为本申请实施例提供的又一种数据转发方法的流程示意图;

图12为本申请实施例提供的又一种数据转发方法的流程示意图;

图13为本申请实施例提供的一种数据转发装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

为了便于清楚描述本申请实施例的技术方案,在本申请实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。

在对本申请提供的数据转发方法进行详细介绍之前,先对本申请涉及的背景进行简单介绍。

服务器虚拟化技术因其成本低、部署灵活等优势,应用范围越来越广泛,一台服务器可以虚拟出多台虚拟机,而一台虚拟机等同于一台主机。在这种情况下,同一虚拟网络中主机的数量级发生了巨大的变化。

但是虚拟网络中虚拟机的规模受到了网络规格的限制,虚拟机的迁移范围受到了网络架构的限制,并且虚拟网络中虚拟机的数量越多,虚拟网络的网络隔离能力越差。

针对这种问题,现有技术提出了一种虚拟扩展局域网(virtual extensiblelocal area network,VXLAN)技术,可以有效的解决上述问题。VXLAN技术通过24比特(background intelligent transfer service,bits)的VXLAN网络标识符(VXLAN networkidentifier,VNI)进行网络隔离,以使得虚拟网络的网络隔离不受虚拟机数量级的限制。

并且,在该虚拟网络中,除了网络边缘设备,其他设备不需要识别虚拟机的媒体存取控制位址(media access control address,MAC)地址,从而虚拟网络中各个设备的地址学习压力,提高虚拟网络中设备的设备性能。

以下,结合图1,对VXLAN网络的二层网络结构和相关名词进行解释。

1、互联网协议第6版(internet protocol version 6,IPv6)over IPv6 VXLAN报文格式。

Outer Ethernet Header:外部以太网头部。

Outer IPv6 Header:外部IPv6头部。

Outer UDP Header:外部UDP头部。

VXLAN Header:VXLAN头部。

Inner Ehternet Header:内部以太网头部。

Inner IPV6 Header:内部IPV6头部。

Payload:以太网数据负荷,也就是实际的数据,这里不包括原始帧的FCS字段。

综上,外部以太网头部、外部IPv6头部、外部UDP头部和VXLAN头部构成VXLAN封装报文头。内部以太网头部、内部IPV6头部和以太网数据负荷构成原始业务报文。VXLAN封装报文头和原始业务报文构成IPv6 over IPv6VXLAN报文格式。

2、外部以太网头部包括以下几部分。

MAC DA:外部目的MAC地址,Outer Destination MAC Address。

MAC SA:外部源MAC地址,Outer Source MAC Address。

802.1Q Tag:用于表示该业务报文支持虚拟局域网(virtual local areanetwork,VLAN)的标记。

Ethernet Type:以太网数据类型。

3、VXLAN头部包括以下几部分。

VAXLAN标记字段:VXLAN Flags(8bits),取值为00001000。

VAXLAN网络标识符(vxlan network identifier,VNI):24bits,用于表示虚拟局域网的信息。

Reserved:预留字段,8bits,用于保留一些存储空间以便未来的扩展。

4、外部UDP头部包括以下几部分。

发送者的端口号:Source port。

接受者的端口号:Destport(VXLAN port)。

UDP段内数据的大小:UDP length。

UDP数据校验码:UDP checksum。

5、外部IPv6头部包括以下几部分。

IP SA:源IP地址是VXLAN隧道本端VTEP的IP地址。

IP DA:目的IP地址是VXLAN隧道远端VTEP的IP地址。

Protocol:多种IPV6协议。

综上,现有技术通过采用MAC in UDP封装来延伸二层虚拟局域网络,从而实现物理网络和虚拟网络的解耦。在这种情况下,租户可以自行规划虚拟局域网络,不需要考虑物理网络地址和广播域的限制,大大降低了虚拟局域网管理的难度。

但是在这种数据转发方法的IPV6业务报文在经过数据中心中的节点时,需要进行VXLAN封装。当业务报文封装完成之后,原本的IPV6业务报文将会增加一个74字节的报文头。

结合图2,对IPv6 over IPv6 vxlan的报文头构成进行说明。

在服务端(server)中的原始业务报文由内部以太网头部(14个字节)、内部IPV6头部(40个字节)和以太网数据负荷构成。当原始业务报文从叶交换机(leaf)到达脊交换机(spine)时,原始业务报文会增加一个外部报文头。上述外部报文头包括:外部以太网头部(18个字节)、外部IPv6头部(40个字节)、外部UDP头部(8个字节)和VXLAN头部(8个字节)。

在这种情况下,过长的报文头会导致上述IPV6业务报文的有效载荷比降低,需要使用更高的网络带宽传输IPV6业务报文中的数据。并且报文头的长度增加会导致虚拟网络中交换机可吸收的业务报文数量减少,从而导致丢包的概率增加。并且,报文头较长还会导致虚拟局域网中中间节点的识别成本增加,业务报文在转发过程中,中间节点还需要消耗更多的硬件资源识别业务报文的内层信息。

针对上述问题,本申请实施例提供了一种数据转发方法,可以先获取业务报文。然后基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式。本申请通过预设一种新型的报文头类型,并根据业务报文的出接口和入接口的属性信息,确定转发添加新型报文头的业务报文转发路径,以使得在保证业务报文正常转发的前提下,减少业务报文转发过程中的报文头字节数。

该数据转发方法适用于数据转发系统。图3示出了该数据转发系统的一种结构。如图3所示,该数据转发系统包括:电子设备101、叶交换机102、叶交换机103、脊交换机104、虚拟机设备105、虚拟机设备106、虚拟机设备107。

叶交换机102包含接口1和接口2,脊交换机104包含接口3和接口4,叶交换机103包含接口5、接口6和接口7。

接口1绑定的网络认证编码(network identifier,NID):安全标识编码(securityidentifiers,SID)为1:0,接口6绑定NID:SID为1:0,接口7绑定为1:1。

虚拟机设备105的IPV6地址为2001::1,虚拟机设备106的IPV6地址为2002::1,虚拟机设备107的IPV6地址为2003::1,

其中,电子设备101分别与叶交换机102、叶交换机103、脊交换机104之间通信连接,叶交换机102与虚拟机设备105之间通信连接,叶交换机103与虚拟机设备106、虚拟机设备107之间通信连接,脊交换机104分别与叶交换机102、叶交换机103之间通信连接。

在实际应用中,电子设备101可以连接多个叶交换机102,电子设备101可以连接多个叶交换机103,电子设备101可以连接多个脊交换机104,叶交换机102可以连接多个虚拟机设备105,叶交换机103可以连接多个虚拟机设备106,叶交换机103可以连接多个虚拟机设备107,脊交换机104可以连接多个叶交换机102,脊交换机104可以连接多个叶交换机103。为了便于理解,本申请以一个电子设备101连接一个叶交换机102,一个电子设备101连接一个叶交换机103,一个电子设备101连接一个脊交换机104,一个叶交换机102连接一个虚拟机设备105,一个叶交换机103连接一个虚拟机设备106,一个叶交换机103连接一个虚拟机设备107,一个脊交换机104连接一个叶交换机102,一个脊交换机104连接一个叶交换机103为例进行说明。

可选的,电子设备101的实体设备可以是终端,也可以是服务器,还可以是其他类型的电子设备。

可选的,当电子设备101的实体设备为终端时,终端可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。终端可以经无线接入网(radio access network,RAN)与一个或多个核心网进行通信。终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,也可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据,例如,手机、平板电脑、笔记本电脑、上网本、个人数字助理(personaldigital assistant,PDA)。

可选的,当电子设备101的实体设备为服务器时,服务器可以是服务器集群(由多个服务器组成)中的一个服务器,也可以是该服务器中的芯片,还可以是该服务器中的片上系统,还可以通过部署在物理机上的虚拟机(virtual machine,VM)实现,本申请实施例对此不作限定。

数据转发系统中的电子设备101的基本硬件结构类似,都包括图4或图5所示数据转发装置所包括的元件。下面以图4和图5所示的数据转发装置为例,介绍电子设备101的硬件结构。

如图4所示,为本申请实施例提供的数据转发装置的一种硬件结构示意图。该数据转发装置包括处理器21,存储器22、通信接口23、总线24。处理器21,存储器22以及通信接口23之间可以通过总线24连接。

处理器21是数据转发装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21可以是一个通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。

作为一种实施例,处理器21可以包括一个或多个CPU,例如图4中所示的CPU0和CPU1。

存储器22可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable program able read-only memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。

一种可能的实现方式中,存储器22可以独立于处理器21存在,存储器22可以通过总线24与处理器21相连接,用于存储指令或者程序代码。处理器21调用并执行存储器22中存储的指令或程序代码时,能够实现本申请下述实施例提供的数据转发方法。

在本申请实施例中,对于数据转发设备101而言,存储器22中存储的软件程序不同,所以数据转发设备101实现的功能不同。关于各设备所执行的功能将结合下面的流程图进行描述。

另一种可能的实现方式中,存储器22也可以和处理器21集成在一起。

通信接口23,用于数据转发装置与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,WLAN)等。通信接口23可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。

总线24,可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

图5示出了本申请实施例中数据转发装置的另一种硬件结构。如图5所示,数据转发装置可以包括处理器31以及通信接口32。处理器31与通信接口32耦合。

处理器31的功能可以参考上述处理器21的描述。此外,处理器31还具备存储功能,可以起上述存储器22的功能。

通信接口32用于为处理器31提供数据。该通信接口32可以是数据转发装置的内部接口,也可以是数据转发装置对外的接口(相当于通信接口23)。

需要指出的是,图4(或图5)中示出的结构并不构成对数据转发装置的限定,除图4(或图5)所示部件之外,该数据转发装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合附图对本申请实施例提供的数据转发方法进行详细介绍。

如图6所示,本申请实施例提供的数据转发方法应用于电子设备,数据转发方法包括:S601-S602。

S601、电子设备获取业务报文。

可选的,业务报文可以为虚拟局域网中交换与传输的数据单元,即任意交换机节点一次性要发送的数据块。业务报文包含了将要发送的完整的数据信息,长短不限且可变。

示例性的,结合图3,当虚拟机设备105向虚拟机设备106发送数据时,可以先向叶交换机102发送数据对应的业务报文。然后,叶交换机102接收上述业务报文,并向电子设备101发送该业务报文。通过这种办法电子设备101可以获取到虚拟机设备105发送数据的业务报文。

S602、电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式。

可选的,电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式的一种实现方式为:当业务报文当前所在的交换机的入接口具有第一绑定关系时,出接口不具有第一绑定关系时,并且业务报文不包含第一类型报文头时,电子设备根据第一转发方式转发上述业务报文。

示例性的,结合图3,假设虚拟机设备105向虚拟机设备106发送业务报文,该业务报文当前所在的交换机为叶交换机102。已知叶交换机102中包含接口1和接口2,接口1绑定的NID:SID为1:0(也可以称为接口1具有第一绑定关系),接口2没有绑定NID:SID(也可以称为接口2不具有第一绑定关系),此时业务报文不包含第一类型报文头。在这种情况下,电子设备101可以为业务报文添加第一类型报文头,并将业务报文的发送地址修改为接口2所在的媒体访问控制(media access control,MAC)地址,将业务报文的接收地址修改为脊交换机104中接口3所在的MAC地址。

可选的,电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式的另一种实现方式为:当业务报文当前所在的交换机的入接口不具有第一绑定关系时,出接口不具有第一绑定关系时,并且业务报文包含第一类型报文头时,电子设备根据第二转发方式转发上述业务报文。

示例性的,结合图3,假设虚拟机设备105向虚拟机设备106发送业务报文,该业务报文当前所在的交换机为脊交换机104。已知脊交换机104中包含接口3和接口4,接口3和接口4均不具有第一绑定关系,此时业务报文包含第一类型报文头。在这种情况下,电子设备101可以将业务报文的发送地址修改为接口4所在的MAC地址,将业务报文的接收地址修改为叶交换机103中接口5所在的MAC地址。

可选的,电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式的另一种实现方式为:当业务报文当前所在的交换机的入接口不具有第一绑定关系时,出接口具有第一绑定关系时,并且业务报文包含第一类型报文时,电子设备根据第三转发方式转发上述业务报文。

示例性的,结合图3,假设虚拟机设备105向虚拟机设备106发送业务报文,该业务报文当前所在的交换机为叶交换机103。已知叶交换机103中包含接口5和接口6,接口5不具有第一绑定关系,接口6具有第一绑定关系,此时业务报文包含第一类型报文头。在这种情况下,电子设备101可以将业务报文的发送地址修改为接口6所在的MAC地址,将业务报文的接收地址修改为虚拟机设备106所在的MAC地址。

可选的,结合表1,可以示出了一种包含第一类型报文头的业务报文。该业务报文为基于标准规定的IPV6报文头进行扩展,在用户报文头与有效载荷之间新增目的地选项(destination option header,DOH)报文头(也可以称为第一类型报文头)。该DOH报文头符合请求注释(requests for comment,RFC)8200的定义,并且可以定义当前选项定义确定包含第一类型报文头的业务报文的选项定义为0X53。NID为4字节,代表着租户的身份信息,相当于传统的VPN,不同租户(也可以称为不同NID)下的虚拟机设备不能相互访问。SID为2自己,代表着安全组,用于进一步隔离同一租户内的不同虚拟机设备。当接收报文的设备无法识别DOH头时,可以将无法识别DOH头的业务报文进行丢弃。

示例性的,结合图3,虚拟机设备105连接的接口1绑定的NID:SID为1:0,虚拟机设备106连接的接口6绑定的NID:SID也为1:0,虚拟机设备107连接的接口7绑定的NID:SID为1:1。在这种情况下,电子设备101可以确定虚拟机设备105、虚拟机设备106和虚拟机设备107属于同一租户,并且,虚拟机设备105和虚拟机设备106属于同一安全组。因此,虚拟机设备105可以和虚拟机设备106相互进行通信,虚拟机设备107不能与虚拟机设备105和虚拟机设备106相互进行通信。

表1

在本申请实施例中,通过预先设置好的新型报文格式和数据转发方法,从而减少了业务报文对应报文头的字节数,从而在保证虚拟局域网传输业务报文的传输能力的同时,提高虚拟局域网传输业务报文的有效载荷比。

在一些实施例中,结合图6,如图7所示,上述S602中,电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式的方法具体包括:S701。

S701、在第一预设条件下,电子设备根据第一转发方式转发业务报文。

其中,第一预设条件包括:入接口具有第一绑定关系、出接口不具有第一绑定关系,且业务报文不包含第一类型报文头。

第一转发方式包括:为业务报文添加第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址。

第一类型报文头为承载有预设标识的报文头。预设标识包括:NID和SID。第一绑定关系为出接口、入接口与预设标识之间存在的绑定关系。

可选的,在第一预设条件下,电子设备根据第一转发方式转发业务报文的具体步骤与S602中具体步骤类似。电子设备根据第一转发方式转发业务报文的具体步骤可以参考S602,在此不再过多赘述。

在本申请实施例中,可以通过第一转发方式为没有携带第一类型报文头的业务报文添加第一类型报文头,添加的第一类型报文头与入接口绑定的NID:SID对应。通过这种办法,电子设备无需配置字节数较多的VXLAN报文头就可以确定业务报文转发的传输路径。

在一些实施例中,结合图7,如图8所示,上述S602中,电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式的方法具体包括:S801。

S801、在第二预设条件下,电子设备根据第二转发方式转发业务报文。

其中,第二预设条件包括:入接口不具有第一绑定关系、出接口不具有第一绑定关系,且业务报文包含第一类型报文头。

第二转发方式包括:将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址。

可选的,在第二预设条件下,电子设备根据第二转发方式转发业务报文的具体步骤与S602中具体步骤类似。电子设备根据第二转发方式转发业务报文的具体步骤可以参考S602,在此不再过多赘述。

在本申请实施例中,可以通过第二转发方式根据第一类型报文头中的信息确定业务报文中下一节点对应的接口信息。通过这种办法,电子设备无需配置字节数较多的VXLAN报文头就可以确定业务报文转发的传输路径。

在一些实施例中,结合图8,如图9所示,上述S602中,电子设备基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式的方法具体包括:S901。

S901、在第三预设条件下,电子设备根据第三转发方式转发业务报文。

其中,第二预设条件包括:入接口不具有第一绑定关系、出接口具有第一绑定关系,且业务报文包含第一类型报文头。

第三转发方式包括:删除业务报文中包含的第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一虚拟机的入接口绑定的MAC地址。

可选的,在第三预设条件下,电子设备根据第三转发方式转发业务报文的具体步骤与S602中具体步骤类似。电子设备根据第三转发方式转发业务报文的具体步骤可以参考S602,在此不再过多赘述。

在本申请实施例中,可以通过第三转发方式根据第一类型报文头中的信息确定业务报文中下一节点对应的接口信息,并将业务报文中包含的第一类型报文头去除。通过这种办法,电子设备无需配置字节数较多的VXLAN报文头就可以确定业务报文转发的传输路径。

在一些实施例中,结合图9,如图10所示,该数据转发方法还包括:S1001-S1002。

S1001、当满足第一预设条件时,电子设备判断入接口绑定的预设标识是否与预设转发表中的任一预设标识一致。

其中,预设转发表用于记录预先设置的转发规则与预设标识的对应关系。

S1002、当入接口绑定的预设标识与预设转发表中的任一预设标识不一致时,电子设备丢弃业务报文。

具体的,当入接口绑定的预设标识(也可以称为第一绑定关系对应的标识)和预设转发表中保存的预设标识不一致时,说明该业务报文并非该交换机进行转发,因此需要将该业务报文丢弃,避免转发错误的情况发生。

在本申请实施例中,通过比较转发表中预设标识和入接口绑定的预设标识,从而判断该业务报文是否转发错误。

在一些实施例中,结合图10,如图11所示,在电子设备获取目标交换机中第一接口的接口信息之前,该数据转发方法还包括:S1101-S1103。

S1101、电子设备获取预设传输路径。

其中,预设传输路径为预先设定的多个交换机之间的传输信息路径。

示例性的,结合图3,叶交换机102和虚拟机105之间可以配置静态路由协议或其他动态路由协议,叶交换机103和脊交换机104之间可以配置为BGP邻居,脊交换机104可以配置为路由反射器(route reflector,RR),叶交换机配置为路由客户端(client)。在这种情况下,电子设备可以控制叶交换机103将虚拟机105的路由信息(包括:2001::1,带有1:0的NID:SID属性)按照表3和表4的表格格式发送给脊交换机104,并修改下一跳为自己。接着,电子设备可以将该预设传输路径记录在路由信息库中和预设转发表中。

结合表2,示出了一种更新之后的路由信息库的样式:

表2

结合表3,示出了一种记载NID的扩展表格的样式:

表3

/>

结合表4,示出了一种记载SID的扩展表格的样式:

表4

S1102、电子设备基于预设传输路径,确定预设传输路径对应的预设标识。

示例性的,结合图3,假设虚拟机设备105的地址为2001::1,叶交换机103的入接口具有的第一绑定关系,且绑定的NID:SID为1:0。在这种情况下,电子设备可以将1:0和2001::1作为该条转发路径对应的预设标识。

S1103、电子设备将预设标识输入预设路由表中,生成预设转发表。

可选的,结合表5,示出了一种预设转发表的数据构成。

表5

可选的,当满足第一预设条件时,电子设备判断入接口绑定的预设标识是否与预设转发表中的任一预设标识一致的一种实现方式为:当满足第一预设条件时,电子设备向叶交换机和脊交换机分别发送边界网关协议(border gateway protocol,BGP)更新指令(也可以称为路由通告)。当叶交换机和脊交换机收到BGP更新指令后,电子设备会控制叶交换和脊交换机,根据扩展内容对路由信息库(routing information base,RIB)和预设转发表(forwarding information base,FIB)进行更新。

扩展内容包括:记载NID的扩展表格和记载SID的扩展表格。

在本申请实施例中,电子设备可以通过预先配置好转发规则,并为每个转发规则设置对应的预设标识。从而保证了不需要字节较长的VXLAN报文头,即可完成正确的转发。

在一些实施例中,图12示出了本申请实施例提供的又一种数据转发方法的整体流程图。如图12所示,本申请实施例提供的数据转发方法的整体流程包括:S1201-S1213,S1201-S1213步骤的具体实现过程已在上述实施例进行说明,此处不在赘述。

上述主要从方法的角度对本申请实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

本申请实施例可以根据上述方法示例对数据转发装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

如图13所示,为本申请实施例提供的一种数据转发装置的结构示意图。该数据转发装置可以用于执行图6-图12所示的数据转发的方法。图13所示数据转发装置包括:获取单元1301、确定单元1302。

获取单元1301,用于获取业务报文;确定单元1302,用于基于业务报文的出接口、入接口的属性信息,以及业务报文的报文头的类型,确定业务报文的转发方式。

可选的,确定单元1302,具体用于:在第一预设条件下,根据第一转发方式转发业务报文;其中,第一预设条件包括:入接口具有第一绑定关系、出接口不具有第一绑定关系,且业务报文不包含第一类型报文头;第一转发方式包括:为业务报文添加第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址;第一类型报文头为承载有预设标识的报文头;预设标识包括:网络认证编码NID和安全标识编码SID;第一绑定关系为出接口、入接口与预设标识之间存在的绑定关系。

可选的,确定单元1302,具体用于:在第二预设条件下,根据第二转发方式转发业务报文;其中,第二预设条件包括:入接口不具有第一绑定关系、出接口不具有第一绑定关系,且业务报文包含第一类型报文头;第二转发方式包括:将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一交换机的入接口绑定的MAC地址。

可选的,确定单元1302,具体用于:在第三预设条件下,根据第三转发方式转发业务报文;其中,第二预设条件包括:入接口不具有第一绑定关系、出接口具有第一绑定关系,且业务报文包含第一类型报文头;第三转发方式包括:删除业务报文中包含的第一类型报文头,并将业务报文的发送地址修改为出接口绑定的媒体访问控制MAC地址,将业务报文的接收地址修改为下一虚拟机的入接口绑定的MAC地址。

可选的,确定单元1302还用于:当满足第一预设条件时,判断入接口绑定的预设标识是否与预设转发表中的任一预设标识一致;预设转发表用于记录预先设置的转发规则与预设标识的对应关系;当入接口绑定的预设标识与预设转发表中的任一预设标识不一致时,丢弃业务报文。

可选的,在获取目标交换机中第一接口的接口信息之前,获取单元1301,还用于获取预设传输路径;预设传输路径为预先设定的多个交换机之间的传输信息路径;确定单元1302,基于预设传输路径,确定预设传输路径对应的预设标识;将预设标识输入预设路由表中,生成预设转发表。

本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如上述实施例提供的数据转发方法。

本申请实施例还提供一种计算机程序,该计算机程序可直接加载到存储器中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述实施例提供的数据转发方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 应用于GIS同频同相交流耐压试验的辅助装置和试验系统
  • GIS同频同相交流耐压试验装置可靠性验证系统
技术分类

06120116574305