专利名称:基于虚拟网卡适应负载均衡网络的vpn隧道实现方法
技术领域:
本发明涉及数据通信领域,尤其是一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法。
背景技术:
IPSec是互联网工程任务组制定的一个开放的IP层安全框架协议,为三层隧道协议。IPSec协议在网络层工作,VPN虚拟专用网络(Virtual Private Network ,简称VPN)设备之间利用IPsec协议建立安全隧道,对VPN设备间传输的数据提供机密性、完整性、数据源认证和抗重放服务。虚拟网卡是运行在操作系统内核中的虚拟网络设备,不同于普通硬件网卡,虚拟网卡全部用软件实现,向运行于操作系统上的软件提供与硬件网卡完全相同的功能。硬件网卡收到目的地址为虚拟网卡地址的网络数据包,操作系统将把此数据包直接路由到本地IP协议栈。负载均衡网络是实现负载分担和网络高冗余性的良好方式,最为常见实现负载均衡网络是基于路由协议,OSPF(Open Shortest Path First开放式最短路径优先)等值路径。基于IPSec隧道的两台及以上VPN设备部署在负载均衡网络中,对经过VPN设备并匹配IPSec SP (安全策略)的IP报文将进行IPSec加解密处理,并封装或者解封装,导致原网络数据包源和目的地址发生改变,原有路由针对新数据包无法生效,导致网络负载均衡失效。当前VPN设备适应负载均衡网络的方法很多,一般情况下采用VPN设备借用后面保护网络的一台主机IP与远端VPN建立安全隧道。如果VPN设备借用的保护网络中的那台主机出现故障而下线,将导致出口路由器无法学习到该主机的MAC地址,从而导致出口路由器收到目的地址为该主 机地址的加密数据包,不能转发给出口路由器后面的VPN设备。此外,因为VPN设备收到的数据包的目的地址并非VPN设备自身,但需要处理目的地址为后端主机的加密数据包,需要VPN设备调整IP协议栈才能满足上述方法应用的要求。
发明内容
本发明的目的是提供一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,解决上述VPN设备部署在负载均衡网络中导致网络负载均衡功能失效。为解决上述问题,本发明采用的技术方案为,一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,包括以下步骤
(I)对负载均衡网络中的两台及以上VPN设备的内置虚拟网卡配置相同主机地址;
(2 )本端主VPN设备采用虚拟网卡地址与对端VPN设备进行密钥协商并建立IPSec SA,并把IPSec SA信息同步到本端的其它VPN设备;
(3 )当对端VPN设备保护的业务主机与本端VPN设备保护的业务主机进行网络通信时,对端VPN设备根据到本端VPN设备的IPSec SA信息对数据包进行加密封装后发送到本端网络;
(4)将加密封装后的数据包发送到本端IP协议栈的传输层,由IP协议栈查找对应路由并解密、解封装后转发到出口路由器或者出口交换机。优选步骤所述的步骤(3)中VPN设备处理VPN数据具体流程如下当本端VPN设备保护的业务主机与对端VPN设备保护的业务主机进行网络通信时,本端VPN设备的交换机或者路由器根据其路由或者MAC地址转发表选择对应的链路上传数据到该链路上部署的VPN设备,VPN设备根据数据包的目的地址、端口及传输协议查找安全策略库,确认此数据包命中的IPSec SP,再通过该IPSec SP在安全关联库中查找对应的IPSec SA,随后根据IPSec SA的工作模式和密钥进行加密封装处理。优选步骤所述的步骤(4)中具体流程如下本端IP协议栈根据目的IP地址、端口及传输层协议查找匹配的IPSec SA,得到正确的IPSec SP后,根据其IPSec SA的密钥、处理模式对该加密封装后的数据包进行解密、解封装,还原出原有数据包后发送到出口交换机或者出口路由器。优选步骤步骤(I)中所述的相同主机地址是掩码为32位的主机地址。优选步骤步骤(I)在负载均衡网络环境中部署4台VPN设备,进行虚拟网卡创建及配置虚拟网卡地址。优选步骤所述的虚拟网卡地址配置为VPN设备保护业务网段的一台设备主机地址。综上所述,由于采用了上述技术方案,本发明的有益效果是本发明通过使用虚拟网卡和路由技术适应负载均衡网络,不会存在因为VPN设备借用后面保护网络的主机因故障掉线导致网络中断现象,同时通过虚拟网卡的应用,无需调整VPN设备的协议栈,大大降低了 VPN产品适应负载均衡网络的开发难度,同时提高了 VPN设备的易用性,增强了 VPN设备的网络适应能力。
本发明将通过例子并参照附图的方式说明,其中
图1是本发明的原理框 图2是本发明的部署结构示意图。
具体实施例方式本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。如图1所示,表示VPN设备在收到加密数据包后的处理流程图,数据包进行路由查表后认为数据包的目的地址 为虚拟网卡,协议栈把该数据包提交到本地IP协议栈进行VPN解密及解封装处理,处理完成后通过路由查表把新数据包通过真实网卡转发出去。如图2所示,本发明实施例提供的在负载均衡网络环境下对部署的4台VPN设备进行虚拟网卡创建及配置虚拟网卡地址为业务网段VRRP协议虚拟地址,配置地址掩码为32位。本端主VPN设备使用虚拟网卡地址与对端VPN设备建立IPSec SA (安全关联),并把IPSec SP (安全策略)和安全关联同步到本端网络中的其它VPN设备。将业务服务器的外出数据包发送给交换机,交换机根据其本身的路由信息和链路情况选择对应链路进行发送;
出口路由器收到对端VPN设备发送过来的数据包,因对端VPN设备与虚拟网卡地址(业务网段的VRRP协议虚拟地址)建立的安全关联,此数据包的目的为业务网段地址。出口路由器上存到此网段的路由,因此出口路由器将根据其路由表信息和到目的地址所有链路的负载情况动态选择链路进行数据转发。VPN设备的接入不损坏原有业务网络的路由信息表,不会改变原有数据包在网络中传输的路径,原有网络的负载均衡功能没有遭受破坏,大大提供VPN设备的易用性和网络适应能力。
在负载均衡网络中的多台VPN设备内置虚拟网卡配置相同的32位掩码的主机地址,此地址配置为VPN设备保护业务网段的一台设备主机地址。本端的主VPN设备采用虚拟网卡地址与对端VPN设备进行密钥协商成功建立安全关联(Security Association, SA),并把IPSec SA信息同步到本端的其它VPN设备,保证本端所有部署在负载均衡网络中VPN设备的IPSec SA信息一致。当本端VPN设备保护的业务主机与对端VPN设备保护的业务主机进行网络通信时,本端VPN设备后端的交换机或者路由器根据其路由或者MAC地址转发表选择对应的链路上传数据到该链路上部署的VPN设备,VPN设备根据数据包的目的地址、端口及传输协议查找安全策略库(Security Policy Database, SH)),确认此数据包命中安全策略后(Security Policy, SP),再通过该IPSec SP (安全策略)在安全关联库(SecurityAssociation Database, SAD)中查找对应的IPSec SA,随后根据IPSec SA的工作模式、密钥等进行加密封装处理,最后将处理后的新数据包发送到IP协议栈的传输层,由IP协议栈查找对应路由并转发到出口路由器或者出口交换机。当对端VPN设备保护的业务主机与本端VPN设备保护的业务主机进行网络通信时,对端VPN设备根据到本端VPN设备的IPSec SA信息对数据包进行加密封装后发送到本端网络。由于数据包的目的地址为VPN设备所保护网段的主机地址,对于本端网络的出口路由器来讲,达到此主机地址的路由权值相同,出口路由器只需要根据可达目的地址的所有链路中结合链路的负载情况,选择其中的一条链路把数据包转发出去,达到对应链路的VPN设备上。接入链路中的所有VPN设备的虚拟网卡地址掩码为32位,操作系统不存在此虚拟网卡的外出路由,VPN设备则不会对其所在网络发送ARP广播,不会对所在网络产生任何影响。VPN设备处理VPN数据流程如下
1、由于此以太网数据包的目的地址并不是VPN设备的物理网卡的网络地址,因此数据包在从VPN设备的物理网卡收到IP层协议栈中将进行路由查表;
2、在IP协议栈路由表中,存在该数据包的目的地址为虚拟网卡的路由。于是该数据包将自动路由到VPN设备本地协议栈;
3、VPN设备本地协议栈根据该数据包的协议号,调用IPSec协议栈对报文进行处理;4、VPN设备将根据该数据包的协议号、端口号等在SAD中查找对应的SA信息;
5、VPN设备根据SA信息对该数据包进行解封装、认证、解密服务;
6、新数据包提交到IP协议栈,IP协议栈进行路由查找后进行转发到交换机或者路由器,最终达到本端VPN设备所保护的业务主机。本 发明并不局限于前述的具体实施方式
。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
权利要求
1.一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,其特征在于包括以下步骤 (I)对负载均衡网络中的两台及以上VPN设备的内置虚拟网卡配置相同主机地址; (2 )本端主VPN设备采用虚拟网卡地址与对端VPN设备进行密钥协商并建立IPSec SA,并把IPSec SA信息同步到本端的其它VPN设备; (3 )当对端VPN设备保护的业务主机与本端VPN设备保护的业务主机进行网络通信时,对端VPN设备根据到本端VPN设备的IPSec SA信息对数据包进行加密封装后发送到本端网络; (4)将加密封装后的数据包发送到本端IP协议栈的传输层,由IP协议栈查找对应路由并解密、解封装后转发到出口路由器或者出口交换机。
2.根据权利要求1所述的一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,其特征在于 所述的步骤(3)中VPN设备处理VPN数据具体流程如下当本端VPN设备保护的业务主机与对端VPN设备保护的业务主机进行网络通信时,本端VPN设备的交换机或者路由器根据其路由或者MAC地址转发表选择对应的链路上传数据到该链路上部署的VPN设备,VPN设备根据数据包的目的地址、端口及传输协议查找安全策略库,确认此数据包命中的IPSecSP,再通过该IPSec SP在安全关联库中查找对应的IPSec SA,随后根据IPSec SA的工作模式和密钥进行加密封装处理。
3.根据权利要求1所述的一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,其特征在于 所述的步骤(4)中具体流程如下本端IP协议栈根据目的IP地址、端口及传输层协议查找匹配的IPSec SA,得到正确的IPSec SP后,根据其IPSec SA的密钥、处理模式对该加密封装后的数据包进行解密、解封装,还原出原有数据包后发送到出口交换机或者出口路由器。
4.根据权利要求1或2或3所述的一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,其特征在于步骤(I)中所述的相同主机地址是掩码为32位的主机地址。
5.根据权利要求4所述的一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,其特征在于步骤(I)在负载均衡网络环境中部署4台VPN设备,进行虚拟网卡创建及配置虚拟网卡地址。
6.根据权利要求5所述的一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,其特征在于所述的虚拟网卡地址配置为VPN设备保护业务网段的一台设备主机地址。
全文摘要
本发明公开了一种基于虚拟网卡适应负载均衡网络的VPN隧道实现方法,涉及数据通信领域,包括以下步骤(1)对负载均衡网络中的两台及以上VPN设备的内置虚拟网卡配置相同主机地址;(2)本端主VPN设备采用虚拟网卡地址与对端VPN设备进行密钥协商并建立IPSecSA,并把IPSecSA信息同步到本端的其它VPN设备;(3)对端VPN设备根据到本端VPN设备的IPSecSA信息对数据包进行加密封装后发送到本端网络。本发明通过使用虚拟网卡和路由技术适应负载均衡网络,大大降低了VPN产品适应负载均衡网络的开发难度,同时提高了VPN设备的易用性,增强了VPN设备的网络适应能力。
文档编号H04L12/46GK103067290SQ20121050276
公开日2013年4月24日 申请日期2012年11月30日 优先权日2012年11月30日
发明者傅勇, 罗俊, 胡川, 周强 申请人:成都卫士通信息产业股份有限公司