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

一种报文传输方法、网络虚拟化边缘设备及存储介质

文献发布时间:2024-04-18 19:58:30


一种报文传输方法、网络虚拟化边缘设备及存储介质

技术领域

本申请涉及但不限于计算机领域,尤其涉及一种报文传输方法、第一网络虚拟化边缘设备、第二网络虚拟化边缘设备及计算机可读存储介质。

背景技术

使用通用路由封装的网络虚拟化(Network Virtualization using GenericRouting Encapsulation,NVGRE)是一种采用GRE中的媒体访问控制地址(Media AccessControl Address,MAC)in GRE封装形式的二层虚拟专用网络(Virtual Private Network,VPN)技术。使用NVGRE协议,可以将两个分布在不同地理位置的局域网连通成一个虚拟的大二层局域网。网络虚拟化边缘设备(Network virtualliziton edge,NVE)是NVGRE网络的边缘设备,对NVGRE隧道中传输的业务报文进行封装或解封装;NVGRE协议自身并不具备安全能力。

相关技术中,若要保障NVGRE隧道内部业务报文的传输安全,在传输之前,采用互联网协议安全(Internet Protocol Security,IPsec)技术为业务报文数据进行封装,例如,多封装一个封装安全负载(Encapsulating Security Payload,ESP)头、一个网际互连协议(Internet Protocol,IP)头和一个ESP尾;如此,封装后的报文层次多,进而造成在传输过程中网络开销大的问题。

发明内容

本申请提供了一种报文传输方法、第一网络虚拟边缘设备、第二网络虚拟边缘设备和计算机可读存储介质。

第一方面,提供了一种报文传输方法,包括:

接收与所述第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文,并为所述业务报文组装使用通用路由封装的网络虚拟化NVGRE头,其中,所述NVGRE头包括虚拟子网标识符VSID字段和密钥版本字段;

在所述VSID字段中的VSID和所述密钥版本字段中的密钥版本号共同指示所述业务报文需要加密的情况下,获得满足长度阈值的业务报文,并对所述满足长度阈值的业务报文进行加密,得到加密后的业务报文;

将所述加密后的业务报文发送至第二网络虚拟边缘设备。

第二方面,提供了一种报文传输方法,包括:

接收第一网络虚拟化边缘设备发送的业务报文;其中,所述业务报文具有NVGRE头,所述NVGRE头是所述第一网络虚拟化边缘设备为接收到的任一子网发送的业务报文组装的;

若所述NVGRE头中的标记位字段的第二个比特位的值为1,确定所述业务报文是NVGRE头包括的VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示所述业务报文需要加密的情况下,所述第一网络虚拟化边缘设备对满足长度阈值的业务报文进行加密得到的。

第三方面,提供了一种第一网络虚拟化边缘设备,所述第一网络虚拟化边缘设备包括:

第一接收模块,用于接收与所述第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文;

第一处理模块,用于为所述业务报文组装使用通用路由封装的网络虚拟化NVGRE头,其中,所述NVGRE头包括虚拟子网标识符VSID字段和密钥版本字段;

所述第一处理模块,还用于在所述VSID字段中的VSID和所述密钥版本字段中的密钥版本号共同指示所述业务报文需要加密的情况下,获得满足长度阈值的业务报文,并对所述满足长度阈值的业务报文进行加密,得到加密后的业务报文;

第一发送模块,用于将所述加密后的业务报文发送至第二网络虚拟边缘设备。

第四方面,提供了一种第二网络虚拟化边缘设备,所述第二网络虚拟化边缘设备包括:

第二接收模块,用于接收第一网络虚拟化边缘设备发送的业务报文,其中,所述业务报文具有NVGRE头,所述NVGRE头是所述第一网络虚拟化边缘设备为接收到的任一子网发送的业务报文组装的;

第二处理模块,用于若所述NVGRE头中的标记位字段的第二个比特位的值为1,确定所述业务报文是NVGRE头包括的VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示所述业务报文需要加密的情况下,所述第一网络虚拟化边缘设备对满足长度阈值的业务报文进行加密得到的。

第五方面,提供了一种第一网络虚拟化边缘设备,所述第一网络虚拟化边缘设备包括:第一处理器和第一存储器,该第一存储器用于存储计算机程序,所述第一处理器用于调用并运行所述第一存储器中存储的计算机程序,执行上述报文传输方法。

第六方面,提供了一种第二网络虚拟化边缘设备,所述第二网络虚拟化边缘设备包括:第二处理器和第二存储器,该第二存储器用于存储计算机程序,所述第二处理器用于调用并运行所述第二存储器中存储的计算机程序,执行上述报文传输方法。

第七方面,提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述报文传输方法。

本申请提供一种报文传输方法、第一网络虚拟化边缘设备、第二网络虚拟化边缘设备和计算机可读存储介质,接收与第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文,并为业务报文组装使用通用路由封装的网络虚拟化NVGRE头,其中,NVGRE头包括虚拟子网标识符VSID字段和密钥版本字段;在VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,获得满足长度阈值的业务报文,并对满足长度阈值的业务报文进行加密,得到加密后的业务报文;将加密后的业务报文发送至第二网络虚拟边缘设备。也就是说,第一网络虚拟化边缘设备在接收到业务报文,在业务报文需要加密的情况下,仅对满足长度阈值的业务报文进行加密,并不会额外增加一层或多层报文头或报文尾,如此,减少了封装后的报文层次,在传输过程中降低网络资源的开销;实现了第一网络虚拟边缘设备和第二网络虚拟边缘设备的加密传输。

附图说明

图1为本申请实施例提供的实施报文传输方法的网络架构示意图;

图2为相关技术中NVGRE的报文封装格式的示意图;

图3为相关技术中使用仅加密无HMAC认证的ESP隧道模式封装的方式封装NVGRE的报文封装格式的示意图;

图4为本申请实施例提供的报文传输方法的一个实现流程示意图一;

图5为本申请实施例提供的报文传输方法的一个实现流程示意图二;

图6为本申请实施例提供的NVGRE的报文封装格式的示意图;

图7为本申请实施例提供的第一网络虚拟化边缘设备的结构示意图一;

图8为本申请实施例提供的第一网络虚拟化边缘设备的结构示意图二;

图9为本申请实施例提供的第二网络虚拟化边缘设备的结构示意图一;

图10为本申请实施例提供的第二网络虚拟化边缘设备的结构示意图二。

具体实施方式

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

参见图1,图1为本申请提供的实施报文传输方法的网络架构示意图,该网络架构至少包括第一网络虚拟化边缘设备100、第二网络虚拟化边缘设备200和网络300;其中,第一网络虚拟化边缘设备100和第二网络虚拟化边缘设备200通过网络300连接。网络虚拟化边缘设备是实现网络虚拟化功能的网络实体,能够识别以太网数据帧所属的NVGRE网络、基于NVGRE对数据帧进行二层转发、封装/解封装报文。网络虚拟化边缘设备在封装业务报文时,在业务报文外添加8字节NVGRE头、IP头和数据链路层头。图2是相关技术中NV GRE的报文封装格式的示意图。如图2所示,NVGRE头包括标记位字段、保留字段、版本字段、协议类型字段、虚拟子网标识符(Virtual Subnet Identifier,VSID)字段和流(Flow)ID字段;其中,标记位字段占4比特,第一个比特位为存在校验和(Checksum Present)位,取值恒为0,表示GRE头不携带G RE校验和;第二个比特位未定义;第三个比特位为存在关键字(KeyPresent)位,取值恒为1,表示GRE头中携带VSID;第四个比特位存在序列号(SequenceNumber Present)位,取值恒为0,表示GRE头不携带序列号。保留字段占9比特。版本字段占3比特,该字段用于表征GRE协议版本号。协议类型字段占16比特,该字段用于表征GRE头内封装的载荷数据的协议类型,取值恒为0x6558,表示透明以太网桥接,即GRE头内封装二层以太网数据帧。VSID字段占24比特,该字段用于标识一个NVGRE子网。Flow ID字段占8比特,该字段用于标识一条流。

网络虚拟化边缘设备分布在整个网络300覆盖区域中,可以是静止的,也可以是移动的。网络虚拟化边缘设备包括但不限于智能手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、导航装置、用户终端(User Equipment,UE)、单个的服务器或由多各服务器构成的服务器集群、云计算中心。网络300可以是使用任一通信标准或协议的无线通信网络,包括但不限于全球移动通讯系统(Global System ofMobile communi cation,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址2000(Code Division Multiple Access 2000,CDMA2000)、宽带码分多址(Wide band Code Division Multiple Access,WCDMA)、时分同步码分多址(TimeDivision-Synchronous Code Division Multiple Access,TD-SCDMA)、长期演进(LongTerm Evolution,LTE)、第四代移动通信技术(the 4th Gene ration MobileCommunication Technology,4G)、第五代移动通信技术(5th G eneration MobileCommunication Technology,5G)。

相关技术中,若要保障NVGRE隧道内部业务报文的传输安全,在传输业务报文之前,采用IPsec技术为业务报文数据进行封装,以使用NVGRE over IPSec的方式保障组建的虚拟大二层间数据通信安全。以IPSec中的仅加密无密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code,HMAC)认证的ESP隧道模式的封装方式为例,图3是相关技术中使用仅加密无HMAC认证的ESP隧道模式封装的方式封装NVGRE的报文封装格式的示意图,如图3所示,在NVGRE隧道封装完毕后(即NVGRE封装外层IP头后),再在外面封装一层ESP头和一层IP头,并在尾部封装一个ESP尾。因此,为了让NVGRE隧道具备传输安全的特性,加密封装时最少需要多封装一个ESP头、一个IP头、一个ESP尾。如此,造成报文封装层次多、处理流程长,网络开销大的问题。另外,NVGRE over IPSec封装的方式将NVGRE头也被加密封装起来,由于IPSec隧道是点到点加密隧道,转发设备无法知晓IPSec的密钥。那么,在传输过程中的负载均衡设备、防火墙、路由器等转发设备由于无法知晓NVE的IPSec的密钥而无法提取出NVGRE隧道的VSID,也就无法参与NVGRE网络的选路优选,同时也无法针对NVGRE业务进行有效的流控。并且NVE设备在有提取VSID需求时,只有将整个IPSec报文解密后才能提取出来,无法在报文到达的第一时间便快速地从报文里提取出来,使得NVGRE网络识别效率低下。

参见图4,图4是本申请实施例提供的报文传输方法的一个实现流程示意图,该报文传输方法可以应用于图1所示的网络架构;该报文传输方法包括如下步骤:

步骤401、第一网络虚拟化边缘设备接收与第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文。

本申请实施例中,针对连接到第二层交换机端口或第三层交换机端口的设备会被逻辑分段,即划分不同的子网。第一网络虚拟边缘设备接收与之连接的多个子网中任一子网中的设备发送的业务报文。这里,业务报文又称业务载荷或原始二层数据帧。

步骤402、第一网络虚拟化边缘设备为业务报文组装NVGRE头。

其中,NVGRE头包括VSID字段和密钥版本字段。

本申请实施例中,第一网络虚拟化边缘设备接收到业务报文后,第一网络虚拟化边缘设备查询MAC表,识别业务报文所属的子网,并记录业务报文所属的子网的VSID。进一步的,第一网络虚拟化边缘设备将业务报文送入NVGRE的封装流程。NVGRE封装模块为业务报文组装NVGRE头。

步骤403、在VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,第一网络虚拟化边缘设备获得满足长度阈值的业务报文。

本申请实施例中,VSID指示业务报文需要加密可以是通过VSID能够索引到业务报文所属子网的密钥信息;即本申请复用了VSID,通过VSID既可以指示业务报文所属的子网,又可以索引业务报文所属子网的密钥信息。

本申请其他实施例中,在业务报文需要加密的情况下,NVGRE封装模块为业务报文组装NVGRE头至少包括标记位字段、密钥版本字段、版本字段、协议类型字段、VSID字段、流ID字段;其中,标记位字段中的第二个比特位用于指示报文是否已加密。

在一些实施例中,在VSID字段中的VSID未关联相应的密钥信息的情况下,封装模块为业务报文组装NVGRE头包括标记位字段、保留字段、版本字段、协议类型字段、VSID字段、流ID字段;其中,标记位字段中的第二个比特位取值为0。

本申请实施例中,满足长度阈值的业务报文包括任一子网发送的业务报文在满足长度阈值的情况下的原始报文,或者,任一子网发送的业务报文在不满足长度阈值的情况下,对原始报文进行填充得到的满足长度阈值的业务报文。

本申请实施例中,步骤402可以在步骤403之前执行,即第一网络虚拟化边缘设备可以先给业务报文封装一个NVGRE头,在业务报文需要加密的情况下后,在对NVGRE头进行调整;当然,步骤402可以在步骤403之后执行,即在业务报文需要加密的情况下后,在为业务报文组装NVGRE头;对此,本申请不进行具体限定。

步骤404、第一网络虚拟化边缘设备对满足长度阈值的业务报文进行加密,得到加密后的业务报文。

本申请实施例中,第一网络虚拟化边缘设备采用加密算法对满足长度阈值的业务报文进行加密,得到加密后的业务报文。这里,加密算法包括对称加密算法、非对称加密算法。

在一些实施例中,当NVGRE头中标识位中的第二个比特位的取值为1时,使用加密技术对业务报文进行加密封装。

步骤405、第一网络虚拟化边缘设备将加密后的业务报文发送至第二网络虚拟边缘设备。

本申请实施例中,在业务报文加密完成后,第一网络虚拟化边缘设备为加密后的业务报文封装外层IP头与外层二层头,将封装后的报文给第二网络虚拟化边缘设备。

在一些实施例中,在VSID字段中的VSID未关联相应的密钥信息的情况下,第一网络虚拟化边缘设备以明文方式发送业务报文,或阻塞等待密钥信息的到来,或直接丢弃业务报文。

步骤406、第二网络虚拟边缘设备接收第一网络虚拟化边缘设备发送的业务报文。

其中,业务报文具有NVGRE头,NVGRE头是第一网络虚拟化边缘设备为接收到的任一子网发送的业务报文组装的。

步骤407、若NVGRE头中的标记位字段的第二个比特位的值为1,第二网络虚拟边缘设备确定业务报文是NVGRE头包括的VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,第一网络虚拟化边缘设备对满足长度阈值的业务报文进行加密得到的。

本申请实施例中,第二网络虚拟边缘设备接收到业务报文后,对业务报文进行校验,并在业务报文校验通过后,解封装模块剥离外层二层头和外层IP头。进一步的,第二网络虚拟边缘设备对NVGRE隧道进行校验,在NVGRE隧道校验通过后解封装模块剥离NVGRE头中的字段,例如,标记位字段、版本字段、VSID字段、协议类型字段。

本申请实施例中,NVGRE隧道为两个NVE之间的点到点逻辑隧道。NVE为数据帧封装NVGRE头和IP头后,通过NVGRE隧道透明地将封装后的报文转发给远端NVE,远端NVE对其进行解封装。

这里,若标记位字段的第二个比特位的值为1,则业务报文为已加密的业务报文;若标记位字段的第二个比特位的值为0,则业务报文为未加密的业务报文。这里,本申请利用相关技术中的NVGRE头标记位字段中未定义的第二个比特位,采用第二个比特位的值指示业务报文是否加密。也就是说,本申请在通知第二网络虚拟边缘设备业务报文是否加密时,借助已有NVGRE头实现,不会引入额外开销。

本申请实施例提供一种报文传输方法,接收与第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文,并为业务报文组装使用通用路由封装的网络虚拟化NVGRE头,其中,NVGRE头包括虚拟子网标识符VSID字段和密钥版本字段;在VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,获得满足长度阈值的业务报文,并对满足长度阈值的业务报文进行加密,得到加密后的业务报文;将加密后的业务报文发送至第二网络虚拟边缘设备。也就是说,第一网络虚拟化边缘设备在接收到业务报文,若业务报文需要加密的情况下,仅对满足长度阈值的业务报文进行加密,并不会额外增加一层或多层报文头或报文尾,如此,减少了封装后的报文层次,在传输过程中降低网络资源的开销;实现了第一网络虚拟边缘设备和第二网络虚拟边缘设备的加密传输,网络虚拟边缘设备对应的内网之间所交互的数据不会明文暴露在公网上;保障了传输过程中的安全。同时,本申请的加密方式不会将NVGRE头也被加密封装起来,如此,在传输过程中的负载均衡设备、防火墙、路由器等转发设备由于可以提取出NVGRE头的VSID,使得转发设备可以参与NVGRE网络的选路优选,转发设备可以针对NVGRE业务进行有效的流控。并且NVE设备在有提取VSID需求时,无需将整个报文解密后提取出来VSID,在报文到达的第一时间无需将整个报文解密,便可以快速地提取出来VSID使得NVGRE网络识别效率高。

参见图5,图5是本申请实施例提供的报文传输方法的一个实现流程示意图,该报文传输方法可以应用于图1所示的网络架构;该报文传输方法包括如下步骤:

步骤501、第一网络虚拟化边缘设备接收与第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文。

步骤502、第一网络虚拟化边缘设备为业务报文组装NVGRE头。

其中,NVGRE头包括虚拟子网标识符VSID字段和密钥版本字段。

步骤503、在VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,第一网络虚拟化边缘设备确定VSID索引到的业务报文的密钥信息。

其中,密钥信息包括加密算法的分块长度。

本申请实施例中,加解密业务报文所使用的密钥信息(即对业务报文进行加解密的加密算法所使用的密钥信息)由VSID标记,VSID同时复用为索引密钥的ID。同一张NVGRE子网(即具有相同VSID的NVGRE网络)使用相同的密钥信息。密钥不区分方向,同一张NVGRE子网中所有NVE加密所使用的密钥与解密所使用的密钥完全相同。

本申请实施例中,VSID不仅用于标记一个NVGRE子网,还用于索引这张NVGRE子网所使用的密钥信息。

本申请实施例中,第一网络虚拟化边缘设备中的封装模块使用VSID索引业务报文所属子网的密钥信息。也就是说,本申请复用了VSID,通过VSID既可以指示业务报文所属的子网,又可以索引业务报文所属子网的密钥信息。

本申请实施例中,各网络虚拟边缘设备中的密钥信息通过集中分发的方式分发,可以是以静态配置的方式为各网络虚拟边缘设备分发,也可以通过密钥管理平台动态向各网络虚拟边缘设备分发。各网络虚拟边缘设备获得的密钥信息完全相同。不同轮次密钥分发使用的密钥版本号需要有所区分。

步骤504、第一网络虚拟化边缘设备基于分块长度,获得满足长度阈值的业务报文。

本申请实施例中,在业务报文需要加密的情况下,封装模块从密钥信息提取具体的对称加密算法,以及该对称加密算法的分块长度。进一步的,根据分块长度,获得满足长度阈值的业务报文。

需要说明的是,封装模块还可以从密钥信息里提取密钥版本号、是否是密码块链模式(Cipher Block Chaining,CBC)或计数器模式(CounTeR,CTR)或输出反馈模式(Output-Feedback,OFB)或密文反馈模式(Cipher FeedBack,CFB)。

示例性的,当任一子网发送的原始业务报文的长度是分块长度的整数倍,则满足长度阈值的业务报文为任一子网发送的原始业务报文;当任一子网发送的原始业务报文的长度不是分块长度的整数倍,则满足长度阈值的业务报文为对原始业务报文进行填充得到的业务报文。也就是说,满足长度阈值的业务报文的长度大于或等于任一子网发送的原始业务报文的长度。

示例性的,当任一子网发送的原始业务报文的长度等于分块长度,则满足长度阈值的业务报文为任一子网发送的原始业务报文;当任一子网发送的原始业务报文的长度不等于分块长度,则满足长度阈值的业务报文为对原始业务报文进行填充得到的业务报文。

本申请实施例中,步骤504基于分块长度,获得满足长度阈值的业务报文,可以通过如下步骤实现:

步骤A1、获得业务报文的第一长度。

步骤A2、若第一长度除以分块长度所得的第一余数不为0,获得填充数据长度值与填充数据。

本申请实施例中,若第一长度除以分块长度所得的第一余数不为1,获得填充数据长度值与填充数据;即任一子网发送的原始业务报文不是分块长度的整数倍,那么任一子网发送的原始业务报文不为满足长度阈值的业务报文,需要获得填充数据长度值与填充数据,将填充数据填充至任一子网发送的原始业务报文中得到满足长度阈值的业务报文。若第一长度除以分块长度所得的第一余数为0,无需获得填充数据;即任一子网发送的原始业务报文是分块长度的整数倍,那么任一子网发送的原始业务报文为满足长度阈值的业务报文。

在一些实施例中,图6是本申请中NVGRE的报文封装格式的示意图。如图6所示,NVGRE头包括填充数据长度字段和填充数据字段。填充数据长度字段和填充数据字段相结合对业务报文进行长度填充,其目的是保障被加解密的业务报文长度是加密算法分块长度的整数倍。其中,填充数据长度字段字段占用一个字节,取值为0x0至0xF。填充数据字段是一个可变长度字段。在业务报文需要加密的情况下,且第一长度除以分块长度所得的第一余数不为0时,向填充数据字段填充数据,向填充数据长度字段填充数据长度值。填充数据字段填充的数据的长度与填充数据长度字段指示的长度相同。这里,填充数据为填充数据字段中的填充数据和填充数据长度字段中的长度数据。

需要说明的是,图6中的填充数据字段是可选的。若第一长度除以分块长度所得的第一余数为0,填充数据字段不存在,填充数据长度字段取值为0x0。

本申请实施例中,NVGRE头包括填充字段,步骤A2中的获得填充数据,可以通过如下步骤实现:

步骤B1、确定长度指示信息和起始位置指示信息。

其中,长度指示信息用于指示填充至业务报文中的填充数据的长度;起始位置指示信息用于指示填充数据在填充字段中的起始位置。

需要说明的是,长度指示信息包括填充数据长度字段中的长度加上填充数据长度值。

步骤B2、根据长度指示信息和起始位置指示信息,从填充字段获得填充数据。

本申请实施例中,确定长度指示信息和起始位置指示信息后,第一网络虚拟化边缘设备以起始位置指示信息指示的起始位置,以长度指示信息指示的长度,从填充字段获取填充数据。这里,填充字段中的填充数据可以是预先填充好的,只要保证预先在填充字段填充大于分块长度的数据,第一网络虚拟化边缘设备就可以在填充字段获取到所需的填充数据。

在一些实施例中,填充字段包括填充数据长度字段和填充数据字段;填充数据长度值用于指示填充数据字段中数据的长度。

步骤A3、将填充数据填充至业务报文中,得到满足长度阈值的业务报文。

需要说明的是,如图6所示,满足长度阈值的业务报文是将填充数据字段中的填充数据和填充数据长度字段中的长度数据填充至业务报文所得到的数据。

步骤505、第一网络虚拟化边缘设备用密钥对满足长度阈值的业务报文进行加密,得到加密后的业务报文。

本申请实施例中,密钥包括加密密钥和解密密钥。这里,第一网络虚拟化边缘设备用加密密钥对满足长度阈值的业务报文进行加密,得到加密后的业务报文。

本申请实施例中,密钥信息还包括加密算法的分组模式,步骤505用密钥对满足长度阈值的业务报文进行加密,得到加密后的业务报文,可以通过如下步骤实现:

步骤C1、若分组模式为第一类分组模式,从NVGRE头包括初始化向量IV字段中获取IV数据。

本申请实施例中,第一类分组模式的加密算法包括但不限于CBC、CTR、OFB和CFB。

本申请实施例中,若分组模式为第一类分组模式例如CBC/CTR/OFB/CFB模式,封装模块填充NVGRE头中的IV字段。

如图6所示,NVGRE头包括IV字段,用以存放第一类分组模式的对称加密算法所需的IV,其长度与加密算法分块长度相等。IV字段可选,当使用的加密算法的分组模式为第一类分组模式时,应含有此字段。当使用的加密算法的分组模式为第二类分组模式时,不含有此字段,即封装模块无需填充NVGRE头中的IV字段。其中,第二类分组模式的加密算法包括但不限于电码本(Electronic Codebook,ECB)。

本申请实施例中,IV数据用于辅助第一类分组模式的加密算法进行加密的;即第一类分组模式的加密算法在进行加密报文时,需要拿到IV数据才能进行加密,若没有IV数据,则无法加密报文。

步骤C2、基于IV数据和密钥,对满足长度阈值的业务报文中的每一分块数据进行加密运算,得到加密后的业务报文。

步骤506、第一网络虚拟化边缘设备将NVGRE头中的标记位字段中的第二个比特位定义为加密标记位。

其中,加密标记位取值为1时指示业务报文已加密,加密标记位取值为0时指示业务报文未加密。

本申请实施例中,如图6所示,第一网络虚拟化边缘设备将NVGRE头中的标记位字段中的第二个比特位601定义为加密标记位。

在一些实施例中,步骤506可以执行在步骤503之前,即在步骤502中为业务报文组装NVGRE头时,直接将NVGRE头中标记位字段中的第二个比特位的值设置为1,那么第一网络虚拟化边缘设备直接使用加密技术对业务报文进行加密封装,无需采用VSID指示业务报文是否需要加密。在加密时,直接采用VSID索引到的密钥信息对业务报文进行处理。

步骤507、第一网络虚拟化边缘设备在NVGRE头包括密钥版本字段添加密钥版本号。

如图6所示,本申请NVGRE头包括密钥版本字段。需要说明的是,密钥版本字段是复用了相关技术中NVGRE头中的保留字段。本申请将相关技术中的NVGRE头中第5至13比特这9比特的保留字段使用起来,取名为密钥版本字段,用于标记同一张NVGRE子网(即具有相同VSID的NVGRE网络)的密钥版本。密钥具有有效期,当NVGRE子网发生换钥后,密钥版本也随之变化。密钥版本字段用于解决换钥密钥对齐问题。

需要说明的是,每经过一轮密钥信息分发,密钥版本号也会随之变化。同一轮分发的密钥信息,各NVE得到的密钥版本号相同。

本申请实施例中,在业务报文需要加密、且业务报文的第一长度除以分块长度所得的第一余数不为0、且加密算法的分组模式为第一类分组模式的情况下,业务报文的NVGRE头包括标记位字段、密钥版本字段、版本字段、协议类型字段、VSID字段、流ID字段、IV字段、填充数据长度字段和填充数据字段;其中,标记位字段的第二个比特位用于指示业务报文是否加密;在业务报文需要加密、且业务报文的第一长度除以分块长度所得的第一余数不为0的情况下,业务报文的NVGRE头包括标记位字段、密钥版本字段、版本字段、协议类型字段、VSID字段、流ID字段、填充数据长度字段和填充数据字段;其中,标记位字段的第二个比特位用于指示业务报文是否加密;或在业务报文的第一长度除以分块长度所得的第一余数为0的情况下,业务报文的NVGRE头包括标记位字段、密钥版本字段、版本字段、协议类型字段、VSID字段、流ID字段和填充数据长度字段;其中,标记位字段的第二个比特位用于指示业务报文是否加密。也就是说,本申请扩充NVGRE头。

本申请实施例中,在VSID字段中的VSID未关联相应的密钥信息时,业务报文的NVGRE头包括标记位字段、保留字段、版本字段、协议类型字段、VSID字段、流ID字段。明显,本申请提出的改造后的NVGRE协议兼容标准NVGRE协议,可与标准NVGRE的NVE对通,在与标准NVGRE的NVE对通时,不设置NVGRE头中第二个标识位,不设置密钥版本字段,不封装IV字段,不封装填充数据长度字段,不封装填充数据字段,不对业务载荷进行加密封装。

步骤508、第一网络虚拟化边缘设备将加密后的业务报文发送至第二网络虚拟边缘设备。

步骤509、第二网络虚拟边缘设备接收第一网络虚拟化边缘设备发送的业务报文。

其中,业务报文具有NVGRE头,NVGRE头是第一网络虚拟化边缘设备为接收到的任一子网发送的业务报文组装的。

步骤510、若NVGRE头中的标记位字段的第二个比特位的值为1,第二网络虚拟边缘设备确定业务报文是NVGRE头包括的VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,第一网络虚拟化边缘设备对满足长度阈值的业务报文进行加密得到的。

本申请实施例中,第二网络虚拟边缘设备解封装模块检查NVGRE头中第二个标识位第二个比特位的值是否为1;若未置1,即不为加密值,则按需以接受明文业务报文的方式直接将业务报文发送至后端内网里的业务终端,或丢弃业务报文。

步骤511、第二网络虚拟边缘设备获取NVGRE头中的密钥版本字段中的密钥版本号。

步骤512、第二网络虚拟边缘设备基于VSID和密钥版本号,确定业务报文的密钥信息。

本申请实施例中,第二网络虚拟边缘设备解封装模块使用VSID与密钥版本号联合索引业务报文所属子网对应的密钥信息。

步骤513、第二网络虚拟边缘设备基于密钥信息,对业务报文进行解密,得到解密后的业务报文。

本申请实施例中,第二网络虚拟边缘设备解封装模块从密钥信息里获取第一网络虚拟化边缘设备在加密业务报文时,采用的具体的对称加密算法、分块长度、是否是CBC/CTR/OFB/CFB模式信息。

本申请实施例中,第二网络虚拟边缘设备解封装模块依据密钥信息对业务报文进行解密,并剥离填充数据。解密完成后,第二网络虚拟边缘设备便得到了对端第一网络虚拟边缘设备发来的原始业务报文。第二网络虚拟边缘设备将解封装后的原始业务报文转发给后端内网中的业务终端。

本申实施例中,密钥信息包括第一网络虚拟化边缘设备在加密业务报文时,所采用的加密算法的分组模式、密钥、分块长度和IV数据;步骤513中基于密钥信息,对业务报文进行解密,得到解密后的业务报文,可以通过如下步骤实现:

基于分组模式、密钥、分块长度和IV数据,对业务报文进行解密,得到解密后的业务报文。

本申请实施例中,当NVGRE头中标记为字段中的第二比特位的取值为1时,并且使用的加密算法为第一模式时,NVGRE头含有IV字段。

本申请实施例中,当NVGRE头中标记为字段中的第二比特位的取值为1时,NVGRE头含有填充数据长度字段。

本申请实施例中,当NVGRE头中标记为字段中的第二比特位的取值为1时,并且业务报文长度不足分块长度整数倍时或填充数据长度字段取值不为0时,NVGRE头含有填充数据字段。

需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。

本申请的实施例提供一种第一网络虚拟边缘设备,该第一网络虚拟边缘设备可以用于实现图4至图5对应的实施例提供的报文传输方法,参照图7所示,该第一网络虚拟边缘设备100包括:

第一接收模块701,用于接收与第一网络虚拟边缘设备连接的多个子网中任一子网发送的业务报文;

第一处理模块702,用于为业务报文组装使用通用路由封装的网络虚拟化NVGRE头,其中,NVGRE头包括虚拟子网标识符VSID字段和密钥版本字段;

第一处理模块702,还用于在VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,获得满足长度阈值的业务报文,并对满足长度阈值的业务报文进行加密,得到加密后的业务报文;

第一发送模块703,用于将加密后的业务报文发送至第二网络虚拟边缘设备。

本申请其他实施例中,第一处理模块702,用于确定VSID索引到的业务报文的密钥信息;密钥信息包括加密算法的分块长度;基于分块长度,获得满足长度阈值的业务报文。

本申请其他实施例中,第一处理模块702,用于获得业务报文的第一长度;若第一长度除以分块长度所得的第一余数不为1,获得填充数据长度值与填充数据;将填充数据填充至业务报文中,得到满足长度阈值的业务报文。

本申请其他实施例中,第一处理模块702,用于用密钥对满足长度阈值的业务报文进行加密,得到加密后的业务报文;密钥信息包括密钥。

本申请其他实施例中,第一处理模块702,用于确定长度指示信息和起始位置指示信息;长度指示信息用于指示填充至业务报文中的填充数据的长度;起始位置指示信息用于用于指示填充数据在填充字段中的起始位置;根据长度指示信息和起始位置指示信息,从NVGRE头还包括填充字段获得填充数据。

本申请其他实施例中,第一处理模块702,用于若分组模式为第一类分组模式,从NVGRE头包括初始化向量IV字段中获取IV数据;其中,密钥信息还包括加密算法的分组模式;基于IV数据和密钥,对满足长度阈值的业务报文中的每一分块数据进行加密运算,得到加密后的业务报文。

本申请其他实施例中,第一处理模块702,用于将NVGRE头中的标记位字段中的第二个比特位定义为加密标记位;其中,加密标记位取值为1时指示业务报文已加密,加密标记位取值为0时指示业务报文未加密。

本申请其他实施例中,第一处理模块702,用于在密钥版本字段添加密钥版本号,以使第二网络虚拟化边缘设备在解密加密后的业务报文时,基于密钥版本号和加密后的业务报文对应的VSID,确定出第一网络虚拟化边缘设备在加密业务报文时所采用的加密算法的分组模式、密钥和分块长度和IV数据。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的测试数据生成方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本申请各个实施例方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

本申请的实施例提供一种第一网络虚拟边缘设备,该第一网络虚拟边缘设备可以应用于图4至图5对应的实施例提供的一种报文传输方法中,参照图8所示,该第一网络虚拟边缘设备100包括:第一处理器801、第一存储器802和第一通信总线803,其中:第一通信总线803用于实现第一处理器801和第一存储器802之间的通信连接。

第一处理器801用于执行第一存储器802中存储的解锁程序,以实现如图4至图5对应的实施例提供的一种报文传输方法。

本申请的实施例提供一种第二网络虚拟边缘设备,该第二网络虚拟边缘设备可以用于实现图4至图5对应的实施例提供的报文传输方法,参照图9所示,该第二网络虚拟边缘设备200包括:

第二接收模块901,用于接收第一网络虚拟化边缘设备发送的业务报文,其中,业务报文具有NVGRE头,NVGRE头是第一网络虚拟化边缘设备为接收到的任一子网发送的业务报文组装的;

第二处理模块902,用于若NVGRE头中的标记位字段的第二个比特位的值为1,确定业务报文是NVGRE头包括的VSID字段中的VSID和密钥版本字段中的密钥版本号共同指示业务报文需要加密的情况下,第一网络虚拟化边缘设备对满足长度阈值的业务报文进行加密得到的。

本申请其他实施例中,第二处理模块902,用于获取NVGRE头中的密钥版本字段中的密钥版本号;

第二处理模块902,还用于基于VSID和密钥版本号,确定业务报文的密钥信息;

第二处理模块902,还用于基于密钥信息,对业务报文进行解密,得到解密后的业务报文。

本申请其他实施例中,密钥信息包括第一网络虚拟化边缘设备在加密业务报文时,所采用的加密算法的分组模式、密钥、分块长度和IV数据。

本申请其他实施例中,第二处理模块902,用于基于分组模式、密钥、分块长度和IV数据,对业务报文进行解密,得到解密后的业务报文。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的测试数据生成方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备执行本申请各个实施例方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、ROM、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

本申请的实施例提供一种第二网络虚拟边缘设备,该第二网络虚拟边缘设备可以应用于图4至图5对应的实施例提供的一种报文传输方法中,参照图10所示,该第二网络虚拟边缘设备200包括:第二处理器1001、第二存储器1002和第二通信总线1003,其中:第二通信总线1003用于实现第二处理器1001和第二存储器1002之间的通信连接。

第二处理器1001用于执行第二存储器1002中存储的解锁程序,以实现如图4至图5对应的实施例提供的一种报文传输方法。

本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序可被一个或者多个处理器执行,以实现如图4至图5对应的实施例提供的报文传输方法。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

上述计算机可读存储介质可以是ROM、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random AccessMemory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CompactDisc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”或“本申请实施例”或“前述实施例”或“一些实施例”或“一些实施方式”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”或“本申请实施例”或“前述实施例”或“一些实施例”或“一些实施方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所描述的方法。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机应用产品的流程图和/或方框图来描述的。应理解可由计算机应用指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机应用指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机应用指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机应用指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

相关技术
  • 传输报文的方法、代理服务器和计算机可读存储介质
  • 一种数据传输方法、设备及计算机可读存储介质
  • 一种信号传输方法、装置、电子设备以及计算机可读存储介质
  • 一种业务传输方法、设备及计算机可读存储介质
  • 一种业务传输方法、设备及计算机可读存储介质
  • 一种报文传输方法、报文传输装置、电子设备及存储介质
  • 一种报文数据的传输方法、装置、电子设备及存储介质
技术分类

06120116498645