一种传输方法及装置与流程

文档序号:11959534阅读:204来源:国知局
一种传输方法及装置与流程

本发明涉及网络通信技术领域,尤其涉及一种传输方法及装置。



背景技术:

虚拟可扩展局域网(Virtual Extensible Local Area Network,VXLAN)技术是基于因特网协议(Internet Protocol,IP)网络、采用“用户数据报协议(User Datagram Protocol,UDP)中的媒体访问控制(Media Access Control)”(“MAC in UDP”)封装形式的二层虚拟专用网(Virtual Private Network,VPN)技术。

VXLAN中包括多个VXLAN隧道端点(VXLAN Tunnel End Point,VTEP)。VTEP之间可以建立VXLAN隧道以进行二者之间用户数据报文的交互。如果需要VTEP之间经由VXLAN隧道进行用户数据报文的加密传输,除了在待建立的VXLAN隧道的两端VTEP上分别配置隧道源IP地址和目的IP地址以便进行隧道建立之外,还需要分别配置用于加密传输的加密机制,配置工作量大,尤其VXLAN中VTEP数目非常大的情况下,这种静态配置方式的工作量更是巨大,不利于网络部署。



技术实现要素:

有鉴于此,本发明提供一种传输方法及装置,以便优化VXLAN部署。

具体地,本发明是通过如下技术方案实现的:

根据本发明实施例的第一方面,提供一种传输方法,用于虚拟可扩展局域网VXLAN中的第一虚拟可扩展局域网隧道端点VTEP,包括:

根据所述第一VTEP的第一加密能力集和VXLAN中的第二VTEP的第 二加密能力集,确定所述第一VTEP与所述第二VTEP之间的VXLAN隧道对应的第一加密机制,其中,所述第一加密能力集包括所述第一VTEP支持的加密机制信息集合,所述第二加密能力集包括所述第二VTEP支持的加密机制信息集合;

采用所述第一加密机制,将待发送给所述第二VTEP的第一用户数据报文加密后,得到第一加密报文,并将所述第一加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP;

接收所述第二VTEP经由已经建立的所述VXLAN隧道传输的第二加密报文,并采用所述第一加密机制,将所述第二加密报文解密后得到第二用户数据报文。

根据本发明实施例的第二方面,提供另一种传输装置,用于虚拟可扩展局域网VXLAN中的第一虚拟可扩展局域网隧道端点VTEP,包括:

确定单元,用于根据所述第一VTEP的第一加密能力集和VXLAN中的第二VTEP的第二加密能力集,确定所述第一VTEP与所述第二VTEP之间的VXLAN隧道对应的第一加密机制,其中,所述第一加密能力集包括所述第一VTEP支持的加密机制信息集合,所述第二加密能力集包括所述第二VTEP支持的加密机制信息集合;

加密及传输单元,用于采用所述第一加密机制,将待发送给所述第二VTEP的第一用户数据报文加密后,得到第一加密报文,并将所述第一加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP;

接收及解密单元,用于接收所述第二VTEP经由已经建立的所述VXLAN隧道传输的第二加密报文,并采用所述第一加密机制,将所述第二加密报文解密后得到第二用户数据报文。

应用上述实施例,不需要针对每个VXLAN隧道进行隧道报文传输所需资源的配置,使得配置工作量大为减少,从而减少了网络规模部署的难度,优化了网络部署。

附图说明

图1是本发明一种应用场景的示意图;

图2是本发明传输方法的一个实施例流程图;

图3是本发明所应用的扩展的ENDP注册请求/应答报文的报文格式示意图;

图4是本发明传输方法的另一个实施例流程图;

图5是本发明传输装置所在设备的一种硬件结构图;

图6是本发明传输装置的一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参照图1所示的应用场景,VXLAN中部署了3个VTEP——VTEP1、VTEP2和VTEP3,两两之间待建立3条VXLAN隧道:隧道A、隧道B和隧道C。如果采用静态配置方式,在每个隧道的两端VTEP上分别配置用于加密传输的加密机制,需要在每个VTEP上针对两条隧道分别进行配置,需要6份配置工作量,依此类推,在VTEP数目较多的情况下,配置起来过于繁琐,工作量大,网络部署不方便。进一步地,如果后续网络规模扩大,就需要对待建立的新的VXLAN隧道的两端设备上进行配置,于是又会增加配置工作量。仍参见图1,新增了VTEP4,待建立隧道D、隧道E和隧道F这3条隧道,需要在VTEP1~VTEP3上各增加1份配置工作量,增加VTEP4上的3份配置工作量,即又需要增加6份配置工作量。这样,VTEP越多,配置就会越复杂,网络可扩展性差。

为了优化网络部署,本发明设计了一种动态灵活的方式,使VTEP能够自动得到用户数据报文经由隧道传输的加密机制,并据此进行用户数据报文经由隧道的传输。下面结合第一VTEP和第二VTEP对这种动态灵活的方式进行详细介绍,其中第一VTEP和第二VTEP可以是VXLAN中的任意两个VTEP,例如,分别为图1中示出的VTEP1和VTEP2,用户数据报文经由两者之间建立的隧道传输。

图2是本发明传输方法的一个实施例流程图,参照图2,本实施例中的传输方法用于虚拟可扩展局域网VXLAN中的第一虚拟可扩展局域网隧道端点VTEP,包括如下步骤:

步骤S201,根据所述第一VTEP的第一加密能力集和VXLAN中的第二VTEP的第二加密能力集,确定所述第一VTEP与所述第二VTEP之间的VXLAN隧道对应的第一加密机制,其中,所述第一加密能力集包括所述第一VTEP支持的加密机制信息集合,所述第二加密能力集包括所述第二VTEP支持的加密机制信息集合。

本实施例中,第一加密能力集和第二加密能力集可以分别预先配置给第一VTEP和第二VTEP。第一VTEP和第二VTEP可以通过增强邻居发现 协议(Enhanced Neighbor Discovery Protocol,ENDP)来交互各自配置的加密能力集。下面对二者交互各自加密能力集的方式做具体说明。

VXLAN中,VTEP可以作为ENDP客户端(ENDP Client,ENDC)或ENDP服务器(ENDP Server,ENDS)。作为ENDC的VTEP向作为ENDS的VTEP发送ENDP注册请求报文,以注册自身网络地址(如IP地址);作为ENDS的VTEP向每个作为ENDC的VTEP发送ENDP注册应答报文,以便将VXLAN内所有VTEP注册的网络地址通告给每个作为ENDC的VTEP。VTEP之间通过该交互过程可以获得彼此注册的网络地址并据此进行VXLAN隧道的建立。

第一VTEP和第二VTEP可以均作为ENDC,由另外的第三VTEP(例如图1中示出的VTEP3)作为ENDS;或者,第一VTEP和第二VTEP中可以一个作为ENDC,另一个作为ENDS。通过对ENDP注册请求/应答报文进行扩展,在报文的扩展部分添加加密能力集信息,就能实现第一VTEP与第二VTEP之间加密能力集的交互。例如:

对于第一VTEP和第二VTEP均作为ENDC的情况,第一VTEP和第二VTEP可以分别将第一加密能力集和第二加密能力集携带在ENDP注册请求报文中发送给第三VTEP,由第三VTEP将第一加密能力集、第二加密能力集和自身预先配置的加密能力集携带在ENDP注册应答报文中发送给第一VTEP和第二VTEP;

或者,对于第一VTEP和第二VTEP中一个作为ENDC,另一个作为ENDS的情况,作为ENDC的VTEP可以将自身加密能力集携带在ENDP注册请求报文中发送给作为ENDS的VTEP,作为ENDS的VTEP可以将作为ENDC的VTEP注册的加密能力集和自身的加密能力集携带在ENDP注册应答报文中发送给作为ENDC的VTEP。

获得了自身以及第二VTEP的加密能力集后,第一VTEP就能够确定到第二VTEP的VXLAN隧道对应的加密机制。所述第一加密机制可以包括加密算法的名称和密钥等,其中,对于非对称加密算法,密钥可以包括公钥和 私钥;对于对称加密算法,密钥可以包括对称密钥。非对称加密类型的加密算法例如RSA算法、Elgamal算法或背包算法等;对称加密类型的加密算法例如数据加密标准(Data Encryption Standard,DES)算法、河豚(Blowfish)算法或高级加密标准(Advanced Encryption Standard,AES)算法等。其中,RSA由一起提出RSA算法的罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)的姓氏开头字母拼在一起组成。

由于用户数据报文经由VXLAN隧道到第二VTEP的加密传输涉及到第一VTEP的加密处理和第二VTEP的解密处理,二者必须相互配合,才能实现用户数据报文的成功传输,因此,需要保证第一VTEP和第二VTEP双方所采用加密机制的一致性。由此,可以根据第一VTEP和第二VTEP分别支持的加密机制信息集合,将第一VTEP和第二VTEP支持的相同加密机制确定为二者之间VXLAN隧道传输所采用的加密机制。当第一VTEP和第二VTEP支持的相同加密机制不只一个时,为了保证二者所采用加密机制的一致性,二者可以分别按照同一种选择方式来从这些相同加密机制中选择出一个作为所采用的加密机制,且这种选择方式必须确保二者分别选择出来的是同一个加密机制。例如,VXLAN中所有VTEP中可以均配置有VXLAN中所有加密机制各自的唯一序号,则这种选择方式可以是相同序号的加密机制,如选择序号最小的加密机制,或者选择序号最大的加密机制。

其中,加密机制信息可以包括加密算法的名称和密钥,则VTEP支持的加密机制信息集合也就是VTEP支持的加密机制集合,第一VTEP和第二VTEP支持的相同加密机制也就是第一VTEP和第二VTEP分别支持的加密机制集合中相同的加密机制。

或者,加密机制信息可以包括加密算法的名称,VXLAN中各个VTEP均可以预置有加密算法名称与密钥的对应关系表T1,则第一VTEP通过查表T1就能获得加密机制信息中加密算法名称所对应的密钥,从而获得了第二加密机制信息集合中每个元素所对应的加密机制(即加密算法的名称和密钥), 从而也就获得了第二加密机制信息集合所对应的加密机制集合,也就是第二VTEP支持的加密机制集合。由此,第一VTEP结合自身支持的加密机制集合(与第一加密机制信息集合对应),就确定了第一VTEP和第二VTEP支持的相同加密机制。

或者,加密机制信息可以包括加密算法的索引值,例如0~7中的某个数字。VXLAN中各个VTEP均可以预置有加密算法名称与密钥的对应关系表T1,还可以预置有加密算法的索引值与名称的对应关系表T2,则第一VTEP通过查找表T2就能获得相应的加密算法名称,再查找表T1就能获得相应的密钥,由此获得第一VTEP支持的加密机制集合,再结合第一VTEP自身支持的加密机制集合和选择策略,就确定了第一VTEP和第二VTEP支持的相同加密机制。

第二VTEP根据第一VTEP和第二VTEP分别支持的加密机制信息集合确定第一VTEP和第二VTEP支持的相同加密机制的方式与第一VTEP类似,在此不再赘述。由于第一VTEP和第二VTEP都依据第一加密机制信息集合和第二加密机制信息集合,又维护了相同的相应对应关系表,因此所确定的相同加密机制也是一样的。

需要说明的是,步骤S201对应于第一VTEP确定第一VTEP和第二VTEP分别支持的加密机制集合中存在相同加密机制的情形,而对于第一VTEP确定第一VTEP和第二VTEP不支持相同加密机制的情形,可以采用非加密方式将第一用户数据报文经由VXLAN隧道传输给第二VTEP。

此外,加密能力集还可以包括加密报文类型。具体地,第二加密能力集中包括的加密报文类型用于第一VTEP确定待经由VXLAN隧道传输给第二VTEP的用户数据报文中,哪些采用第一加密机制加密后经由VXLAN隧道传输给第二VTEP,哪些采用非加密方式经由VXLAN隧道传输给第二VTEP,相应地,第二VTEP会采用第一加密机制,对加密后经由VXLAN隧道传输给自己的加密后报文进行解密;第一加密能力集中包括的加密报文类型用于第二VTEP确定待经由VXLAN隧道传输给第一VTEP的用户数据报文中, 哪些采用第一加密机制加密后经由VXLAN隧道传输给第一VTEP,哪些采用非加密方式经由VXLAN隧道传输给第一VTEP,相应地,第一VTEP会采用第一加密机制,对加密后经由VXLAN隧道传输给自己的加密后报文进行解密。这样,VTEP支持多种类型用户数据报文传输时,可以只针对特定类型用户数据报文经由VXLAN隧道进行加密传输,而对于其它类型用户数据报文则经由VXLAN隧道进行非加密传输。

此外,每个VTEP的加密能力集还可以包括加密报文的最大接收流量,该最大接收流量由该VTEP的解密能力决定,加密报文的实际接收流量超过该最大接收流量时将导致接收到的加密报文的丢失。

第一VTEP和第二VTEP可以在二者之间的VXLAN隧道建立完成之前获得对方的加密能力集,则步骤S201可以在第一VTEP与第二VTEP之间的VXLAN隧道建立完成之前发生,以便在VXLAN隧道建立完成时就能应用相应加密机制进行用户数据报文的传输,从而支持安全隧道的创建。具体地,本步骤S201可以在第一加密机制确定完毕时立即触发与第二VTEP之间VXLAN隧道的建立,以增强VXLAN隧道建立的实时性。

或者,如果第一VTEP和第二VTEP在二者之间的VXLAN隧道建立之后才获得对方的加密能力集,则本步骤S201也可以在第一VTEP与第二VTEP之间的VXLAN隧道建立完成之后发生,具体可以在第一VTEP获得第二加密能力集之后发生。这种情况下在VXLAN隧道建立完成之后、所述第一加密机制确定之前待经由VXLAN隧道传输的用户数据报文可以由第一VTEP采用非加密方式经由VXLAN隧道传输给第二VTEP。

步骤S202,采用所述第一加密机制,将待发送给所述第二VTEP的第一用户数据报文加密后得到第一加密报文,并将所述第一加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP。

对于加密能力集中包括加密报文类型的情况,第一VTEP在对用户数据报文加密之前,还可以判断用户数据报文的报文类型是否与第二加密能力集中的加密报文类型相同,如果相同,则对用户数据报文加密,并将所述第一 加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP。如果判定用户数据报文的报文类型与该加密报文类型不同,则采用非加密方式将用户数据报文经由VXLAN隧道传输给第二VTEP。也就是说,第一加密机制确定后,第一VTEP究竟将哪些用户数据报文加密传输,哪些用户数据报文以非加密方式传输,取决于第二VTEP的加密能力集中的加密报文类型,第一VTEP只对该加密报文类型的用户数据报文进行加密传输,其它报文类型的用户数据报文以非加密传输方式传输。

对于第二加密能力集中包括加密报文的最大接收流量的情况,第一VTEP可以维护有经由VXLAN隧道传输加密报文的实时流量,第一VTEP在将第一加密报文经由VXLAN隧道传输给第二VTEP之前,还可以判断传输第一加密报文所需要耗费的流量与该实时流量之和是否大于该最大接收流量,如果不大于,则将第一加密报文经由VXLAN隧道传输给第二VTEP。如果判定传输第一加密报文所需要耗费的流量与该实时流量之和大于该最大接收流量,则缓存第一加密报文。

对于第一VTEP缓存第一加密报文的情况,可以在自身维护的实时流量更新后、传输所述第一加密报文所需要耗费的流量与更新后的实时流量之和不大于该最大接收流量时,将缓存的第一加密报文提取出来经由VXLAN隧道传输给第二VTEP。

步骤S203,接收所述第二VTEP经由已经建立的所述VXLAN隧道传输的第二加密报文,并采用所述第一加密机制,将所述第二加密报文解密后得到第二用户数据报文。

与第一VTEP根据第一加密能力集和第二加密能力集确定第一加密机制并采用第一加密机制,将第一用户数据报文加密后传输给第二VTEP的情形类似,第二VTEP也可以根据第一加密能力集和第二加密能力集确定第一加密机制,并采用第一加密机制,将第二用户数据报文进行加密,得到第二加密报文并经由第一VTEP和第二VTEP之间的VXLAN隧道传输给第一VTEP。第一VTEP收到第二加密报文后,采用第一加密机制,将第二加密报 文解密,得到第二用户数据报文。

设VXLAN中VTEP数目为N,则如果两两VTEP之间都建立VXLAN隧道,则需要建立的VXLAN数目为N(N-1)/2,显然,VTEP数目变大时,需要建立的VXLAN数目会更快地增大,从而静态在隧道两端VTEP上配置隧道加密机制等隧道报文传输所需资源的工作量会非常大。应用上述实施例,不需要针对每个VXLAN隧道进行隧道报文传输所需资源的配置,使得配置工作量大为减少,从而减少了网络规模部署的难度,优化了网络部署。

图3是本发明所应用的扩展的ENDP注册请求/应答报文的报文格式示意图,参照图3,作为ENDC/ENDS的VTEP将自身的VXLAN网络标识符(VXLAN Network Identifier,VNI)和IP地址包括在ENDP注册请求/应答报文中发送给作为ENDS/ENDC的VTEP,具体地,利用网络标识符(Network ID)参数来携带VNI,利用客户端地址(Client Address)参数来携带IP地址。在此基础上,扩展的ENDP注册请求报文中增加了安全机密性类型(Security Confidentiality Type)参数(下面简称为C参数)、安全报文类型(Security Packet Type)参数(下面简称为P参数)和安全报文速率门限值(Security Packet Rate Threshold)参数(下面简称为R参数)。作为ENDC/ENDS的VTEP可以利用C参数来携带自身支持的加密机制信息集合,利用P参数来携带加密报文类型,利用R参数来携带加密报文的最大接收流量。

图4是本发明传输方法的另一个实施例流程图。本实施例中,VTEP2作为ENDS,VTEP1和VTEP3都作为ENDC,VTEP1~VTEP3配置有相同的VNI。参照图4,本实施例中的传输方法包括如下步骤:

步骤S401,VTEP1和VTEP3分别向VTEP2发送扩展的ENDP注册请求报文。

如表1所示为VTEP1、VTEP2和VTEP3各自的ENDP注册信息。

VTEP1~VTEP3上预设有相同的加密算法名称与索引值的对应关系表。该对应关系表中,RSA算法、Elgamal算法和DES算法分别对应索引值0~2。

VTEP1~VTEP3上预设有相同的加密机制选择策略:当隧道两端VTEP 支持两个以上的相同加密算法时,选择对应关系表中对应索引值最小的加密算法。

表1

本步骤中,VTEP1将自身的ENDP注册信息通过扩展的ENDP注册请求报文发送给VTEP2,VTEP2从该请求报文中解析出VTEP1的ENDP注册信息。VTEP3将自身的ENDP注册信息通过扩展的ENDP注册请求报文发送给VTEP2,VTEP2从该请求报文中解析出VTEP3的ENDP注册信息。

步骤S402,VTEP2向VXLAN中作为ENDC的各个VTEP发送扩展的ENDP注册应答报文。

其中,ENDP注册应答报文包括VTEP2自身的注册信息和VTEP2从作为ENDC的各个VTEP发送的扩展的ENDP注册请求报文中分别解析出的注 册信息。

作为ENDC的各个VTEP从接收到的ENDP注册应答报文中解析出VXLAN中包括VTEP1~3在内的所有VTEP的注册信息。

步骤S403,VTEP1、VTEP2和VTEP3根据彼此的注册信息建立VXLAN隧道并为VXLAN隧道建立加密策略。

其中,VXLAN中的任一VTEP得到VXLAN隧道对端VTEP的注册信息中的IP地址后,将该IP地址作为目的IP地址进行路由可达性检查,在检查到路由可达时,进行VXLAN隧道的建立操作。

VTEP1和VTEP2的注册信息中包括相同的加密算法:RSA算法和Elgamal算法。二者在VTEP1预设的对应关系表中分别对应索引值0和1。VTEP1根据预设的加密机制选择策略,选择出RSA算法,用于加密的公钥A和用于解密的私钥a。VTEP1根据VTEP2的注册信息中的加密报文类型确定针对报文类型为IP的用户数据报文进行加密传输。

由此,VTEP1确定了用于在隧道VTEP1-VTEP2上传输用户数据报文的加密策略:采用RSA算法,使用公钥A对报文类型为IP的用户数据报文进行加密后在隧道VTEP1-VTEP2上传输,对于其它报文类型(如MPLS、MACinMAC等)的用户数据报文则采用非加密的方式在隧道VTEP1-VTEP2上传输。此外,VTEP1将隧道VTEP1-VTEP2承载的加密报文的最大带宽确定为200M。

VTEP1还确定了对从隧道VTEP1-VTEP2接收到的用户数据报文的解密策略:采用RSA算法,使用私钥a对报文类型为UDP的用户数据报文进行解密,以及将其它报文类型(如TCP、ICMP等)的用户数据报文作为未加密的用户数据报文进行处理。

相应地,VTEP2从接收到的扩展的ENDP注册请求报文中解析出VTEP1的注册信息,并根据预设的加密机制选择策略,选择出RSA算法,用于加密的公钥A,用于解密的私钥a。

VTEP2确定了对从隧道VTEP2-VTEP1接收到的用户数据报文的解密策 略:采用RSA算法,使用私钥a对报文类型为IP的用户数据报文进行解密,以及将其它报文类型的用户数据报文作为未加密的用户数据报文进行处理。

VTEP2还确定了用于在隧道VTEP2-VTEP1上传输用户数据报文的加密策略:采用RSA算法,使用公钥A对报文类型为UDP的用户数据报文进行加密后在隧道VTEP2-VTEP1上传输,对于其它报文类型的用户数据报文则采用非加密的方式在隧道VTEP2-VTEP1上传输。此外,VTEP1将隧道VTEP2-VTEP1承载的加密报文的最大带宽确定为100M。

由于VTEP3不支持隧道加密机制,则VTEP3与VTEP1以及VTEP3与VTEP2之间不存在相同的加密机制。由此,VTEP1和VTEP3之间的隧道以及VTEP2和VTEP3之间的隧道均为非加密隧道,用户数据报文经由隧道进行普通的非加密传输。

步骤S404,VTEP1、VTEP2和VTEP3分别将用户数据报文经由隧道传输给隧道对端VTEP。

当VTEP1上存在到达VTEP2的用户流量时,VTEP1首先识别用户数据报文是否为IP报文(即用户数据报文的类型是否为IP),若是则先采用RSA算法,使用公钥A执行加密处理,然后封装VXLAN隧道头进入公网,IP报文在VXLAN中传输时,中间设备根据VXLAN隧道头中的目的IP地址转发到VTEP2;否则,不进行加密而直接封装VXLAN隧道头进入公网,用户数据报文在VXLAN中传输时,中间设备根据VXLAN隧道头中的目的IP地址转发到VTEP2。VTEP2首先识别用户数据报文是否为IP报文,如果是,则弹掉VXLAN隧道头后先采用RSA算法,使用私钥a来执行解密,待用户数据报文恢复后再根据用户数据报文的目的地址转发报文;否则,不进行解密而直接用户数据报文的目的地址转发用户数据报文。VTEP1会对加密报文的传输进行流量控制,以使加密报文经由隧道VTEP1-VTEP2向VTEP2传输的实际带宽不超过200M。

当VTEP2上存在到达VTEP1的用户流量时,VTEP2首先识别用户数据报文是否为UDP报文(即用户数据报文的类型是否为UDP),若是则先采 用采用RSA算法,使用公钥A执行加密处理,然后封装VXLAN隧道头进入公网,UDP报文在VXLAN中传输时,中间设备根据VXLAN隧道头中的目的IP地址转发到VTEP2;否则,不进行加密而直接封装VXLAN隧道头进入公网,用户数据报文在VXLAN中传输时,中间设备根据VXLAN隧道头中的目的IP地址转发到VTEP2。VTEP2首先识别用户数据报文是否为UDP报文,如果是,则弹掉VXLAN隧道头后先采用RSA算法,使用私钥a来执行解密,待用户数据报文恢复后再根据用户数据报文的目的地址转发报文;否则,不进行解密而直接用户数据报文的目的地址转发用户数据报文。VTEP2会对加密报文的传输进行流量控制,以使加密报文经由隧道VTEP2-VTEP1向VTEP1传输的实际带宽不超过100M。

对于VTEP1与VTEP3、以及VTEP2与VTEP3之间经由VXLAN隧道的用户数据报文传输,由于采用非加密方式,从而可按照现有机制进行,这里不再赘述。

需要说明的是,步骤S401~步骤S404之间并没有限定严格的时间先后顺序,例如步骤S403中VTEP2从接收到的扩展的ENDP注册请求报文中解析出VTEP1的注册信息可以在步骤S402之前发生。

通过本实施例,在VTEP之间动态地建立了一个VXLAN安全加密隧道,不同的VTEP之间的VXLAN隧道加密方式可以根据VXLAN隧道两端VTEP的加密能力分别加以确定,隧道传输可靠性高。同时,通过扩展ENDP协议进行VXLAN隧道建立所需两端VTEP信息的交互,从而实现了安全隧道自动协商机制,减少了大量的静态配置工作量,简化了VXLAN的部署。由于对加密报文进行了流量控制,从而避免了因为解密性能不足导致的传输报文丢失。

与前述传输方法的实施例相对应,本发明还提供了传输装置的实施例。

本发明提供的传输装置的实施例可以应用在具有硬件结构的设备上,该设备可以为网络设备或管理服务器。该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意 义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本发明传输装置所在设备的一种硬件结构图,除了图5所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等,对此图5中不再详细示出。

图6是本发明传输装置的一个实施例框图,参照图6,本实施例中的传输装置,用于虚拟可扩展局域网VXLAN中的第一虚拟可扩展局域网隧道端点VTEP,包括确定单元601、加密及传输单元602、接收及解密单元603;

其中,确定单元601,用于根据所述第一VTEP的第一加密能力集和VXLAN中的第二VTEP的第二加密能力集,确定所述第一VTEP与所述第二VTEP之间的VXLAN隧道对应的第一加密机制,其中,所述第一加密能力集包括所述第一VTEP支持的加密机制信息集合,所述第二加密能力集包括所述第二VTEP支持的加密机制信息集合;

加密及传输单元602,用于采用所述第一加密机制,将待发送给所述第二VTEP的第一用户数据报文加密后,得到第一加密报文,并将所述第一加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP;

接收及解密单元603,用于接收所述第二VTEP经由已经建立的所述VXLAN隧道传输的第二加密报文,并采用所述第一加密机制,将所述第二加密报文解密后得到第二用户数据报文。

在一个可选的实现方式中,所述装置还可以包括:

第一发送单元,用于将所述第一加密能力集携带在第一增强邻居发现协议ENDP注册请求报文中发送给所述第二VTEP,使得所述第二VTEP能够从所述第一ENDP注册请求报文中解析出所述第一加密能力集;

第一接收单元,用于接收所述第二VTEP发送的第一ENDP注册应答报文;以及

第一解析单元,用于从所述第一ENDP注册应答报文中解析出所述第二加密能力集;

在另一个可选的实现方式中,所述装置还可以包括:

第二接收单元,用于接收所述第二VTEP发送的第二ENDP注册请求报文;

第二解析单元,用于从所述第二ENDP注册请求报文中解析出所述第二加密能力集;以及

第二发送单元,用于将所述第一加密能力集携带在第二ENDP注册应答报文中发送给所述第二VTEP,使得所述第二VTEP能够从所述第二ENDP注册应答报文中解析出所述第一加密能力集;

在另一个可选的实现方式中,所述装置还可以包括:

第三发送单元,用于将所述第一加密能力集携带在第三ENDP注册请求报文中发送给VXLAN中的第三VTEP,使得所述第三VTEP能够从所述第三ENDP注册请求报文中解析出所述第一加密能力集,并与所述第二加密能力集一起携带在第三ENDP注册应答报文中发送给所述第一VTEP和所述第二VTEP,其中,所述第二加密能力集由所述第三VTEP从所述第二VTEP发送的第四ENDP注册请求报文中解析得到;

第三接收单元,用于接收所述第三ENDP注册应答报文;以及

第三解析单元,用于从所述第三ENDP注册应答报文解析出所述第二加密能力集。

在另一个可选的实现方式中,所述确定单元可以包括:

确定子单元,用于根据所述第一VTEP和所述第二VTEP分别支持的加密机制信息集合,确定所述第一VTEP和所述第二VTEP支持的相同加密机制中的所述第一加密机制。

在另一个可选的实现方式中,所述第二加密能力集还可以包括加密报文类型,所述装置还可以包括:

第一判断单元,用于判断所述第一用户数据报文的报文类型是否与所述加密报文类型相同,并将判断结果发给所述加密及传输单元;当与所述加密报文类型相同时,所述加密及传输单元采用所述第一加密机制,将所述第一 用户数据报文加密后得到第一加密报文,并将所述第一加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP;

当与所述加密报文类型不相同时,所述加密及传输单元采用非加密方式将所述第一用户数据报文经由所述VXLAN隧道传输给所述第二VTEP。

在另一个可选的实现方式中,所述第二加密能力集还可以包括加密报文的最大接收流量,所述第一VTEP可以维护有经由所述VXLAN隧道传输加密报文的实时流量,所述装置还可以包括:

第二判断单元,用于判断传输所述第一加密报文所需要耗费的流量与所述实时流量之和是否大于所述最大接收流量,并将判断结果发给所述加密及传输单元和缓存单元;

当不大于所述最大接收流量时,所述加密及传输单元将所述第一加密报文经由已经建立的所述VXLAN隧道传输给所述第二VTEP;

所述缓存单元,用于当大于所述最大接收流量时,缓存所述第一加密报文。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,通过VXLAN隧道对端设备分别根据二者的加密能力集确定出一样的加密机制就能进行隧道报文的加密传输,不需要针对每个VXLAN隧道进行加密机制配置,使得配置工作量大为减少,从而减少了网络规模部署的难度,优化了网络部署。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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