DMVPN是一个高扩展性的IPSec VPN解决方案,所谓高扩展性,是指适合企业级大规模部署的解决方案。例如,适用 于一个企业拥有几百个分支的网络环境(对于一个大型 连锁企业而言,这种规模并不算夸张)。
DMVPN的优点为:
由于传统IPSec VPN星形和网状拓扑丰在高扩展性问题,因此cisco提出了自己的高扩展性IPSec VPN解决方案,这人解决方案叫做动态多点VPN(Dynamic Multipoint VPN).DMVPN相比于传统的IPSec VPN技术有如下4个优点
- 简单的星形拓扑配置,提供虚拟网状连通性
- 分支站点支持动态ip地址
- 增加新的分支站点,无需更改中心站点配置
- 分支站点间流量,通过动态产生的站点间隧道进行封装
DMVPN的4大组成协议
1、动态多点GRE(Multipoint GRE ,mGRE)协议
mGRE是一种特殊的GRE技术,这种技术与多点帧中继技术非常类似,是一个典型的NBMA网络。所有站点的mGRE隧道接口都牌同一个网段。进入这个mGRE网络的任何一个分支站点不仅仅能够和中心站点进行能信,而且还能够直接和其他分支站点进行信。这就显示出了DMVPN的第一个优点为:虚拟网状连通性。
2、下一跳解析协议(Next Hop Resolution Protocol,NHRP)
如果你认为配置了mGRE隧道,所有站点就能够直接进行能信,那就大错特错了。
下面我们通过两个例子来说明这个问题。第一个例子是以太网,在以太网中,ip地址为逻辑地址,MAC地址才是物理地址。因此如果一台设备只知道对方的逻辑地址,是不能进行能信的。它必须知道对主逻辑地址所对应的物理地址,才能够向网络 发送数据包。大名鼎鼎的ARP技术就是负责在以太网内,动态或者手动映射逻辑地址到物理地址。
第二个例子就是和mGRE拓扑非常类似的多点帧中继网络,每一个帧中继接口都有一个逻辑的ip地址,但是要访问对方的逻辑ip必须要知道它所映射的物理地址。在帧中断网络中物理地址就是DLCI ,我们可以通过手动帧中继映射,或者动态反向ARP技术,将 ip地址映射到DLCI.
同样,在mGRE网络中,管理员也需要映射逻辑地址到物理地址,mGRE隧道的虚拟地址就是逻辑地址,每一个站点固定配置或者动态获取的公网ip地址,就是物理地址。下一跳解析协议就是为了实现这个映射而设计的,首先每一个分支站点都需要的手动映射中心站点的虚拟ip 到公网ip,所以中心站点必须拥有固定ip地址。分支站点有了这个手动映射就能够和中心站点取得联系,并且通过NHRP协议,注册这个分支站点的隧道虚拟ip到动态获取的公网ip。一旦注册成功,中心站点就有所有分支站点为的NHRP映射。这样中心站点也就能够访问所有注册后的分支站点。
因为注册是动态的,所以分支站点支持动态获取地址。当某一分支站点希望访问另外一个分支站点时,它首先会使用NHRP协议向中心站点(NHRP的服务器)询问目的分支站点隧道虚拟ip所对应的公网ip 地址,接下来,中心站点就会将NHRP映射发送给发起方,在发起方收到了目的站点的NHRP映射以后,就能够通过mGRE直接发起隧道访问目的站点了。
由于这个流量是两个分支站点间直接发起的,并不占用中心站点资源,因此从这个角度来看,DMVPN技术是高扩展性的技术。
3、动态路由协议
动态路由协议的主要目的就是宣告隧道网络和站点身后私有网络,让第一个站点都能学习到其它站点身后网络的路由。
注意,绝大部分动态路由协议都是使用组播来传输路由更新信息的,但mGRE隧道是典型的NBMA网络,这种网络类型不支持直接承载组播信息,因此我们需要配置组播映射,把组播转换成为单播。
因为只有中心站点才拥有固定ip地址,所以默认只能够配置分支站点和中心站点之间的组播映射。由于组播映射的这个特点,所以动态路由协议的邻居关系,只会出现在分支站点和中心站点之间。
mGRE支持的路由协议包括RIP\EIGRP\OSPF\ODR和BGP.
4、IPSec技术
其实DMVPN也可以理解成为mGRE over IPSec,而IPSec就是对mGRE流量进行加密。mGRE只是一种特殊的GRE技术,IP协议号和GRE一样都是47。所以在DMVPN中,IPSec VPN的配置与GRE over IPSec中IPSec VPN配置相同。