一种隧道建立方法和装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别涉及一种隧道建立方法和装置。
【背景技术】
[0002] ADVPN(Auto Discovery Virtual Private Network,自动发现虚拟专用网络)是 一种动态VPN(Virtual Private Network,虚拟专用网络)技术,它可以搭建在公网上,穿越 NAT (Network Address Translation,网络地址转换)网关自动建立隧道,使用户利用隧道 进行安全的通信。
[0003] 现有的实现的ADVPN穿越NAT的隧道技术,若ADVPN设备在NAT网关内,就需要利 用ADVPN设备的公网地址建立隧道,即使这2台ADVPN设备在同一个NAT网关内,也还是利 用的ADVPN设备的公网地址建立隧道,这样导致同一个NAT网关内的2台设备建立的隧道 仍需过NAT网关设备进行NAT地址转换,也即该通信方式还需要在公网绕一圈,现有技术中 的这种实现方式对设备和网络资源造成了浪费。
【发明内容】
[0004] 本发明提供一种隧道建立方法,应用于VAM Server,包括:
[0005] 接收第一 ADVPN设备的隧道建立请求,所述隧道建立请求用于请求与第二ADVPN 设备建立隧道;
[0006] 基于所述隧道建立请求判断所述第一 ADVPN设备和第二ADVPN设备是否处于同一 NAT网关内;
[0007] 当确定所述第一 ADVPN设备和第二ADVPN设备处于同一 NAT网关内时,将所述第 二ADVPN设备的私网地址发送给所述第一 ADVPN设备,以便所述第一 ADVPN设备通过所述 第二ADVPN设备的私网地址与所述第二ADVPN设备建立隧道。
[0008] 优选的,基于所述隧道建立请求判断所述第一 ADVPN设备和第二ADVPN设备是否 处于同一 NAT网关内,具体包括:
[0009] 提取所述第一 ADVPN设备和第二ADVPN设备的公网地址;
[0010] 判断所述第一 ADVPN设备的公网地址和所述第二ADVPN设备的公网地址是否相 同;若判断结果为是,确定所述第一 ADVPN设备和第二ADVPN设备处于同一 NAT网关内;或
[0011] 判断第一 ADVPN设备的公网地址和所述第二ADVPN设备的公网地址是否在同一网 关地址列表中;若判断结果为是,确定所述第一 ADVPN设备和第二ADVPN设备处于同一 NAT 网关内。
[0012] 优选的,在将所述第二ADVPN设备的私网地址发送给所述第一 ADVPN设备以便所 述第一 ADVPN设备通过所述第二ADVPN设备的私网地址与所述第二ADVPN设备建立隧道之 后,还包括:
[0013] 若接收所述第一 ADVPN设备返回的隧道建立失败消息,将所述第二ADVPN设备的 公网地址发送给所述第一 ADVPN设备,以便所述第一 ADVPN设备通过所述第二ADVPN设备 的公网地址与与所述第二ADVPN设备建立隧道。
[0014] 优选的,在接收第一 ADVPN设备的隧道建立请求,之前还包括:
[0015] 接收第一 ADVPN设备和第二ADVPN设备的注册报文,所述注册报文中携带有发送 所述注册报文的ADVPN设备的公网地址和私网地址。
[0016] 记录接收到的注册报文中的公网地址和私网地址,并建立公网地址和私网地址与 对应ADVPN设备的对应关系。
[0017] 本申请还提出了一种隧道建立装置,应用于VAM Server,包括:
[0018] 接收模块,用于接收第一自动发现虚拟专用网络ADVPN设备的隧道建立请求,所 述隧道建立请求用于请求与第二ADVPN设备建立隧道;
[0019] 判断模块,用于基于所述隧道建立请求判断所述第一 ADVPN设备和第二ADVPN设 备是否处于同一 NAT网关内;
[0020] 发送模块,用于当确定所述第一 ADVPN设备和第二ADVPN设备处于同一 NAT网关 内时,将所述第二ADVPN设备的私网地址发送给所述第一 ADVPN设备,以便所述第一 ADVPN 设备通过所述第二ADVPN设备的私网地址与所述第二ADVPN设备建立隧道。
[0021] 优选的,所述判断模块,具体用于:
[0022] 提取所述第一 ADVPN设备和第二ADVPN设备的公网地址;
[0023] 判断所述第一 ADVPN设备的公网地址和所述第二ADVPN设备的公网地址是否相 同;若判断结果为是,确定所述第一 ADVPN设备和第二ADVPN设备处于同一 NAT网关内;或
[0024] 判断第一 ADVPN设备的公网地址和所述第二ADVPN设备的公网地址是否在同一网 关地址列表中;若判断结果为是,确定所述第一 ADVPN设备和第二ADVPN设备处于同一 NAT 网关内。
[0025] 优选的,该装置还包括:
[0026] 处理模块,用于当接收所述第一 ADVPN设备返回的隧道建立失败消息时,将所述 第二ADVPN设备的公网地址发送给所述第一 ADVPN设备,以便所述第一 ADVPN设备通过所 述第二ADVPN设备的公网地址与所述第二ADVPN设备建立隧道。
[0027] 记录模块,用于接收第一 ADVPN设备和第二ADVPN设备的注册报文,所述第一 ADVPN设备的注册报文中携带有发送所述注册报文的ADVPN设备的公网地址和私网地址;
[0028] 记录接收到的注册报文中的公网地址和私网地址,并建立公网地址和私网地址与 对应ADVPN设备的对应关系。
[0029] 与现有技术相比,本发明使得在同一个NAT网关内的两个ADVPN设备利用私网地 址建立隧道,不需要再进行NAT地址转换,减少了 NAT网关设备的开销,同时隧道流量也不 需要再绕公网转发,减少了公网的压力,提高了转发的性能。
【附图说明】
[0030] 图1为本发明实施例提出的一种隧道建立方法的流程示意图。
[0031]
[0032]
【具体实施方式】
[0033] 针对现有技术中的缺陷,本发明实施例一提出了一种隧道建立方法,如图1所示, 包括以下步骤:
[0034] 步骤 101、VAM Server (VPN Address Management Server,虚拟专用网络地址管理 服务器)接收第一 ADVPN设备的隧道建立请求,隧道建立请求用于请求与第二ADVPN设备 建立隧道。
[0035] 在VAM Server接收第一 ADVPN设备的隧道建立请求之前还包括:VAM Server接 收第一 ADVPN设备和第二ADVPN设备的注册报文,注册报文中携带有发送注册报文的ADVPN 设备的公网地址和私网地址;
[0036] VAM Server记录接收到的注册报文中的公网地址和私网地址,并建立公网地址和 私网地址与对应ADVPN设备的对应关系。
[0037] 具体的,各ADVPN设备在注册时,向VAM Server发送注册报文,该注册报文中携 带有自身的公网地址和私网地址,其中,以某一个ADVPN设备为例来进行说明,为例便于描 述,命名为ADVPN设备1,该ADVPN设备1的公网地址为公网地址1,私网地址为私网地址 1,其中公网地址1是经过NAT网关转换私网地址1得到的,在注册时,ADVPN设备1向VAM Server发送注册报文,该注册报文中携带有公网地址1和私网地址1,VAM Server接收到该 注册报文后,存储该注册报文中的公网地址1和私网地址1,并建立公网地址1和私网地址 1与ADVPN设备1的对应关系。需要说明的是,如果ADVPN设备为在NAT网关内,则可能不 具有私网地址,在其注册报文中可携带公网地址,VAM server会通过该公网地址对该ADVPN 设备进行注册。
[0038] 在一个具体的实施例中,ADVPN设备具体为spoke,其中第一 ADVPN设备可以是源 spoke,而第二ADVPN设备可以是目的spoke,当源spoke和目的spoke之间的数据流通过 hub (多端口的转发器)进行中转时,hub会发送重定向报文给源spoke,而源spoke收到该 重定向报文后,会向VAM Server查询源spoke到目的spoke直连隧道和路由信息,以判断 后续报文是否能够通过spoke