DMVPN

目录

一、背景

二、简介

2.1 厂商

2.2 优势

2.3 场景

三、组件

3.1 IPSec

3.2 路由协议

3.3 mGRE

  3.3.1 传统GRE

  3.3.2 简介

  ①多点GRE:

  ②作用:

  ③问题:

3.4 NHRP

 ①简介:

 ②作用:

 ③模式:

 ④工作原理:

四、配置

4.1 实验要求

4.2 配置思路

4.3 思科

4.4 华为

五、总结


一、背景

  企业要实现总部与处于异地的分部实现经公网完成私网间通信,可以通过使用VPN。对于传统VPN,特别是IPSec VPN都存在着一些不足。在IPSec VPN中对端的建立是点对点,端对端建立的,但当企业有多家处于异地的分部时,这些分部之间若使用固定IP地址要实现全站点直连,要建立多个IPSec VPN隧道不仅成本贵;若使用动态IP地址这些分部之间无法直接访问,分部站点之间的访问都需要经过总部站点进行转发,不但限制了网络的扩展性,同时占用总部带宽,引入额外的延迟。而DMVPN技术则可以提供高度可扩展和高效的虚拟专用网络技术的解决方案。


二、简介

2.1 厂商

  DMVPN技术是思科私有的,但是其技术或原理是公有的对于不同厂商名称不同,该技术在华为称为DSVPN技术

2.2 优势

  可以结合IPSec,使用IPSec加密数据;

  在多分支下,使用动态IP地址分支间可以直接访问,无需通过总部中转;

  可以结合隧道运行路由协议,分支间的隧道是动态建立的,有流量产生时会主动建立,没流量自动拆除。

2.3 场景

  适用于企业具有广泛分部的架构,特别是后续需要进行扩展、需要构建星形拓扑结构的场景


三、组件

3.1 IPSec

  提供安全服务,对数据进行加解密,提供数据安全性

3.2 路由协议

  不同站点间起路由协议,能够学到站点私网内的路由

3.3 mGRE

  3.3.1 传统GRE

  需要明确指定源目IP地址(点对点),tunnel口才能正常建立

  3.3.2 简介

  ①多点GRE:

   不需要指定目的IP地址,tunnel口也可以正常建立,可以跟动态的对等体建立隧道

  ②作用:

   可以在多分支下,建立连接不同站点的隧道;封装私网数据包

  ③问题:

   不同分部间的物理公网IP地址不断变化,目的IP地址不能指定,在对私网数据包进行封装时,封装的报文头的目的IP地址要封装谁的呢?   ————通过NHRP技术解决

3.4 NHRP

 ①简介:

   下一跳解析协议,对隧道封装报文头时需要封装的目的IP地址进行解析

 ②作用:

   解决了在使用动态公网IP地址的分支机构之间建立VPN隧道时的路由问题

 ③模式:

   C/S(客户端与服务器)

   Client多部署在分支站点,需要向服务器主动发送本地隧道IP与公网地址的绑定信息

   Server多部署在总部或中心站点,收集并维护所有站点的隧道IP与公网地址的绑定信息同时向Client回应其他站点的隧道IP与公网地址的绑定信息

 ④工作原理:

   注册-->地址解析请求-->地址解析回应-->隧道建立-->动态隧道维护

   注册:本地的隧道IP地址可以自行设定与公网无关,是固定的;当Client要连接到VPN时,会携带着其私有地址和获取到的公网地址向Server发送,进行注册信息,Server对私有地址和公网地址进行绑定

  地址解析请求:C1(代指Client 1)要与C2(代指其他Client)进行通信时,会先向Server发送请求,请求其物理公网IP地址(Server多部署在总部,总部的物理公网IP地址多为固定IP地址)

  地址解析回应:Server收到C1发来的地址解析请求后,会查看存放这些Client发送来的私有地址和公网地址的映射表,找到请求的C2对于的公网地址后,会携带着这个信息对C1进行应答

  隧道建立:C1收到Server发送来的信息后,使用这个公网地址建立起GRE隧道

  动态隧道维护:公网IP地址变化时更新映射信息,隧道没流量时拆除。


四、配置

4.1 实验要求

  企业有总部和两个分别处于不同地域的分部,分部采用动态地址接入公网。企业对网络要求启用OSPF路由协议且希望能够实现分部之间的VPN互联。

4.2 配置思路

1)由于多个站点且站点间要实现之间均能直接通信,通过建立mGER隧道建立连接不同站点的隧道。

2)由于分部采用动态地址接入公网的,分部之间互相不知道对方的公网地址,通过NHRP解决建立VPN隧道时的路由问题。

3)要求启用OSPF协议且处于多站点间启用,OSPF的网络类型修改为MA(以太网链路)或P2MP(点对多点)。

4)为确保数据间传输的安全性,使用IPSec对数据进行加解密。

4.3 思科

1)修改设备名称、配置接口IP地址,启用loopback模拟内网,配置静态路由实现公网可达

Router>ena
Router#conf t

Router(config)#ho R1  ---修改设备名称
R1(config)#int e0/0                     
R1(config-if)#ip add 1.1.1.10 255.255.255.0  ---配置接口IP地址
R1(config-if)#no shu   
R1(config-if)#exit                         
R1(config)#int lo1
R1(config-if)#ip add 192.168.0.1 255.255.255.0  ---配置loopback接口
R1(config-if)#exit
R1(config)#ip route 0.0.0.0 0.0.0.0 1.1.1.1   ---配置静态路由,下一跳指向ISP

R2(config)#int e0/0
R2(config-if)#ip add 1.1.2.10 255.255.255.0
R2(config-if)#no shu
R2(config)#int lo1
R2(config-if)#ip add 192.168.1.1 255.255.255.0
R2(config-if)#exit
R2(config)#ip route 0.0.0.0 0.0.0.0 1.1.2.1

R3(config)#int e0/0
R3(config-if)#ip add 1.1.3.10 255.255.255.0
R3(config-if)#no shu
R3(config-if)#int lo1
R3(config-if)#ip add 192.168.2.1 255.255.255.0
R3(config-if)#exit
R3(config)#ip route 0.0.0.0 0.0.0.0 1.1.3.1 

测试公网可达性

2)采用mGER建立隧道, 配置NHRP的客户端和服务端

R1(config)#int tunnel 1  ---配置虚拟隧道接口
R1(config-if)#ip add 172.16.1.1 255.255.255.0 ---配置隧道接口的本地端点地址,在GRE隧道网络中使用
R1(config-if)#ip nhrp network-id 123  ---配置NHRP工作组编号,将多个NHRP客户端分组到同一个NHRP组中,只有同编号的设备能够相互之间解析地址
R1(config-if)#tunnel source e0/0  ---指定了隧道数据包的源MAC地址(隧道封装时数据包的源)
R1(config-if)#tunnel mode gre multipoint ---将隧道模式设置为GRE多点(mGRE),允许一个隧道接口与多个远端隧道接口建立连接

mGRE无需指定隧道数据包目的MAC地址,tunnel接口可以直接UP

R2(config)#int tunnel 1
R2(config-if)#ip add 172.16.1.2 255.255.255.0
R2(config-if)#ip nhrp map 172.16.1.1 1.1.1.10   ---设置一个NHRP静态映射(将总部的隧道地址和公网地址绑定),将远程隧道地址映射到下一个跳转地址
R2(config-if)#ip nhrp network-id 123
R2(config-if)#ip nhrp nhs 172.16.1.1  ---指定NHRP下一个跳转服务器的地址(总部的隧道地址)
R2(config-if)#tunnel source e0/0
R2(config-if)#tunnel mode gre multipoint  

R2(config-if)#exit

R3(config)#int tunnel 1
R3(config-if)#ip add 172.16.1.3 255.255.255.0
R3(config-if)#ip nhrp map 172.16.1.1 1.1.1.10

R3(config-if)#ip nhrp network-id 123 
R3(config-if)#ip nhrp nhs 172.16.1.1
R3(config-if)#tunnel source e0/0
R3(config-if)#tunnel mode gre multipoint 

R3(config-if)#exit

查看NHRP映射表

R2、R3之间还未进行通信,没有向服务器去请求对方地址解析

 3)在各站点上启用OSPF路由协议

R1(config)#router ospf 1
R1(config-router)#router-id 1.1.1.1  ---修改RID
R1(config-router)#network 192.168.0.0 0.0.0.255 area 0
R1(config-router)#network 172.16.1.0 0.0.0.255 area 0
R1(config-router)#exit
R1(config)#int tunnel 1 
R1(config-if)#ip ospf network broadcast  ---修改网络类型为MA(以太网链路)

R1(config-if)#exit

R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2

R2(config-router)#priority 0   ---修改优先级为0(默认为1),配置建议将DR设在NHRP的服务端上
R2(config-router)#network 192.168.1.0 0.0.0.255 area 0
R2(config-router)#network 172.16.1.0 0.0.0.255 area 0
R2(config-router)#exit
R2(config)#int tunnel 1 
R2(config-if)#ip ospf network broadcast 
R2(config-if)#exit

R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#priority 0
R3(config-router)#network 192.168.2.0 0.0.0.255 area 0
R3(config-router)#network 172.16.1.0 0.0.0.255 area 0
R3(config-router)#exit
R3(config)#int tunnel 1 
R3(config-if)#ip ospf network broadcast 
R3(config-if)#exit

 查看R1(总部)上的OSPF邻居、路由

测试隧道通信情况,实现企业各站点间可以直接通信

R2内网去访问R3内网时,第一次会经过R1,后续直接指向R3

4)配置IPSec对数据进行加密

R1(config)#crypto isakmp policy 10
R1(config-isakmp)#authentication pre-share 
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 123 address 0.0.0.0
R1(config)#crypto ipsec transform-set ie esp-3des esp-sha-hmac 
R1(cfg-crypto-trans)#mode transport 
R1(cfg-crypto-trans)#exit
R1(config)#crypto ipsec profile ie
R1(ipsec-profile)#set transform-set ie
R1(ipsec-profile)#exit
R1(config)#int tunnel 1
R1(config-if)#tunnel protection ipsec profile ie
R1(config-if)#exit

 R2(config)#crypto isakmp policy 10
R2(config-isakmp)# authentication pre-share
R2(config-isakmp)#crypto isakmp key 123 address 0.0.0.0        
R2(config)#crypto ipsec transform-set ie esp-3des esp-sha-hmac 
R2(cfg-crypto-trans)# mode transport
R2(cfg-crypto-trans)#crypto ipsec profile ie
R2(ipsec-profile)# set transform-set ie 
R2(ipsec-profile)#exit
R2(config)#int tunnel 1
R2(config-if)#tunnel protection ipsec profile ie
R2(config-if)#exit

R3(config)#crypto isakmp policy 10
R3(config-isakmp)# authentication pre-share
R3(config-isakmp)#crypto isakmp key 123 address 0.0.0.0        
R3(config)#crypto ipsec transform-set ie esp-3des esp-sha-hmac 
R3(cfg-crypto-trans)# mode transport
R3(cfg-crypto-trans)#crypto ipsec profile ie
R3(ipsec-profile)# set transform-set ie 
R3(ipsec-profile)#exit    
R3(config)#int tunnel 1
R3(config-if)#tunnel protection ipsec profile ie
R3(config-if)#exi

对IPSec阶段一进行检测

阶段二检测命令

R2#show crypto ipsec sa

(由于阶段二信息较多可以自行检测查看)

4.4 华为

  该技术在华为称为DSVPN,技术原理大同小异,实验配置以华为产品文档为例

相关检测命令

display nhrp peer all  ---查看和验证NHRP映射表项

display ipsec sa  ---查看IPSec安全联盟信息,确保IPSec保护正常工作

ping  ---执行ping操作来测试不同分支节点间的连通性

五、总结

  DMVPN(动态多点虚拟专用网)是一种思科私有技术,华为称之为DSVPN。该技术结合IPSec,能够加密数据,在多分支环境下实现分支之间的直接通信,无需经过总部中转。DMVPN的核心优势在于其动态隧道建立功能,当有流量时隧道自动建立,无流量时自动拆除,适用于分布广泛、易扩展的企业网络。其主要组件包括IPSec、路由协议、mGRE(多点GRE)以及NHRP(下一跳解析协议)。mGRE允许隧道在动态对等体之间建立,NHRP则通过解析动态公网IP地址来解决路由问题,从而确保在分支机构之间顺利建立VPN隧道。 

  DMVPN的工作原理包括注册、地址解析请求、地址解析回应、隧道建立和动态隧道维护等步骤。每当一个分支站点需要与另一个分支通信时,首先会通过NHRP向总部请求目标站点的公网IP地址,获取后建立GRE隧道并通过IPSec加密通信。当公网IP地址变化或隧道无流量时,隧道信息会自动更新或拆除。

  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值