一种IPSecVPN安全网关的制作方法

文档序号:33708057发布日期:2023-03-31 22:28阅读:52来源:国知局
一种IPSecVPN安全网关的制作方法
一种ipsec vpn安全网关
技术领域
1.本发明涉及网络安全技术领域,具体涉及一种ipsec vpn安全网关。


背景技术:

2.随着云计算的兴起,越来越多的客户将服务置于云端。大量的网络流量使得云服务厂商对各种与计算网络的性能要求越来越高。同时,越来越多的客户对数据的安全性和私密性更加关注,使得越来越多的网络数据包被加密之后再进行传输。其中,ipsec协议是现在在两个私有网之间进行通讯的最常用的加密协议。主流的云服务厂商都提供使用ipsec协议对网络包进行加密的网络功能模块,即ipsec安全网关。
3.现有的ipsec网关普遍使用多个处理器并行处理ipsec流。为了易用性和弹性,这类ipsec安全网关分为三个部分:ipsec加解密操作被解耦,形成工作模块,放在多个处理器进行并行处理;发送模块充当控制面制定调度网络包的策略,工作负载较轻且需要全局的信息,因此放在单独的控制节点;分流模块分局调度策略将网络包转发至对应处理器,工作负载重且需要与处理器交互,因此应该放在靠近处理器的单独核进行处理
4.针对未加密的网络数据包,现今的安全网关已经实现分流模块的功能。网关通过rss(receive side scaling)负载分流方法,通过哈希网络包的五元组(源ip,目的ip,源端口号,目的端口号,协议号)将数据包分配到多网卡的多队列中。通过将队列与处理器一一对应可以实现将网络包分配到多个处理器的功能,即分流模块,但采用该方会导致两点问题:
5.问题一,通过ipsec协议加密的网络协议包,会将网络包五元组中的三个元:源端口号,目的端口号,协议号进行加密,只保留两元:源ip,目的ip为未加密数据。当网卡接收到ipsec协议加密的网络包时,并不能通过五元组的方式哈希数据包,而仅仅通过哈希未加密的两元,会导致同簇的ipsec流(即源ip和目的ip相同,但是源端口号和目的端口号不同的ipsec流)被分配到同一个处理器进行处理,导致总体的分配不均。
6.问题二,当处理器及其对应的ipsec隧道出现单点不可用时,ipsec隧道需要重新建立,会存在一定时间内业务丢包的问题。


技术实现要素:

7.针对现有技术中的缺陷,本发明提供一种ipsec vpn安全网关。
8.本发明的方案:一种ipsec vpn安全网关,包括:
9.获取模块,用于获取第一设备发送的ipsec流,所述ipsec流包括标识参数,所述标识参数包括第一设备ip、第二设备ip、第二设备端口号、序列号;
10.分流模块,用于根据ipsec流的标识参数对所述ipsec流进行分流,使其进入不同处理器;
11.发送模块,用于将所述处理器处理完成的所述ipsec流通过与所述处理器对应的ipsec隧道发送至所述第二设备。
12.优选地,所述获取模块具体用于:
13.查找预设地址表中是否存在所述第一设备ip和第二设备ip;
14.在所述第一设备ip和第二设备ip均存在时,将所述第一设备发送的ipsec流发送给分流模块。
15.优选地,所述分流模块具体用于:
16.用于根据所述序列号对所述ipsec流进行哈希,将哈希后的所述ipsec流分配至不同队列中,并根据预设规则将所述队列中的ipsec流发送至所述队列对应的处理器。
17.优选地,所述处理器用于对ipsec流进行封装、解封装和加解密。
18.优选地,还包括配置模块,用于配置与所述处理器一一对应的ipsec隧道,以形成第一设备至第二设备的多条链路。
19.优选地,还包括检测模块,用于在配置完所述ipsec隧道后,根据配置周期性地对所述ipsec隧道进行监测,获取延时、抖动和丢包率信息,根据所述延时、抖动和丢包率信息计算所述ipsec隧道的可用性,并将计算结果发送给配置模块。
20.优选地,所述检测模块,还用于在配置完所述ipsec隧道后,根据配置周期性地对所述处理器进行监测,获取负载信息,根据负载信息计算所述处理器的可用性,并将计算结果发送给配置模块。
21.优选地,所述配置模块还用于根据所述处理器和所述ipsec隧道的可用性,从多条链路中移除对应的处理器或者ipsec隧道,在对应的处理器或者ipsec隧道被移除时,其对应的ipsec隧道或者处理器处于保活状态。
22.本发明的有益效果体现在:
23.1)避免同簇的ipsec流被分配到同一个处理器进行处理,导致总体的分配不均;
24.2)当ipsec隧道或者处理器单点不可用时,ipsec隧道不需要重新建立,ipsec流可正常传输,当ipsec隧道和处理器均正常时,可根据负载信息进行调度以实现负载均衡。
附图说明
25.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。
26.图1为本发明实施例提供的一种ipsec vpn安全网关的结构示意图;
27.图2为本发明实施例提供的一种ipsec vpn安全网关的工作过程示意图。
具体实施方式
28.下面将结合附图对本发明技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本发明的技术方案,因此只作为示例,而不能以此来限制本发明的保护范围。
29.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本发明所属领域技术人员所理解的通常意义。
30.如图1、所示,本发明实施例提供了一种ipsec vpn安全网关,包括:
31.获取模块,用于获取第一设备发送的ipsec流,所述ipsec流包括标识参数,所述标
识参数包括第一设备ip、第二设备ip、第二设备端口号、序列号;
32.在本发明实施例中,所述获取模块具体用于:查找预设地址表中是否存在所述第一设备ip和第二设备ip;在所述第一设备ip和第二设备ip均存在时,将所述第一设备发送的ipsec流发送给分流模块。
33.需要说明的是,所述ipsec流为数据报文结构。
34.分流模块,用于根据ipsec流的标识参数对所述ipsec流进行分流,使其进入不同处理器;
35.具体的,根据所述序列号对所述ipsec流进行哈希,将哈希后的所述ipsec流分配至不同队列中,并根据预设队列与处理器的映射关系将所述队列中的ipsec流发送至所述队列对应的处理器。
36.由于ipsec流为数据报文结构,对该结构进行研究发现,同一连接中的数据报文的序列号不同且递增,所以在本实施例中采用序列号作为哈希的差异参数,以实现同一报文数据的分流,采用这种方法不依赖于五元组,可有效避免同簇的ipsec流(即源ip和目的ip相同,但是源端口号和目的端口号不同的ipsec流)被分配到同一个处理器进行处理。
37.ipsec流被拆包分配至处理后,处理器能够对ipsec流进行封装、解封装和加解密等操作,需要说明的多个处理器具有参数标识,用于指示其调用时的优先级。
38.发送模块,用于将所述处理器处理完成的所述ipsec流通过与所述处理器对应的ipsec隧道发送至所述第二设备。
39.具体的,发送模块通过调用ipsec接口来实现ipsec流的转发,发送模块根据预设处理器与ipsec隧道映射关系以及预设负载算法来进行转发,其中,所述预设的负载算法包括但不限于轮询负载算法。
40.在本发明实施例中,还包括配置模块,用于配置与所述处理器一一对应的ipsec隧道,以形成第一设备至第二设备的多条链路。
41.具体的,一个队列对应一个处理器,一个处理器对应至少两个ipsec接口,一个ipsec接口对应一个ipsec隧道。需要说明的,建立ipsec隧道的具体方法采用现有技术,例如,在建立ipsec隧道之前,通信两端进行密钥交换以协商安全策略,在此不做赘述。
42.在本发明实施例中,队列、处理器、ipsec接口、ipsec隧道等都具有对应关系,在保证负载均衡的同时,可减少负载均衡计算量。
43.在本发明实施例中,还包括检测模块,用于在配置完所述ipsec隧道后,根据配置周期性地对所述ipsec隧道进行监测,获取延时、抖动和丢包率信息,根据所述延时、抖动和丢包率信息计算所述ipsec隧道的可用性,并将计算结果发送给配置模块。
44.具体的,配置模块可根据ipsec隧道配置情况生成配置列表,所述配置列表包含ipsec隧道信息及隧道两端接口信息,可选地,当到达检测周期时,检测模块遍历所述配置列表,计算列表中各个隧道的rtt平均值和方差、计算丢包率保存,当某一个ipsec隧道的丢包率大于等于40%时,将其在配置列表中的信息复制到不可用列表,并将该信息发送给配置模块。可选地,当到达检测周期时,检测模块遍历所述配置列表,计算列表中各个处理器的负载信息,当负载大于等于90%时,将其在配置列表中的信息复制在不可用列表,并将该信息发送给配置模块。
45.在本发明实施例中,所述配置模块还用于根据所述处理器和所述ipsec隧道的可
用性,从多条链路中移除对应的处理器或者ipsec隧道,在对应的处理器或者ipsec隧道被移除时,其对应的ipsec隧道或者处理器处于保活状态。
46.具体的,在一个处理器对应两个ipsec接口、对应两个ipsec隧道时,一个为常用隧道,一个为备用隧道,若ipsec隧道中任意一个隧道不可用,则对应的ipsec接口禁止被调用,用所述处理器对应可用ipsec接口进行数据转发,若两个ipsec隧道都被禁用,按照各个处理器的优先级标识调取其他处理器的备用ipsec隧道,若所述处理器不可用,则ipsec隧道保活,作为备用隧道,以供其他处理器调用。
47.采用上述方法,在处理器发生不可用时,可保持其隧道对应的活性,以供其他处理器调用,在隧道发生单点不可用时,不需要重新建立隧道,可调用其他备用隧道。
48.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1