首页> 中国专利> IPSEC隧道恢复方法、分支出口设备和IPSEC VPN系统

IPSEC隧道恢复方法、分支出口设备和IPSEC VPN系统

摘要

本发明公开了一种IPSEC隧道恢复方法、分支出口设备和IPSEC VPN系统,涉及通信领域,用于解决长UDP流被中间网络设备丢弃或抑制导致IPSEC隧道断开需要人工介入恢复的问题。IPSEC隧道恢复方法包括:分支出口设备随机创建IPSEC备用端口;分支出口设备使用IPSEC默认端口作为源端口与总部出口设备进行IKE协商以建立第一IPSEC隧道;IKE协商成功后,分支出口设备与总部设备通过第一IPSEC隧道进行第一内网报文的通信;当第一内网报文的时间戳无更新时,分支出口设备触发第一DPD探测;如果第一DPD探测失败,则分支出口设备断开第一IPSEC隧道,并分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道。本发明实施例应用于IPSEC VPN。

著录项

  • 公开/公告号CN106533881A

    专利类型发明专利

  • 公开/公告日2017-03-22

    原文格式PDF

  • 申请/专利权人 锐捷网络股份有限公司;

    申请/专利号CN201610991029.X

  • 发明设计人 董圆;

    申请日2016-11-10

  • 分类号H04L12/46(20060101);H04L29/06(20060101);

  • 代理机构11274 北京中博世达专利商标代理有限公司;

  • 代理人申健

  • 地址 350002 福建省福州市仓山区金山大道618号桔园洲工业园19#楼

  • 入库时间 2023-06-19 01:52:33

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-09-20

    授权

    授权

  • 2017-04-19

    实质审查的生效 IPC(主分类):H04L12/46 申请日:20161110

    实质审查的生效

  • 2017-03-22

    公开

    公开

说明书

技术领域

本发明涉及通信领域,尤其涉及一种IPSEC隧道恢复方法、分支出口设备和IPSECVPN系统。

背景技术

IPSEC(英文全称:IP security,因特网协议安全)VPN(英文全称:VirtualPrivate Network,中文全称:虚拟专用网)隧道不一定一直都有流量,此时会触发发送DPD(英文全称:dead peer detection,中文全称:失效对等体检测)探测报文,DPD探测报文是一种UDP报文。由于UDP流是无连接的,中间网络设备经常会对五元组(源IP地址、目的IP地址、源端口、目的端口、协议号)固定不变的长UDP流进行丢弃或抑制。一旦IPSEC的DPD探测报文被丢弃或抑制,那么IPSEC VPN隧道就会断开,从而导致内网资源访问异常。而这时如果重新协商,中间网络设备的流表的五元组可能还未老化,重新协商还是使用原来的五元组,导致协商报文还是被中间网络设备丢弃或抑制,导致隧道无法正常建立。

现有技术通常采用人工介入关闭IPSEC功能,等待十几分钟之后,然后重新配置IPSEC使能,此时由于中间网络设备的流表已经老化了,从而能建立新的IPSEC隧道,正常进行数据转发;或者通过人工清除中间网络设备的流表,然后重新配置IPSEC使能。但是该方案仍然需要人工操作不便于快速重新建立IPSEC VPN隧道。

发明内容

本发明的实施例提供一种IPSEC隧道恢复方法、分支出口设备和IPSEC VPN系统,用于解决长UDP流被中间网络设备丢弃或抑制导致IPSEC隧道断开需要人工介入恢复的问题。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供了一种IPSEC隧道恢复方法,包括:

分支出口设备随机创建IPSEC备用端口;

所述分支出口设备使用IPSEC默认端口作为源端口与总部出口设备进行因特网密钥交换协议IKE协商以建立第一IPSEC隧道;

IKE协商成功后,所述分支出口设备与所述总部设备通过所述第一IPSEC隧道进行第一内网报文的通信;

当所述第一内网报文的时间戳无更新时,所述分支出口设备触发第一失效对等体检测DPD探测;

如果所述第一DPD探测失败,则所述分支出口设备断开所述第一IPSEC隧道,并分别使用所述IPSEC默认端口和所述IPSEC备用端口作为源端口与所述总部出口设备进行IKE协商以建立第二IPSEC隧道。

第二方面,提供了一种分支出口设备,包括:

创建单元,用于随机创建因特网协议安全IPSEC备用端口;

协商单元,用于使用IPSEC默认端口作为源端口与总部出口设备进行因特网密钥交换协议IKE协商以建立第一IPSEC隧道;

通信单元,用于IKE协商成功后,与所述总部设备通过所述第一IPSEC隧道进行第一内网报文的通信;

探测单元,用于当所述第一内网报文的时间戳无更新时,触发第一失效对等体检测DPD探测;

所述协商单元,还用于如果所述第一DPD探测失败,则断开所述第一IPSEC隧道,并分别使用所述IPSEC默认端口和所述IPSEC备用端口作为源端口与所述总部出口设备进行IKE协商以建立第二IPSEC隧道。

第三方面,提供了一种因特网协议安全虚拟专用网IPSEC VPN系统,包括如第二方面所述的分支出口设备。

本发明的实施例提供的IPSEC隧道恢复方法、分支出口设备和IPSEC VPN系统,通过分支出口设备使用IPSEC默认端口作为源端口与总部出口设备进行IKE协商以建立第一IPSEC隧道,并使用第一IPSEC隧道进行内网报文的通信,当内网报文的时间戳无更新时触发DPD探测,如果DPD探测失败,说明五元组固定不变的长UDP报文有可能被中间网络设备丢弃或抑制导致通信失败,此时分支出口设备断开第一IPSEC隧道,并分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道,此时,由于是新的IPSEC备用端口作为源端口,改变了五元组,因此通信过程中的长UDP报文不会被中间网络设备丢弃或抑制,解决了长UDP流被中间网络设备丢弃或抑制导致IPSEC隧道断开需要人工介入恢复的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例提供的IPSEC VPN系统的结构示意图;

图2为本发明的实施例提供的一种IPSEC隧道恢复方法的流程示意图;

图3为本发明的实施例提供的IKE协商的第一阶段的主模式的报文交互示意图;

图4为本发明的实施例提供的IKE协商的第一阶段的野蛮模式的报文交互示意图;

图5为本发明的实施例提供的IKE协商的第二阶段的报文交互示意图;

图6为本发明的实施例提供的进行IKE协商以建立第二IPSEC隧道的流程示意图;

图7为本发明的实施例提供的另一种IPSEC隧道恢复方法的流程示意图;

图8为本发明的实施例提供的进行IKE协商以重建第一IPSEC隧道的流程示意图;

图9为本发明的实施例提供的分支出口设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

随着网络的不断发展和扩张,网络的安全性受到越来越多的关注。虽然在过去的很多年中,很多方法被提出来满足网络的安全需求,但是人们真正需要的是在IP(英文全称:internet protocol,中文全称:因特网协议)层提供安全性的方法,这样可以使TCP(英文全称:transmission control protocol,中文全称:传输控制协议)/IP高层的所有协议受益。于是就产生了为IP通信带来安全性的协议IPSEC。

IPSEC并非一个单独的协议,而是一系列为IP网络提供完成安全性的协议和服务的集合。这些服务和协议结合起来提供不同类型的保护。为上次协议和应用提供透明的安全服务。

IPSEC中的一些基本概念:

SA(英文全称:security association,中文全称:安全联盟):为安全目的创建的一个单向的逻辑连接,所有经过同一SA的数据会得到相同的服务、AH(英文全称:authentication header,中文全称:认证头部)或者ESP(英文全称:encapsulatingsecurity payload,中文全称:封装安全负载),如果同一个数据流需要同时使用AH和ESP的话,那么需要两个嵌套的SA,双向通信维护一对SA。

SA DATABASE(英文全称:security association database,中文全称:安全联盟数据库):用于存放和SA关联的所有状态数据的存储结构。

安全参数索引(英文全称:security parameters index):AH或者ESP报头中的32位数值,用于在接收端识别数据流到SA的绑定关系。

SPD(英文全称:security policy database,中文全称:安全策略数据库):指明所有IP数据报文应使用何种安全服务,以及如何获得这些服务的数据结构。

安全处理协议:AH或者ESP,可独立使用,也可同时使用。前者提供数据完整性保护,后者提供数据私密性和数据完整性保护。两个协议都是将一个变长的报文结构插入到IP头和上层协议之间。都支持传输模式和隧道模式。传输模式时在原始IP头部和上层协议之间插入AH或者ESP。隧道模式是增加新的IP头部,旧的IP头部用来作为负载。

IKE(英文全称:internet key exchange protocol,中文全称:因特网密钥交换协议):相对独立,一个通用的密钥协商协议。为因特网上任何需要加密的和认证的通用协议提供算法和密钥协商服务。IKE1.0将交换过程分为两个阶段,两种模式:主模式和野蛮模式。

第一阶段:建立IKE自身的安全联盟,协商IKE加密和认证的算法和密钥。

第二阶段:为IPSEC提供安全联盟的算法和密码协商。

核心算法:DH(Diffie-Hellman)交换。双方可以通过各自的私有信息和相互交换的公开信息,一起计算出公共的秘密,而网络监听者无法计算出该秘密。

IPSEC的工作模式:IPSEC的工作模式主要分为传输模式和隧道模式两种。这两种模式将AH和ESP头部应用到IP数据包中。

传输模式:在IP头部和高层协议之间插入一个IPSEC的报头:AH或者ESP。这种方式下,IP报头和原始的IP报文中的IP头部相同,只是IP协议字段被修改为51(AH)或者50(ESP)。并重新计算IP报头校验和。传输模式下,IP地址保持明文。

传输模式中的AH:IP头部移到左边,插入AH,对整个数据包进行散列来提供认证。这些新的数据包不支持NAT(英文全称:network address translation,中文全称:网络地址转换),因为改变IP地址会导致认证失败,可以在IPSEC AH封装之前使用NAT,而不能再封装之后。

传输模式中的ESP:IP头部移到左边,插入ESP头部,在数据段后面插入ESP尾部,并在新的数据末尾添加一些控制信息来实现ESP传输模式,如果要求加密,则对数据和ESP未进行加密,认证使用新的数据包中的ESP报头,数据部分和ESP报尾,而不使用IP头,允许在这些数据包上使用NAT。

IPSEC隧道模式:与传输模式不同,隧道模式下,原始IP分组被封装成一个新的IP数据包,并在内部报头和外部报头之间插入AH或者ESP,源IP地址被当作有效载荷的一部分受到IPSEC的安全保护。

本发明实施例提供了一种IPSEC VPN系统,参照图1中所示,包括:分支内网设备11、分支出口设备12、总部出口设备13和总部数据服务器14。分支内网设备11无法直接访问到总部数据服务器14(例如ERP系统),分支出口设备12和总部出口设备13之间先建立一条IPSEC隧道,然后分支内网设备11访问总部数据服务器14的数据经过IPSEC VPN的封装穿越公网网络,到达总部出口设备13,总部出口设备13进行解封装,剩下内网的报文,然后送到总部数据服务器14,反之亦然。

本发明实施例提供的IPSEC隧道恢复方法、分支出口设备和IPSEC VPN系统,分支出口设备使用IPSEC默认端口建立的IPSEC隧道通信过程中,由于长时间通信的长UDP报文被中间网络设备丢弃或抑制导致通信失败之后,采用其他端口作为源端口来重建IPSEC隧道,由于源端口为新端口,改变了五元组,长UDP报文不会被中间网络设备丢弃或抑制,可以顺利重建IPSEC隧道并使用重建的IPSEC隧道进行通信。解决了长UDP流被中间网络设备丢弃或抑制导致IPSEC隧道断开需要人工介入恢复的问题。

实施例1、

本发明实施例提供了一种IPSEC隧道恢复方法,应用于上述IPSEC VPN系统,参照图2中所示,该方法包括:

S101、分支出口设备随机创建IPSEC备用端口。

此时,分支出口设备会随机创建IPSEC备用端口,包括第一备用端口和第二备用端口。

S102、分支出口设备使用IPSEC默认端口作为源端口与总部出口设备进行IKE协商以建立第一IPSEC隧道。

IPSEC默认端口是进行IKE协商时的默认源端口号,IPSEC默认端口包括第一默认端口和第二默认端口,目前,第一默认端口可以是500、第二默认端口可以是4500端口。分支出口设备会默认监听从总部数据服务器发过来的目的端口是上述IPSEC默认端口的报文。

分支出口设备通过感兴趣流触发或者自动拨号的方式开始IKE协商。

IKE协商包括两个阶段。第一阶段用来建立SA(英文全称:security alliance,中文全称:安全联盟),第二阶段通过SA,为IPSEC协商具体的安全联盟。

对于IKE协商的第一阶段来说,有主模式和野蛮模式两种情形,无论是主模式还是野蛮模式,所做的事情都是相同的:建立一个保密和验证无误的通信信道即SA,并且建立验证过的密钥,为双方的IKE通信提供机密性、消息完整性以及消息源验证服务。其它阶段的交换都必须要有一个验证过的SA作为首要条件。第一阶段没有完成之前,其它阶段是不允许进行协商的。

对于IKE的第一阶段,主模式的协商,主要有三次报文的交互,如图3中所示:

第一次交换:第一报文和第二报文,用于IKE提议和转换方式的协商。

第二次交换:第三报文和第四报文,用于IKE DH和伪随机值的交换。

第三次交换:第五报文和第六报文,用于通信双方的身份认证。

在第一阶段的第一报文和第二报文发送之前,协商发起者(分支出口设备)和响应者(总部出口设备)都必须先计算好cookie,用于唯一标识每个单独的协商交换。cookie使用源、目的IP、随机数字、日期、时间进行MD5(英文全称:message digest algorithm,中文全称:消息摘要算法第五版)运算得出,并且将其放入第一报文的ISAKMP(英文全称:internet security association key management protocol,中文全称:以太网安全联盟密钥管理协议)头总,用以标识一个单独的协商交换。

在第一次交换中,还需要交换双方的SA载荷,主要包括IKE的散列类型、加密算法、认证方法、IKE SA协商的时间限制。第一次交换完成之后,通信双方需要生成用来产生共享密钥的DH值。生成方法是:双方各自使用一个随机数字,通过DH算法对随机数字进行运算,得到一个DH组的值X。然后双方再根据DH算法得出一个临时值N。双方交换DH值之后,通过自己计算的DH值和交换得到的对端的DH值进行运算,就得到一个只有双方才知道的共享密钥,即使第三方获取到,也无法计算出来共享密钥。

第二次交换对DH组和伪随机值进行交换。前面两次之后,所有的信息都已经交换完毕,此时可以将所有的密钥都计算出来,并且使用计算得到的密钥对后续的IKE的报文提供安全服务。

第三次交换主要是交换身份验证信息、IP地址或者主机名以及一个HASH(中文全称:哈希)值。如果双方的HASH值都是相同的,那么双方认证成功,完成IKE第一阶段的主模式的共享密钥方式交换。

分支出口设备发出的第一阶段的第一报文和第三报文的源端口为第一默认端口。第一阶段的第五报文和第二阶段的报文,如果是NAT模式,则源端口为第二默认端口,如果非NAT场景,则源端口为第一默认端口。

主模式的会话的密钥是在第二次交换之后就已经生成。现在存在一种情况是:一个通信对等体和多个通信对等体进行通信是需要为每个对等体设置一个预共享密钥的,那么它如何在多个密钥中进行选择呢(身份ID在第三次交换中才会发送,此时对等体并不知道对端的身份信息)。方法是:根据前面交换的报文的IP地址来区分不同的对等体。对于分支出口设备是动态的IP地址时就需要用到野蛮模式。

参照图4中所示,第一阶段的野蛮模式只需要3个报文的交换就可以完成SA的建立,野蛮模式不会提供身份保护。

第一报文:cookie值,SA值,DH组,随机值,身份信息。

第二报文:对端cookie值,本端cookie值,本端SA值,本端DH,本端随机值,本端身份信息,本端计算出来的HASH值。

第三报文:双方的cookie和对端的HASH值。

由于野蛮模式在第一报文中就携带了身份信息,因此无法对身份信息进行保护的。这降低了安全性,但是其不依赖于IP地址来表示身份,可以使用IP地址或者NAME等来标识身份信息,而主模式只能使用IP地址。同时野蛮模式可以支持NAT转换,而主模式无法支持NAT的转换;另外野蛮模式传递的报文更少,效率更高。

对于IKE协商的第二阶段来说,不管第一阶段是采用主模式还是野蛮模式生成的SA,都可以为第二阶段提供保护,第二阶段的目的是为了其它协议(IPSEC协议)生成SA。这一阶段是通过快速模式交换来实现的。

在快速模式中,通信双方需要协商拟定IPSEC SA的各项特征,并为其生成密钥。快速模式需要从SKEYID_d状态中衍生出用于IPSEC SA的密钥。随同交换的随机数以及来自IPSEC SA的SPI及协议一道,这个密钥将在伪随机密钥中生成,这样可以确保每个SA都有独一无二的密钥。所有IPSEC的密钥都是来自相同的密钥衍生出来的,所以密钥间是相互关联的。

为了解决上面的问题,提供了一个PFS选项:完美向前保密,用来解决密钥之间相互无关性的需求。

为了在快速模式中实现PFS,需要额外的执行一次DH交换,交换完成之后,所有的秘密都将会被清除掉,因此即使破解了一个SA,其它的SA也无法破解。

参照图5中所示,当启用了PFS时,才需要交换XA和XB,并且在计算HASH和密钥时添加XA和XB。ID负载是可选的,如果接收方不支持ID负载,会回应一个IN-VALID-ID-INFORMATION的通知错误,最后是HASH值交换用于认证。

上面交换的XA和XB,可以生成一个新的DH组,这个DH组和IKE协商第一阶段的SKEYID_d、NI、NR还有SPI等信息最终生成用于IPSEC加密的密钥。

发送者发送第三报文,用于验证响应者是否可以通信,相当于确认信息。响应者收到该消息以后就知道发起者已经接收到它在IKE第二阶段的第二消息,宣告IKE协商的第二阶段结束。

S103、IKE协商成功后,分支出口设备与总部出口设备通过第一IPSEC隧道进行第一内网报文的通信。

一旦IKE协商的第二阶段完成之后,分支出口设备和总部出口设备就可以通过第一IPSEC隧道进行内网报文的通信,转发的内网报文是被IPSEC加密过的,协议号是50(ESP)或者51(AH),只新增一个IP头部。

S104、当第一内网报文的时间戳无更新时,分支出口设备触发第一DPD探测。

IPSEC的DPD探测是按需探测的,也就是说如果正常转发,说明隧道是正常的,则不需要进行DPD探测。分支出口设备每次接收的内网报文会记录时间戳,一旦在指定的时间内这个时间戳未更新,也就是未收到内网报文,那么可能是隧道或者网络出现问题,此时触发DPD探测,发出第一个DPD探测请求报文,如果对端及时应答,则说明网络正常,不再进行本次后续DPD探测。如果未收到应答报文,则继续发送DPD探测请求报文,如果探测3次都没有收到应答,则说明DPD探测失败。

S105、如果第一DPD探测失败,则分支出口设备断开第一IPSEC隧道,并分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道。

如果DPD探测失败,说明由于五元组长期保持不变,长UDP报文被中间网络设备丢弃或抑制,则分支出口设备将会将设备上的IPSEC表项清除掉,第一IPSEC隧道会被断开。

分支出口设备可以在第一DPD探测失败之后,立即使用IPSEC备用端口作为源端口与总部出口设备进行IKE协商,或者可以先尝试仍用原来的IPSEC默认端口作为源端口与总部出口设备进行IKE协商,当协商失败后再使用IPSEC备用端口作为源端口与总部出口设备进行IKE协商。由于五元组发生改变,因此长UDP报文不会被中间网络设备丢弃或抑制。

需要说明的是,步骤S101只要在步骤S105所述的分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道之前即可,并不限定必须在所有步骤执行之前。另外使用随机端口占用的资源小,并且创建随机端口的时机也比较灵活,比预先创建备用链路所消耗资源更少,更灵活。

本发明实施例提供的IPSEC隧道恢复方法,通过分支出口设备使用IPSEC默认端口作为源端口与总部出口设备进行IKE协商以建立第一IPSEC隧道,并使用第一IPSEC隧道进行内网报文的通信,当内网报文的时间戳无更新时触发DPD探测,如果DPD探测失败,说明五元组固定不变的长UDP报文有可能被中间网络设备丢弃或抑制导致通信失败,此时分支出口设备断开第一IPSEC隧道,并分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道,此时,由于是新的IPSEC备用端口作为源端口,改变了五元组,因此通信过程中的长UDP报文不会被中间网络设备丢弃或抑制,解决了长UDP流被中间网络设备丢弃或抑制导致IPSEC隧道断开需要人工介入恢复的问题。

具体的,参照图6中所示,步骤S105所述的分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道具体包括步骤S1051和S1052:

S1051、分支出口设备使用IPSEC默认端口作为源端口向总部出口设备发送协商报文以重新进行IKE协商。

在DPD探测失败之后,分支出口设备首先仍会使用原来的IPSEC默认端口作为源端口以尝试与总部出口设备重新进行IKE协商。

S1052、如果协商报文协商失败,则分支出口设备使用IPSEC备用端口作为源端口向总部出口设备重新发送协商报文,并且使用IPSEC备用端口作为源端口向总部出口设备发送后续的协商报文,以建立第二IPSEC隧道。

如果分支出口设备使用原来的IPSEC默认端口进行IKE协商失败,有可能是中间网络设备丢弃或抑制源端口为IPSEC默认端口的长UDP报文,因此,分支出口设备尝试使用其他端口作为源端口来重新与总部出口设备进行IKE协商。

下面举例对步骤S105所述的分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道进行说明。示例性的,进行IKE协商时,如果主模式的第一阶段的第一报文超时,并且如果是NAT场景,则从主模式的第一报文开始,源端口从第一默认端口变化为第一备用端口,即IKE协商的五元组从原来的(源IP、目的IP、第一默认端口、第一默认端口、UDP协议号(17))变换为(源IP、目的IP、第一备用端口、第一默认端口、UDP协议号)。由于源端口发生变化,所以中间网络设备认为这是一条新的UDP流,不会对其进行丢弃或抑制,所以报文能正常通信,如果是非NAT场景,则主模式第一阶段和第二阶段源端口都转换成第一默认端口。

示例性的,如果主模式的第一阶段的第五报文超时,并且如果是NAT场景,则从主模式的第五报文和第六报文开始,源端口变化为第二备用端口,即IKE协商的五元组从原来的(源IP、目的IP、第二默认端口、第二默认端口、UDP协议号)变换为(源IP、目的IP、第二备用端口、第二默认端口、UDP协议号),然后进行NAT场景下的协商。第二阶段的协商源端口也变化为第二备用端口。同时,在NAT场景下需要重新设置重传次数(默认为3次),继续发送重传报文,避免主模式的第五报文发送失败,达到重传次数时,需要重新协商IPSEC隧道。

示例性的,如果野蛮模式的第一阶段的第一报文协商超时,则从野蛮模式的第一报文开始,源端口从第一默认端口变化为第一备用端口,即IKE协商的五元组从原来的(源IP、目的IP、第一默认端口、第一默认端口、UDP协议号)变换为(源IP、目的IP、第一备用端口、第一默认端口、UDP协议号)。

示例性的,对于第二阶段的快速模式,如果是NAT场景,并且第一阶段是野蛮模式,此时,如果第一报文协商失败,则从该快速模式的第一报文开始,源端口从第二默认端口变化为第二备用端口,即IKE协商的五元组从原来的(源IP、目的IP、第二默认端口、第二默认端口、UDP协议号)变换为(源IP、目的IP、第二备用端口、第二默认端口、UDP协议号)。如果是非NAT场景,由于第二阶段和第一阶段的源端口是一样的,所以不需要再变换源端口。

需要说明的是,第一备用端口为第一默认端口的切换备用端口,第二备用端口为第二默认端口的切换备用端口。切换端口时并不是将第一默认端口切换成第一备用端口并且同时将第二默认端口切换成第二备用端口,而是根据场景需要进行切换,可能只需要变换其中一个,也可能两个都变换。如果是非NAT场景,只会将第一默认端口切换成第一备用端口,第二备用端口不会使用;如果是NAT场景,第一阶段的第一报文重传失败,则第一阶段的源端口从第一默认端口变换成第一备用端口,如果第一阶段的第一报文协商正常,则第一阶段不需要进行端口切换,还是使用第一默认端口。第一阶段的第五报文协商失败,则连同第二阶段将源端口从第二默认端口变换成第二备用端口。如果第一阶段的第5个报文协商成功,则源端口仍然采用第二默认端口不变。

可选的,参照图7中所示,在步骤S105之后上述方法还包括S106-S108:

S106、分支出口设备与总部设备通过第二IPSEC隧道进行第二内网报文的通信。

该步骤与S102类似,在此不再赘述。

S107、当第二内网报文的时间戳无更新时,分支出口设备触发第二DPD探测。

该步骤与S103类似,在此不再赘述。

S108、如果第二DPD探测失败,则分支出口设备断开第二IPSEC隧道,并且分支出口设备分别使用IPSEC备用端口和IPSEC默认端口作为源端口与总部出口设备进行IKE协商以重建第一IPSEC隧道。

该步骤与S104和S105类似,在此不再赘述。

具体的,参照图8中所示,步骤S108包括步骤S1081和S1082:

S1081、分支出口设备使用IPSEC备用端口作为源端口向总部出口设备发送协商报文以重新进行IKE协商。

该步骤与S1051类似,在此不再赘述。

S1082、如果协商报文协商失败,则分支出口设备使用IPSEC默认端口作为源端口向总部出口设备重新发送协商报文,并且使用IPSEC默认端口作为源端口向总部出口设备发送后续的协商报文,以重建第一IPSEC隧道。

该步骤与S1052类似,在此不再赘述。

需要说明的是,本发明实施例还具有如下技术效果,由于只有在DPD探测不通之后才会进行重新协商,则最少需要5+2*3=11秒(其中,5秒是触发DPD探测的时间,2秒是每次DPD探测时间,3是经过3次DPD探测)才能发现IPSEC隧道已经断开,然后开始第一阶段协商,第一个报文重传超时3次之后才会切换端口,则需要5*3=15秒(其中,5秒是报文重传时间),因此本发明实施例提供的方法在26秒内即会重新协商恢复,现有技术中如果出现了这类问题,无法自动恢复,需要人工介入才可能恢复。

实施例2、

本发明实施例提供了一种分支出口设备,作为图1中所示的分支出口设备12,并且应用于上述IPSEC隧道恢复方法,参照图9中所示,包括:

创建单元1201,用于随机创建IPSEC备用端口。

协商单元1202,用于使用IPSEC默认端口作为源端口与总部出口设备进行IKE协商以建立第一IPSEC隧道。

通信单元1203,用于协商单元1202进行IKE协商成功后,与总部设备通过第一IPSEC隧道进行第一内网报文的通信。

探测单元1204,用于当通信单元1203通信的第一内网报文的时间戳无更新时,触发第一DPD探测。

协商单元1202,还用于如果探测单元1204触发的第一DPD探测失败,则断开第一IPSEC隧道,并分别使用IPSEC默认端口和创建单元1201所创建的IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道。

可选的,在一种可能的设计中,协商单元1202,具体用于:

使用IPSEC默认端口作为源端口向总部出口设备发送协商报文以重新进行IKE协商。

如果协商报文协商失败,则使用IPSEC备用端口作为源端口向总部出口设备重新发送协商报文,并且使用IPSEC备用端口作为源端口向总部出口设备发送后续的协商报文,以建立第二IPSEC隧道。

可选的,在一种可能的设计中:

通信单元1203,还用于在协商单元1202分别使用IPSEC默认端口和IPSEC备用端口作为源端口与总部出口设备进行IKE协商以建立第二IPSEC隧道之后,与总部设备通过第二IPSEC隧道进行第二内网报文的通信;

探测单元1204,还用于当第二内网报文的时间戳无更新时,触发第二DPD探测;

协商单元1202,还用于如果第二DPD探测失败,则断开第二IPSEC隧道,并且分别使用IPSEC备用端口和IPSEC默认端口作为源端口与总部出口设备进行IKE协商以重建第一IPSEC隧道。

可选的,在一种可能的设计中,协商单元1202,具体用于:

使用IPSEC备用端口作为源端口向总部出口设备发送协商报文以重新进行IKE协商;

如果协商报文协商失败,则使用IPSEC默认端口作为源端口向总部出口设备重新发送协商报文,并且使用IPSEC默认端口作为源端口向总部出口设备发送后续的协商报文,以重建第一IPSEC隧道。

由于本发明实施例中的分支出口设备可以应用于上述IPSEC隧道恢复方法,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。

需要说明的是,协商单元、探测单元和创建单元可以为单独设立的处理器,也可以集成在控制器的某一个处理器中实现,此外,也可以以程序代码的形式存储于控制器的存储器中,由控制器的某一个处理器调用并执行以上协商单元、探测单元和创建单元的功能。这里所述的处理器可以是一个中央处理器(英文全称:central processing unit,英文简称:CPU),或者是特定集成电路(英文全称:application specific integrated circuit,英文简称:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:read-only memory,英文简称:ROM)、随机存取存储器(英文全称:random access memory,英文简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号