云筑网技术团队
助推建筑行业数字化
越来越多的中小型企业、甚至大型企业采用VPN的方式实现总部和各地分支机构进行网络层互通,加强企业的通信安全、同时降低通信成本。目前最传统的方式是采用IPSec VPN,即每个分支机构都会与企业总部建立IPSec VPN隧道。
目前总部和分支机构不断发展,传统的IPSec VPN渐渐出现一些局限性,比如随着分支机构增多,管理复杂度增加。同时分支机构采用动态的公网地址接入Internet时,使用传统的IPSec、GRE over IPSec等技术构建VPN网络将存在分支之间无法直接通信问题,所有分支之间的通信数据只能由总部中转。通过总部转发为出现如下问题:
(1) 总部在中转分支间的数据流时会消耗总部硬件设备资源,如CPU和内存等。
(2) 总部需对分支间的数据流封装和解封装,会增加网络延时,并占用总部出口网络带宽。
(3) 公司IPSec网络规模不断扩展时,为减少路由配置和维护,需要部署动态路由协议,但IPSec不支持广播报文和组播报文的传输。
为了解决上述当前VPN遇到的问题,各厂商都推出了新的动态VPN技术,如CISCO的DMVPN、华为DSVPN以及H3C DVPN等,各厂商推出的动态VPN技术基本原理和实现协议都大体相同,本文中以华为DSVPN为例进行介绍。
基本介绍
① 通过将下一跳解析协议NHRP(Next Hop Resolution Protocol)和mGRE(multipoint Generic Routing Encapsulation)技术与IPSec相结合。
② DSVPN通过NHRP协议动态收集、维护和发布各节点的公网地址等信息,解决了分支公网地址的问题,从而可在分支与分支之间建立动态VPN隧道,实现分支与分支间的直接通信,进而减轻总部的负担、避免网络延时。
③ DSVPN借助MGRE技术,使VPN隧道能够传输组播协议报文和广播协议报文,减少了配置VPN隧道的工作量;在新增分支或分支公网地址发生变化时,也能自动维护总部与分支之间的隧道关系,而不用调整总部的隧道配置,使得网络维护变得更智能化。
接下来就直接举例开干,介绍下DSVPN最常用的一种用法.
如下图企业通过公共网络将总部Hub(总部)与地理位置不同的多个分支Spoke(分支)相连,Hub(总部)使用静态的公网地址,Spoke 1(分支1) 和Spoke2(分支2)使用动态的公网地址。该网络中当Spoke 1需要向Spoke 2发送数据报文时,Spoke 1将通过与Hub之间的静态mGRE隧道交互NHRP协议获取Spoke 2的公网地址,并与Spoke 2建立动态mGRE隧道。隧道建立完成后,Spoke 1与Spoke 2之间的数据报文将通过该动态MGRE隧道直接发送给对方,不再经过总部Hub中转。
操作步骤
1.配置FW各接口的IP地址,并将接口加入到对应的安全区域。
此处以配置Hub接口的IP地址和安全区域为例。Spoke1、Spoke2的公网接口IP地址采用动态获取方式(DHCP方式),具体配置过程与配置Hub类似。假设获取到的地址是1.1.2.10/24和1.1.3.10/24。
选择“网络 > 接口”,单击GE0/0/0对应的。按如下参数配置后单击“确定”。
单击“新建”,按如下参数配置后单击“确定”。
2.在各设备上配置公网路由。
选择“网络 > 路由 > 静态路由”,单击“新建”。按如下参数配置后单击“确定”
3.在各设备上配置安全策略。
选择“策略 > 安全策略 > 安全策略”。
单击“新建”,选择“新建安全策略”。按如下参数配置用户子网间的域间策略后,单击“确定”。
本例中以Loopback接口(隶属于Local区域)模拟企业内部子网用户,因此要放开Local到Tunnel接口所在安全区域的域间策略。实际应用时,需要根据企业内部子网所处的真实安全区域来开放其域间策略。例如,企业内部子网如果位于trust区域,则应放开trust到Tunnel接口所在安全区域的域间策略。
单击“新建”,选择“新建安全策略”。按如下参数配置公网接口的域间策略后,单击“确定”。
4.配置Spoke的DSVPN参数。
此处以Spoke1为例,介绍配置DSVPN参数的步骤。
选择“网络 > DSVPN > DSVPN”,单击“新建”。按如下参数配置后单击“确定”。
5.配置Hub的DSVPN参数。
选择“网络 > DSVPN > DSVPN”,单击“新建”。按如下参数配置后单击“确定”。
结果验证
配置脚本
Spoke1的配置脚本
sysname Spoke1
#
interface GigabitEthernet0/0/0
ip address dhcp-alloc
#
interface LoopBack0
ip address 192.168.1.1 255.255.255.0
alias LoopBack0
#
interface Tunnel0
description spoke
ip address 172.16.1.2 255.255.255.0
gre p2mp
source GigabitEthernet0/0/0
ospf network-type broadcast
ospf dr-priority 0
alias Spoke1
nhrp authentication hash sha1 %^%#$]8@BBRhtL)i)m4/LP,5l$;gMF$xjY)RXoXCca3V%^%#
nhrp entry multicast dynamic
nhrp entry 172.16.1.1 1.1.1.10 register preference 10
#
ospf 1
area 0.0.0.0
network 172.16.1.0 0.0.0.255
area 0.0.0.1
network 192.168.1.0 0.0.0.255
#
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet0/0/0
add interface Tunnel0
#
security-policy
rule name rule1
local
untrust
local
untrust
192.168.0.0 mask 255.255.0.0
action permit
rule name rule2
local
untrust
local
untrust
service gre
action permit
#
return
Spoke2的配置脚本
sysname Spoke2
#
interface GigabitEthernet0/0/0
ip address dhcp-alloc
#
interface LoopBack0
ip address 192.168.2.1 255.255.255.0
alias LoopBack0
#
interface Tunnel0
description spoke
ip address 172.16.1.3 255.255.255.0
gre p2mp
source GigabitEthernet0/0/0
ospf network-type broadcast
ospf dr-priority 0
alias Spoke2
nhrp authentication hash sha1 %^%#$]8@BBRhtL)i)m4/LP,5l$;gMF$xjY)RXoXCca3V%^%#
nhrp entry multicast dynamic
nhrp entry 172.16.1.1 1.1.1.10 register preference 10
#
ospf 1
area 0.0.0.0
network 172.16.1.0 0.0.0.255
area 0.0.0.1
network 192.168.2.0 0.0.0.255
#
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet0/0/0
add interface Tunnel0
#
security-policy
rule name rule1
local
untrust
local
untrust
192.168.0.0 mask 255.255.0.0
action permit
rule name rule2
local
untrust
local
untrust
service gre
action permit
#
return
Hub的配置脚本
sysname Hub
#
interface GigabitEthernet0/0/0
ip address 1.1.1.10 255.255.255.0
#
interface LoopBack0
ip address 192.168.0.1 255.255.255.0
alias LoopBack0
#
interface Tunnel0
description hub
ip address 172.16.1.1 255.255.255.255
gre p2mp
source GigabitEthernet0/0/0
ospf network-type broadcast
ospf dr-priority 2
alias Hub
nhrp authentication hash sha1 %^%#$]8@BBRhtL)i)m4/LP,5l$;gMF$xjY)RXoXCca3V%^%#
nhrp entry multicast dynamic
undo nhrp hub reverse-route enable
#
ospf 1
area 0.0.0.0
network 172.16.1.1 0.0.0.0
area 0.0.0.1
network 192.168.0.0 0.0.0.255
#
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet0/0/0
#
firewall zone untrust
set priority 5
add interface GigabitEthernet0/0/0
add interface Tunnel0
#
security-policy
rule name rule1
local
untrust
local
untrust
192.168.0.0 mask 255.255.0.0
action permit
rule name rule2
local
untrust
local
untrust
service gre
action permit
#
return
通过运用华为DSVPN技术,从0到1逐步构建完成都总部到北京、上海分支的VPN网络组建。本次网络建设分支不需要购买使用静态公网地址的光纤线路,大大降低了VPN网络的建设成本;新的分支Spoke自动向总部Hub进行动态注册,大大简化了企业网络运维的管理;分支间可以动态构建隧道,业务数据可以直接转发,不用再经过总部,减少了数据转发的延迟,大大提升了转发性能和效率。