目录
dspn 是动态智能pn,在hub-spoke组网下,为公网地址动态变化的分支之间建立pn隧道的解决方案。
产生背景&需求驱动
总部与分支之间采用hub-spoke架构,依托公网建立vpn隧道,在加强安全的情况下降低成本,传统的ipsec和gre over ipsec等技术无法实现分支之间直接建立隧道进行通信,只能通过总部进行中转。
存在的问题
总部压力大:分部之间流量比过总部设备,造成cpu及内存等资源紧张
分部体验差:流量路径次优且被不必要的处理(封装解封装),导致网络延时高。
路由更新难:IPSec不支持广播和组播报文传输,从而对动态路由更新产生影响。
根本:分支之间无法直接建立隧道。
此时,DSpn应运而生。
概念
DSPN就是结合了NHRP、mgre和ipsec三种技术来解决这些问题。
NHRP:下一跳解析协议
通过nhrp下一跳地址解析协议。作用是建立和解析隧道地址到公网地址的映射关系,实现动态收集、维护和发布分支节点的公网地址。解决了分支之间互不知道对方公网地址无法建立隧道的问题,实现分支与分支之间的直接通信,减轻总部压力,降低网络延时。
隧道地址和公网地址的映射关系通过nhrp映射表维护,按照生成方式的不同,分为静态表项和动态表项两种。
静态:在spoke上手工配置hub的tunnel地址和公网地址,实现spoke于hub建立静态mgre隧道的目的。
动态:nhrp动态生成。hub通过nhrp注册报文提取各spoke的tunnel地址和公网地址而生成的nhrp映射表,spoke通过nhrp解析报文提取对端spoke的tunnel地址/子网地址和公网地址生成的nhrp映射表。
mgre:多点gre
基于gre的点到多点gre技术,它将传统的gre隧道点到点类型的tunnel接口拓展成了点到多点类型的隧道,通过改变接口类型,hub或者spoke上只需要配置一个tunnel接口便可以与多个对端建立隧道,从而减少了配置gre隧道的工作量。与gre不同,mgre建立隧道时不需要定义隧道目的地址,而是依赖nhrp告诉它。这就是动态隧道。
使一个tunnel接口可以与多个对端建立隧道,实现一对多,减少隧道配置数量,自动维护总部与分支之间的隧道关系,不用调整总部的隧道配置,使得网络维护变得更加智能化。并且隧道可以传输组播和广播协议报文。
mgre隧道接口不支持gre隧道的keepalive检测。
mgre隧道分为动态mgre隧道和静态mgre隧道
静态建立于分支spoke与总部hub之间,静态mgre隧道永久存在
动态建立于各分支spoke之间,动态mgre隧道在一定周期内没有流量转发将自动拆除。
具体实现方式
总部采用静态的公网地址,分支采用isp动态分配的公网地址。分支之间需要通信时,源spoke将通过与hub之间的静态mgre隧道交互nhrp协议获取目的spoke的公网地址,并与目的spoke建立动态mgre隧道,索道建立完成后,spoke与spoke之间的数据报文将通过该动态mgre隧道直接发送给对方,不再经过总部hub中转。
实验:配置非shortcut方式DSPN(静态路由)
需求和拓扑
某中小企业有总部(Hub)和两个分支(Spoke1和Spoke2),分布在不同地域,总部和分支的子网环境较为稳定。分支采用动态地址接入公网。
现在用户希望能够实现分支之间的PN互联。
操作步骤
1、配置接口地址划分安全区域
2、配置安全策略
//f1f2f3
security-policy
rule name 1
source-zone dmz
source-zone trust
destination-zone dmz
destination-zone trust
action permit
rule name 2
source-zone local
source-zone untrust
destination-zone local
destination-zone untrust
service gre
service ospf
action permit
3、配置公网动态路由确保公网路由可达
//f1
ospf 1
area 0.0.0.0
network 1.1.1.10 0.0.0.0
//f2
ospf 1
area