DSVPN简介
动态智能VPN(Dynamic Smart Virtual Private Network),是一种在HUB-SPOKE组网方式下为公网地址动态变化的分支之间建立VPN隧道的解决方案。
背景
越来越多的企业希望建立Hub-Spoke方式的IPSec VPN网络将企业总部(Hub)与地理位置不同的多个分支(Spoke)相连,从而加强企业的通信安全、降低通信成本。当企业总部采用静态的公网地址接入Internet,分支机构采用动态的公网地址接入Internet时,使用传统的IPSec、GRE over IPSec等技术构建VPN网络将存在一个问题,即分支之间无法直接通信(源分支无法获取目的分支公网地址,也就无法在分支之间直接建立隧道),所有分支之间的通信数据只能由总部中转。
缺点:
-
总部在中转分支之间的数据流时会消耗总部HUB的CPU及内存资源,造成资源紧张。
-
总部要对分支间的数据流封装和解封装,会引入额外的网络延时。
-
当IPSec网络规模不断扩展时,为减少路由配置和维护,需要部署动态路由协议。但IPSec和动态路由协议之间存在一个基础问题,动态路由协议依赖于组播协议报文或广播协议报文进行路由更新,而IPSec不支持广播报文和组播报文的传输。
DSVPN基本概念
DSVPN典型网络架构
该网络中,当源Spoke需要向目的Spoke发送数据报文时,源Spoke将通过与Hub之间的静态mGRE隧道交互NHRP协议获取目的Spoke的公网地址,并与目的Spoke建立动态mGRE隧道。隧道建立完成后,Spoke与Spoke之间的数据报文将通过该动态mGRE隧道直接发送给对方,不再经过总部Hub中转。
mGRE隧道接口
mGRE隧道接口包含以下元素:
- 隧道源地址:GRE封装后的报文源地址,图中隧道一端的公网地址。
- 隧道目的地址:GRE封装后的报文目的地址,即图中隧道另一端的公网地址。与GRE隧道接口手工指定目的地址不同,mGRE隧道目的地址来自于NHRP协议。
- 隧道接口IP地址:隧道接口地址和其他物理接口上的IP地址一样,用于设备之间的通信(例如获取路由信息等),即图中的Tunnel地址。
采用mGRE隧道接口建立起来的GRE隧道称为mGRE隧道。mGRE隧道分为静态mGRE隧道和动态mGRE隧道两种:
- 静态mGRE隧道建立于分支Spoke与总部Hub之间,静态mGRE隧道永久存在。
- 动态mGRE隧道建立于各分支Spoke之间,动态mGRE隧道在一定周期内没有流量转发将自动拆除。
DSVPN基本原理
DSVPN实现分支之间直接通信的关键是在分支之间建立隧道。DSVPN利用mGRE结合NHRP来建立分支之间的隧道。与GRE不同,mGRE建立隧道时不需要定义隧道目的地址,而是依赖NHRP告诉它,这就为在动态地址变化的分支间建立隧道创造了条件。
mGRE与NHRP结合建立隧道的基本原理是:当设备转发一个IP报文时,根据路由表将IP报文传给下一跳的出接口mGRE隧道接口,mGRE在NHRP映射表中查找获取下一跳地址映射的对端公网地址。然后mGRE封装IP报文,加上新IP头,目的地址就是对端的公网地址,这样IP报文就能发向隧道对端,隧道即可建立。
三个环节:
-
建立Spoke与Hub之间的mGRE隧道
这一环节的目的是打通分支到分支报文转发的通道,使得一端分支的报文可以借助Hub转发到另一端分支。
DSVPN在Spoke与Hub之间建立的mGRE隧道是一种静态隧道,无论Spoke与Hub间是否有流量经过,该隧道一直存在。
-
分支间路由学习
这一环节的目的是生成一端分支到另一端分支的路由。
-
建立Spoke与Spoke之间的mGRE隧道
这一环节的目的是建立用于分支间直接通信的通道。当一个分支向另一个分支转发数据报文时,如果源Spoke找不到目的Spoke的公网地址,则会触发DSVPN建立Spoke与Spoke之间的mGRE隧道。
Spoke与Spoke之间建立的mGRE隧道是一种动态隧道,当Spoke与Spoke间有流量通过时,隧道自动保活;当一定周期内没有流量经过时,隧道自动拆除。
1.建立Spoke与Hub之间的mGRE隧道
DSVPN网络开始时,总部Hub的NHRP映射表是空表,分支Spoke有一个静态配置的NHRP映射表(Hub的Tunnel地址与公网地址的映射),分支Spoke和总部Hub有到彼此的路由。要建立Spoke与Hub之间的mGRE隧道,总部要生成各分支Tunnel地址/子网地址与公网地址的NHRP映射表,这主要通过分支Spoke向总部Hub进行NHRP注册来实现
-
Spoke向Hub注册请求
管理员在Spoke上手工配置Hub的Tunnel地址和公网地址以后,Spoke将定时向Hub发送NHRP注册请求报文,该报文中包含Spoke的Tunnel地址和公网地址。
-
Hub向Spoke注册应答
Hub从NHRP注册请求报文中提取Spoke的Tunnel地址和公网地址,并生成NHRP映射表,进而建立两者之间的mGRE隧道。
2.分支间路由学习
分支间相互学习路由(非shortcut方式)
每个分支需要学习到所有对端的路由数据。这种情况下,Spoke会消耗大量的CPU和内存资源,对其路由表容量和性能有较高的要求。而实际应用中,Spoke的性能往往较低,能存放的路由数量有限。因此,这种路由学习方式只适用于网络节点较少、路由信息量小的中小型网络。
分支路由汇聚到总部(shortcut方式)
实现所有访问目的分支的流量全部指向总部Hub。分支间不需要相互学习路由,通过总部对分支路由汇聚后进行通告,该路由学习方式适用于那些网络规模大、分支较多的大型网络。
3.建立Spoke与Spoke之间的mGRE隧道
- 非shortcut方式下,源Spoke可以学习到目的Spoke的Tunnel地址。因此,源Spoke可以直接根据目的Spoke的Tunnel地址来查找目的Spoke的公网地址,生成目的Spoke的Tunnel地址与公网地址的NHRP映射表。
- shortcut方式下,所有Spoke的路由下一跳全部都是Hub的Tunnel地址,源Spoke无法学习到目的Spoke的Tunnel地址。因此,源Spoke只能根据报文的目的地址来查找目的Spoke的公网地址,生成目的Spoke的子网地址与公网地址的NHRP映射表。
非shortcut方式
当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:
-
Spoke1收到其下用户发往Spoke2的数据报文后:
- 根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2(Spoke2的Tunnel地址),但在NHRP映射表中没有查找10.1.1.2对应的公网地址,就默认将该数据报文直接转发给Hub。
- 构建并向Hub发送NHRP地址解析请求报文,请求10.1.1.2对应的公网地址。
-
Hub收到Spoke1发送的数据报文和NHRP地址解析请求报文后,将报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。
-
Spoke2收到NHRP地址解析请求报文后:
- 从NHRP地址解析请求报文中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中(见图4-5中的红色字体)。
- 构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的Tunnel地址10.1.1.2和公网地址2.2.2.2)。
-
Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的Tunnel地址和公网地址,更新到自己的NHRP映射表中(见图4-5中的红色字体),Spoke1与Spoke2之间的动态mGRE隧道随即建立。
当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.2,再根据10.1.1.2在NHRP映射表中找到公网地址2.2.2.2,即可按照公网地址2.2.2.2将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。
shortcut方式
当Spoke1下的用户首次访问Spoke2下的用户时,将触发Spoke1与Spoke2之间建立动态mGRE隧道,隧道建立过程如下:
-
Spoke1收到其下用户发往Spoke2下用户的数据报文后,根据报文目的地址(192.168.2.0)在路由表中找到下一跳10.1.1.3(Hub的Tunnel地址),并在NHRP映射表中找到10.1.1.3对应的公网地址3.3.3.3(Hub的公网地址),就将数据报文转发给Hub。
-
Hub收到Spoke1转发的数据报文后:
- 将此报文通过Hub与Spoke2间的mGRE隧道转发给Spoke2。
- 检查发现接收和发送数据报文的Tunnel接口属于同一个NHRP域(见nhrp network-id),就构建并向Spoke1发送NHRP重定向报文(携带Hub的Tunnel地址和公网地址,以及需要解析的数据报文的目的地址192.168.2.0)。
-
Spoke1收到NHRP重定向报文后,构建并向Hub发送NHRP地址解析请求报文(携带Spoke1的Tunnel地址10.1.1.1和公网地址1.1.1.1,以及需要解析的数据报文的目的地址192.168.2.0)。
-
Hub收到NHRP地址解析请求报文后转发给Spoke2处理。
-
Spoke2收到NHRP地址解析请求报文后:
- 从NHRP地址解析请求中提取Spoke1的Tunnel地址和公网地址,并将该信息更新到自己的NHRP映射表中(见图4-6中的红色字体)。
- 构建并向Spoke1发送NHRP地址解析应答报文(携带Spoke2的子网地址192.168.2.0、Spoke2的Tunnel地址10.1.1.2和公网地址2.2.2.2)。
-
Spoke1收到NHRP地址解析应答报文后,从应答报文中提取Spoke2的子网地址和公网地址,更新到自己的NHRP映射表中(见图4-6中的红色字体),Spoke1与Spoke2之间的动态mGRE隧道随即建立。
当Spoke1再次收到其下用户发送给Spoke2的数据报文时,Spoke1根据报文目的地址(192.168.2.0)查找NHRP映射表,找到Spoke2的公网地址2.2.2.2,即可根据公网地址2.2.2.2将此报文进行mGRE封装后直接发送给Spoke2,不再经过总部Hub。
DSVPN NAT穿越
DSVPN NAT穿越主要通过在NHRP注册应答报文、NHRP解析请求/应答报文中的NAT扩展字段中填充分支NAT前后的地址信息而实现,具体工作原理如下:
- 分支Spoke向总部Hub注册,NHRP注册请求报文中携带分支原始的公网或私网地址。
- 总部Hub的NHRP协议感知分支路径中有NAT设备存在,就在NHRP注册请求应答报文的NAT扩展字段中将分支NAT转换后的公网地址告知分支Spoke。
- 源Spoke向目的Spoke发起NHRP地址解析请求时,携带源分支NAT转换前的地址和NAT转换后的公网地址(通过NAT扩展字段)告知目的Spoke。
- 目的Spoke向源Spoke返回NHRP地址解析请求应答时,携带目的分支NAT转换前的地址和NAT转换后的公网地址(通过NAT扩展字段)告知源Spoke。
- 源分支和目的分支互相知道对端NAT转换前的地址和NAT转换后的公网地址后,根据NAT转换后的公网地址建立动态mGRE隧道,实现分支间穿越NAT直接通信
- DSVPN不支持两个分支位于同一NAT设备之后且NAT转换后IP地址相同的NAT穿越。
- DSVPN不支持两个分支位于不同NAT设备之后且启用PAT(Port Address Translation)功能的NAT穿越。
- 分支间互访时,NAT设备必须配置为NAT Server或Static NAT,DSVPN不支持配置为NAT outbound的NAT穿越。
- 在DSVPN中部署IPSec时,如果两个分支位于不同NAT设备之后或者总部位于NAT设备之后,则IPSec封装模式仅支持为传输模式。因为IPSec封装模式为隧道模式时,NHRP无法学习到NAT转换后的地址。
DSVPN IPSec保护
DSVPN网络中,通过在总部Hub和分支Spoke配置IPSec安全框架并绑定于mGRE隧道接口,mGRE隧道建立的同时会立即触发IPSec隧道建立,具体工作原理如下:
- 网络中的所有Spoke向总部Hub发起注册请求,同时将NHRP映射表信息告知IPSec,触发分支和总部的IKE模块进行IPSec隧道的协商。
- 总部Hub根据接收的注册请求报文,记录Spoke的Tunnel地址和公网地址的对应关系,生成分支的NHRP映射表,并向Spoke发送注册请求应答消息。
- 分支间根据流量触发建立动态mGRE隧道。
- 分支Spoke间动态mGRE隧道建立时,IPSec模块获取NHRP映射表信息,根据该信息添加或删除IPSec对等体节点,触发分支间动态建立IPSec隧道。
- 分支Spoke间IPSec隧道建立成功后,后续数据转发根据IP报文的目的地址查找路由。如果出接口类型是mGRE隧道接口,则根据路由下一跳找NHRP映射表,获取公网地址,根据公网地址,找IPSec SA,对报文进行IPSec加密发送。
相对于传统Hub-Spoke组网的IPSec技术,DSVPN与IPSec联合部署具有如下优势:
- 传统IPSec技术使用ACL识别待加密的单播流量,需进行复杂的ACL定义,配置和维护困难。而DSVPN中只需将mGRE隧道接口与IPSec安全框架绑定,无需再定义复杂的ACL,网络部署更加简单。
- 由于动态建立了分支间的IPSec隧道,分支Spoke间交互的IPSec数据不用通过总部Hub进行解密和加密操作,降低了数据传输时延。
在DSVPN中部署IPSec时,如果两个分支位于不同NAT设备之后或者总部位于NAT设备之后,则IPSec封装模式仅支持为传输模式。因为IPSec封装模式为隧道模式时,NHRP无法学习到NAT转换后的地址。
DSVPN可靠性
双HUB主备备份
DSVPN双Hub主备备份的工作机制如下:
- 所有分支Spoke同时向主用Hub1和备用Hub2注册,并分别与Hub1建立主用静态mGRE隧道、与Hub2建立备用静态mGRE隧道。
- 当分支间需要建立动态mGRE隧道时,源Spoke向Hub发送NHRP地址解析请求报文:
- 在Hub1和Hub2都运行正常的情况下,根据路由策略,Spoke到Hub1的路由优先级较高,NHRP地址解析请求报文将沿主用静态mGRE隧道发送到Hub1,由Hub1将此解析报文转发至目的Spoke。
- 当Hub1出现故障时,Spoke到Hub1的路由优先级降低,NHRP地址解析请求报文沿备用静态mGRE隧道发送到Hub2,由Hub2将此解析报文转发至目的Spoke。
- 当Hub1故障恢复后,各分支Spoke到Hub1的路由优先级又重新高于到Hub2的路由优先级,NHRP地址解析请求报文重新交由Hub1转发。
- 目的Spoke向源Spoke回应NHRP地址解析响应报文,动态mGRE隧道建立。
- 动态mGRE隧道建立后,分支Spoke间可直接进行通信。此时,Hub设备运行正常与否不会对各分支Spoke间的业务流产生影响。如果分支Spoke之间的动态mGRE隧道由于长时间没有流量经过被拆除了,Spoke与Spoke之间通信时就需要重新建立动态mGRE隧道,Spoke会重新根据路由优先级判断向哪个Hub发送NHRP地址解析请求报文。
双HUB负载分担
不同Hub下的Spoke间直接通信原理如下:
- 源Spoke1发送NHRP地址解析请求报文发送给Hub1,请求目的SpokeN的公网地址。
- Hub1将源Spoke1的NHRP地址解析请求报文通过Hub1与Hub2之间的静态mGRE隧道转发给Hub2。
- Hub2将源Spoke1的NHRP地址解析请求报文转发给目的SpokeN。
- 目的SpokeN从报文中获取源Spoke1的公网地址,并给源Spoke1回应NHRP地址解析应答报文。
- 源Spoke1从NHRP地址解析应答报文中获取目的SpokeN的公网地址,并与目的SpokeN建立动态mGRE隧道。
动态mGRE隧道建立后,两个不同Hub下的Spoke之间即可进行直接通信。
DSVPN应用场景
中小型网络部署DSVPN
大型网络部署DSVPN
Hub级联网络部署DSVPN
部署DSVPN时,Hub1和Hub2上需创建两个Tunnel接口,分别与Hub和对应的Spoke建立静态mGRE隧道。对于Hub来说,Hub1和Hub2可以当做分支Spoke。
Hub级联网络部署DSVPN时,分支间路由学习方式仅支持shortcut方式。
配置举例
配置shortcutDSVPN示例(ospf路由协议)
查看spoke1的nhrp表
HUB上配置
[Hub] interface tunnel 0/0/0
[Hub-Tunnel0/0/0] tunnel-protocol gre p2mp
[Hub-Tunnel0/0/0] source GigabitEthernet 1/0/0
[Hub-Tunnel0/0/0] nhrp entry multicast dynamic
[Hub-Tunnel0/0/0] ospf network-type p2mp
[Hub-Tunnel0/0/0] nhrp redirect
[Hub-Tunnel0/0/0] quit
Spoke上配置
[Spoke1] interface tunnel 0/0/0
[Spoke1-Tunnel0/0/0] tunnel-protocol gre p2mp
[Spoke1-Tunnel0/0/0] source GigabitEthernet 1/0/0
[Spoke1-Tunnel0/0/0] nhrp entry 172.16.1.1 1.1.1.10 register
[Spoke1-Tunnel0/0/0] ospf network-type p2mp
[Spoke1-Tunnel0/0/0] nhrp shortcut
[Spoke1-Tunnel0/0/0] quit
配置非shortcut方式DSVPN(ospf协议)
- 正常情况下,配置接口网络模式为p2mp模式,R2与R3相互通信需要经过R1中转,不可以直接互通。
- 如果修改接口网络模式为broadcast模式,R2与R3通信可以直接通信,不用R1中转,但是需要选举DR/BDR,而且需要修改非DR的ospf-dr-priority为0,放弃选举来固定DR位置。虽然可以实现分支间的vpn互联,但是在DSVPN Hub级联情况下,不可以实现分支间互联,如下面的实验。
- p2mp模式下,配置shortcut以及reflect可以实现分支间的vpn互联
AR1配置
#
sysname R1
#
interface GigabitEthernet0/0/0
ip address 11.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface LoopBack0
ip address 192.168.1.1 255.255.255.0
#
interface Tunnel0/0/0
ip address 10.1.1.1 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet0/0/0
ospf network-type broadcast
nhrp entry multicast dynamic
#
ospf 1 router-id 1.1.1.1
area 0.0.0.0
network 11.1.1.0 0.0.0.255
#
ospf 2 router-id 1.1.1.1
area 0.0.0.0
network 10.1.1.0 0.0.0.255
network 192.168.0.0 0.0.255.255
#
AR2配置
#
sysname R2
#
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/2
#
interface LoopBack0
ip address 192.168.2.1 255.255.255.0
#
interface Tunnel0/0/0
ip address 10.1.1.2 255.255.255.0
tunnel-protocol gre p2mp
source GigabitEthernet0/0/0
ospf network-type broadcast
ospf dr-priority 0
nhrp entry 10.1.1.1 11.1.1.1 register
#
ospf 1 router-id 2.2.2.2
area 0.0.0.0
network 12.1.1.0 0.0.0.255
#
ospf 2 router-id 2.2.2.2
area 0.0.0.0
network 10.1.1.0 0.0.0.255
network 192.168.0.0 0.0.255.255
#
R1配置
#
sysname ISP
#
interface Ethernet0/0/0
ip address 11.1.1.2 255.255.255.0
#
interface Ethernet0/0/1
ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/0
ip address 13.1.1.2 255.255.255.0
#
ospf 1 router-id 11.11.11.11
area 0.0.0.0
network 0.0.0.0 255.255.255.255
#
normal
必须是明细路由
spoke可以主动发起
得到NHRP映射关系是 tunnle-公网地址
shortcut
必须是汇总路由
spoke被动发起
得到NHRP映射关系是 私网地址----公网地址
配置跨NAT DSVPN
分支通过NAT设备进行地址转换后接入公网。企业现网网络规划使用OSPF路由协议。
现在用户希望能够实现分支之间的VPN互联。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1SL5mcU1-1614856053143)(E:\Typora\image\image-20210304161812585.png)]
配置DSVPN双Hub主备备份示例
简单配置不在赘述
[Hub1-Tunnel0/0/0] ospf cost 1000
[Hub2-Tunnel0/0/0] ospf cost 3000
[Spoke1-Tunnel0/0/0] nhrp registration interval 300
- 在Hub1和Hub2配置不同的ospf cost值是为了让Spoke优先选取Hub1作为路由的下一跳。
- 在Hub1从故障中恢复之后,只有等到Spoke向其进行注册之后,才能重新进行OSPF协议报文交互,Spoke在原有路由老化之后学习到Hub1的路由。为了让Spoke快速感知Hub1,可以将Spoke的注册间隔调整到合适的值(默认注册间隔为1800秒)。
配置IPSec保护的DSVPN示例
1.配置接口IP地址
在各Router上配置接口IP地址。
system-view
[Huawei] sysname Hub
[Hub] interface GigabitEthernet 1/0/0
[Hub-GigabitEthernet1/0/0] ip address 1.1.1.10 255.255.255.0
[Hub-GigabitEthernet1/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
按照图4-23配置Spoke1、Spoke2各接口的IP地址,具体配置过程与配置Hub相同(略)。
2.配置各Router之间公网路由可达
在各Router上配置OSPF路由协议,实现公网路由可达。
在Hub上配置OSPF。
[Hub] ospf 2 router-id 1.1.1.10
[Hub-ospf-2] area 0.0.0.1
[Hub-ospf-2-area-0.0.0.1] network 1.1.1.0 0.0.0.255
[Hub-ospf-2-area-0.0.0.1] quit
[Hub-ospf-2] quit
在Spoke1上配置OSPF。
在Spoke2上配置OSPF。
3.配置OSPF基本功能
配置Hub。
[Hub] ospf 1 router-id 172.16.1.1
[Hub-ospf-1] area 0.0.0.0
[Hub-ospf-1-area-0.0.0.0] network 172.16.1.0 0.0.0.255
[Hub-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255
[Hub-ospf-1-area-0.0.0.0] quit
[Hub-ospf-1] quit
配置Spoke1。
配置Spoke2。
4.配置IKE提议
在Hub和Spoke上配置IKE提议,选择相同的认证方式。
配置Hub。
[Hub] ike proposal 1
[Hub-ike-proposal-1] dh group5
[Hub-ike-proposal-1] authentication-algorithm sha2-256
[Hub-ike-proposal-1] prf aes-xcbc-128
[Hub-ike-proposal-1] quit
配置Spoke1。
配置Spoke2。
5.配置IKE peer
在Hub和Spoke上配置进行IKE协商时需要的IKE peer。
配置Hub。
[Hub] ike peer hub
[Hub-ike-peer-hub] ike-proposal 1
[Hub-ike-peer-hub] pre-shared-key cipher Huawei@1234
[Hub-ike-peer-hub] dpd type periodic
[Hub-ike-peer-hub] dpd idle-time 40
[Hub-ike-peer-hub] quit
配置Spoke1。
配置Spoke2。
6.创建安全提议
在Hub和Spoke上配置安全提议。
配置Hub。
[Hub] ipsec proposal pro1
[Hub-ipsec-proposal-pro1] transform ah-esp
[Hub-ipsec-proposal-pro1] ah authentication-algorithm sha2-256
[Hub-ipsec-proposal-pro1] esp authentication-algorithm sha2-256
[Hub-ipsec-proposal-pro1] esp encryption-algorithm aes-192
[Hub-ipsec-proposal-pro1] quit
配置Spoke1。
配置Spoke2。
7.配置安全框架
在Hub和Spoke上配置安全框架。
配置Hub。
[Hub] ipsec profile profile1
[Hub-ipsec-profile-profile1] ike-peer hub
[Hub-ipsec-profile-profile1] proposal pro1
[Hub-ipsec-profile-profile1] quit
配置Spoke1。
配置Spoke2。
7.配置Tunnel接口
在Hub上配置Tunnel接口和OSPF相关属性,应用安全框架。
[Hub] interface tunnel 0/0/0
[Hub-Tunnel0/0/0] tunnel-protocol gre p2mp
[Hub-Tunnel0/0/0] source GigabitEthernet 1/0/0
[Hub-Tunnel0/0/0] nhrp entry multicast dynamic
[Hub-Tunnel0/0/0] ospf network-type p2mp
[Hub-Tunnel0/0/0] nhrp redirect
[Hub-Tunnel0/0/0] ipsec profile profile1
[Hub-Tunnel0/0/0] quit
在Spoke1上配置Tunnel接口,OSPF路由相关属性以及Hub的静态NHRP peer表项,应用安全框架。
[Spoke1] interface tunnel 0/0/0
[Spoke1-Tunnel0/0/0] tunnel-protocol gre p2mp
[Spoke1-Tunnel0/0/0] source GigabitEthernet 1/0/0
[Spoke1-Tunnel0/0/0] nhrp entry 172.16.1.1 1.1.1.10 register
[Spoke1-Tunnel0/0/0] ospf network-type p2mp
[Spoke1-Tunnel0/0/0] nhrp shortcut
[Spoke1-Tunnel0/0/0] ipsec profile profile1
[Spoke1-Tunnel0/0/0] quit
在Spoke2上配置Tunnel接口,OSPF路由相关属性以及Hub的静态NHRP peer表项,应用安全框架。
测试:
检查IPSec SA信息
<SPOKE1>dis ipsec sa
===============================
Interface: Tunnel0/0/0
Path MTU: 1500
===============================
-----------------------------
IPSec profile name: "profile1"
Mode : PROF-ISAKMP
-----------------------------
Connection ID : 18
Encapsulation mode: Tunnel
Tunnel local : 13.1.1.1
Tunnel remote : 12.1.1.1
Qos pre-classify : Disable
[Outbound ESP SAs]
SPI: 486152828 (0x1cfa1a7c)
Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1
SA remaining key duration (bytes/sec): 1887432656/2736
Max sent sequence-number: 43
UDP encapsulation used for NAT traversal: N
[Outbound AH SAs]
SPI: 4233317404 (0xfc534c1c)
Proposal: AH-SHA1-96
SA remaining key duration (bytes/sec): 1887436800/2736
Max sent sequence-number: 43
UDP encapsulation used for NAT traversal: N
[Inbound AH SAs]
SPI: 2280211258 (0x87e9433a)
Proposal: AH-SHA1-96
SA remaining key duration (bytes/sec): 1887436800/2736
Max received sequence-number: 54
Anti-replay window size: 32
UDP encapsulation used for NAT traversal: N
[Inbound ESP SAs]
SPI: 3683871072 (0xdb936960)
Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1
SA remaining key duration (bytes/sec): 1887431484/2736
Max received sequence-number: 54
Anti-replay window size: 32
UDP encapsulation used for NAT traversal: N
-----------------------------
IPSec profile name: "profile1"
Mode : PROF-Template
-----------------------------
Connection ID : 20
Encapsulation mode: Tunnel
Tunnel local : 13.1.1.1
Tunnel remote : 14.1.1.1
Qos pre-classify : Disable
[Outbound ESP SAs]
SPI: 562038613 (0x21800755)
Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1
SA remaining key duration (bytes/sec): 1887436260/3031
Max sent sequence-number: 5
UDP encapsulation used for NAT traversal: N
[Outbound AH SAs]
SPI: 1039987349 (0x3dfcf295)
Proposal: AH-SHA1-96
SA remaining key duration (bytes/sec): 1887436800/3031
Max sent sequence-number: 5
UDP encapsulation used for NAT traversal: N
[Inbound AH SAs]
SPI: 3575017841 (0xd5167171)
Proposal: AH-SHA1-96
SA remaining key duration (bytes/sec): 1887436800/3031
Max received sequence-number: 10
Anti-replay window size: 32
UDP encapsulation used for NAT traversal: N
[Inbound ESP SAs]
SPI: 299733519 (0x11dd920f)
Proposal: ESP-ENCRYPT-AES-128 ESP-AUTH-SHA1
SA remaining key duration (bytes/sec): 1887435684/3031
Max received sequence-number: 10
Anti-replay window size: 32
UDP encapsulation used for NAT traversal: N
注:模拟器中切忽使用SM3,不支持。亲测!!!