DMVPN配置实验

动态多点VPN(DMVPN)介绍  DMVPN是一个高扩展性的IPSec VPN技术,什么叫做高扩展性呢?也就是适合企业级的大规模部署,例如:一个企业有几百个分支机构的场合,对于一个大型连锁企业而言,这种规模并不算夸张。那么DMVPN是高扩展性的IPSec VPN,那么传统技术的IPSec VPN又有什么高扩展性的问题呢?我们就从传统IPSec VPN的两种连接拓扑谈起,说说它们有什么高扩展性的问题。 传统IPSec VPN星形拓扑IPSec VPN有如下问题: 1.中心站点配置量大 不管是经典配置还是GRE Over IPSec或者SVI,多一个分支站点就要多一份配置,如果分支站点数量过多,配置就会变成沉重的负担,并且不容易管理。 2.分支站点间流量延时较大 因为一个分支站点的数据要抵达另外一个分支站点,首先需要加密数据送往中心,数据在中心站点被第一次解密,查看路由判断出隧道,然后在中心站点被第二次加密,并且送往目的站点。目的站点收到数据后,再进行第二次解密。由于数据被两次加解密,所以大大增加了延时。 3.分支站点间流量占用中心带宽 星形拓扑分支站点间的所有流量,都需要经过中心站点进行转发。如果分支站点间流量过大,会大大消耗中心站点的带宽。 综上所述,星形拓扑的传统IPSec VPN,很明显不是一个高扩展性的设计,不适合在有大量分支站点的网络中部署IPSec VPN。 传统IPSec VPN网状模型拓扑IPSec VPN有如下问题: 1.中心与分支站点配置量大 不管是经典配置还是GRE Over IPSec或者SVI,多一个分支站点,所有的站点都要多一份配置,如果在分支站点数量过多的网络,使用网状拓扑的IPSec VPN,配置将是一场噩梦。 2.分支站点需要维护过多IPSec SA 网状拓扑的IPSec VPN,分支站点要和每一个其它站点建立IPSecSA,如果站点过多,每一个分支站点就会维护很多的IPSec SA,一般分支站点都使用低端路由器产品,例如:18或者28系列路由器,维护过多的IPSec SA会让这些设备的内存和CPU不堪重负。 3.每一个分支站点需要固定IP地址 网状拓扑的IPSec VPN,因为两两站点之间需要建立IPSec VPN,所以每一个分支站点都需要有固定IP地址。很明显这在工程中很难实现,因为大多数分支机构可能都是通过ADSL这种廉价的接入技术,并且动态获取互联网地址。 由于传统IPSec VPN星形和网状拓扑存在高扩展性问题,Cisco提出了自己的高扩展性IPSec VPN技术,这个技术就叫做Dynamic Multipoint VPN(DMVPN)。 DMVPN相比于传统的IPSec VPN技术有如下几个优点: 1.简单的星形拓扑配置,提供了虚拟网状连通性 2.分支站点支持动态获取地址 3.增加新的分支站点,无需更改中心站点配置 4.分支站点到分支站点动态产生隧道 要了解DMVPN为什么能够提供上述的四大特点,我们首先需要了解组成DMVPN这个解决方案的四大协议。下面我们就对这四大协议进行详细的介绍。 协议一:Multiple GRE(MGRE)---动态多点GRE MGRE是一种特殊的GRE技术,非常类似于多点帧中继技术,是一个典型NBMA网络。 MGRE拓扑 可以看到所有站点的MGRE隧道接口都处于一个网段,顾名思义多点GRE。也就是说任何一个分支站点不仅能够和中心站点进行通讯,而且还能够直接和其它分支站点进行通讯。这其实就说明了DMVPN的第一个优点,虚拟网状连通性。 协议二: Next Hop Resolution Protocol(NHRP)---下一跳解析协议 如果你认为配置了MGRE隧道,所有站点就能够直接进行通讯,那就大错而特错了。举两个例子来说明这个问题,第一个例子就是以太网,在以太网IP地址为逻辑地址,MAC地址才是物理地址。如果一台设备只知道对方的逻辑地址,是不能进行通讯的。一定需要知道对方的物理地址,才能够向网络发送数据包。ARP技术就是完成在以太网内,动态的或者手动的映射逻辑地址到物理地址。第二个例子就是和MGRE拓扑非常类似的多点帧中继网络,每一个帧中继接口都有一个逻辑的IP地址,但是要访问对方的逻辑IP必须要知道他的物理地址才行。在帧中继网络中物理地址就是DLCI,我们可以通过手动帧中继映射,或者动态反向ARP技术,映射IP地址到DLCI。同样的在MGRE网络中,也需要影射逻辑地址到物理地址,MGRE隧道的虚拟地址就是逻辑地址,站点获取的公网IP地址,就是物理地址。下一跳解析协议(NHRP)就是为了实现这个映射而设计的,首先每一个分支站点都需要手动影射中心站点的虚拟IP到公网IP,所以中心站点必须拥有固定IP地址。分支站点有了这个手动映射就能够和中心站点取得联系,并且通过NHRP协议,注册这个分支站点的隧道虚拟IP到动态获取的公网IP,一旦注册成功,中心站点就有所有分支站点的NHRP影射。这样中心站点也能够访问所有注册后的分支站点。因为注册是动态的,所以分支站点支持动态获取地址。当某一分支站点希望访问另外一个分支站点时,它首先会使用NHRP协议询问中心站点(NHRP的服务器),目的分支站点隧道虚拟IP所对应的公网IP,中心站点回送NHRP影射给发起方,发起方有了目的站点的NHRP影射以后,就能够通过MGRE直接发起隧道访问目的站点,这个流量是两个分支站点间直接发起的,并不占用中心站点资源。所以从这个角度来看,DMVPN技术是高扩展性的技术。 协议三:动态路由协议 动态路由协议的主要目的是宣告隧道接口网络和站点身后私有网络。绝大部分动态路由协议都使用组播来传输路由更新信息。但是MGRE隧道是典型的NBMA网络,这种网络类型不支持直接承载组播信息,所以我们需要配置组播映射,把组播转换成为单播。因为只有中心站点才拥有固定IP地址,所以默认只有能够配置分支站点和中心站点之间的组播映射。由于组播映射的这个特点,所以动态路由协议的邻居关系,只会出现在分支站点和中心站点之间,分支站点之间由于不存在组播映射,并且分支站点间的隧道是动态建立的,所以不存在动态路由协议的邻居关系。MGRE支持的路由协议有RIP,EIGRP,OSPF,ODR和BGP。 协议四:IPSec技术 其实DMVPN也可以理解成为MGRE over IPSec,IPSec其实就是对MGRE流量进行加密。虽然MGRE是一种特殊的GRE技术,但是协议号依然为GRE的47。所以配置和GRE over IPSec一般无二。 实验一:经典DMVPN实验 第一部分 实验目标 配置经典DMVPN 第二部分 经典DMVPN实验实际接线图 第三部分 实验拓扑 经典DMVPN实验拓扑(物理) 经典DMVPN实验拓扑(逻辑) 第四部分 基本网络配置 Hub基本网络配置 Spoke1基本网络配置 Spoke2基本网络配置 第五部分 MGRE与NHRP配置 Hub基本网络配置   Spoke1基本网络配置 Spoke2基本网络配置 第六部分 测试 NHRP Hub的NHRP注册信息 Spoke1的NHRP映射信息 <注意:这是一个只有DMVPN才能够出现的现象,DMVPN为了实现零丢包特性,在还没有给分支站点做NHRP解析之前,会帮分支站点代转几个包,也就是说这个包是由中心抵达目的站点的,但是NHRP解析以后,分支站点有能力直接建立隧道和目的站点进行通讯,但是由于站点一没有站点二的arp解析,所以丢了第二个包,后面三个包,是两个分支站点间直接通信进进行转发的。> 第七部分 动态路由协议EIGRP配置 Hub动态路由协议EIGRP配置 Spoke1动态路由协议EIGRP配置 Spoke2动态路由协议EIGRP配置 第八部分 试与调整EIGRP 查看Hub EIGRP邻居关系 查看Hub 通过EIGRP学习到的路由 查看Spoke1 EIGRP邻居关系 查看Spoke1 通过EIGRP学习到的路由 <由于动态路由协议水平分割特性,分支站点只能够学习到中心站点内部网络的路由> 为了解决默认情况下,分支站点通过动态路由协议,只能够学习到中心站点内部网络路由的问题,需要在中心站点的隧道接口上关闭水平分割的特性。  中心站点关闭水平分割特性后,查看Spoke1 通过EIGRP学习到的路由 <Spoke1虽然学习到了Spoke2内部网络192.168.2.0/24的路由,但是路由的下一跳却是中心站点。很明显为了实现,DMVPN分支站点间直接建立隧道的特性,我们希望192.168.2.0/24的下一跳应该为172.16.1.2(Spoke2隧道虚拟IP地址)。> 配置Hub优化路由 Hub路由优化后,查看Spoke1通过EIGRP学习到的路由 第九部分 置IPSec VPN Hub IPSec VPN配置 Spoke1 IPSec VPN配置 Spoke2 IPSec VPN配置 第十部分 看DMVPN状态 查看Hub上的IPSec SA状态 通过查看中心站点IPSec SA的状态,我们发现中心站点和分支站点之间的隧道是永恒建立的,只要分支站点在线这个隧道就存在。 查看Spoke1上的IPSec SA状态 触发分支站点间的流量 查看Spole1上的IPSec SA状态 第十一部分 MVPN中包治百病的大招 在配置DMVPN的过程当中,很可能出现配置完全正确,但是测试结果不正确的现象。这个时候就可以使用如下的大招来解决问题。请注意,配置DMVPN出现不可预期的问题比较常见,但是一般都能够使用下面的办法来解决。 大招第一步:关闭所有站点的隧道接口 大招第二步:从中心站点开始打开各个站点的隧道接口 如果确定配置没有问题,那么这个时候DMVPN应该能够正常工作了。 DMVPN三个发展阶段介绍 阶段一:星形拓扑设计(Hub-to-Spoke Designs) 第一阶段星形拓扑设计,是DMVPN技术的最原始阶段,除了中心站点为多点GRE隧道,所有分支站点为普通点对点GRE隧道。分支站点间的流量都必须经过中心站点转发。第一阶段星形拓扑DMVPN的优势就在于,增加分支站点不增加中心站点的配置,并且分支站点支持动态获取IP地址。 阶段二:虚拟网状拓扑设计(Spoke-to-Spoke Designs) DMVPN发展到第二阶段,所有站点都采用多点GRE配置,功能大大提升,支持分支站点和分支站点间直接建立隧道。实现了虚拟网状拓扑,真正实现了DMVPN的高扩展性。 阶段三:层次化(树状)设计(Hierarchical (Tree-Based))Designs) 第三阶段也是DMVPN的最新发展阶段,主用运用于DMVPN的超大范围部署,实现DMVPN层次化的结构,并且能够实现不同区域的分支站点间直接建立隧道。如果使用第二阶段DMVPN实现层次化部署,两个不同DMVPN区域的分支站点必须经过本区域的中心站点才能建立连接。 为了更加深刻的理解DMVPN三个阶段的区别,可以看下表
http://www.m2mlib.com/uploads/article/20171106/6f7e54bc512e1f1a03a03b4eae1304ef.png
第二和第三阶段分支站点间隧道处理方法比较表
http://www.m2mlib.com/uploads/article/20171106/d82932e699498359b5a84b3fb3b264dd.png
我们从表中可以发现,第三阶段支持汇总路由,并且NHRP的处理方法也和第二阶段有明显不同,下面我们就会第三阶段NHRP的解析过程进行详细的介绍。 第二阶段DMVPN NHRP工作示意图 第一步:分支站点一到分支站点二数据通过中心站点代转。 第二步:分支站点一发送NHRP解析请求给中心站点,请求解析分支站点二虚拟IP地址。 第三步:中心站点回送NHRP解析回应给分支站点一。 第四步:分支站点一获取分支站点二NHRP解析后,直接建立分支站点间的IPSec隧道,后续数据在站点间IPSec隧道内进行转发 DMVPN NHRP工作的细节。 第一步:第三阶段DMVPN支持中心站点向分支站点发送汇总路由,流量总是会先送到中心站点,并由中心站点代转。 第二步:中心站点收到分支站点间数据后,回送NHRP重定向,这个重定向的主要目的是告诉分支站点一:中心站点不是最优的下一跳(虽然路由学习的下一跳是中心站点),最优的下一跳是分支站点二的虚拟隧道地址。 注意:由于NHRP重定向能够动态优化路由,所以第三阶段的DMVPN支持中心站点的路由汇总。 第三步:当分支站点一收到NHRP重定向信息,并且学习到最优的下一跳是分支站点二,就会马上发送NHRP解析请求给NHRP服务器(中心站点)。在DMVPN第三阶段,中心站点不会直接回送NHRP解析回应,而是把这个NHRP解析请求直接发给目的站点。 第四步:分支站点二收到分支站点一所发的NHRP解析请求后,站点二会主动和站点一建立IPSec隧道。 第五步:站点间IPSec隧道建立后,站点二会在隧道内直接回送NHRP解析回应给站点一。 注意:DMVPN第三阶段采取由目的站点触发IPSec,并且在IPSec隧道内回送NHRP回应信息。这样做的好处在于,如果分支站点二正在一个PAT设备内部,使用第三阶段的DMVPN就能够由站点二由内向外主动发起了,但是使用传统的第二阶段DMVPN技术,就很难穿越PAT设备,建立分支站点间隧道。 第六步:后续站点间流量就会直接在第四步建立的IPSec隧道内转发。 实验二 第三阶段DMVPN实验 第一部分 实验目标 配置第三阶段DMVPN 第二部分 实际接线状况 第三阶段DMVPN实验实际接线图 第三部分 实验拓扑 第四部分 基本网络配置 Hub基本网络配置 Spoke1基本网络配置 Spoke2基本网络配置 第五部分 MGRE与NHRP配置 Hub基本网络配置 Spoke1基本网络配置 Spoke2基本网络配置 第六部分 动态路由协议EIGRP配置 Hub动态路由协议EIGRP配置 Spoke1动态路由协议EIGRP配置 Spoke2动态路由协议EIGRP配置 第七部分 配置IPSec VPN Hub IPSec VPN配置 Spoke1 IPSec VPN配置 Spoke2 IPSec VPN配置 第八部分 测试第三阶段DMVPN Spoke1查看路由表 Spoke1查看NHRP映射 Spoke1发起分支站点间流量 Spoke1查看NHRP映射 Spoke1查看IPSec SA DMVPN高可用性技术介绍 DMVPN有如下两种主要的高可用性方案 1.单云双中心 DMVPN单云表示只有一个隧道网络,并且这个隧道网络内有两个中心站点。每一个分支站点同时和两个中心站点建立两个永久的IPSec隧道,也同时和两个中心站点建立动态路由协议的邻居关系。分支站点会从两个中心站点同时学习到中心内部网络的路由。当分支站点访问中心内部网络时,可以利用两个中心站点实现负载均衡。并且当其中一个中心站点出现问题的时候,另外一个站点能够接管所有流量,实现DMVPN的高可用性。相对于本章最后要介绍的双云双中心的解决方案,我更推荐大家在工程中使用单云双中心的解决方案,因为这种设计在路由结构和配置上都比较简单。 DMVPN单云双中心配置 中心站点一配置 中心站点二配置 分支站点一配置 分支站点二配置 内部服务器配置 2.双云双中心 DMVPN双云表示有两个隧道网络,隧道一网段为172.16.1.0/24,隧道二网段为172.16.2.0/24。双中心表示每一个隧道有一个中心站点,两个隧道加在一起就有两个中心。双云双中心这种DMVPN,每一个分支站点都需要配置两个MGRE隧道接口,每一个隧道接口需要配置一个NHRP服务器。分支站点需要同时和两个隧道口的两个中心站点建立IPSec隧道和路由协议的邻居关系。和单云双中心一样,分支站点能够通过两个中心站点学习到内部网络(192.168.100.0/24)的路由,也同样能够利用两个分支站点实现负载均衡。任何一个中心站点出现故障另外一个中心站点能够接管所有流量。 中心站点一配置 中心站点二配置 分支站点一配置 分支站点二配置 内部服务器配置            

0 个评论

要回复文章请先登录注册