一种通用路由封装键值的管理方法及设备的制作方法

文档序号:7811080阅读:276来源:国知局
一种通用路由封装键值的管理方法及设备的制作方法
【专利摘要】本发明公开了一种GRE Key的管理方法,包括:VAM服务器在接收到ADVPN中的VAM客户端发送的首个保活报文时,根据保活报文中携带的属性信息确定VAM客户端的隧道封装类型及所属的Hub组,随后向该VAM客户端发送携带有确定出的Hub组对应的GRE Key的第一信息请求报文,以使VAM客户端根据第一信息请求报文中携带的GRE Key对自身进行配置。即,本发明实现了ADVPN隧道节点的GRE Key的自动配置,在存在大量ADVPN节点以及ADVPN网络频繁变化的情况下可大幅度减少管理员配置工作,从而提高网络管理效率。本发明同时还公开了一种VAM服务器。
【专利说明】一种通用路由封装键值的管理方法及设备

【技术领域】
[0001] 本发明涉及通信【技术领域】,特别涉及一种通用路由封装键值(Generic Routing Encapsulation Key, GRE Key)的管理方法。本发明同时还涉及一种虚拟专用网络地址管 理(VPN Address Management,VAM)服务器。

【背景技术】
[0002] 越来越多的企业希望利用公共网络组建VPN(Virtual Private Network,虚拟专 用网络),连接地理位置不同的多个分支机构。然而,企业分支机构通常采用动态地址接入 公共网络,通信一方无法事先知道对端的公网地址。这就为组建VPN提出了一个难题。目 前,ADVPN(Auto Discovery Virtual Private Network,自动发现虚拟私有网络)通过 VAM 协议收集、维护和分发动态变化的公网地址等信息,解决了无法事先获得通信对端公网地 址的问题。ADVPN可以在企业网各分支机构使用动态地址接入公网的情况下,在各分支机构 间建立VPN。
[0003] 对于ADVPN来说,其具有两种典型的组网方式:Hub-Spoke组网和Full-Mesh组 网。如图1所示,为Hub-Spoke组网结构示意图,其中Hub 1和Hub2为企业总部的网关设备, Spoke 1和Spoke2为企业分支的网关设备。该Hub-Spoke组网方式下,Spoke和Hub建立永 久隧道(Tunnel)连接,例如,Hubl 与 Spokel 建立 Tunnell,Hub2 与 Spoke2 建立 Tunnell ; Spoke和Spoke之间不直接建立隧道连接,这样,所有数据报文通过Spoke-Hub隧道进行转 发。
[0004] 如图2所示,为Full-Mesh组网结构示意图,在Full-Mesh组网方式下,所有的 ADVPN节点(即Spoke和Hub)之间都可以建立隧道链接,Spoke与Hub之间建立永久隧道 连接,例如,Hubl与Spokel建立永久隧道连接;同一个域内任意两个Spoke间建立动态隧 道连接,例如,Spokel和Spoke2建立动态隧道连接,这样,数据报文通过Spoke-Spoke隧道 发送到ADVPN对端节点;在Spoke-Hub隧道建立前,数据报文通过Spoke-Hub隧道转发。
[0005] 对于ADVPN来说,通常依靠动态路由协议进行路由学习,例如IBGP,EBGP和0SPF 等路由协议。由于受路由协议邻居的限制,往往需要建立如图3所示的大规模组网,在大规 模组网中,通常存在大量的ADVPN节点,为了减轻Hub的负担,将ADVPN划分为若干个Hub 组,每个Hub组又可以包括若干组Hub和Spoke,这样,一个Hub组内的Spoke只与本组的 Hub建立隧道,不与其他Hub组的Hub建立隧道。
[0006] 一般来说,上述大规模组网具有如下特点:
[0007] (l)VAM服务器给属于同一组的Spoke分配Hub。
[0008] (2)同一 Hub组中Hub没有个数限制,该Hub组中的Spoke和该Hub组中的所有 Hub建立隧道,该Hub组中的所有Hub之间建立Mesh的隧道。
[0009] (3)同Hub组内的Mesh网络或Hub-spoke网络依靠本组内的动态路由协议。
[0010] (4)不同Hub组内的Spoke依靠动态路由协议通过Hub进行交互;不同Hub组的 Spoke需要建立Spoke to Spoke的直连隧道。
[0011] (5) ADVPN节点的隧道封装类型有GRE隧道封装和UDP (User Datagram Protocol, 用户数据报协议)隧道封装两种类型。
[0012] 在大规模组网中,如果ADVPN节点的隧道封装类型为GRE隧道封装时,由于不同 Hub可能分别存在于多个不同的Hub组,那么,需要为每个Hub创建多条Tunnel,以保证控 制报文和数据报文的正确转发。例如,Hubl和Hub2同时存在于Hub组1 (Groupl)和Hub组 3(Group3)中,Hub3同时存在于Hub组2(Group2)和Hub组3(Group3)中,这就需要管理员 手工为Hubl的两条隧道Tunnel 1和Tunnel2配置不同的GRE Key,并且与Hubl处于同一 Hub组的设备也需要配置相同的GRE Key。
[0013] 从以上描述可以看出,必须为每个节点配置GRE Key才能避免流量转发出错,而目 前这些操作都需要人工手动完成,当存在大量ADVPN节点时,管理员配置工作量会很大。同 时,如果有新加入的ADVPN节点和原有ADVPN网络节点通信,还需要管理员手工为新加入的 ADVPN节点配置相应的GRE Key。这样不仅耗费人力、效率低下,而且很容易出现配置错误, 从而导致流量转发受到影响。


【发明内容】

[0014] 本申请提供一种GRE Key的管理方法及设备,解决现有技术中需要人工手动配置 GRE Key所带来的人力消耗较大且网络管理效率较低的问题。
[0015] 为达到上述目的,本申请实施例一方面提供了一种GRE Key的管理方法,该方法应 用于ADVPN中,所述方法包括:
[0016] 所述ADVPN中的VAM服务器在接收到所述ADVPN中的VAM客户端发送的首个保活 报文时,根据所述保活报文中携带的所述VAM客户端的属性信息,确定所述VAM客户端的隧 道封装类型;
[0017] 在确定出所述VAM客户端的隧道封装类型为GRE隧道封装时,根据所述保活报文 中携带的属性信息,确定所述VAM客户端所属的Hub组;
[0018] 向所述VAM客户端发送携带有确定出的Hub组对应的GRE Key的第一信息请求报 文,以使所述VAM客户端根据所述信息请求报文中携带的GRE Key对自身进行配置。
[0019] 另一方面,本申请实施例还提供了一种VAM服务器,该VAM服务器应用于ADVPN 中,所述VAM服务器包括接口模块,还包括:
[0020] 隧道封装类型确定模块,用于在所述接口模块接收到所述ADVPN中的VAM客户端 发送的首个保活报文时,根据所述保活报文中携带的所述VAM客户端的属性信息,确定所 述VAM客户端的隧道封装类型;
[0021] Hub组确定模块,用于在所述隧道封装类型确定模块确定出所述VAM客户端的隧 道封装类型为GRE隧道封装时,根据所述保活报文中携带的属性信息,确定所述VAM客户端 所属的Hub组;
[0022] 所述接口模块,还用于向所述VAM客户端发送携带有确定出的Hub组对应的GRE Key的第一信息请求报文,以使所述VAM客户端根据所述信息请求报文中携带的GRE Key对 自身进行配置。
[0023] 与现有技术相比,本申请实施例所提出的技术方案具有以下优点:
[0024] 通过应用本申请实施例的技术方案,VAM服务器在接收到VAM客户端发送的首个 保活报文时,根据保活报文中携带的属性信息确定VAM客户端的隧道封装类型及所属的 Hub组,随后向该VAM客户端发送携带有确定出的Hub组对应的GRE Key的第一信息请求报 文,实现了 ADVPN节点的GRE Key的自动配置,在存在大量ADVPN节点以及ADVPN网络频繁 变化的情况下可大幅度减少管理员配置工作,从而提高网络管理效率。本发明同时还公开 了一种VAM服务器。

【专利附图】

【附图说明】
[0025] 图1为现有技术中Hub-Spoke组网结构示意图;
[0026] 图2为现有技术中Full-Mesh组网结构示意图;
[0027] 图3为现有技术中应用ADVPN的大规模组网结构示意图;
[0028] 图4为现有技术中VAM服务器与VAM客户端之间进行初始化连接的流程示意图;
[0029] 图5为现有技术中VAM服务器与VAM客户端之间进行注册的流程示意图;
[0030] 图6为现有技术中VAM服务器与VAM客户端之间进行身份验证的流程示意图;
[0031] 图7为现有技术中VAM客户端之间建立隧道的流程示意图;
[0032] 图8为本发明提出的一种GRE Key的管理方法的流程示意图;
[0033] 图9为本发明提出的一种VAM服务器的结构示意图。

【具体实施方式】
[0034] 如图4所示,在现有技术中,ADVPN中的VAM客户端(VAM client,包括Hub和 Spoke)与VAM服务器(VAM server)的交互流程如下:
[0035] S401,VAM客户端向VAM服务器发送连接初始化请求报文,将本端连接参数发送给 VAM服务器。
[0036] S402, VAM服务器收到VAM客户端发送的连接初始化请求报文,对其进行处理后向 VAM客户端回应连接初始化响应报文。
[0037] 在这里,VAM服务器对连接初始化请求报文的具体处理过程为现有技术,在此不再 详述。
[0038] S403, VAM客户端收到连接初始化响应报文后,向VAM服务器发送连接初始化完成 报文。
[0039] S404, VAM服务器向VAM客户端回应连接初始化完成报文,以确认初始化成功。
[0040] VAM客户端在与VAM服务器连接初始化完成以后,向VAM服务器发起注册流程,如 图5所示,具体的实现流程为:VAM客户端向VAM服务器发送包括自身属性信息的注册请求 报文,该属性信息包括有自身的私网地址、公网地址和隧道封装类型等。VAM服务器收到注 册请求报文后,根据相应的配置策略确定是否对VAM客户端进行身份认证,若否,VAM服务 器记录VAM客户端的私网地址、公网地址和隧道封装类型的对应关系,并进行相关处理后, 向VAM客户端返回注册响应报文。
[0041] 在这里,上述注册响应报文中携带有保活属性,VAM客户端收到注册响应报文后, 根据其携带的保活属性启动与VAM服务器的保活流程。
[0042] 对于VAM服务器来说,如果需要对VAM客户端进行身份认证,如图6所示,具体的 认证流程为:VAM服务器向VAM客户端发送身份验证请求报文。VAM客户端收到身份验证请 求报文后,向VAM服务器返回携带有身份验证属性的身份验证信息报文。VAM服务器收到 VAM客户端发来的身份认证信息报文后进行验证,若验证通过,则向VAM客户端发送注册响 应报文。
[0043] 之后,在VAM客户端上线后,VAM服务器会向VAM客户端发送携带有Hub信息的保 活报文,这样,VAM客户端收到此保活报文后,向保活报文中携带的Hub发起隧道建立流程。 如图7所示,具体的隧道建立流程为:发起端(VAM客户端)向响应端(保活报文中携带的 Hub)发送隧道建立请求报文;该响应端收到隧道建立请求报文后,查找本地保存的隧道会 话中是否存在与发起端交互的隧道会话,如果不存在,向发起端发送隧道建立响应报文,创 建并初始化新的隧道。
[0044] 基于上述现有流程,本申请对VAM服务器接收到VAM客户端发送的首个保活报文 的处理流程进行改进,如图8所示,为本申请实施例所提出的一种GRE Key的管理方法,应 用于ADVPN中,包括以下步骤:
[0045] S801,VAM服务器在接收到VAM客户端发送的首个保活报文时,根据保活报文中携 带的VAM客户端的属性信息,确定VAM客户端的隧道封装类型。
[0046] 在本步骤中,出于安全角度的考虑,VAM服务器在接收到保活报文之后,可以对该 保活报文进行合法性及完整性的验证,并在全部验证通过后继续后续的处理流程;若保活 报文未通过合法性验证,则丢弃该保活报文,继续接收后续的保活报文;若保活报文通过合 法性验证,但未通过完整性验证,则向VAM客户端发送错误通知报文。
[0047] 例如,VAM服务器可通过以下方式实现保活报文的合法性验证:
[0048] (1)、判断保活报文中的类型(Type字段)是否为保活属性;
[0049] (2)、判断保活报文中的报文总长度(Length字段)是否满足预设条件;
[0050] (3)、判断保活报文中的序列号(Sequence Number字段)是否满足预设要求,例 如,判断保活报文中的序列号是否与VAM服务器先前收到的身份认证信息报文中的序列号 一致等;
[0051] (4)判断保活报文中的版本号(Version字段)是否为预设版本号,例如,判断保活 报文中的版本号是否为V5等。
[0052] 需要说明的是,上述保活报文需要同时满足以上4个条件,才认为是合法的。
[0053] VAM服务器可通过以下方式实现保活报文的完整性验证:
[0054] (1)、判断保活报文中的Flags字段中的完整性验证位是否为预设验证位,例如, 判断保活报文中的Flags字段中的完整性验证位是否为1等;
[0055] (2)、判断保活报文中的Flags字段中的加密位是否为预设加密位,例如,判断保 活报文中的Flags字段中的完整性验证位是否为1等。
[0056] 需要说明的是,如果保活报文同时满足上述两个条件,还要分别调用与VAM客户 端事先协商的验证算法和加密算法,对保活报文进行验证,在验证全部通过的情况下,才意 味着保活报文通过完整性验证;如果未通过任一算法的验证,就说明验证失败,需要向VAM 客户端发送错误通知报文。
[0057] 当然,对保活报文的合法性及完整性验证并不仅限于上述验证方式,还可通过本 领域技术中已存在的可行方案实现,在此不再一一详述。
[0058] 进一步地,在本步骤中,VAM服务器可通过下述方式确定VAM客户端的隧道封装类 型:
[0059] VAM服务器先获取保活报文中携带的属性信息所包括的VAM客户端的私网地址; 随后再根据获取到的私网地址,查询VAM服务器在注册阶段所记录的私网地址与隧道封装 类型的对应关系,得到获取到的私网地址对应的隧道封装类型。
[0060] S802,在确定出VAM客户端的隧道封装类型为GRE隧道封装时,根据保活报文中携 带的属性信息,确定VAM客户端所属的Hub组。
[0061] 具体地,在具体的实施例中,本步骤利用VAM服务器获取保活报文中携带的属性 信息所包括的VAM客户端的私网地址;再根据获取到的私网地址,查询本地存储的私网地 址与Hub组的对应关系(该对应关系是VAM服务器将携带有Hub信息的保活报文发给VAM 客户端后建立保存的),得到VAM客户端所属的Hub组。
[0062] S803,向VAM客户端发送携带有确定出的Hub组对应的GRE Key的第一信息请求 报文,以使VAM客户端根据第一信息请求报文中携带的GRE Key对自身进行配置。
[0063] 在本步骤中,上述第一信息请求报文的格式可如下表1所示:
[0064]

【权利要求】
1. 一种通用路由封装键值GRE Key的管理方法,其特征在于,所述方法应用于自动发 现虚拟私有网络ADVPN中,所述方法包括: 所述ADVPN中的虚拟专用网络地址管理VAM服务器在接收到所述ADVPN中的VAM客户 端发送的首个保活报文时,根据所述保活报文中携带的所述VAM客户端的属性信息,确定 所述VAM客户端的隧道封装类型; 在确定出所述VAM客户端的隧道封装类型为GRE隧道封装时,根据所述保活报文中携 带的属性信息,确定所述VAM客户端所属的Hub组; 向所述VAM客户端发送携带有确定出的Hub组对应的GRE Key的第一信息请求报文, 以使所述VAM客户端根据所述第一信息请求报文中携带的GRE Key对自身进行配置。
2. 如权利要求1所述的方法,其特征在于,所述VAM服务器根据所述保活报文中携带的 所述VAM客户端的属性信息,确定所述VAM客户端的隧道封装类型,具体包括: 所述VAM服务器获取所述保活报文中携带的属性信息所包括的所述VAM客户端的私网 地址; 根据获取到的私网地址,查询本地存储的私网地址与隧道封装类型的对应关系,得到 获取到的私网地址对应的隧道封装类型。
3. 如权利要求1所述的方法,其特征在于,所述VAM服务器根据所述保活报文中携带的 所述VAM客户端的属性信息,确定所述VAM客户端所属的Hub组,具体包括: 所述VAM服务器获取所述保活报文中携带的属性信息所包括的所述VAM客户端的私网 地址; 根据获取到的私网地址,查询本地存储的私网地址与Hub组的对应关系,得到所述VAM 客户端所属的Hub组。
4. 如权利要求1?3中任一项所述的方法,其特征在于,在所述VAM服务器接收到所述 保活报文之后,确定所述VAM客户端的隧道封装类型之前,还包括: 所述VAM服务器对所述保活报文进行合法性及完整性的验证。
5. 如权利要求4所述的方法,其特征在于,在所述VAM服务器向所述VAM客户端发送第 一信息请求报文之后,还包括: 若所述VAM服务器发现所述VAM客户端所属的Hub组对应的GRE Key中增加新的GRE Key,则向Hub组内的所有VAM客户端发送携带有新的GREKey且操作类型为添加的第二信 息请求报文; 若所述VAM服务器发现所述VAM客户端所属的Hub组对应的GRE Key发生更改,则向 Hub组内的所有VAM客户端发送携带有更改前的GRE Key且操作类型为删除的第三信息请 求报文,和携带有更改后的GRE Key且操作类型为添加的第四信息请求报文; 若所述VAM服务器发现所述VAM客户端所属的Hub组对应的GRE Key被删除,则向Hub 组内的所有VAM客户端发送携带有删除前的GRE Key且操作类型为删除的第五信息请求报 文。
6. -种虚拟专用网络地址管理VAM服务器,其特征在于,所述VAM服务器应用于自动发 现虚拟私有网络ADVPN中,所述VAM服务器包括接口模块,还包括: 隧道封装类型确定模块,用于在所述接口模块接收到所述ADVPN中的VAM客户端发送 的首个保活报文时,根据所述保活报文中携带的所述VAM客户端的属性信息,确定所述VAM 客户端的隧道封装类型; Hub组确定模块,用于在所述隧道封装类型确定模块确定出所述VAM客户端的隧道封 装类型为GRE隧道封装时,根据所述保活报文中携带的属性信息,确定所述VAM客户端所属 的Hub组; 所述接口模块,还用于向所述VAM客户端发送携带有确定出的Hub组对应的GRE Key的 第一信息请求报文,以使所述VAM客户端根据所述第一信息请求报文中携带的GRE Key对 自身进行配置。
7. 如权利要求6所述的VAM服务器,其特征在于,所述隧道封装类型确定模块具体包 括: 获取子模块,用于获取所述保活报文中携带的属性信息所包括的所述VAM客户端的私 网地址; 查询子模块,用于根据所述获取子模块获取到的私网地址,查询本地存储的私网地址 与隧道封装类型的对应关系,得到获取到的私网地址对应的隧道封装类型。
8. 如权利要求6所述的VAM服务器,其特征在于,所述Hub组确定模块,具体包括: 获取子模块,用于获取所述保活报文中携带的属性信息所包括的所述VAM客户端的私 网地址; 查询子模块,用于根据所述获取子模块获取到的私网地址,查询本地存储的私网地址 与Hub组的对应关系,得到所述VAM客户端所属的Hub组。
9. 如权利要求6-8任一项所述的VAM服务器,其特征在于,还包括: 验证模块,用于对所述保活报文进行合法性及完整性的验证。
10. 如权利要求7或9任一项所述的VAM服务器,其特征在于,还包括: 添加模块,用于在发现所述VAM客户端所属的Hub组对应的GRE Key中增加新的GRE Key时,向Hub组内的所有VAM客户端发送携带有新的GREKey且操作类型为添加的第二信 息请求报文; 更改模块,用于在发现所述VAM客户端所属的Hub组对应的GRE Key发生更改时,向 Hub组内的所有VAM客户端发送携带有更改前的GRE Key且操作类型为删除的第三信息请 求报文,和携带有更改后的GRE Key且操作类型为添加的第四信息请求报文; 删除模块,用于在发现所述VAM客户端所属的Hub组对应的GRE Key被删除时,向Hub 组内的所有VAM客户端发送携带有删除前的GRE Key且操作类型为删除的第五信息请求报 文。
【文档编号】H04L12/46GK104301133SQ201410390629
【公开日】2015年1月21日 申请日期:2014年8月8日 优先权日:2014年8月8日
【发明者】谷叶飞, 张太博 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1