一种IPSecVPN高性能数据同步方法

文档序号:9870407阅读:857来源:国知局
一种IPSec VPN高性能数据同步方法
【技术领域】
[0001 ] 本发明涉及一种IPSec VPN高性能数据同步方法,特别是涉及一种适用于IPSecVPN在双机热备或者负载均衡环境下,在主设备和备用设备之间,对数据进行同步的方法。
【背景技术】
[0002]IPSec VPN设备需要支持双机热备功能、适应负载均衡网络,以实现IPSec VPN设备自身的可靠性,以及所在的网络、用户业务的可靠运行。设备在运行前需要进行配置参数信息设置,在运行过程中将产生大量的工作数据。为了保证一台设备出现故障后,另外一台设备能够快速参与工作,需要保证同组的两台设备所有信息能够实时一致。
[0003]设备运行所需的配置信息一般由用户设置,其特点是本地保存、同步频率较低。设备的工作信息主要指设备在工作过程中,根据其自身业务的特点动态生成、维护业务处理的内存临时信息,重启时这些信息一般不会本地保存而丢失。其更新频率主要根据自身业务的特点以及受用户业务处理速率的影响。比如IKE密钥协商过程中,ISAKMP SA的更新频率主要是根据用户输入的配置参数决定,IPSec SA的更新频率则受用户输入的配置参数和用户业务处理速率决定。从更新频繁程度分析,IPSec SA的更新频率高于ISAKMP SA,其中IPSec SA的抗重放序列号和抗重放滑动窗口更新最为频繁。
[0004]设备工作信息的更新频度主要取决于设备协商IPSecSA的能力,更新频度一般不会低于毫秒级。
[0005]IPSec协议处理过程中,部分工作信息的变化频度非常高,主要包括IPSec SA的字节生命周期、抗重放序列号和抗重放滑动窗口。更新频度主要起决于设备的VPN处理能力。假如设备VPN处理能够达到100Mbps线速,其更新频度达到微妙级。
[0006]如果针对更新频度为微妙级进行实时同步,对VPN设备的性能影响非常大,影响设备正常运行。
[0007]传统的IPSecVPN数据同步一般采用定时查询获取同步数据,这对系统性能影响严重影响。

【发明内容】

[0008]传统的定时查询方法无法获取到同步数据是否发生改变,只是定时查询获取同步数据,这样进行所有项查询会带来无谓的浪费。
[0009]本发明要解决的技术问题是:提供一种提高工作效率,减少系统负载的IPSecVPN高性能数据同步方法。
[0010]本发明采用的技术方案如下:一种IPSecVPN高性能数据同步方法,其特征在于,设置待同步队列和同步队列,采用基于定时器的批量同步,数据信息项数据发生改变时,主动链接到待同步队列中,实现定时同步;所述待同步队列用于链接所有发生了改变但没有开始同步的数据信息项;所述同步队列用于维护所有发生了改变正在进行同步的数据信息项;所述定时器根据设置的定时时间阈值,负责发起数据同步功能。
[0011]待同步队列为一个链表头,负责链接所有发生了改变但没有开始同步的数据信息项;同步队列同样为一个链表头,负责维护所有发生了改变、正在进行同步的数据信息项。
[0012]传统的IPSecVPN数据同步一般采用定时查询获取同步数据,这对系统性能影响严重影响。本发明采用基于定时器的批量同步,数据信息项因同步数据发生改变,主动链接到待同步队列中。省去了传统定时查询方法因无法获取到同步数据是否发生改变,而进行所有项查询而带来无谓的浪费,同时也减少了定时查询所带来的数据拷贝。
[0013]进一步的,数据信息项数据发生改变时,主动链接到待同步队列中的具体方法为:在数据信息项中设置指向待同步队列的链表,当某一数据信息项中同步信息发生改变,则把该数据信息项链接到待同步队列中。
[0014]在每一天数据信息项中设置一个指向待同步队列的链表,当某一数据信息项中数据信息发生改变时,该链表会把该数据信息项链接到待同步队列,以等到定时时间阈值达到后进行同步。
[0015]进一步的,所述方法还包括,在IKE SA中设置一个list entry,当IKE SA发起了或者收到了DPD探测及相应报文后,list entry挂接到待同步队列中。
[0016]进一步的,所述方法还包括,在IPSec SA中设置一个list entry,判断当前IPSecSA是否进行了一次VPN处理,是,则说明抗重放序列号或者抗重放窗口发生了改变,则把当前IPSec SA的list entry挂接到待同步队列中。
[0017]进一步的,设置定时器定时时间阈值,当时间值大于等于所设定的定时时间阈值时,判定为达到定时时间阈值,定时器重新进入计时,进入下一个定时判断流程。
[0018]进一步的,实现定时同步的具体方法步骤为:
步骤一、判断定时器是否达到定时时间阈值,是则进入下一步,否则继续等待;
步骤二、待同步队列链接到同步队列链表尾,置待同步队列为空;
步骤三、同步队列确定本次要进行同步的数据信息项,并逐一收集同步队列中每个数据信息项的同步信息,发送给要同步信息的另一台设备进行同步。
[0019]同步进程或模块对同步队列中所有SA以设定固定数量的SA确定要同步的数据信息项,收集其中的相关信息(IKE SA包括双方cookie值、DH)探测序列号和ACK序列号,IPSecSA包括SP1、SA目的地址、协议、抗重放序列号和抗重放滑动窗口),收集一个SA信息后则把该SA的list entry置为空。如果该SA发生改变,则把该SA挂接到待同步队列中。收集完同步队列的所有SA信息后,则把这些信息存放在报文发送缓存区,由同步进程或者模块发送出去。当处理完同步队列里所有的SA信息后,同步队列为空链表头,等待下次定时时间阈值的到达。
[0020]当处理完同步队列里所有的SA信息后,同步队列为空链表头,等待下次达到定时时间阈值。如果同步队列的数据信息项数量超过了本次要进行同步的数据信息项数量,剩余的数据信息项则下一次达到定时时间阈值后再发送。
[0021]进一步的,所述步骤一和步骤二之间还包括:判断待同步队列中是否有需要进行同步的数据信息项,是则进入步骤二,否则返回步骤一继续等待达到下一个定时时间阈值。
[0022]进一步的,所述步骤三中,设定每次同步所处理的数据信息项的数量,按照该数量和待同步数据信息项的前后位置,确定本次要进行同步的数据信息项。
[0023]进一步的,进行大量SA信息定时批量同步时,降低第一次SA信息批量同步的数量,针对第一个同步报文,备设备完成同步后返回其处理的时间戳,主设备根据所述返回的时间戳调整后续发送的需要同步的SA信息数量。
[0024]针对前面提到可靠性机制,在实际使用过程中,当进行大量SA信息定时批量同步时,此时主设备无法知道备用设备当前的运行负载。可以降低第一次SA要进行批量同步的数量,具体数量要根据工程实践来确认。
[0025]进一步的,所述定时时间阈值的设定方法包括:根据当前IPSecSA或者IKE SA的数量动态调整设置,设主设备和备设备之间希望T秒钟完成一次数据同步,一次最多处理P个IPSec SA,当前系统中有S个IPSec SA的值发生了改变,则定时时间阈值=T/( S/P)。
[0026]定时器定时时间阈值进行自定义配置或根据当前IPSecSA或者IKE SA的数量动态调整设置。当定时时间阈值到达,待同步队列链表的所有内容移动到同步队列中。待同步队列则以空链表头的形式继续接受IKE SAD和IPSec SAD中之前没有发生改变的SA信息。
[0027]与现有技术相比,本发明的有益效果是:省去了传统定时查询方法因无法获取到同步数据是否发生改变,而进行所有项查询而带来无谓的浪费,同时也减少了定时查询所带来的数据拷贝。
【附图说明】
[0028]图1为本发明其中一实施例的原理不意图。
【具体实施方式】
[0029]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0030]本说明书(包括摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或者具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0031 ] 具体实施例一
一种IPSec VPN高性能数据同
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1