DSVPN简介定义 动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。
目的越来越多的企业希望建立Hub-Spoke方式的IPSec VPN网络将企业总部(Hub)与地理位置不同的多个分支(Spoke)相连,从而加强企业的通信安全、降低通信成本。当企业总部采用静态的公网地址接入Internet,分支机构采用动态的公网地址接入Internet时,使用传统的IPSec、GRE over IPSec等技术构建VPN网络将存在一个问题,即分支之间无法直接通信(源分支无法获取目的分支公网地址,也就无法在分支之间直接建立隧道),所有分支之间的通信数据只能由总部中转,如图3-1所示。 图3-1 企业典型Hub-Spoke组网(配置DSVPN之前)
通过总部中转流量的办法来解决分支与分支间的通信会带来如下问题: - 总部在中转分支间的数据流时会消耗总部Hub的CPU及内存资源,造成资源紧张。
- 总部要对分支间的数据流封装和解封装,会引入额外的网络延时。
另外,当IPSec网络规模不断扩展时,为减少路由配置和维护,需要部署动态路由协议。但IPSec和动态路由协议之间存在一个基础问题,动态路由协议依赖于组播报文或广播报文进行路由更新,而IPSec不支持广播协议报文和组播协议报文的传输。 在此背景下,华为提出了DSVPN解决方案,它通过将下一跳解析协议NHRP(Next Hop Resolution Protocol)和mGRE(multipoint Generic Routing Encapsulation)技术与IPSec相结合解决了上述问题:DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了源分支无法获取目的分支公网地址的问题,从而可在分支与分支之间建立动态VPN隧道,实现分支与分支间的直接通信,进而减轻总部的负担、避免网络延时。 DSVPN借助mGRE技术,使VPN隧道能够传输组播协议报文和广播协议报文,并且一个Tunnel接口可与多个对端建立VPN隧道,减少了配置VPN隧道的工作量;在新增分支或分支公网地址发生变化时,也能自动维护总部与分支之间的隧道关系,而不用调整总部的隧道配置,使得网络维护变得更智能化。
如图2所示为一个采用DSVPN解决方案构建的VPN网络。 图3-2 企业Hub-Spoke组网(配置DSVPN之后)
受益降低VPN网络构建成本 DSVPN可以实现分支和总部以及分支之间的动态全连接,分支不需要单独购买静态的公网地址,节省企业开支。 简化总部Hub和分支Spoke配置 总部Hub和分支Spoke上配置的Tunnel接口从多个点对点GRE隧道接口变更为一个mGRE隧道接口。当为DSVPN网络添加新的分支Spoke时,企业网络管理员不需要更改总部Hub或任何当前分支Spoke上的配置,只需在新的分支Spoke进行配置,之后新的分支Spoke自动向总部Hub进行动态注册。 降低分支间数据传输时延 由于分支间可以动态构建隧道,业务数据可以直接转发,不用再经过总部,减少了数据转发的延迟,提升了转发性能和效率。
DSVPN基本概念DSVPN典型网络架构如图1所示,企业通过公共网络将总部(Hub)与地理位置不同的多个分支(Spoke)相连,Hub使用静态的公网地址,Spoke使用动态的公网地址。 该网络中,当源Spoke需要向目的Spoke发送数据报文时,源Spoke将通过与Hub之间的静态mGRE隧道交互NHRP协议获取目的Spoke的公网地址,并与目的Spoke建立动态mGRE隧道。隧道建立完成后,Spoke与Spoke之间的数据报文将通过该动态mGRE隧道直接发送给对方,不再经过总部Hub中转。 图3-3 DSVPN典型网络架构
在DSVPN解决方案中涉及到如下几个概念。 DSVPN节点DSVPN节点为部署DSVPN的设备,包括Spoke和Hub两种形态。
mGRE、mGRE隧道接口和mGRE隧道mGRE是在GRE(Generic Routing Encapsulation)基础上发展而来的一种点到多点GRE技术。它将传统GRE隧道点到点(P2P)类型的Tunnel接口扩展成了点到多点(P2MP)类型的mGRE隧道接口。通过改变接口类型,Hub或Spoke上只需要配置一个Tunnel接口便可与多个对端建立隧道,从而减少了配置GRE隧道的工作量。 mGRE隧道接口包含以下元素:- 隧道源地址:GRE封装后的报文源地址,即图1中隧道一端的公网地址。
- 隧道目的地址:GRE封装后的报文目的地址,即图1中隧道另一端的公网地址。与GRE隧道接口手工指定目的地址不同,mGRE隧道目的地址来自于NHRP协议。
- 隧道接口IP地址:隧道接口地址和其他物理接口上的IP地址一样,用于设备之间的通信(例如获取路由信息等),即图1中的Tunnel地址。
mGRE隧道接口不支持GRE隧道的Keepalive检测。
采用mGRE隧道接口建立起来的GRE隧道称为mGRE隧道。mGRE隧道分为静态mGRE隧道和动态mGRE隧道两种:- 静态mGRE隧道建立于分支Spoke与总部Hub之间,静态mGRE隧道永久存在。
- 动态mGRE隧道建立于各分支Spoke之间,动态mGRE隧道在一定周期内没有流量转发将自动拆除。
NHRP协议和NHRP映射表NHRP(Next Hop Resolution Protocol)即下一跳地址解析协议。在DSVPN网络中,NHRP协议的作用是建立和解析Protocol地址(即图1中的Tunnel地址或子网地址)到NBMA(Non-Broadcast Multiple Access)地址(即图1中的公网地址)的映射关系。正是因为这种映射和解析,源Spoke才能够获取目的Spoke的动态公网地址。 Protocol地址和NBMA地址映射生成的表项称为NHRP映射表。按照生成方式的不同,NHRP映射表分为静态表项和动态表项两种:- 静态表项:由网络管理员手工配置。Spoke要与Hub建立静态mGRE隧道,管理员就需要在Spoke上手工配置Hub的Tunnel地址和公网地址。
- 动态表项:它是由NHRP协议动态生成的表项。例如,Hub通过NHRP注册报文提取各Spoke的Tunnel地址和公网地址而生成的NHRP映射表;各Spoke通过NHRP解析报文提取对端Spoke的Tunnel地址/子网地址和公网地址而生成的NHRP映射表。
有关NHRP协议以及NHRP注册报文、NHRP解析报文的详细描述请参见RFC2332,本文不再赘述。
|