公开/公告号CN109600277A
专利类型发明专利
公开/公告日2019-04-09
原文格式PDF
申请/专利权人 杭州迪普科技股份有限公司;
申请/专利号CN201811477865.1
发明设计人 张闻闻;
申请日2018-12-05
分类号
代理机构北京博思佳知识产权代理有限公司;
代理人林祥
地址 310051 浙江省杭州市滨江区通和路68号中财大厦6楼
入库时间 2024-02-19 08:33:32
法律状态公告日
法律状态信息
法律状态
2020-08-04
授权
授权
2019-05-03
实质审查的生效 IPC(主分类):H04L12/26 申请日:20181205
实质审查的生效
2019-04-09
公开
公开
技术领域
本申请涉及网络通信技术领域,特别设计一种基于网络地址转换(NetworkAddress Translation,NAT)设备的互联网协议安全(Internet Protocol Security,IPSec)隧道保活方法和装置。
背景技术
虚拟专用网络(Virtual Private Network,VPN)是在公用网络上建立专用网络,进行加密通信。NAT可以让那些使用专用地址的VPN连接到互联网或其它互联网协议(Internet Protocol,IP)网络上,NAT设备在将专用网络的数据包发送到公用网络时,会根据NAT转换表项在数据包的报头把专用网络的IP地址转换成公用网络的IP地址,从而实现专用网络的数据包在公用网络中传输。NAT设备上保存的各个NAT转换表项若在超过设定时段内未被使用,会被删除,被删除的NAT转换表项对应的NAT会话(本端与对端的通话,由源IP地址、源端口、目的IP地址、目的端口、通信协议组成的五元组作为其唯一标识)也会老化,VPN中的设备不能使用该NAT会话通信,可能会引起业务中断等问题,必须要重新建立NAT转换表项和NAT会话才可以通信,因此,NAT设备中需要进行NAT保活检测。
IPSec在IP层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置,用来保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径。IPSec隧道是网络中两个IPSec实体采用IPSec协议建立起来的虚拟连接通信通道。死亡对端检测(Dead Peer Detection,DPD)用于检测IPSec对端设备是否存在和可通信,通过定期向IPSec对端设备发送DPD探测报文,根据IPSec对端设备是否对DPD探测报文进行回复判断IPSec对端设备是否存在。当判断IPSec对端设备不存在时,就会删除IPSec隧道。
若NAT设备作为IPSec实体与另一个IPSec实体建立了IPSec隧道,由于通过IPSec隧道的报文也需要根据NAT转换表项进行转换,因此,为了确保IPSec隧道正常通信,会同时启动IPSec隧道保活检测和NAT保活检测,这两种保活检测各自发送保活检测报文进行检测,有时可能会发送多余的保活检测报文,占用NAT设备资源。
发明内容
有鉴于此,本申请提供一种基于NAT设备的IPSec隧道保活方法和装置,以解决有时可能会发送多余的保活检测报文,占用NAT设备资源的问题。
具体地,本申请是通过如下技术方案实现的:
一种基于NAT设备的IPSec隧道保活方法,应用于所述NAT设备中,所述方法包括:
获取NAT保活检测周期和IPSec保活检测周期;
比较所述NAT保活检测周期与所述IPSec保活检测周期的大小;
若所述NAT保活检测周期大于或等于所述IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。
一种基于NAT设备的IPSec隧道保活装置,应用于所述NAT设备中,所述装置包括:
获取模块,用于获取NAT保活检测周期和IPSec保活检测周期;
比较模块,用于比较所述NAT保活检测周期与所述IPSec保活检测周期的大小;
处理模块,用于若所述NAT保活检测周期大于或等于所述IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。
由以上本申请提供的技术方案可见,获取NAT保活检测周期和IPSec保活检测周期,并比较二者大小;若NAT保活检测周期大于或等于IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。由于DPD请求报文也是NAT转换表项对应的NAT会话中的流量,因此,若NAT保活检测周期大于或等于IPSec保活检测周期,在NAT保活检测周期内总会有DPD请求报文需要使用NAT会话,则无需进行启动NAT保活检测,只进行IPSec保活检测即可,就可以实现IPSec隧道保活,相对于现有技术可以减少报文发送,节省NAT设备资源。
附图说明
图1为本申请示出的一种基于NAT设备的IPSec隧道保活方法的流程图;
图2为本申请示出的S13的流程图;
图3为本申请示出的启动IPSec保活检测的流程图;
图4为本申请示出的另一种基于NAT的IPSec保活检测方法的流程图;
图5为本申请示出的一种基于NAT设备的IPSec隧道保活装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
现有方案中,若NAT设备作为IPSec实体与另一个IPSec实体建立了IPSec隧道,会同时启动IPSec隧道保活检测和NAT保活检测,IPSec保活检测时会定期发送DPD检测请求报文,来保证已建立的IPSec隧道处于可用状态,连接不会被清除;而NAT保活检测会定期发送NAT保活请求报文。实际上,有时并不需要同时进行IPSec隧道保活检测和NAT保活检测,只要进行一种保活检测即可,若仍同时进行IPSec隧道保活检测和NAT保活检测检查,就会发送多余的保活检测报文,大大浪费NAT设备的资源。
为了解决上述问题,本发明实施例提供了一种基于NAT设备的IPSec隧道保活方法,以确保不会发送多余的保活检测报文,节省NAT设备资源。请参见图1,图1为本申请示出的一种基于NAT设备的IPSec隧道保活方法的流程图,应用于NAT设备中。
S11:获取NAT保活检测周期和IPSec保活检测周期。
NAT保活检测和IPSec保活检测会分别设置NAT保活检测周期和IPSec保活检测周期,可以先获取这两个保活检测周期。
S12:比较NAT保活检测周期与IPSec保活检测周期的大小。
S13:若NAT保活检测周期大于或等于IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。
由以上本申请提供的技术方案可见,获取NAT保活检测周期和IPSec保活检测周期,并比较二者大小;若NAT保活检测周期大于或等于IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。由于DPD请求报文也是NAT转换表项对应的NAT会话中的流量,因此,若NAT保活检测周期大于或等于IPSec保活检测周期,在NAT保活检测周期内总会有DPD请求报文需要使用NAT会话,则无需进行启动NAT保活检测,只进行IPSec保活检测即可,就可以实现IPSec隧道保活,相对于现有技术可以减少报文发送,节省NAT设备资源。
请参见图2,上述S13中的启动NAT保活检测,实现过程如图2所示,具体包括:
S131:监控NAT设备的各个NAT会话的闲置时长是否超过第一设定时长。
NAT设备上通常会有多个NAT会话,这些NAT会话的未有流量经过的时长可以定义为闲置时长,可以监控这些NAT会话的闲置时长是否超过第一设定时长,第一设定时长可以根据实际需要进行设定。
S132:针对闲置时长超过第一设定时长的NAT会话,以NAT保活检测周期发送对应的NAT保活请求报文。
可以一直以NAT保活检测周期发送NAT保活请求报文,也可以设置重传次数,针对一个NAT会话,记录NAT保活请求报文的发送次数,在发送次数小于重传次数时,才会以NAT保活检测周期发送NAT保活请求报文,一旦超过重传次数,则直接删除NAT会话和对应的NAT转换表项。
S133:确定在第二设定时长内未接收到对应的NAT保活响应报文的NAT保活请求报文。
第二设定时长可以根据实际需要进行设定。
S134:删除确定出的NAT保活请求报文对应的NAT会话及NAT转换表项。
当NAT会话对端的设备正常时,接收到NAT保活请求报文后会回复NAT保活响应报文,若在第二设定时长内未接收到NAT保活响应报文,则说明NAT会话对端的设备异常,该NAT会话无需保留,直接删除即可,同时还需要删除该NTA会话对应的NAT转换表项。
一种可选的实施方式,若NAT保活检测周期小于IPSec保活检测周期,则同时启动NAT保活检测和IPSec保活检测。因为此时IPSec保活检测周期较大,若NAT会话在老化前一直闲置,既没有DPD检测报文也没有流量通过,那么NAT会话将被删除,后续流量到来时查找不到该NAT会话就会中断,因此若只进行IPSec保活检测,不能确保NAT会话不被删除,因此需要启动NAT保活检测和IPSec保活检测这两种保活检测。
请参见图3,上述启动IPSec保活检测,实现过程如图3所示,具体包括:
S31:监控IPSec隧道的闲置时长是否超过第三设定时长。
NAT设备上IPSec隧道未有流量经过的时长可以定义为闲置时长,可以监控IPSec隧道的闲置时长是否超过第三设定时长,第三设定时长可以根据实际需要进行设定。
S32:若IPSec隧道的闲置时长超过第三设定时长,以IPSec保活检测周期通过IPSec隧道向IPSec对端设备发送DPD请求报文,NAT设备与IPSec对端设备之间建立IPSec隧道。
可以一直以IPSec保活检测周期发送DPD请求报文,也可以设置重传次数,记录DPD请求报文的发送次数,在发送次数小于重传次数时,才会以IPSec保活检测周期发送DPD请求报文,一旦超过重传次数,则直接删除IPSec隧道。
S33:确定在第四设定时长内是否接收到DPD响应报文。
第四设定时长可以根据实际需要进行设定。
S34:若确定在第四设定时长内未接收到DPD响应报文,则删除IPSec隧道。
当IPSec对端设备正常时,接收到DPD请求报文后会回复DPD响应报文,若在第四设定时长内未接收到DPD响应报文,则说明IPSec对端设备异常,该IPSec隧道无需保留,直接删除即可。
请参见图4,提供另一种基于NAT设备的IPSec隧道保活方法,如图4所示,在图1的基础上还包括:
S14:获取接收到的封装安全负载(Encapsulating Security Payload,ESP)协商报文的源IP地址与携带的设备的IP地址。
S15:确定源IP地址与设备的IP地址是否相同,若确定源IP地址与设备的IP地址不同,则执行S11。
IPSec具体由两种协议组成,一种是认证头部(Authentication Header,AH)协议,协议号是51,另一种是ESP协议,协议号是50。因为AH没有端口的概念,不会使用NAT会话。然而ESP协议的发起方在ESP协商报文中携带本端的IP地址,响应方接收到ESP协商报文,可以检查ESP协商报文的源IP地址和携带的设备的地址是否相同,从而确定是否经过了NAT设备,因此,在本申请中在确定ESP协商报文中源IP地址与设备的IP地址不同后,确定自身是NAT设备,则执行S11开始进行本申请中的IPSec保活检测方法。
请参见图5,图5为本申请示出的一种基于NAT设备的IPSec隧道保活装置的结构示意图,应用于NAT设备中,该装置包括:
获取模块51,用于获取NAT保活检测周期和IPSec保活检测周期;
比较模块52,用于比较NAT保活检测周期与IPSec保活检测周期的大小;
处理模块53,用于若NAT保活检测周期大于或等于IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。
由以上本申请提供的技术方案可见,获取NAT保活检测周期和IPSec保活检测周期,并比较二者大小;若NAT保活检测周期大于或等于IPSec保活检测周期,则停止NAT保活检测,启动IPSec保活检测。由于DPD请求报文也是NAT转换表项对应的NAT会话中的流量,因此,若NAT保活检测周期大于或等于IPSec保活检测周期,在NAT保活检测周期内总会有DPD请求报文需要使用NAT会话,则无需进行启动NAT保活检测,只进行IPSec保活检测即可,就可以实现IPSec隧道保活,相对于现有技术可以减少报文发送,节省NAT设备资源。
具体的,上述处理模块53,还用于:
若NAT保活检测周期小于IPSec保活检测周期,则同时启动NAT保活检测和IPSec保活检测。
具体的,上述处理模块53,用于启动NAT保活检测,具体用于:
监控NAT设备的各个NAT会话的闲置时长是否超过第一设定时长;
针对闲置时长超过第一设定时长的NAT会话,以NAT保活检测周期发送对应的NAT保活请求报文;
确定在第二设定时长内未接收到对应的NAT保活响应报文的NAT保活请求报文;
删除确定出的NAT保活请求报文对应的NAT会话及NAT转换表项。
具体的,上述处理模块53,用于启动IPSec保活检测,具体用于:
监控IPSec隧道的闲置时长是否超过第三设定时长;
若IPSec隧道的闲置时长超过第三设定时长,以IPSec保活检测周期通过IPSec隧道向IPSec对端设备发送DPD请求报文,NAT设备与IPSec对端设备之间建立IPSec隧道;
确定在第四设定时长内是否接收到DPD响应报文;
若确定在第四设定时长内未接收到DPD响应报文,则删除IPSec隧道。
可选的,上述获取模块51,还用于:
获取接收到的ESP协商报文的源IP地址与携带的设备的IP地址;
确定源IP地址与设备的IP地址是否相同;
若确定源IP地址与设备的IP地址不同,则执行获取NAT保活检测周期和IPSec保活检测周期的步骤。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
机译: 用于与ipsec的ike和esp隧道模式进行健壮的NAT互通的方法和装置
机译: 用于与ipsec的ike和esp隧道模式进行健壮的NAT互通的方法和装置
机译: 通信系统,ipsec隧道终止设备以及用于它们的ipsec隧道通信继续方法