多出口如何建立IPSec VPN?两种配置方式实现高可用性

IPSec VPN高可用性解决方案需要用到DPD、RRI、路由、SLA等技术组合使用才能做到简单的高可用性,缺点是使用场景单一且配置繁琐 。由于IPSec VPN的局限性,思科基于IPSec VPN和动态路由推出了新的VPN技术DMVPN(动态多点VPN),DMVPN我们将在VPN系列的后续内容中讲述,此章节主要讲述IPSec VPN如何实现高可用性 。
 
下图为此文章所用拓扑图:

多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
实验拓扑
以上实验配置内容较多不便贴入文章当中,文章中仅体现必要配置,如需要实验全部配置可私信我获取 。
1、解决多SA的保活机制DPD技术前文讲到,IKE SA有效时长24小时,IPSec SA有效时长1小时,如果在有效时间内链路中间发生了故障,加密数据无法正常传输,这时我们需要尽快清除有问题的IPSec SA,与正常工作的其他peer建立IPsec VPN隧道 。
这时我们将使用到IPSec VPN的保活机制叫做DPD(Dead Peer Detection),用其来检查对端加密点路由器是否可用,如果对端设备不可用则不需要等到SA有效期到期立即清除不可用的SA 。
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
VPN高可用性
如上图所示,为保证IPSec的高可用性,外地办事处与总部的两台VPN设备分别建立了两条VPN隧道做主备备份 。但是如果没有使用DPD技术,如果主用VPN隧道出现线路故障,VPN又没有使用DPD保活机制,VPN设备不知道远端设备已经不可达,SA依旧存在,则数据包依旧使用主用VPN隧道进行发送,结果就是报文被丢弃,这时需要网络管理员手动清除两端设备的SA,使VPN设备通过IKE重新协商使用备用线路建立备用VPN隧道,但网络管理员手动清除SA显然不符合VPN高可用性的标准,从故障发现到处理故障响应时长也比设备自动检测保活时间长 。
这时就需要使用DPD技术,通过VPN设备之间"按需"或"定时"发送HELLO报文探测远端VPN设备是否存活,如果远端VPN设备已经不可达则自动删除现有SA,与备用线路建立IPSec VPN 。根据设备性能、设置的DPD检测时长不通,切换时间也不尽相同,但基本保持在10s-20s左右,与网络管理员发现故障后手动清除VPN两端设备的SA相比大大缩短了响应时间 。
下图为DPD功能配置:
crypto isakmp keepalive [探测周期时间 [超时重试间隔时间] [模式]
 
探测周期:设置每多少秒进行一次保活探测 。
超时重试间隔时间:设备对端响应时间,如远端VPN设备未在要求响应时间内响应则再次放松一次保活探测,共持续5次,5次均未响应则清除此SA 。
模式:on-demand模式:按需模式,一旦有数据报文激活SA则开始进行探测 。
periodic模式:周期模式,只要存在SA即每指定时间内周期发送探测报文 。
 
举例:crypto isakmp keepalive 10 2 on-demand
开启DPD一旦有数据报文激活SA,则每10秒发送HELLO报文探测远端存活性,远端超出2秒内没有响应则继续发送HELLO报文探测远端存活性,共发送5次,如远端VPN设备5次都没有在2秒钟内响应探测报文则此SA将被清除 。
 
下图为DPD探测报文(由于探测报文为密文,所以我们抓取debug信息):
正常探测报文:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文抓取
正常SA建立情况:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
SA建立情况
这时手动shutdown端口,让其中一条隧道的加密点不可达 。
探测报文:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文抓取
发现加密点没有响应,开始每隔两秒发送一条探测报文,共发送五条 。
第一次探测:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文-1
第二次探测:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文-2
第三次探测:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文-3
第四次探测:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文-4
第五次探测未响应后删除相应加密点的SA:
多出口如何建立IPSec VPN?两种配置方式实现高可用性

文章插图
探测报文-5
此时再查看SA建立情况发现对应加密点的SA已经被删除:


推荐阅读