一种VXLAN隧道的动态加密方法和系统与流程

文档序号:16900309发布日期:2019-02-19 17:55阅读:454来源:国知局
一种VXLAN隧道的动态加密方法和系统与流程

本发明涉及计算机网络通信技术,特别是涉及一种vxlan隧道的动态加密方法和系统。



背景技术:

虚拟局域网(vlan)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。然而随着对网络需求的不断提高,传统vlan的不足逐渐体现,主要表现在:vlan数量不足,二层网络边界限制,多租户问题等。

因此,正是在这样的背景和现实需求下,虚拟可扩展局域网(virtualextensiblelan,vxlan)应运而生了。vxlan是一种网络虚似化技术,通过建立vxlan隧道,在现有网络架构上创建大量的虚拟可扩展局域网,不同的虚拟可扩展局域网使用虚拟可扩展局域网网络标识符(vxlannetworkidentifier,vni)进行标识。vxlan可以基于已有的服务提供商或企业ip网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。

然而现有的vxlan机制,无论在维护管理,还是保证vxlan报文的安全性上都存在不足。需要一种技术方案能够解决这些问题。



技术实现要素:

本发明实施例所要解决的技术问题是vxlan报文不安全以及维护管理繁琐的问题。

为了解决上述问题,本发明实施例提供的技术方案如下:

一种vxlan隧道的动态加密方法,包括:针对具有相同网络标识符的vxlan,两侧vxlan隧道终端通过密钥协商获取公有值,作为vxlan隧道加密密钥;vxlan隧道终端通过所述加密密钥对内层报文信息进行加密处理,对端vxlan隧道终端通过所述加密密钥对内层报文信息进行解密处理。

可选的,上述的vxlan隧道的动态加密方法中,vxlan隧道终端通过所述加密密钥对内层报文信息进行加密处理包括:当发现报文的出接口为vxlan隧道,vxlan隧道终端通过所述加密密钥为所述报文加密处理,并将一预设字段设为加密标识;对端vxlan隧道终端通过所述加密密钥对内层报文信息进行解密处理包括:当对端vxlan隧道终端检测到报文中所述预设字段设置为加密标识后,通过所述加密密钥对所述报文进行解密处理。

可选的,上述的vxlan隧道的动态加密方法中,所述加密标识位数值为0时,判定为未加密;当所述加密标识位数值为1时,判定为加密。

可选的,上述的vxlan隧道的动态加密方法中,所述两侧vxlan隧道终端通过密钥协商获取公有值包括:所述vxlan隧道终端通过随机函数生成第一随机数,对端vxlan隧道终端通过随机函数生成第二随机数;vxlan隧道终端和对端vxlan隧道终端分别通过公开参数底数和公开参数模数对所述第一随机数和第二随机数作幂运算和模运算,分别得到计算结果;vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果;虚拟通道通终端通过将对端vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第一随机数作幂运算和模运算,计算得到所述公有值;对端vxlan隧道终端通过将vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第二随机数作幂运算和模运算,计算得到所述公有值。

可选的,上述的vxlan隧道的动态加密方法中,vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果包括:vxlan隧道终端和对端vxlan隧道终端通过将各自的所述计算结果分别放入evpntype3路由中的预定义的加密密钥字段,进而通过type3路由交互,得到对端的计算结果。

为了解决上述的技术问题,本发明实施例还公开了一种vxlan隧道的动态加密系统,其中,两侧vxlan隧道终端包括:加密计算模块,用于针对具有相同网络标识符的vxlan,通过密钥协商获取公有值,作为vxlan隧道加密密钥;加密处理模块:用于通过所述加密密钥对内层报文信息进行加密处理;解密处理模块,用于通过所述加密密钥对内层报文信息进行解密处理。

可选的,上述的vxlan隧道的动态加密系统中,所述加密处理模块用于当发现报文的出接口为vxlan隧道,vxlan隧道终端通过所述加密密钥为所述报文加密处理,并将一预设字段设为加密标识;所述解密处理模块用于当对端vxlan隧道终端检测到报文中所述预设字段设置为加密标识后,通过所述加密密钥对所述报文进行解密处理。

可选的,上述的vxlan隧道的动态加密系统中,所述加密标识位数值为0时,判定为未加密;当所述加密标识位数值为1时,判定为加密。

可选的,上述的vxlan隧道的动态加密系统中,所述加密计算模块用于,所述vxlan隧道终端通过随机函数生成第一随机数,对端vxlan隧道终端通过随机函数生成第二随机数;vxlan隧道终端和对端vxlan隧道终端分别通过公开参数底数和公开参数模数对所述第一随机数和第二随机数作幂运算和模运算,分别得到计算结果;vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果;虚拟通道通终端通过将对端vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第一随机数作幂运算和模运算,计算得到所述公有值;对端vxlan隧道终端通过将vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第二随机数作幂运算和模运算,计算得到所述公有值。

可选的,上述的vxlan隧道的动态加密系统中,vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果包括:vxlan隧道终端和对端vxlan隧道终端通过将各自的所述计算结果分别放入evpntype3路由中的预定义的加密密钥字段,进而通过type3路由交互,得到对端的计算结果。

与现有技术相比,本发明的技术方案具有以下优点:

本发明中,本发明实施例中公开了一种vxlan隧道的动态加密方法。通过本方案提出的方法,可以将vxlan隧道的建立,密钥的交互,报文的加密解密等所有的工作全部交由交换机动态实现,因此极大地减少了网络管理员的维护工作,同时也提高了vxlan报文的安全性。

附图说明

图1是使用以太网vpn(ethernetvirtualprivatenetwork,evpn)进行跨数据中心部署时采用的网络拓扑结构示意图;

图2是本发明实施例一种vxlan隧道的动态加密方法的流程图;

图3是本发明实施例一种vxlan隧道的动态加密方法中新定义evpntype3路由的数据字段结构;

图4是本发明实施例一种vxlan隧道的动态加密方法中加密计算的原理图。

具体实施方式

目前,在现有的vxlan机制中,无论是维护管理,还是vxlan报文的安全性上都存在不足。如图1所示为使用以太网vpn(ethernetvirtualprivatenetwork,evpn)进行跨数据中心部署时采用的网络拓扑结构示意图。其中:

1.vxlan隧道终端(vxlantunnelendpoint,vtep)的vtep1与vtep2之间在通过internet保证三层ip路由可达的前提下,通过evpntype3路由实现vxlan隧道的动态建立;

2.vm1发送的原始报文在vtep1上通过查找转发表(可以是二层转发也可以是三层转发)发现出接口是vxlan隧道之后,通过给原始报文进行加封装处理,然后根据vxlan外层头部信息在internet网络当中进行转发,最终到达vtep2设备上;

3.vtep2设备根据收到的报文的外层头部信息,确认是发送给自己的vxlan报文之后,进行相应的解封装处理,恢复为原始报文之后,再根据vtep2上的转发表项完成报文的转发,最终发送给vm2;

4.反向的报文交互过程与上面完全相反,这里不再赘述。

由上述数据报文转发过程可以发现,vxlan报文在internet网络中进行转发时,是完全可见的,不具备任何的安全特性。同时,现有的vxlan配置方法一般包括两种,一种是由管理员手工静态配置vxlan隧道,并且在vxlan隧道两端预先设好需要使用的加密密钥;另一种则是借助evpn技术,动态完成vxlan隧道的建立,但是针对vxlan隧道的加密密钥,仍旧是需要由管理员手工指定。由此可见在现有技术中,目前还没有一种可以解决vxlan网络安全性,以及解决网络配置繁琐的方法。

本发明实施例中公开了一种vxlan隧道的动态加密方法。通过本方案提出的方法,可以将vxlan隧道的建立,密钥的交互,报文的加密解密等所有的工作全部交由交换机动态实现,因此极大地减少了网络管理员的维护工作,同时也提高了vxlan报文的安全性。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

本发明实施例提供了一种vxlan隧道的动态加密方法,可以适用于任意vxlan的网络环境中,如图2所示,所述vxlan隧道的动态加密方法可以包括如下步骤:

步骤s101,针对具有相同网络标识符的vxlan,两侧vxlan隧道终端通过密钥协商获取公有值,作为vxlan隧道加密密钥。

在具体实施中,所述两侧vxlan隧道终端通过密钥协商获取公有值可以包括如下步骤:

步骤s1011,所述vxlan隧道终端通过随机函数生成第一随机数,对端vxlan隧道终端通过随机函数生成第二随机数。

步骤s1012,vxlan隧道终端和对端vxlan隧道终端分别通过公开参数底数和公开参数模数对所述第一随机数和第二随机数作幂运算和模运算,分别得到计算结果。

步骤s1013,vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果;

在具体实施中,所述vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果可以包括:vxlan隧道终端和对端vxlan隧道终端通过将各自的所述计算结果分别放入evpntype3路由中的预定义的加密密钥字段,进而通过type3路由交互,得到对端的计算结果。

步骤s1014,虚拟通道通终端通过将对端vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第一随机数作幂运算和模运算,计算得到所述公有值;

步骤s1015,对端vxlan隧道终端通过将vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第二随机数作幂运算和模运算,计算得到所述公有值。由此,vtep两端生成了针对相同vni所产生的vxlan隧道加密密钥。

下面结合图1,图3和图4所示,以示例方式对上述步骤s1011至步骤s1015进行具体描述:

(1)vtep1和vtep2上分别针对相同vni,通过随机函数生成一个随机数a和b;

(2)vtep1和vtep2通过使用双方确认共享公开的两个参数,底数g和模数p,各自用随机数a和b进行幂和模运算,从而得到结果c和d;

(3)将上述计算产生的结果c和d放入evpntype3路由当中的encryptionkey字段,两端通过type3路由交互之后,各自得到对端的计算结果;

(4)各自进一步计算,得到一个共同的迪菲-赫尔曼密钥交换(diffie-hellmankeyexchange,dh)公有值:d^amode(p)=c^bmode(p)=g^abmode(p)。此公式可用于从数学上证明,而这个dh公有值就是双方vxlan隧道所采用的的加密密钥。

若网络当中的第三方截获了双方的模c和d,那么要想计算出dh公有值,还需要获得a或者b的值。但是a和b始终没有直接在网络上进行传输过。如果想由模c或者模d反向计算a或者b的值,在数学上已经证明了其计算复杂度非常高,因此可认为是不可实现的。所以通过上述的dh交换技术可以保证双方能够安全地获得密钥消息。

步骤s102,vxlan隧道终端通过所述加密密钥对内层报文信息进行加密处理;

在具体实施中,当发现报文的出接口为vxlan隧道,vxlan隧道终端通过所述加密密钥为所述报文加密处理,并将一预设字段设为加密标识。当所述加密标识位数值为0时,判定为未加密;当所述加密标识位数值为1时,判定为加密。

如图1所示,如果vm1发送原始报文到达vtep1上,通过查找转发表(可以是二层转发也可以是三层转发)发现出接口是vxlan隧道之后,则vtep1设备首先给原始报文进行vxlan的加封装处理,然后再根据步骤s1011至步骤s1015当中生成的密钥,将vxlan报文当中的内层报文信息进行加密处理(具体的加密方法可自由选择)。最后再根据vxlan外层头部信息在internet网络当中进行转发,直至vxlan报文被送到vtep2设备上。

步骤s103,对端vxlan隧道终端通过所述加密密钥对内层报文信息进行解密处理。

在具体实施中,当对端vxlan隧道终端检测到报文中所述预设字段设置为加密标识后,通过所述加密密钥对所述报文进行解密处理。如图1所示,vtep2设备在收到vxlan报文之后,确认是发送给自己的vxlan报文之后,进行相应的解封装处理和解密处理。这里将vxlan头部当中预留的一个bit,充当加密位。当该bit置为0时,表示后面的原始报文未加密,这里和协议初始定义的reserved字段全为0保持一致。当该bit置为1时,则表示后面的原始报文进行了加密处理。此时使用步骤2当中计算出的密钥进行解密操作,最终恢复为原始报文之后,再根据vtep2上的转发表项完成报文的转发,最终发送给vm2。

以上所描述的示例是从vm1到vm2的报文处理过程,从vm2到vm1的反向报文交互过程与上面完全相反,这里不再赘述。

在现有技术中,vxlan隧道借助evpn实现动态建立,但针对vxlan隧道的加密,还是需要管理员手动设置;并且,没有很好的借助evpn将vxlan隧道的动态建立和密钥交互进行有效结合。通过本发明实施例,vxlan隧道的建立,密钥的交互,报文的加密解密,所有的工作全部交给交换机动态实现,因此极大的减少了网络管理员的维护工作,并且也提高了vxlan报文的安全性。

本发明实施例还提供了另一种vxlan隧道的动态加密系统,与第一个实施例中的vxlan隧道的动态加密方法相对应。所述vxlan隧道的动态加密系统可以包括:

加密计算模块,用于针对具有相同网络标识符的vxlan,通过密钥协商获取公有值,作为vxlan隧道加密密钥;

加密处理模块:用于通过所述加密密钥对内层报文信息进行加密处理;

解密处理模块,用于通过所述加密密钥对内层报文信息进行解密处理。

在具体实施中,所述加密处理模块用于当发现报文的出接口为vxlan隧道,vxlan隧道终端通过所述加密密钥为所述报文加密处理,并将一预设字段设为加密标识;所述解密处理模块用于当对端vxlan隧道终端检测到报文中所述预设字段设置为加密标识后,通过所述加密密钥对所述报文进行解密处理。

在上述的具体实施中,所述加密标识位数值为0时,判定为未加密;当所述加密标识位数值为1时,判定为加密。

在具体实施中,所述加密计算模块用于,所述vxlan隧道终端通过随机函数生成第一随机数,对端vxlan隧道终端通过随机函数生成第二随机数;vxlan隧道终端和对端vxlan隧道终端分别通过公开参数底数和公开参数模数对所述第一随机数和第二随机数作幂运算和模运算,分别得到计算结果;vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果;虚拟通道通终端通过将对端vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第一随机数作幂运算和模运算,计算得到所述公有值;对端vxlan隧道终端通过将vxlan隧道终端的计算结果作为底数,以及公开参数模数,对所述第二随机数作幂运算和模运算,计算得到所述公有值。

在上述的具体实施中,vxlan隧道终端和对端vxlan隧道终端通过路由交互获得对端的计算结果包括:vxlan隧道终端和对端vxlan隧道终端通过将各自的所述计算结果分别放入evpntype3路由中的预定义的加密密钥字段,进而通过type3路由交互,得到对端的计算结果。

本领域的技术人员可以理解的是,由于本实施例和第一实施例为基于同一发明构思,因此关于本实施例的具体方案,可以参照第一实施例的相应内容,此处不再赘述。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

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