华为-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 配置成功。

相关文章
|
2月前
|
存储 Java 数据管理
探秘JDK 10:崭新特性悉数解析
探秘JDK 10:崭新特性悉数解析
30 0
|
1月前
|
自然语言处理 iOS开发
海外短剧系统开发功能指南/案例设计/步骤方案/源码程序
The development of overseas short drama systems needs to consider the following main requirements
什么是元宇宙游戏系统开发案例介绍/方案步骤/需求功能/源码指南
Metaverse game system development refers to the creation of a complex system that combines virtual reality, blockchain technology, and game design, allowing players to immerse themselves in a virtual world and interact with other players, trade virtual assets, and more. This type of gaming system ty
|
4月前
|
消息中间件 架构师 Java
华为十年架构师带你从源码到项目,开启你的springboot实战之旅
微服务一词相信对很多开发者来说已经耳熟能详了。在我曾经工作的公司,还是使用单体项目来部署时,无论是打包还是运行都耗时耗力,这一直让我很苦恼。同时,每次需要创建新应用、构建项目配置Spring的时候也十分麻烦。
|
4月前
|
Java 程序员 应用服务中间件
spring框架核心技术讲解(上)--超详细教程加案例分析
spring框架核心技术讲解(上)--超详细教程加案例分析
|
6月前
|
安全
潮玩元宇宙大逃杀游戏系统开发稳定版/案例设计/详细功能/需求逻辑/源码项目
The development rules of virtual reality game systems, especially the metaverse escape game system, can vary depending on specific designs and requirements. The following are some common development rules and considerations that may include
|
9月前
|
消息中间件 安全 NoSQL
跪了!Alibaba内部优质Springboot笔记:两大项目实战+源码解析
近年来,Spring Boot 是整个Java社区中最有影响力的项目之一,它的设计初衷是解决Spring各版本配置工作过于繁重,目前已经逐渐替代传统SSM架构。但SSM和Spring Boot并不冲突。Spring Boot更简单、更自动化,减少了传统SSM开发的配置。程序员在用Springboot开发应用程序时能做到零配置或极简配置。同时,为了不失灵活性,它也支持自定义操作。
|
10月前
|
缓存 JSON 前端开发
腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
腾讯开源的 hel 提供了加载远程模块的能力,谈谈它的实现原理
151 0
|
测试技术 Python
【第五篇-完结篇】XiaoZaiMultiAutoAiDevices之改造扩展
在前面系列文章中有讲到,使用configparser,ini格式的文件作为配置文件,在新增或者删除其中的值时,会丢失所有注释,所以在框架源码注释中我有写到,如果对这方面比较介意或者是有需求的话,可以进行更改配置文件。
106 0
|
安全 网络安全 网络虚拟化
DMVPN 案例配置及原理分析
DMVPN 案例配置及原理分析
508 0
DMVPN 案例配置及原理分析