DMVPN是什么?分析参与搭建DMVPN所使用的多种网络协议

1、DMVPN特点

(1)支持中心与分支的全互联。

(2)支持分支的动态地址。

(3)新增分支不需要更改或添加中心的配置。

(4)分支到分支之间动态按需的产生隧道建立VPN。

(5)支持零丢包功能(IPSec初始协商数据报文时会产生丢包),但并不是所有数据报文都进行加密。

(6)支持分支与分支建立IPSec隧道,流量无需穿越中心站点。

(7)支持动态路由协议。

(8)支持中心站点到分支(实体VPN隧道)的组播。

2、DMVPN的组成部分

DMVPN需要利用到4种协议MGRE、NHRP、动态路由和IPSecVPN,它与之前的IPSecVPN最大的不同在于使用了MGRE和NHRP协议,下面我们来详细了解一下这几个协议:

2.1MGRE

MGRE(MultipointGRE),多点通用路由封装。

MGRE协议理解图

如上图所示,路由器通过使用MGRE技术,在互联网中创建一个MGRE的虚拟多点访问网络。

2.2NHRP

NHRP(NextHopResolutionProtocol),下一跳解析协议。

首先确定MGRE是一个多点访问网络,不同于点对点网络(P2P),不需要进行地址解析;多路访问网络(MA)都会需要进行地址解析。例如以太网就是一个多路访问网络,需要使用ARP协议对IP地址的物理地址进行解析从而找到物理地址。

等同于以太网的ARP协议,在一个MGRE网络也需要一个类地址解析协议的功能,实现通过隧道虚拟IP地址解析出真实物理接口IP地址的功能,这时我们将用到NHRP协议。

知识扩展:传统以太网是广播多路访问网络,可以通过ARP广播来获取相应IP的MAC地址;而MGRE是非广播多路访问网络,需要使用NHRP手动录入隧道虚拟IP和真实物理接口IP地址的映射关系。

NHRP工作流程:

NHRP协议理解图

1、首先spoke1和spoke2与HUB建立VPN隧道后会向指定的NHS上注册自己的隧道接口地址和真实物理接口地址的映射关系。

2、当Spoke1和spoke2需要建立VPN时会向NHS服务器发送NHRP请求获取远端peer的真实物理接口地址。

3、Spoke1与Spoke2通过物理接口地址建立临时的VPN隧道进行通信,数据流量不需要经过HUB。

2.3动态路由协议

使用动态路由协议通过MGRE隧道来宣告本地的私有网络到DMVPN网络,由于spoke之间是按需建立VPN隧道的,所以组播的路由更新信息只在hub到spoke之间传播,也就是说动态路由的邻居关系只在hub到spoke的隧道上建立,spoke和spoke之间是看不到路有关系的,spoke和spoke之间的路由是通过nhrp解决的。

2.4IPSecVPN

DMVPN与GREoverIPSec的数据报文封装是相同的的,如下图:

DMVPN报文封装格式

3、DMVPN的发展过程

DMVPN发展经过了三个阶段,分别是第一阶段:星型结构、第二阶段:虚拟网状结构、第三阶段:树状结构。现阶段使用最多的为第二阶段和第三阶段。

3.1第一阶段:星型结构

HUB设备上使用MGRE,SPOKE设备上使用GRE建立隧道,相比普通GREoverIPSecVPN的优势在于增加SPOKE站点不用配置HUB,减少HUB的配置量,但SPOKE之间数据流量还需中心站点进行转发。现阶段已不会使用第一阶段来建立DMVPN。

下图为VPN流量走向图:

DMVPN第一阶段,星型拓扑

3.2第二阶段:虚拟网状结构

与第一阶段不同的是,无论HUB还是SPOKE都配置MGRE,HUB与SPOKE之间建立一个永恒的隧道,SPOKE与SPOKE之间按需建立隧道,SPOKE与SPOKE之间的流量通过临时隧道转发,不会占用HUB的资源。

下图为VPN流量走向图:

DMVPN第二阶段,网状结构

3.3第三阶段:树状结构

第三阶段与第二阶段功能基本相同,所有站点均使用MGRE,第三阶段主要用于将DMVPN进行大规模的部署,为DMVPN进行分层便于管理。

下图为VPN流量走向图:

DMVPN第三阶段,树状结构与网状结构的融合

3.4第二阶段与第三阶段NHRP工作流程区别

第二阶段:

第二阶段工作流程

如上图所示:

第一步:SPOKE1访问SPOKE2首先通过SPOKE1到HUB的永久隧道进行转发,由HUB将数据报文转发至SPOKE2.

第二步:在发送数据报文的同时,SPOKE1通过NHRP向HUB请求解析SPOKE2虚拟地址的真实物理接口地址。

第三步:HUB将解析后的SPOKE2的真实物理接口地址发送给SPOKE1.

第四步:SPOKE1收到HUB的NHRP解析后,直接与SPOKE2建立临时的IPSec隧道,后续的数据报文均在IPSec隧道内转发。

知识扩展:DMVPN的零丢包就是通过起始数据报文通过中心转发,在数据报文通过中心转发的过程中建立分支之间的VPN隧道,后续报文切换至隧道中进行转发。

第三阶段:

第三阶段工作流程

如上图所示:

第一步:阶段三的DMVPN,HUB会向所有SPOKE发送汇总路由,所有SPOKE与SPOKE之间的流量会被先发送到HUB,并由HUB集中转发。

第二步:HUB收到SPOKE1的数据后,通过NHRP重定向信息告知SPOKE1:HUB不是你的最优下一跳,最优下一跳是SPOKE2的TUNNEL接口地址。

第三步:SPOKE1接收到HUB的NHRP重定向信息,知道了SPOKE2的TUNNEL接口地址为最优下一跳地址后发送NHRP报文向HUB解析SPOKE2的真实物理地址。

但是HUB不会为SPOKE1解析SPOKE2的真实物理接口地址,而是会将这个NHRP解析请求直接转发给SPOKE2.

第四步:SPOKE2收到SPOKE1的NHRP解析请求后会主动与SPOKE1建立IPSec隧道。

第五步:SPOKE1与SPOKE2之间IPSecVPN建立完成后,SPOKE2会在隧道中发送NHRP解析的回应给SPOKE1。

第六步:SPOKE1与SPOKE2之间的后续流量直接通过按需建立的IPSec隧道内进行转发。

以上内容均为本人对所掌握知识总结归纳所创作的原创文章,希望能给大家的学习过程带来帮助,如有技术理解错误希望能够得到大家的指正,大家共同学习,共同进步。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系我们会予以删除相关文章,保证您的权利。

上一篇 一款设计精良的模型飞机模拟游戏
下一篇 史无前例!腾讯55款单机游戏免费玩