华为-DSVPN 案例配置及原理分析

简介: 华为-DSVPN 案例配置及原理分析

定义:


动态智能VPN(Dynamic Smart Virtual Private Network),简称DSVPN,是一种在Hub-Spoke组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。


目的:


越来越多的企业希望建立Hub-Spoke方式的IPSec VPN网络将企业总部(Hub)与地理位置不同的多个分支(Spoke)相连,从而加强企业的通信安全、降低通信成本。

当企业总部采用静态的公网地址接入Internet,分支机构采用动态的公网地址接入Internet时,使用传统的IPSec、GRE over IPSec等技术构建VPN网络将存在一个问题,即分支之间无法直接通信(源分支无法获取目的分支公网地址,也就无法在分支之间直接建立隧道),所有分支之间的通信数据只能由总部中转。

基本原理:


DSVPN实现分支之间直接通信的关键是在分支之间建立隧道。DSVPN利用mGRE结合NHRP来建立分支之间的隧道。与GRE不同,mGRE建立隧道时不需要定义隧道目的地址,而是依赖NHRP告诉它,这就为在动态地址变化的分支间建立隧道创造了条件。

mGRE与NHRP结合建立隧道的基本原理是:当设备转发一个IP报文时,根据路由表将IP报文传给下一跳的出接口mGRE隧道接口,mGRE在NHRP映射表中查找获取下一跳地址映射的对端公网地址。然后mGRE封装IP报文,加上新IP头,目的地址就是对端的公网地址,这样IP报文就能发向隧道对端,隧道即可建立。


可见,NHRP映射表和路由表是mGRE与NHRP结合建立隧道的重要依据。如果一端分支有对端分支Tunnel地址/子网地址与公网地址的NHRP映射、有到对端分支的路由,那么分支间就可建立mGRE隧道。而DSVPN网络开始时,分支Spoke只有一个静态配置的NHRP映射表(Hub的Tunnel地址与公网地址的映射),也只有到总部Hub的路由。因此,分支间无法直接建立隧道,只能先借助Hub学习到彼此的路由、生成彼此Tunnel地址/子网地址与公网地址的NHRP映射。这一过程主要分为如下三个环节:


1、建立Spoke与Hub之间的mGRE隧道


这一环节的目的是打通分支到分支报文转发的通道,使得一端分支的报文可以借助Hub转发到另一端分支。


DSVPN在Spoke与Hub之间建立的mGRE隧道是一种静态隧道,无论Spoke与Hub间是否有流量经过,该隧道一直存在。


2、分支间路由学习


这一环节的目的是生成一端分支到另一端分支的路由。


3、建立Spoke与Spoke之间的mGRE隧道


这一环节的目的是建立用于分支间直接通信的通道。当一个分支向另一个分支转发用户数据报文时,如果源Spoke找不到目的Spoke的公网地址,则会触发DSVPN建立Spoke与Spoke之间的mGRE隧道。


Spoke与Spoke之间建立的mGRE隧道是一种动态隧道,当Spoke与Spoke间有流量通过时,隧道自动保活;当一定周期内没有流量经过时,隧道自动拆除。


Spoke与Spoke之间的mGRE隧道建成后,分支间的数据报文即可通过该隧道直接转发,不再经过Hub中转。


案例:

1.拓扑:

640.png

2、组网需求 :


某中小企业有总部(Hub)和两个分支(Spoke1和Spoke2),分布在不同地域,总部和分支的子网环境会经常出现变动。分支采用动态地址接入公网。企业现网网络规划使用OSPF路由协议。 现在用户希望能够实现分支之间的VPN互联。


3、配置思路:


企业网络管理员可以采用如下思路进行分析:

  1. 由于分支是采用动态地址接入公网的,分支之间互相不知道对方的公网地址,因此必须采用DSVPN来实现分支之间的VPN互联。
  2. 由于分支数量较少,因此采用非shortcut方式的DSVPN。
  3. 由于分支和总部的子网环境经常出现变动,为简化维护并根据企业网络规划,选择部署OSPF路由协议来实现分支/总部间的通信。


4、配置过程:


1).配置接口IP地址

HUB:


system-view [Huawei] sysname Hub [Hub] interface gigabitethernet 0/0/0 [Hub-GigabitEthernet0/0/0] ip address 202.1.1.1 255.255.255.0 [Hub-GigabitEthernet0/0/0] quit [Hub] interface tunnel 0/0/0 [Hub-Tunnel0/0/0] ip address 172.16.1.1 255.255.255.0 [Hub-Tunnel0/0/0] quit [Hub] interface loopback 0 [Hub-LoopBack0] ip address 192.168.0.1 255.255.255.0 [Hub-LoopBack0] quit

Spoke1:

system-view [Huawei] sysname Spoke1[Spoke1] interface gigabitethernet 0/0/0 [Spoke1-GigabitEthernet0/0/0] ip address 202.1.2.1 255.255.255.0 [Spoke1-GigabitEthernet0/0/0] quit [Spoke1] interface tunnel 0/0/0 [Spoke1-Tunnel0/0/0] ip address 172.16.1.2 255.255.255.0 [Spoke1-Tunnel0/0/0] quit [Spoke1] interface loopback 0 [Spoke1-LoopBack0] ip address 192.168.1.1 255.255.255.0 [Spoke1-LoopBack0] quit

Spoke2:

system-view [Huawei] sysname Spoke2[Spoke2] interface gigabitethernet 0/0/0 [Spoke2-GigabitEthernet0/0/0] ip address 202.1.3.1 255.255.255.0 [Spoke2-GigabitEthernet0/0/0] quit [Spoke2] interface tunnel 0/0/0 [Spoke2-Tunnel0/0/0] ip address 172.16.1.3 255.255.255.0 [Spoke2-Tunnel0/0/0] quit [Spoke2] interface loopback 0 [Spoke2-LoopBack0] ip address 192.168.2.1 255.255.255.0 [Spoke2-LoopBack0] quit

Internet:

system-view [Huawei] sysname Internet[Internet] interface gigabitethernet 0/0/0 [Internet-GigabitEthernet0/0/0] ip address 202.1.1.2 255.255.255.0 [Internet-GigabitEthernet0/0/0] quit [Internet] interface gigabitethernet 0/0/1[Internet-GigabitEthernet0/0/0] ip address 202.1.2.2 255.255.255.0 [Internet-GigabitEthernet0/0/0] quit [Internet] interface gigabitethernet 0/0/2[Internet-GigabitEthernet0/0/0] ip address 202.1.3.2 255.255.255.0 [Internet-GigabitEthernet0/0/0] quit

2).配置各Router之间公网路由可达(采用ospf)

HUB:

[Hub] ospf 10[Hub-ospf-2] area 0.0.0.1 [Hub-ospf-2-area-0.0.0.1] network 202.1.1.0 0.0.0.255 [Hub-ospf-2-area-0.0.0.1] quit [Hub-ospf-2] quit

Spoke1:

[Spoke1] ospf 10 [Spoke1-ospf-2] area 0.0.0.1 [Spoke1-ospf-2-area-0.0.0.1] network 202.1.2.0 0.0.0.255 [Spoke1-ospf-2-area-0.0.0.1] quit [Spoke1-ospf-2] quit

Spoke2:

[Spoke2] ospf 10 [Spoke2-ospf-2] area 0.0.0.1 [Spoke2-ospf-2-area-0.0.0.1] network 202.1.3.0 0.0.0.255 [Spoke2-ospf-2-area-0.0.0.1] quit [Spoke2-ospf-2] quit

Internet:

[Internet] ospf 10 [Internet-ospf-2] area 0.0.0.1 [Internet-ospf-2-area-0.0.0.1] network 202.1.1.0 0.0.0.255 [Internet-ospf-2-area-0.0.0.1] network 202.1.2.0 0.0.0.255 [Internet-ospf-2-area-0.0.0.1] network 202.1.3.0 0.0.0.255 [Internet-ospf-2-area-0.0.0.1] quit [Spoke2-ospf-2] quit

3).配置OSPF基本功能

HUB:

[Hub] ospf 1 router-id  172.16.1.1[Hub-ospf-2] area 0.0.0.0[Hub-ospf-2-area-0.0.0.0] network 172.16.1.0   0.0.0.255 [Hub-ospf-2-area-0.0.0.0] network 192.168.0.0 0.0.0.255 [Hub-ospf-2-area-0.0.0.0] quit [Hub-ospf-2] quit

Spoke1:

[Spoke1] ospf 1 router-id 172.16.1.2 [Spoke1-ospf-2] area 0.0.0.0 [Spoke1-ospf-2-area-0.0.0.0] network 172.16.1.0   0.0.0.255[Spoke1-ospf-2-area-0.0.0.0] network 192.168.1.0 0.0.0.255 [Spoke1-ospf-2-area-0.0.0.0] quit [Spoke1-ospf-2] quit

Spoke2:

[Spoke2] ospf 1 router-id 172.16.1.3 [Spoke2-ospf-2] area 0.0.0.0 [Spoke2-ospf-2-area-0.0.0.0] network 172.16.1.0   0.0.0.255[Spoke2-ospf-2-area-0.0.0.0] network 192.168.2.0  0.0.0.255[Spoke2-ospf-2-area-0.0.0.0] quit [Spoke2-ospf-2] quit


说明:这里每个分支只给出一个分支子网的配置,如果子网环境发生变化,只需在本地设备配置相应的动态路由属性即可。


4).配置Tunnel接口


在Hub和Spoke配置OSPF网络类型为broadcast以实现分支间路由相互学习,在Spoke1和Spoke2上分别配置Hub的静态NHRP peer表项。

HUB:

[Hub] interface tunnel 0/0/0 
[Hub-Tunnel0/0/0] tunnel-protocol gre p2mp [Hub-Tunnel0/0/0] source gigabitethernet 0/0/0 [Hub-Tunnel0/0/0] nhrp entry multicast dynamic [Hub-Tunnel0/0/0] ospf network-type broadcast [Hub-Tunnel0/0/0] ospf dr-priority 100 [Hub-Tunnel0/0/0] quit

Spoke1:

[Spoke1] interface tunnel 0/0/0 [Spoke1-Tunnel0/0/0] tunnel-protocol gre p2mp [Spoke1-Tunnel0/0/0] source gigabitethernet 0/0/0 [Spoke1-Tunnel0/0/0] nhrp entry 172.16.1.1 202.1.1.1 register [Spoke1-Tunnel0/0/0] ospf network-type broadcast [Spoke1-Tunnel0/0/0] ospf dr-priority 0 [Spoke1-Tunnel0/0/0] quit

Spoke2:

[Spoke2] interface tunnel 0/0/0
[Spoke2-Tunnel0/0/0] tunnel-protocol gre p2mp [Spoke2-Tunnel0/0/0] source gigabitethernet 0/0/0 [Spoke2-Tunnel0/0/0] nhrp entry 172.16.1.1 202.1.1.1 register [Spoke2-Tunnel0/0/0] ospf network-type broadcast [Spoke2-Tunnel0/0/0] ospf dr-priority 0 [Spoke2-Tunnel0/0/0] quit

5).检查DSVPN配置结果

配置完成后,检查Spoke上的NHRP peer信息。

Spoke1:

640.png

Spoke2:

640.png

说明:执行display nhrp peer all命令,Spoke1和Spoke2上只能看到Hub的静态NHRP peer表项。


检查Hub上Spoke1和Spoke2的注册信息。

640.png

6.执行ping操作,查看配置结果


在Spoke1上ping分支Spoke2的子网地址192.168.2.1,然后在Spoke1和Spoke2上可以分别看到彼此的动态NHRP peer表项。

640.png

在Spoke1上执行display nhrp peer all操作,结果如下。

640.png

在Spoke2上执行display nhrp peer all操作,结果如下。

640.png

至此DSVPN 配置成功。

相关文章
|
7月前
|
XML Dubbo Java
【Dubbo3技术专题】回顾Dubbo2.x的技术原理和功能实现及源码分析(温故而知新)(二)
【Dubbo3技术专题】回顾Dubbo2.x的技术原理和功能实现及源码分析(温故而知新)
91 2
|
7月前
|
XML 监控 Dubbo
【Dubbo3技术专题】回顾Dubbo2.x的技术原理和功能实现及源码分析(温故而知新)(一)
【Dubbo3技术专题】回顾Dubbo2.x的技术原理和功能实现及源码分析(温故而知新)
115 1
|
7月前
|
消息中间件 架构师 Java
华为十年架构师带你从源码到项目,开启你的springboot实战之旅
微服务一词相信对很多开发者来说已经耳熟能详了。在我曾经工作的公司,还是使用单体项目来部署时,无论是打包还是运行都耗时耗力,这一直让我很苦恼。同时,每次需要创建新应用、构建项目配置Spring的时候也十分麻烦。
|
Java 程序员 应用服务中间件
spring框架核心技术讲解(上)--超详细教程加案例分析
spring框架核心技术讲解(上)--超详细教程加案例分析
156 0
|
存储 Java 数据库
SpringIoc方案二不使用配置文件开发(课时十二)
SpringIoc方案二不使用配置文件开发(课时十二)
74 0
|
自然语言处理 NoSQL Java
可能是全网第一个使用RediSearch实战的项目
可能是全网第一个使用RediSearch实战的项目
466 0
|
缓存 JSON 前端开发
腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
184 0
|
安全 网络安全 网络虚拟化
Cisco—DMVPN 案例配置及原理分析
Cisco—DMVPN 案例配置及原理分析
933 0
Cisco—DMVPN 案例配置及原理分析
|
安全 网络安全 网络虚拟化
DMVPN 案例配置及原理分析
DMVPN 案例配置及原理分析
600 0
DMVPN 案例配置及原理分析
|
JSON 运维 前端开发
开发中遇到的问题&解决方案(十一)
前天不是开工嘛,然后刚刚到公司前端说测试环境好像挂了,开工就直接王炸了,找了运维,运维说服务器过年关机了回来发现有个配件坏了,暂时修不好。那我就本地部署一套当测试环境用,我同步了一份生产库到本地,然后问题就来了,之前好好的功能全部出现了问题,因为年前有需求改动,debug了好几遍代码也没有查出问题,然后突然想到MySQL版本不对。
150 0
开发中遇到的问题&解决方案(十一)
下一篇
DataWorks