应用于动态虚拟专用网络的网络地址转换方法和装置制造方法

文档序号:8006183阅读:312来源:国知局
应用于动态虚拟专用网络的网络地址转换方法和装置制造方法
【专利摘要】本申请提供了应用于动态虚拟专用网络的网络地址转换方法和装置,所述DVPN中存在通过采用端口地址转换PAT模式的NAT设备连接至公网网络的Spoke设备;该方法包括:DVPN中的Hub设备在与Spoke设备建立隧道过程中,获取Spoke设备被连接的NAT设备转换后的公网地址和端口信息;Hub设备将获取的Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。采用本发明,能够实现在DVPN中,支持NAT设备采用PAT模式。
【专利说明】应用于动态虚拟专用网络的网络地址转换方法和装置

【技术领域】
[0001]本申请涉及网络通信技术,特别涉及应用于动态虚拟专用网络(DVPN =DynamicVirtual Private Network)的网络地址转换(NAT:Network Address Translat1n)方法和
>J-U ρ?α装直。

【背景技术】
[0002]DVPN,可通过下一跳解析协议(NHRP:Next Hop Resolut1n Protocol)或者 VPN地址管理(VAM:VPN Address Management)协议收集、维护和分发动态变化的公网地址等信息,DVPN可以在企业网各分支机构使用动态地址接入公网的情况下,在各分支机构间建立VPN。
[0003]在DVPN中的设备有如下几个身份:
[0004]VAM服务器:VAM服务器维护所有VAM客户端的信息,响应客户端的注册、查询。可以在路由器上实现,也可以使用专门的服务器实现。
[0005]VAM客户端:VAM客户端将自己的信息向服务器注册,在需要其他DVPN节点的信息时,向服务器发起解析请求。VAM客户端可以是主机,也可以是路由器。
[0006]中心(Hub)和分支(Spoke):VAM客户端注册至VAM服务器后获得的Hub和Spoke身份,担任Hub的VAM客户端通常是一个网络中的中心设备,作为路由信息交换的中心,也是数据转发的中心;而担任Spoke的VAM客户端通常是一个网络中的分支设备。为便于描述,本申请将DVPN中担任Hub身份或Spoke身份的VAM客户端,这里将担任Hub身份的VAM客户端称为Hub设备,将担任Spoke身份的VAM客户端称为Spoke设备。
[0007]目前,在DVPN中实现NAT是网络通信的需求。其中,NAT是将IP数据报文头中的IP地址转换为另一个IP地址的过程。在实际应用中,NAT主要应用在连接两个网络的边缘设备上,用于实现允许内部网络用户访问外部公共网络以及允许外部公共网络访问部分内部网络资源(例如内部服务器)的目的。在网络中,配置了 NAT功能且连接内部网络和外部网络的边缘设备,通常被称为NAT设备,如图1所示的路由器(Router) I为NAT设备。
[0008]NAT实现方式有以下两种:
[0009]静态方式,是指外部网络和内部网络之间的地址映射关系由配置确定,该方式适用于内部网络与外部网络之间存在固定访问需求的组网环境。静态地址转换支持双向互访:内网用户可以主动访问外网,外网用户也可以主动访问内网。
[0010]动态方式,动态方式是指内部网络和外部网络之间的地址映射关系在建立连接的时候动态产生。该方式通常适用于内部网络有大量用户需要访问外部网络的组网环境。动态方式下存在两种转换模式:
[0011]非端口转换(Ν0-ΡΑΤ:Not Port Address Translat1n)模式:
[0012]NO-PAT模式下,一个外网地址同一时间只能分配给一个内网地址进行地址转换,不能同时被多个内网地址共用。当使用某外网地址的内网用户停止访问外网时,NAT会将其占用的外网地址释放并分配给其他内网用户使用。NO-PAT模式下,NAT设备只对报文的IP地址进行NAT转换,同时会建立一个NO-PAT表项用于记录IP地址映射关系,并可支持所有IP协议的报文。
[0013]端口地址转换(PAT:Port Address Translat1n)模式:
[0014]PAT模式下,一个NAT地址可以同时分配给多个内网地址共用。PAT模式下,NAT设备需要对报文的IP地址和传输层端口同时进行转换,且只支持TCP、UDP和ICMP( InternetControl Message Protocol,因特网控制消息协议)查询报文。图2示出了 PAT模式下的工作流程。如图2所示,三个带有内网地址的报文(Packet)到达NAT设备,其中Packetl和Packet2来自同一个源IP地址(Src)但有不同的源端口号,Packetl和报文Packet3来自不同的源IP地址但具有相同的源端口号。通过PAT模式,三个Packet的源IP地址都被转换为同一个外网地址,但每个Packet都被赋予了不同的源端口号,因而仍保留了 Packet之间的区别。当各Packet的回应报文到达时,NAT设备仍能够根据回应报文的目的IP地址和目的端口号来区别该回应报文应转发到的内部主机。采用PAT模式可以更加充分地利用IP地址资源,实现更多内部网络主机对外部网络的同时访问。
[0015]在DVPN中,公网网络为IPv4网络,如图3所示。为了解决IPv4地址不足的问题,DVPN中Hub设备或Spoke设备一般都通过NAT设备连接公网网络IPv4网络。当通信双端Spoke设备均通过NAT设备连接公网网络IPv4网络时,因为通信一端并不知道对端被NAT设备转换后的端口,这限制DVPN中的NAT设备只能支持No-PAT模式,即:只能将不同的Spoke设备的公网地址唯一转化为不同的外网地址,不能支持PAT模式,然而DVPN中NAT设备使用PAT模式对于大规模的DVPN来说意义明显,其可以使多个Spoke设备共用一个公网地址,而非一个Spoke设备使用一个公网地址。因此,在DVPN中,支持NAT设备采用PAT模式是亟待解决的技术问题。


【发明内容】

[0016]本申请提供了应用于动态虚拟专用网络的网络地址转换方法和装置,以实现在DVPN中,支持NAT设备采用PAT模式。
[0017]本申请提供的技术方案包括:
[0018]一种应用于动态虚拟专用网络DVPN的网络地址转换NAT方法,所述DVPN中存在至少一个分支Spoke设备,所述Spoke设备通过采用端口地址转换PAT模式的NAT设备连接至公网网络;该方法包括:
[0019]所述DVPN中的中心Hub设备在与Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息;
[0020]所述Hub设备将获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
[0021]一种应用于实现动态虚拟专用网络DVPN中网络地址转换NAT的装置,所述DVPN中存在至少一个分支Spoke设备,所述Spoke设备通过采用端口地址转换PAT模式的NAT设备连接至公网网络;所述装置为所述DVPN中的中心Hub设备,包括:
[0022]获取单元,用于在与DVPN中的Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息;
[0023]发送单元,用于将所述获取单元获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
[0024]由以上技术方案可以看出,本发明中,为了保证DVPN中的NAT设备采用PAT模式下通信一端Spoke设备获知对端被NAT设备转换后的端口,让Hub设备充当第三者,由Hub设备在与Spoke设备建立隧道过程中动态获取Spoke设备被连接的NAT设备转换后的公网地址和端口信息,并由Hub设备告知给服务器,这样,通信双端Spoke设备中的任一端均通过查询服务器就可获知对端被NAT设备转换后的公网地址和端口信息,保证了 DVPN中的NAT设备采用PAT模式下,即使通信双端Spoke设备均通过NAT设备连接公网网络,也能按照NAT设备支持的PAT模式正常进行通信。

【专利附图】

【附图说明】
[0025]图1为现有NAT工作流程图;
[0026]图2为现有PAT工作流程图;
[0027]图3为现有DVPN组网示意图;
[0028]图4为本发明实施例提供的流程图;
[0029]图5为本发明实施例提供的DVPN组网实例图;
[0030]图6为本发明实施例提供的实施例流程图;
[0031]图7为本发明实施例提供的装置结构图;
[0032]图8为本发明实施例提供的另一种装置结构图。

【具体实施方式】
[0033]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0034]本发明提供的方法包括图4所示的流程:
[0035]参见图4,图4为本发明实施例提供的方法流程图。该方法应用于DVPN中,在DVPN中,存在Spoke设备和Hub设备,如【背景技术】描述,VAM客户端注册至VAM服务器后获得Hub和Spoke身份,这里的Spoke设备为DVPN中担任Spoke身份的VAM客户端,而Hub设备为担任Hub身份的VAM客户端。
[0036]以图5所示DVPN为例,在图5中,VAM客户端1、VAM客户端2经过注册至VAM服务器后获得Spoke身份,就分别称为Spoke设备l、Spoke设备2,而VAM客户端3经过注册至VAM服务器后获得Hub身份,就称为Hub设备。
[0037]在本发明中,DVPN中存在通过PAT模式的NAT设备连接至公网网络的Spoke设备,如图5所示,Spoke设备1、Spoke设备2均分别通过NAT设备1、NAT设备2连接至公网网络。这里的公网网络可以为IPV4网络。
[0038]基于图5所示的任一 Spoke设备为例,图4提供的流程可包括以下步骤:
[0039]步骤401, Hub设备在与Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息。
[0040]本发明中,当VAM客户端注册至VAM服务器获取Spoke身份后,该获取Spoke身份的VAM客户端即Spoke设备就与获取Hub身份的VAM客户端即Hub设备建立隧道。
[0041]这里,Hub设备与Spoke设备建立的隧道为VPN隧道,具体实现时可为因特网协议安全(IPSec =Internet Protocol Security)隧道或者DVPN用户数据报协议(UDP)隧道。
[0042]作为本发明的一个实施例,Hub设备获取Spoke设备被连接的NAT设备转换后的公网地址和端口信息包括:
[0043]Hub设备在与Spoke设备建立隧道过程中获取Spoke设备发送的报文;
[0044]Hub设备识别所述报文的报文头携带的公网地址和所述报文的载荷携带的公网地址是否一致,如果不一致,确定所述报文的报文头携带的公网地址和端口信息为所述Spoke连接被连接的NAT设备转换后的公网地址和端口信息,获取所述报文头携带的公网地址和端口信息。
[0045]步骤402,Hub设备将获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
[0046]作为本发明的一个实施例,本步骤402中,其他Spoke设备从所述VAM服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息包括:
[0047]其他Spoke设备在有待发送至所述Spoke设备的数据流时,发送请求报文至所述服务器;
[0048]其他Spoke设备接收所述服务器发送的对应所述请求报文的响应报文,所述响应报文携带所述Spoke设备被NAT设备转换后的公网地址和端口信息。
[0049]优选地,步骤402中的服务器可为DVPN中的VAM服务器。
[0050]其中,其他Spoke设备获取所述Spoke设备被NAT设备转换后的公网地址和端口信息之后与所述Spoke设备建立直连隧道的过程与现有两个Spoke设备之间建立直连隧道的过程类似,这里不再赘述。
[0051 ] 从图4所示流程可以看出,本发明中,支持DVPN中的NAT设备采用PAT模式,为了保证DVPN中的NAT设备采用PAT模式下通信一端Spoke设备获知对端被NAT设备转换后的端口,让Hub设备充当第三者,由Hub设备在与Spoke设备建立隧道过程中动态获取Spoke设备被连接的NAT设备转换后的公网地址和端口信息,并由Hub设备告知给服务器比如VAM服务器,这样,通信双端Spoke设备中的任一端均通过查询服务器比如VAM服务器获知对端被NAT设备转换后的公网地址和端口信息,保证了 DVPN中的NAT设备采用PAT模式下,即使通信双端Spoke设备均通过NAT设备连接公网网络,也能按照NAT设备支持的PAT模式正常进行通信。
[0052]下面以图5所示的DVPN通过图6对图4所示流程进行实例描述:
[0053]参见图6,图6为本发明实施例提供的实施例流程图。如图6所示,该流程可包括以下步骤:
[0054]步骤601,Spoke设备I在与Hub设备I建立VPN隧道(IPsec隧道)过程中,发送报文至Hub设备I。
[0055]作为本发明的一个实施例,图5所示的DVPN中并不限定仅有一个Hub设备,这里为便于描述,仅以一个Hub设备I为例,其他Hub设备未不出。
[0056]另外,本发明中,Spoke设备I发送的报文可为协议报文,也可为控制报文。
[0057]步骤602,Hub设备I接收Spoke设备I发送的报文,识别所述报文的报文头携带的公网地址和所述报文的载荷携带的公网地址是否一致,如果不一致,确定所述报文的报文头携带的公网地址和端口信息为所述Spoke设备I连接被连接的NAT设备I转换后的公网地址和端口信息,从所述报文头获取携带的公网地址和端口信息。
[0058]步骤603,Hub设备I将获取的所述Spoke设备I被NAT设备I转换后的公网地址和端口信息发送至VAM服务器。
[0059]步骤604,当Spoke设备2在有待发送至Spoke设备I的数据流时,发送请求报文至VAM服务器。
[0060]这里,请求报文可为VAM协议中的下一跳解析请求(Next hop resolve request)报文。
[0061]步骤605,VAM服务器收到Spoke设备2发送的请求报文时,从本地查找Spoke设备I被其连接的NAT设备I转换的公网地址和端口信息,将查找到的公网地址和端口信息携带在对应所述请求报文的响应报文中发送给Spoke设备2。
[0062]这里,响应报文可为VAM协议中的下一跳应答请求(Next hop resolve reply)报文。
[0063]步骤606,Spoke设备2利用收到的Spoke设备I的被其连接的NAT设备I转换的公网地址和端口信息与Spoke设备I建立直连隧道。
[0064]这里,Spoke设备2与Spoke设备I建立直连隧道的过程与现有两个Spoke设备建立直连隧道的过程类似,不再赘述。
[0065]步骤607, Spoke设备2通过建立的至Spoke设备I的直连隧道将待发送至Spoke设备I的数据流发送至Spoke设备I。
[0066]至此,完成图6所示的流程。
[0067]以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
[0068]参见图7,图7为本发明实施例提供的装置结构图。该装置应用于实现动态虚拟专用网络DVPN中网络地址转换NAT,这里,所述DVPN中存在至少一个分支Spoke设备,所述Spoke设备通过采用端口地址转换PAT模式的NAT设备连接至公网网络;具体地,图7所示装置为所述DVPN中的中心Hub设备,可包括:
[0069]获取单元,用于在与DVPN中的Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息;
[0070]发送单元,用于将所述获取单元获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
[0071]优选地,本发明中,所述获取单元包括:
[0072]报文子单元,用于在与Spoke设备建立隧道过程中获取Spoke设备发送的报文;
[0073]识别子单元,用于识别所述报文的报文头携带的公网地址和所述报文的载荷携带的公网地址是否一致;
[0074]获取子单元,用于在所述识别子单元的识别结果为不一致时,确定所述报文的报文头携带的公网地址和端口信息为所述Spoke连接被连接的NAT设备转换后的公网地址和端口信息,获取所述报文头携带的公网地址和端口信息。
[0075]优选地,所述隧道为因特网协议安全IPSec隧道或者DVPN用户数据报协议UDP隧道。
[0076]至此,完成图7所示的装置。
[0077]优选地,本发明还提供了另外一种装置结构图,具体参见图8。图8为本发明实施例提供的另一种装置结构图。如图8所示,该装置主要包括:CPU、内存。需要说明的是,图8所示装置还进一步包括非易失性存储器和其他硬件,只不过该进一步包括的非易失性存储器和其他硬件改进不大,这里暂不重点描述。
[0078]如图8所示,所述内存包括:获取单元、发送单元。
[0079]所述获取单元,存放第一执行程序,用于在与DVPN中的Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息;
[0080]所述发送单元,存放第二执行程序,用于将获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道;
[0081]其中,所述CPU,用于运行所述获取单元中的第一执行程序,以在与DVPN中的Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息;以及,
[0082]所述CPU,用于运行所述发送单元中的第二执行程序,以将通过运行第一执行程序获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
[0083]优选地,本发明中,所述CPU运行第一执行程序,在与Spoke设备建立隧道过程中获取Spoke设备发送的报文,识别所述报文的报文头携带的公网地址和所述报文的载荷携带的公网地址是否一致,如果否,确定所述报文的报文头携带的公网地址和端口信息为所述Spoke连接被连接的NAT设备转换后的公网地址和端口信息,获取所述报文头携带的公网地址和端口信息。
[0084]优选地,所述隧道为因特网协议安全IPSec隧道或者DVPN用户数据报协议UDP隧道。
[0085]至此,完成图8所示的装置。
[0086]以上对本发明提供的装置进行了描述。
[0087]由以上方案可以看出,本发明中,支持DVPN中的NAT设备采用PAT模式,为了保证DVPN中的NAT设备采用PAT模式下通信一端Spoke设备获知对端被NAT设备转换后的端口,让Hub设备充当第三者,由Hub设备在与Spoke设备建立隧道过程中动态获取Spoke设备被连接的NAT设备转换后的公网地址和端口信息,并由Hub设备告知给服务器,这样,通信双端Spoke设备中的任一端均通过查询服务器获知对端被NAT设备转换后的公网地址和端口信息,保证了 DVPN中的NAT设备采用PAT模式下,即使通信双端Spoke设备均通过NAT设备连接公网网络,也能按照NAT设备支持的PAT模式正常进行通信。
[0088]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种应用于动态虚拟专用网络DVPN的网络地址转换NAT方法,其特征在于,所述DVPN中存在至少一个分支Spoke设备,所述Spoke设备通过采用端口地址转换PAT模式的NAT设备连接至公网网络;该方法包括: 所述DVPN中的中心Hub设备在与Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息; 所述Hub设备将获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
2.根据权利要求1所述的方法,其特征在于,所述Hub设备获取Spoke设备被连接的NAT设备转换后的公网地址和端口信息包括: 所述Hub设备在与Spoke设备建立隧道过程中获取Spoke设备发送的报文; 所述Hub设备识别所述报文的报文头携带的公网地址和所述报文的载荷携带的公网地址是否一致,如果不一致,确定所述报文的报文头携带的公网地址和端口信息为所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息,获取所述报文头携带的公网地址和端口信息。
3.根据权利要求1所述的方法,其特征在于,其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息包括: 其他Spoke设备在有待发送至所述Spoke设备的数据流时,发送请求报文至所述服务器; 其他Spoke设备接收所述服务器发送的对应所述请求报文的响应报文,所述响应报文携带所述Spoke设备被NAT设备转换后的公网地址和端口信息。
4.根据权利要求1所述的方法,其特征在于,所述Hub设备与Spoke设备建立的隧道为因特网协议安全IPSec隧道或者DVPN用户数据报协议UDP隧道。
5.根据权利要求1所述的方法,其特征在于,所述公网网络为Ipv4网络。
6.一种应用于实现动态虚拟专用网络DVPN中网络地址转换NAT的装置,其特征在于,所述DVPN中存在至少一个分支Spoke设备,所述Spoke设备通过采用端口地址转换PAT模式的NAT设备连接至公网网络;所述装置为所述DVPN中的中心Hub设备,包括: 获取单元,用于在与DVPN中的Spoke设备建立隧道过程中,获取所述Spoke设备被连接的NAT设备转换后的公网地址和端口信息; 发送单元,用于将所述获取单元获取的所述Spoke设备被NAT设备转换后的公网地址和端口信息发送至所述DVPN中的服务器,以使其他Spoke设备从所述服务器获取所述Spoke设备被NAT设备转换后的公网地址和端口信息来建立至所述Spoke设备的直连隧道。
7.根据权利要求6所述的装置,其特征在于,所述获取单元包括: 报文子单元,用于在与Spoke设备建立隧道过程中获取Spoke设备发送的报文; 识别子单元,用于识别所述报文的报文头携带的公网地址和所述报文的载荷携带的公网地址是否一致; 获取子单元,用于在所述识别子单元的识别结果为不一致时,确定所述报文的报文头携带的公网地址和端口信息为所述Spoke连接被连接的NAT设备转换后的公网地址和端口信息,获取所述报文头携带的公网地址和端口信息。
8.根据权利要求6所述的装置,其特征在于,所述隧道为因特网协议安全IPSec隧道或者DVPN用户数据报协议UDP隧道。
9.根据权利要求6所述的装置,其特征在于,所述公网网络为Ipv4网络。
【文档编号】H04L29/12GK104427010SQ201310390918
【公开日】2015年3月18日 申请日期:2013年8月30日 优先权日:2013年8月30日
【发明者】毛昱 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1