IPSec VPN高可用性解決方案需要用到DPD、RRI、路由、SLA等技術(shù)組合使用才能做到簡單的高可用性,缺點(diǎn)是使用場景單一且配置繁瑣。由于IPSec VPN的局限性,思科基于IPSec VPN和動(dòng)態(tài)路由推出了新的VPN技術(shù)DMVPN(動(dòng)態(tài)多點(diǎn)VPN),DMVPN我們將在VPN系列的后續(xù)內(nèi)容中講述,此章節(jié)主要講述IPSec VPN如何實(shí)現(xiàn)高可用性。
下圖為此文章所用拓?fù)鋱D:
實(shí)驗(yàn)拓?fù)?/p>
以上實(shí)驗(yàn)配置內(nèi)容較多不便貼入文章當(dāng)中,文章中僅體現(xiàn)必要配置,如需要實(shí)驗(yàn)全部配置可私信我獲取。
1、解決多SA的保活機(jī)制DPD技術(shù)
前文講到,IKE SA有效時(shí)長24小時(shí),IPSec SA有效時(shí)長1小時(shí),如果在有效時(shí)間內(nèi)鏈路中間發(fā)生了故障,加密數(shù)據(jù)無法正常傳輸,這時(shí)我們需要盡快清除有問題的IPSec SA,與正常工作的其他peer建立IPsec VPN隧道。
這時(shí)我們將使用到IPSec VPN的保活機(jī)制叫做DPD(Dead Peer Detection),用其來檢查對端加密點(diǎn)路由器是否可用,如果對端設(shè)備不可用則不需要等到SA有效期到期立即清除不可用的SA。
VPN高可用性
如上圖所示,為保證IPSec的高可用性,外地辦事處與總部的兩臺VPN設(shè)備分別建立了兩條VPN隧道做主備備份。但是如果沒有使用DPD技術(shù),如果主用VPN隧道出現(xiàn)線路故障,VPN又沒有使用DPD保活機(jī)制,VPN設(shè)備不知道遠(yuǎn)端設(shè)備已經(jīng)不可達(dá),SA依舊存在,則數(shù)據(jù)包依舊使用主用VPN隧道進(jìn)行發(fā)送,結(jié)果就是報(bào)文被丟棄,這時(shí)需要網(wǎng)絡(luò)管理員手動(dòng)清除兩端設(shè)備的SA,使VPN設(shè)備通過IKE重新協(xié)商使用備用線路建立備用VPN隧道,但網(wǎng)絡(luò)管理員手動(dòng)清除SA顯然不符合VPN高可用性的標(biāo)準(zhǔn),從故障發(fā)現(xiàn)到處理故障響應(yīng)時(shí)長也比設(shè)備自動(dòng)檢測保活時(shí)間長。
這時(shí)就需要使用DPD技術(shù),通過VPN設(shè)備之間"按需"或"定時(shí)"發(fā)送HELLO報(bào)文探測遠(yuǎn)端VPN設(shè)備是否存活,如果遠(yuǎn)端VPN設(shè)備已經(jīng)不可達(dá)則自動(dòng)刪除現(xiàn)有SA,與備用線路建立IPSec VPN。根據(jù)設(shè)備性能、設(shè)置的DPD檢測時(shí)長不通,切換時(shí)間也不盡相同,但基本保持在10s-20s左右,與網(wǎng)絡(luò)管理員發(fā)現(xiàn)故障后手動(dòng)清除VPN兩端設(shè)備的SA相比大大縮短了響應(yīng)時(shí)間。
下圖為DPD功能配置:
crypto isakmp keepalive [探測周期時(shí)間 [超時(shí)重試間隔時(shí)間] [模式]
探測周期:設(shè)置每多少秒進(jìn)行一次保活探測。
超時(shí)重試間隔時(shí)間:設(shè)備對端響應(yīng)時(shí)間,如遠(yuǎn)端VPN設(shè)備未在要求響應(yīng)時(shí)間內(nèi)響應(yīng)則再次放松一次保活探測,共持續(xù)5次,5次均未響應(yīng)則清除此SA。
模式:on-demand模式:按需模式,一旦有數(shù)據(jù)報(bào)文激活SA則開始進(jìn)行探測。
periodic模式:周期模式,只要存在SA即每指定時(shí)間內(nèi)周期發(fā)送探測報(bào)文。
舉例:crypto isakmp keepalive 10 2 on-demand
開啟DPD一旦有數(shù)據(jù)報(bào)文激活SA,則每10秒發(fā)送HELLO報(bào)文探測遠(yuǎn)端存活性,遠(yuǎn)端超出2秒內(nèi)沒有響應(yīng)則繼續(xù)發(fā)送HELLO報(bào)文探測遠(yuǎn)端存活性,共發(fā)送5次,如遠(yuǎn)端VPN設(shè)備5次都沒有在2秒鐘內(nèi)響應(yīng)探測報(bào)文則此SA將被清除。
下圖為DPD探測報(bào)文(由于探測報(bào)文為密文,所以我們抓取debug信息):
正常探測報(bào)文:
探測報(bào)文抓取
正常SA建立情況:
SA建立情況
這時(shí)手動(dòng)shutdown端口,讓其中一條隧道的加密點(diǎn)不可達(dá)。
探測報(bào)文:
探測報(bào)文抓取
發(fā)現(xiàn)加密點(diǎn)沒有響應(yīng),開始每隔兩秒發(fā)送一條探測報(bào)文,共發(fā)送五條。
第一次探測:
探測報(bào)文-1
第二次探測:
探測報(bào)文-2
第三次探測:
探測報(bào)文-3
第四次探測:
探測報(bào)文-4
第五次探測未響應(yīng)后刪除相應(yīng)加密點(diǎn)的SA:
探測報(bào)文-5
此時(shí)再查看SA建立情況發(fā)現(xiàn)對應(yīng)加密點(diǎn)的SA已經(jīng)被刪除:
IKE SA建立狀態(tài)
附:外地辦事處路由器IPSec VPN高可用的相關(guān)配置:
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
由配置能發(fā)現(xiàn)分支與總部兩臺VPN設(shè)備都建立了關(guān)聯(lián)
知識擴(kuò)展:set peer 202.111.34.2 default為什么后面加了一個(gè) default?
增加default的作用在于如果此設(shè)備與多臺VPN設(shè)備建立了聯(lián)系,在沒有設(shè)置default的情況下,是基于設(shè)置peer的順序來選擇使用哪一個(gè)peer建立的SA進(jìn)行傳輸?shù)模坏┑谝粋€(gè)peer的SA失效則選擇第二的SA進(jìn)行加解密傳輸,第二個(gè)SA失效則選擇第三個(gè)SA進(jìn)行加解密傳輸,以此類推。
設(shè)置上default與未設(shè)置default的區(qū)別在于,default SA失效以及第二個(gè)SA失效后、會(huì)再次探測并嘗試使用default進(jìn)行加解密傳輸,如果default還是處于失效狀態(tài),這時(shí)才會(huì)選擇第三個(gè)SA進(jìn)行加解密傳輸,以此類推。
default set peer的作用
2、解決核心交換機(jī)路由指向問題
然而,僅適用DPD技術(shù)只能保證VPN隧道的建立,無法解決下圖所描述問題:
新問題圖示
由于公司總部有多個(gè)出口VPN設(shè)備,所以核心交換機(jī)的默認(rèn)網(wǎng)關(guān)一定是指向主用VPN隧道的VPN出口設(shè)備,一旦主用VPN鏈路斷掉,DPD刪除主用VPN隧道SA,重新建立備用VPN隧道后,數(shù)據(jù)報(bào)文雖然能夠通過備用VPN隧道發(fā)送至總部服務(wù)器,但總部服務(wù)器將響應(yīng)報(bào)文發(fā)送給核心交換機(jī)后,核心交換機(jī)根據(jù)自己的默認(rèn)路由將加密報(bào)文發(fā)送給了主用VPN設(shè)備,由于主用VPN設(shè)備上的SA已經(jīng)被DPD刪除,所以加密數(shù)據(jù)報(bào)文無法發(fā)出,如何告知核心交換機(jī)將默認(rèn)網(wǎng)關(guān)指向備用VPN設(shè)備將是一大問題。
這時(shí)我們將使用OSPF與RRI技術(shù)的組合或等價(jià)路由與SLA技術(shù)的組合來進(jìn)行解決。
2.1、使用OSPF+RRI技術(shù)
RRI的作用在于應(yīng)用在IPSec VPN的map中,一旦此map建立SA,則生成一條靜態(tài)路由,該靜態(tài)路由是目標(biāo)地址為對端通信點(diǎn),下一條為對端加密點(diǎn)的靜態(tài)路由。
然后使用OSPF的重分布靜態(tài)路由功能,將RRI產(chǎn)生的靜態(tài)路由告知三層交換機(jī)。
正常數(shù)據(jù)傳輸:
OSPF+RRI技術(shù)圖示
主用VPN隧道SA因加密點(diǎn)不可達(dá)被DPD清除:
OSPF+RRI技術(shù)解決方案圖示
相關(guān)配置:
總部聯(lián)通路由器:
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 為產(chǎn)生的靜態(tài)路由打上tag10,便于后面再route-map調(diào)用
match address 100
reverse-route 啟用RRI
2、 創(chuàng)建名為static的route-map并匹配tag 10,建立route-map的作用是為了在ospf中引入此靜態(tài)路由。
route-map static permit 10
match tag 10
3、在OSPF中重分布名為static的route-map中的靜態(tài)路由。
router ospf 1
redistribute static subnets route-map static
network 10.1.1.0 0.0.0.255 area 0
總部電信路由器:
電信路由器與聯(lián)通路由器配置基本相同。
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 為產(chǎn)生的靜態(tài)路由打上tag20,便于后面再route-map調(diào)用
match address 100
reverse-route 啟用RRI
2、創(chuàng)建名為static的route-map并匹配tag 20,建立route-map的作用是為了在ospf中引入此靜態(tài)路由。
route-map static permit 20
set tag 20
3、在OSPF中重分布名為static的route-map中的靜態(tài)路由。
router ospf 1
redistribute static subnets route-map static
network 10.1.1.0 0.0.0.255 area 0
總部核心交換機(jī):
核心交換機(jī)只需要加入OSPF域中等待靜態(tài)路由的引入即可。
router ospf 1
network 10.1.1.0 0.0.0.255 area 0
2.2使用等價(jià)路由+SLA技術(shù)
正常數(shù)據(jù)傳輸:
等價(jià)路由+SLA技術(shù)圖示
主用VPN隧道SA因加密點(diǎn)不可達(dá)被DPD清除:
等價(jià)路由+SLA技術(shù)解決方案圖示
相關(guān)配置:
核心交換機(jī):
1、 創(chuàng)建兩個(gè)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、 創(chuàng)建等價(jià)路由并使用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
知識擴(kuò)展:由于測試需要這里的等價(jià)路由我使用的是基于包的隨機(jī)負(fù)載分擔(dān),具體命令如下:
Int vlan 1
ip load-sharing per-packet
默認(rèn)情況下是基于目標(biāo)地址的負(fù)載分擔(dān):
ip load-sharing per-destination
以上內(nèi)容均為本人對所掌握知識的總結(jié)歸納所創(chuàng)作的原創(chuàng)文章,希望能給大家的學(xué)習(xí)過程帶來幫助,如有技術(shù)理解錯(cuò)誤希望能夠及時(shí)得到大家的指正,大家共同學(xué)習(xí),共同進(jìn)步。
歡迎關(guān)注我的頭條號,私信交流,學(xué)習(xí)更多網(wǎng)絡(luò)技術(shù)!






