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

相关文章
freeradius部署及挑战模式配置
freeradius部署及挑战模式配置
6362 1
freeradius部署及挑战模式配置
|
JavaScript Java API
如何接入阿里云短信服务 (完整指南)
如何接入阿里云短信服务 (完整指南)
56814 1
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
264133 0
|
存储 运维 安全
|
人工智能 前端开发 编译器
【AI系统】LLVM 架构设计和原理
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
618 3
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
5946 2
|
网络协议 智能硬件
|
网络虚拟化
离谱,到现在还有人不懂WLAN数据转发方式是啥?
离谱,到现在还有人不懂WLAN数据转发方式是啥?
358 0
|
SQL Java 关系型数据库
手把手带你部署Java项目到Linux服务器
手把手带你部署Java项目到Linux服务器
1413 1
手把手带你部署Java项目到Linux服务器