DVPN技术介绍


DVPN

DVPN简介

企业对利用公共网络组建VPN的需求越来越多。但很多情况下,一个企业的分支是采用动态地址接入公共网络的,无法事先知道对端的公网地址,很难建立各分支机构之间的直接互访。

DVPNDynamic Virtual Private Network,动态虚拟私有网络)就是为了解决,企业网各分支机构在使用动态地址接入公网的情况下,可以在各分支机构间建立VPN的需要。

DVPN把连接到公网上的各节点组成的网络看作VPNVirtual Private Network,虚拟私有网络)网络,公网作为VPN网络的链路层,隧道作为企业内部子网之间的虚通道,相当于网络层。企业各分支设备动态接入到公网中,其公网地址对于通信的另一端来说是未知的,而对于建立端到端的安全隧道,公网地址是必须的条件之一。

VAMVPN Address ManagementVPN地址管理)协议是DVPN方案的主要协议,负责收集、维护、分发这些动态信息,帮助用户快捷、方便的建立起内部的安全隧道。用户子网之间转发的数据报文通过路由协议得到其私网下一跳,通过VAM协议查询到私网下一跳对应的公网地址,并利用该公网地址做为隧道的目的地址进行封装,最后交给已建立起的安全隧道发送到目的端用户。

DVPN基本概念

DVPN方案中有几个关键的角色:

1. DVPN节点

DVPN节点为动态VPN隧道两端的设备,可以是网络设备或主机。DVPN节点参与隧道的建立,需要实现VAM的客户端功能。

2. VAM Server

VAM Server是接受DVPN节点向其注册信息的服务器,负责管理、维护各DVPN节点的信息。目前VAM Server一般运行在较高性能的路由器设备上。

3. VAM Client

VAM Client为组成DVPN网络的各节点,向VAM Server注册自己的私网地址、公网地址、VAM标识等信息,向VAM Server查询其它VAM Client的信息。文中涉及到VAM Client的地方,如果不是特别说明,是指对HubSpoke的统称。

4. Hub

Hub是一种VAM Client,一个VPN网络的中心设备,它是路由信息交换的中心。在Hub-Spoke组网中,它也是数据转发的中心。

5. Spoke

Spoke是一种VAM Client,通常是企业分支机构的网关设备,该节点不对收到的其它DVPN节点的数据做转发操作。

6. AAA服务器

认证、授权、计费服务器,用于对用户进行认证和计费管理。

DVPN的基本原理

DVPN采用Client/Server模式,工作在TCP/IP协议栈的应用层,使用UDP作为传输协议。按照工作方式的不同,可将一个VPN域中的设备划分为一个Server和多个ClientServer的公网地址为静态地址,Client的公网地址既可以静态配置也可以动态获取,而Client的私网地址则需要按照规划静态分配。在同一个VPN域内,要求所有节点的私网地址在同一个网段内。

每一个ClientServer注册自己的公网地址和私网地址的对应关系。ClientServer注册成功之后,各Client之间自动建立会话通路(sessionServerClient间通过VAM协议进行消息传递,Client之间通过DVPN隧道协议进行隧道的建立、维护和删除。任何节点退出或加入VPN都能自动通知到Server,由Server向在线Client发送实时消息,通知Client进行隧道的同步刷新。

图1 Spoke-Hub/Spoke-Spoke组网方式示意图

1所示,作为SpokeClient节点在向VAM Server注册后获得该VPN域中Hub的信息,并随之与Hub建立永久的隧道连接;任意的两个Spoke(不在NAT网关后侧)之间也可以直接建立隧道,但该隧道是动态的,当在一段规定时间(Spoke-Spoke隧道空闲超时时间)内没有数据报文交互时,则删除该隧道。

DVPN的工作过程

DVPN的工作过程分为注册和隧道建立两个阶段,下面对这两个阶段做简单说明。

1. 注册阶段

Client在第一次与Server连接时,首先进行连接的初始化。初始化是双方协商决定是否需要对VAM协议报文进行保护的过程。如果需要保护,则协商出加密和完整性验证算法及生成加密密钥和完整性验证密钥,并对协商出的结果作出确认。只有连接初始化完成后,才能进入注册流程,具体的流程如2所示。

图2 注册流程图

(1)        ClientServer发送注册请求报文,注册请求报文中包括DVPN节点的信息。

(2)        Server收到注册请求报文后,根据配置决定是否对该Client进行身份认证。如果配置为不认证,则直接注册Client信息并向Client发送注册成功响应,身份认证步骤省略;如果配置为认证,ServerClient回应身份认证请求,并指明需要的认证方法(CHAP认证时还返回一个随机数)。

(3)        ClientServer提交自己的身份信息。

(4)        Server收到Client的身份认证信息后向AAA服务器发起认证,收到AAA认证成功的响应后再发送计费请求,当Server收到计费成功响应后,向Client发送注册成功响应报文,注册成功报文会携带下发给ClientHub信息。

2. 隧道建立阶段

Spoke注册成功后,要和Hub建立永久隧道,一个Spoke最多和两个Hub建立永久隧道。如果在一个VPN域中有两个HubHub需要建立与其它Hub的隧道。具体隧道建立流程如3所示:

图3 隧道建立流程图

(1)        发起隧道建立请求

l              Spoke-HubSpoke注册成功后,要与所在VPN中的Hub建立永久隧道。Spoke只要收到Server下发的Hub信息,就会检查与这些Hub地址之间是否有对应的隧道存在。如果隧道不存在则向Hub发送隧道建立报文;如果隧道存在则不建立隧道。

l              Hub-Hub隧道:Hub注册成功后,Server会将所在VPN中已注册成功的Hub地址添加到注册响应报文中下发给HubHub检查这些地址与其之间是否有对应的隧道存在。如果隧道不存在则向其发送隧道建立报文;如果隧道存在则不建立隧道。

l              Spoke-Spoke隧道:Spoke收到某个数据报文后,若没有查到相应的能够转发该报文的隧道,则会向Server发送地址解析请求,根据得到的地址解析响应向对端Spoke发起建立隧道的请求。

(2)        隧道接收方收到建立隧道的请求后,保存相应的隧道连接信息,并向发起方发送建立隧道响应报文。如果隧道发起方收到隧道建立成功的响应报文,表示隧道建立成功,否则表示隧道建立失败。

 

附件下载

不同款型规格的资料略有差异, 详细信息请向具体销售和800咨询。 H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!