一种同步方法、第一设备、第二设备和同步系统与流程

文档序号:25061423发布日期:2021-05-14 14:45阅读:78来源:国知局
一种同步方法、第一设备、第二设备和同步系统与流程

1.本文涉及计算机网络技术,尤指一种同步方法、第一设备、第二设备和同步系统。


背景技术:

2.由于ipsec(ip security)大部分情况下保护的都是比较重要的流量,所以对ipsec的可靠性、稳定性有很高的要求。因此在部署ipsec时,需要以高可用性方式部署。高可用性部署方案分为主

备部署模式和主

主部署模式。
3.对于主

备部署,当主设备发生异常时,备设备的状态由“备”状态切换为“主”状态,并与远端设备协商新的ipsec隧道,备设备接管主设备的一切工作;对于主

主部署,主

主部署中的其中一个设备发生异常时,另一个设备与远端设备协商新的ipsec隧道,并立即接管异常设备的一切工作。但是由于旧的ipsec隧道并未超时,所以可能远端仍使用旧的ipsec隧道,但是本端并没有这些ipsec隧道的信息,本端因为缺少必要的隧道信息而无法正常加解密,导致ipsec流量中断。


技术实现要素:

4.本申请提供了一种同步方法、第一设备、第二设备和同步系统,可以使主设备的ipsec隧道信息同步到备设备或者主

主部署模式下的设备中的ipsec隧道信息同步,从而降低业务中断时间。
5.本申请提供了一种同步方法,应用于第一设备,包括,根据与远端设备的ike协商结果获取ipsec隧道信息;当在本设备保存所述ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备。
6.一种示例性的实施例中,所述通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备,包括:通过扩展ike报文头的exchange type字段,定义交换类型isakmp_xchg_ha,为所述isakmp_xchg_ha设置第一协议保留值,将所述ipsec隧道信息封装在扩展的ike报文中发送给第二设备。
7.一种示例性的实施例中,当第一设备重新上线时,通过第二扩展的ike报文向第二设备发送ipsec隧道信息请求,以从第二设备获取全部的ipsec隧道信息。
8.一种示例性的实施例中,所述通过第二扩展的ike报文向第二设备发送ipsec隧道信息请求,包括:通过扩展ike报文头的exchange type字段,定义交换类型isakmp_xchg_ha,为所述isakmp_xchg_ha设置第二协议保留值,将ipsec隧道信息请求封装在扩展的ike报文中发送给第二设备。
9.一种示例性的实施例中,在与第二设备通信之前,包括:构建用户数据包协议udp套接字,所述udp套接字的源端口和目的端口与远端设备
的ike协商时的通信端口一致;根据所述套接字进行监听。
10.本申请还提供了一种同步方法,应用于第二设备,包括,当接收到第一设备发送的第一扩展的ike报文且满足预设条件时,从所述第一扩展的ike报文中解析出ipsec隧道信息;并保存所述ipsec隧道信息。
11.一种示例性的实施例中,当在本设备保存从第一设备接收的ipsec隧道信息时,注册超时删除定时器;当超时删除定时器超时时,如果本设备的当前状态为备状态或者所述ipsec隧道信息中的单元id与本设备的单元id不一致且第一设备为“主”状态,则不删除本设备从第一设备接收的ipsec隧道信息。
12.一种示例性的实施例中,当接收到第一设备发送的同步删除消息时,删除本设备保存的从第一设备接收的ipsec隧道信息。
13.一种示例性的实施例中,当接收到第一设备发出的ipsec隧道信息请求时,将本设备全部的ipsec隧道信息通过第一扩展的ike报文发送给第一设备。
14.本申请提供了一种同步系统,包括:第一设备、第二设备和远端设备;第一设备设置为根据与远端设备的ike协商结果获取ipsec隧道信息;当在本设备保存ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备;第二设备接收到第一设备发送的第一扩展的ike报文且满足预设条件时,从第一扩展的ike报文中解析出ipsec隧道信息;并保存所述ipsec隧道信息。
15.本申请提供了一种第一设备,包括:第一转发模块、第一ipsec进程模块;所述第一ipsec进程模块,设置为根据与远端设备的ike协商结果获取ipsec隧道信息;当向第一转发模块发送ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备;所述第一转发模块,设置为接收所述ipsec隧道信息。
16.本申请提供了一种第二设备,包括:第二转发模块、第二ipsec进程模块;所述第二ipsec进程模块当接收到第一设备通过第一扩展的ike报文形式发送的报文且满足预设条件时,从通过第一扩展的ike报文发送的报文中解析出ipsec隧道信息;保存所述ipsec隧道信息,并向第二转发模块发送所述ipsec隧道信息;所述第二转发模块,设置为接收所述ipsec隧道信息。
17.与相关技术相比,本申请的第一设备根据与远端设备的ike协商结果获取ipsec隧道信息;当在本设备保存ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备,从而使第二设备获取到第一设备的ipsec隧道信息,减少因为高可用性状态切换导致丢包,降低业务中断时间。
18.本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
19.附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的
实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
20.图1为本申请实施例的同步方法的示意图;图2为本申请实施例的主

备部署模式的架构;图3为本申请实施例的主

主部署模式的架构;图4为本申请实施例的建立套接字的流程图;图5为本申请实施例的同步方法的示意图;图6为本申请实施例的同步系统示意图;图7为本申请实施例的ike协商流程;图8为本申请实施例的设备异常时的切换流程;图9为本申请实施例的异常设备重新上线的流程图;图10为本申请实施例的第一设备的示例;图11为本申请实施例的第二设备的示例。
具体实施方式
21.图1为本申请实施例的同步方法的示意图,如图1所示,本实施例的同步方法,应用于第一设备,包括s11
‑ꢀ
s12步骤:s11、根据与远端设备的ike协商结果获取ipsec隧道信息。
22.s12、当在本设备保存所述ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备。
23.其中,ipsec隧道信息包括安全联盟sa和本隧道的单元id。其中sa包括安全参数索引、目的ip 地址和安全协议(ah或esp)标识符。本隧道的单元id是配置该ipsec隧道时所指定的单元id。此单元id的作用是,在主

主模式部署时,当双主都正常工作的情况下,此ipsec策略仅在与其高可用性模块单元id一致的设备上生效。在该隧道协商成功后,需将sa和该隧道的单元id一起备份到对端设备。
24.其中,本设备保存ipsec隧道信息是指将ipsec隧道信息保存到负责对业务流量进行加密或对收到的ipsec密文进行解密并转发的转发模块中。
25.通过将所述ipsec隧道信息发送给第二设备,保证在设备突然异常下线时,不会因为隧道两端sa不同步导致ipsec加解密失败而发生丢包,保证高可用性设备无感下线。
26.第一设备为主

备部署模式(主

备部署模式的架构如图2所示)下的“主”设备,或者主

主部署模式(主

主部署模式的架构如图3所示)下的作为“主”设备的设备。在主

主部署模式下的两个设备互为主备。第一设备可以包括ipsec进程模块、转发模块和高可用性模块。ipsec进程模块可以是一个运行在用户空间,实现ike自动协商的程序,能够实现ike sa和ipsec sa的协商和维护。转发模块可以是一个运行着完整协议栈、能够根据ipsec隧道信息进行加解密的模块,可以是内核,也可以是一个进程;转发模块对收到的业务流量进行加密,发送给远端的设备,并对收到的ipsec密文进行解密并转发。高可用性模块可以是一个运行在用户空间,实现了两台设备之间同步状态信息以实现双机热备的程序。
27.一种示例性的实施例中,通过“主”设备(即上述第一设备)的ipsec进程模块向“备”设备(即上述第二设备)的ipsec进程模块发出协商出的ipsec隧道信息,并由“备”设备的ipsec进程模块将ipsec隧道信息加载到本设备的转发模块中,使得备机能够热上线,流
量不中断。
28.一种示例性的实施例中,所述通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备,包括:通过扩展ike报文头的exchange type字段,定义交换类型isakmp_xchg_ha,为所述isakmp_xchg_ha设置第一协议保留值,将所述ipsec隧道信息封装在扩展的ike报文中发送给第二设备。
29.其中,第一协议保留值可以为249。
30.一种示例性的实施例中,当第一设备重新上线时,通过第二扩展的ike报文向第二设备发送ipsec隧道信息请求,以从第二设备获取全部的ipsec隧道信息。保证高可用性设备从异常中恢复,重新上线时不会因为其发起的ike协商而导致可能发生的ipsec状态异常。
31.一种示例性的实施例中,所述通过第二扩展的ike报文向第二设备发送ipsec隧道信息请求,包括:通过扩展ike报文头的exchange type字段,定义交换类型isakmp_xchg_ha,为所述isakmp_xchg_ha设置第二协议保留值,将ipsec隧道信息请求封装在扩展的ike报文中发送给第二设备。
32.其中,第二协议保留值可以为248。
33.通过定义这种新类型的ike报文用于主备设备的信息同步。
34.一种示例性的实施例中,在与第二设备通信之前,包括:构建用户数据包协议udp套接字,所述udp套接字的源端口和目的端口与远端设备的ike协商时的通信端口一致;根据所述套接字进行监听。
35.一种示例性的实施例中,当高可用性通信所用ip地址未用于ipsec协商时需要构建套接字。并通过该套接字监听对端高可用性设备的ipsec进程模块发出的扩展的ike报文。
36.其中,套接字的源端口和目的端口是500端口。因为复用了现有的ike通信机制,不需要开启额外的通信端口,简化了部署方式和可能存在的安全风险。
37.例如,第一设备的ipsec进程模块和高可用性模块间具有通知机制,当高可用性模块的配置和/或状态发生变化时,通知本设备的ipsec进程模块,本设备的ipsec进程模块根据高可用性模块通知的信息,决定是否与第二设备的ipsec进程模块通信。当第一设备的ipsec进程模块被通知开启了高可用性,并获取到高可用性通信地址时,则建立一个新的udp套接字(建立套接字的流程如图4所示),套接字的源端口和目的端口与ike协商时的通信端口一致,即500端口,并将此套接字加入到ipsec进程模块的监听序列中。
38.主

主部署模式或主

备部署模式下的“主”设备和“备”设备的处理是一致的,都是根据高可用性状态和通信地址建立套接字。其中,“主”设备的套接字用于向“备”设备同步ipsec隧道信息或当“主”设备刚上线时向“备”设备发送同步ipsec隧道信息的请求,“备”设备的套接字用于接收“主”设备发送的同步信息或接收“主”设备发送同步ipsec隧道信息的请求。
39.一种示例性的实施例中,根据高可用性状态和ha(high availability,简称高可
用性)通信地址建立套接字。其中,高可用性状态是指启用了高可用性功能后,主

备设备或主

主设备间协商或探测出的状态,包括本端的主备状态和对端的主备状态。
40.与相关技术相比,本申请的第一设备根据与远端设备的ike协商结果获取ipsec隧道信息;当在本设备保存ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备,从而使第二设备获取到第一设备的ipsec隧道信息,减少因为高可用性状态切换导致丢包,降低业务中断时间。
41.图5为本申请实施例的同步方法的示意图,如图5所示,本实施例的同步方法,应用于第二设备,包括s51
‑ꢀ
s52:s51、当接收到第一设备发送的第一扩展的ike报文且满足预设条件时,从所述第一扩展的ike报文中解析出ipsec隧道信息;s52、保存所述ipsec隧道信息。
42.其中,预设条件包括本设备的当前状态为“备”状态或者ipsec隧道信息中的单元id与本设备的单元id不同。其中,单元id指高可用性配置中的设备id。保存所述ipsec隧道信息是指将所述ipsec隧道信息保存到负责对业务流量进行加密或对收到的ipsec密文进行解密并转发的转发模块中。
43.第二设备包括主

备部署模式下的“备”设备,或者主

主部署模式下作为“备”设备的设备。
44.一种示例性的实施例中,当在本设备保存从第一设备接收的ipsec隧道信息时,注册超时删除定时器;当超时删除定时器超时时,如果本设备的当前状态为备状态或者所述ipsec隧道信息中的单元id与本设备的单元id不一致且第一设备为“主”状态,则不删除本设备从第一设备接收的ipsec隧道信息。
45.一种示例性的实施例中,当接收到第一设备发送的同步删除消息时,删除本设备保存的从第一设备接收的ipsec隧道信息。
46.一种示例性的实施例中,当接收到第一设备发出的ipsec隧道信息请求时,将本设备全部的ipsec隧道信息通过第一扩展的ike报文发送给第一设备。
47.本申请实施例的同步方法可以减少因为高可用性状态切换导致丢包,降低业务中断时间。
48.图6为本申请实施例的同步系统示意图。如图6所示,本申请实施例的同步系统包括第一设备、第二设备和远端设备;第一设备设置为根据与远端设备的ike协商结果获取ipsec隧道信息;当在本设备保存ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备;第二设备接收到第一设备发送的第一扩展的ike报文且满足预设条件时,从第一扩展的ike报文中解析出ipsec隧道信息;并保存所述ipsec隧道信息。
49.其中,预设条件包括本设备的当前状态为“备”状态或者ipsec隧道信息中的单元id与本设备的单元id不同。其中,单元id指高可用性配置中的设备id。
50.基于上述同步系统,ike协商流程如图7所示。在主

备部署模式下,当“主”设备(即上述第一设备)协商成功一条ipsec隧道后,除了将协商好的ipsec隧道信息发送到转发模块以进行正常的ipsec流量处理外,还通过套接字,将该ipsec隧道信息封装成一种扩展的
ike消息,发送给“备”设备(即上述第二设备)的ipsec进程模块。“备”设备的ipsec进程模块收到该消息后,先检查自己的高可用性状态,如果是“备”状态,则在本进程内生成对应的数据结构并保存该数据结构,然后再将ipsec隧道信息发送到转发模块,并同时注册ipsec隧道超时删除定时器。如果不是“备”状态,则直接丢弃ipsec隧道信息。为保证与“主”设备的ipsec隧道信息一致, ipsec隧道超时删除定时器超时时,如果“备”设备的当前状态仍为“备”状态,则不执行删除备份的ipsec隧道的操作,而是等待由“主”设备发送的同步删除消息删除。此时,“备”设备就拥有了一套和“主”设备一样的ipsec隧道信息。当“主”设备删除ipsec隧道时,“备”设备也可以删除备份的ipsec隧道信息。
51.对于主

主部署模式,与主

备部署模式不同的是,当ipsec隧道信息中的单元id与本设备的单元id不一致时,将ipsec隧道信息转发到本设备的转发模块。
52.基于上述同步系统,设备异常时的切换流程如图8所示。在主

备部署模式下,如果“主”设备异常,“备”设备接管“主”设备的一切任务,“备”设备的高可用性状态由“备”状态转变成“主”状态,“备”设备由静默状态变为活动状态,所有ipsec策略生效,主动发起协商并响应协商报文。此时虽然会协商出新的ipsec隧道信息,并将其发送到转发模块,“备”设备开始使用新的ipsec隧道进行加解密,因为“备”设备中有完整的ipsec隧道信息,所以也可以正常解密远端设备使用旧ipsec隧道信息加密的报文。从而实现了流量不中断。
53.在主

主部署模式下,其中一台“主”设备异常,另一台“主”设备接管异常“主”设备的功能,此时另一台“主”设备中的非本机单元id的ipsec策略生效,主动发起协商并响应协商报文,建立新的ipsec隧道。
54.基于上述同步系统,异常设备重新上线的流程图如图9所示。异常设备重新上线后,该设备的ipsec进程模块检测自身处于高可用性环境中,建立对应的套接字。向现有的“主”设备发送第二扩展的ike报文,请求现有“主”设备将其已有的ipsec隧道信息发送到刚上线的设备上。
55.如果是主

备部署模式部署,则切换配置抢占“主”,发起ike协商,并添加定时删除备份ipsec隧道信息的定时器。
56.如果是主

主部署方式,则检查是否有与本设备id一致的ipsec策略,如有则马上发起ike协商,并添加定时删除与本设备id一致的备份ipsec隧道信息的定时器。
57.图10为本申请实施例的第一设备的示意图。如图10所示,本申请实施例的第一设备包括第一转发模块、第一ipsec进程模块;所述第一ipsec进程模块,设置为根据与远端设备的ike协商结果获取ipsec隧道信息;当向第一转发模块发送ipsec隧道信息时,通过第一扩展的ike报文将所述ipsec隧道信息发送给第二设备;所述第一转发模块,设置为接收所述ipsec隧道信息。
58.图11为本申请实施例的第二设备的示意图。如图11所示,本申请实施例的第二设备包括第二转发模块、第二ipsec进程模块;所述第二ipsec进程模块当接收到第一设备通过第一扩展的ike报文形式发送的报文且满足预设条件时,从通过第一扩展的ike报文发送的报文中解析出ipsec隧道信息;保存所述ipsec隧道信息,并向第二转发模块发送所述ipsec隧道信息;所述第二转发模块,设置为接收所述ipsec隧道信息。
59.其中,预设条件包括本设备的当前状态为“备”状态或者ipsec隧道信息中的单元id与本设备的单元id不同。其中,单元id指高可用性配置中的设备id。
60.本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
61.本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
62.此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
63.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于 ram、rom、eeprom、闪存或其他存储器技术、cd

rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1