×

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

hqy hqy 发表于2019-11-12 18:00:39 浏览3562 评论0

抢沙发发表评论

mportant; overflow-wrap: break-word !important;">
定义:

动态智能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.拓扑:

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] 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:

Spoke2:

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

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

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

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

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

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

至此DSVPN 配置成功。

END


打赏

本文链接:https://www.kinber.cn/post/985.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客