龙空技术网

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

网工加油站 887

前言:

眼前咱们对“服务器ipsec配置”可能比较注重,小伙伴们都想要学习一些“服务器ipsec配置”的相关内容。那么小编同时在网上网罗了一些有关“服务器ipsec配置””的相关资讯,希望朋友们能喜欢,小伙伴们一起来学习一下吧!

IPSec VPN高可用性解决方案需要用到DPD、RRI、路由、SLA等技术组合使用才能做到简单的高可用性,缺点是使用场景单一且配置繁琐。由于IPSec VPN的局限性,思科基于IPSec VPN和动态路由推出了新的VPN技术DMVPN(动态多点VPN),DMVPN我们将在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。

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信息):

正常探测报文:

探测报文抓取

正常SA建立情况:

SA建立情况

这时手动shutdown端口,让其中一条隧道的加密点不可达。

探测报文:

探测报文抓取

发现加密点没有响应,开始每隔两秒发送一条探测报文,共发送五条。

第一次探测:

探测报文-1

第二次探测:

探测报文-2

第三次探测:

探测报文-3

第四次探测:

探测报文-4

第五次探测未响应后删除相应加密点的SA:

探测报文-5

此时再查看SA建立情况发现对应加密点的SA已经被删除:

IKE SA建立状态

附:外地办事处路由器IPSec VPN高可用的相关配置:

crypto isakmp keepalive 10 periodic

crypto map fenzhi 1 ipsec-isakmp

set peer 202.111.34.2 default

set peer 60.111.34.2

set transform-set 20

match address 100

由配置能发现分支与总部两台VPN设备都建立了关联

知识扩展:set peer 202.111.34.2 default为什么后面加了一个 default?

增加default的作用在于如果此设备与多台VPN设备建立了联系,在没有设置default的情况下,是基于设置peer的顺序来选择使用哪一个peer建立的SA进行传输的,一旦第一个peer的SA失效则选择第二的SA进行加解密传输,第二个SA失效则选择第三个SA进行加解密传输,以此类推。

设置上default与未设置default的区别在于,default SA失效以及第二个SA失效后、会再次探测并尝试使用default进行加解密传输,如果default还是处于失效状态,这时才会选择第三个SA进行加解密传输,以此类推。

default set peer的作用

2、解决核心交换机路由指向问题

然而,仅适用DPD技术只能保证VPN隧道的建立,无法解决下图所描述问题:

新问题图示

由于公司总部有多个出口VPN设备,所以核心交换机的默认网关一定是指向主用VPN隧道的VPN出口设备,一旦主用VPN链路断掉,DPD删除主用VPN隧道SA,重新建立备用VPN隧道后,数据报文虽然能够通过备用VPN隧道发送至总部服务器,但总部服务器将响应报文发送给核心交换机后,核心交换机根据自己的默认路由将加密报文发送给了主用VPN设备,由于主用VPN设备上的SA已经被DPD删除,所以加密数据报文无法发出,如何告知核心交换机将默认网关指向备用VPN设备将是一大问题。

这时我们将使用OSPF与RRI技术的组合或等价路由与SLA技术的组合来进行解决。

2.1、使用OSPF+RRI技术

RRI的作用在于应用在IPSec VPN的map中,一旦此map建立SA,则生成一条静态路由,该静态路由是目标地址为对端通信点,下一条为对端加密点的静态路由。

然后使用OSPF的重分布静态路由功能,将RRI产生的静态路由告知三层交换机。

正常数据传输:

OSPF+RRI技术图示

主用VPN隧道SA因加密点不可达被DPD清除:

OSPF+RRI技术解决方案图示

相关配置:

总部联通路由器:

1、 在IPSec VPN的map中启用RRI并打上tag

crypto map zongbu-lt 1 ipsec-isakmp

set peer 202.102.134.2

set transform-set 11

set reverse-route tag 10 为产生的静态路由打上tag10,便于后面再route-map调用

match address 100

reverse-route 启用RRI

2、 创建名为static的route-map并匹配tag 10,建立route-map的作用是为了在ospf中引入此静态路由。

route-map static permit 10

match tag 10

3、在OSPF中重分布名为static的route-map中的静态路由。

router ospf 1

redistribute static subnets route-map static

network 10.1.1.0 0.0.0.255 area 0

总部电信路由器:

电信路由器与联通路由器配置基本相同。

1、在IPSec VPN的map中启用RRI并打上tag

crypto map zongbu-dx 1 ipsec-isakmp

set peer 202.102.134.2

set transform-set 12

set reverse-route tag 20 为产生的静态路由打上tag20,便于后面再route-map调用

match address 100

reverse-route 启用RRI

2、创建名为static的route-map并匹配tag 20,建立route-map的作用是为了在ospf中引入此静态路由。

route-map static permit 20

set tag 20

3、在OSPF中重分布名为static的route-map中的静态路由。

router ospf 1

redistribute static subnets route-map static

network 10.1.1.0 0.0.0.255 area 0

总部核心交换机:

核心交换机只需要加入OSPF域中等待静态路由的引入即可。

router ospf 1

network 10.1.1.0 0.0.0.255 area 0

2.2使用等价路由+SLA技术

正常数据传输:

等价路由+SLA技术图示

主用VPN隧道SA因加密点不可达被DPD清除:

等价路由+SLA技术解决方案图示

相关配置:

核心交换机:

1、 创建两个SLA

ip sla 1

icmp-echo 202.111.34.2 source-interface Vlan1

frequency 5

ip sla schedule 1 life forever start-time now

ip sla 2

icmp-echo 60.111.34.2 source-interface Vlan1

frequency 5

ip sla schedule 2 life forever start-time now

2、 track绑定SLA

track 1 ip sla 1 reachability

track 2 ip sla 2 reachability

3、 创建等价路由并使用track探测

ip route 0.0.0.0 0.0.0.0 10.1.1.1 60 track 1

ip route 0.0.0.0 0.0.0.0 10.1.1.2 60 track 2

知识扩展:由于测试需要这里的等价路由我使用的是基于包的随机负载分担,具体命令如下:

Int vlan 1

ip load-sharing per-packet

默认情况下是基于目标地址的负载分担:

ip load-sharing per-destination

以上内容均为本人对所掌握知识的总结归纳所创作的原创文章,希望能给大家的学习过程带来帮助,如有技术理解错误希望能够及时得到大家的指正,大家共同学习,共同进步。

欢迎关注我的头条号,私信交流,学习更多网络技术!

标签: #服务器ipsec配置