江蘇 張韜
為了達到更好的VPN 網絡高可用性效果,可以通過HSRP 或 VRRP等冗余技術,將在出口布署的多臺VPN 路由器虛擬成一臺路由器,然后以角色為Active 的路由器使用虛擬路由器的IP 地址為本端IP 地址負責與對端VPN 對等體建立IPSec 連接。
當Active 路由器不可用之后,通過選舉再次成為Active 的備用路由器仍然使用此虛擬IP 地址與對端建立VPN 連接,從而可以實現不間斷服務效果。
而且對于遠端VPN peer而言,對端建立VPN 連接的并不是使用物理口IP 地址,而是虛擬IP 地址,它其實并沒有變化,所以并不需要增加和更改配置,這就真正意義上實現了IPSec VPN High Availability(IPSec VPN HA)效果。
當Active 路由器不可用之后,選舉成為Active 的備用路由器會接替原Active主路由器的IPSec VPN 繼續工作,但是新Active 路由器需要和VPN 對端重新建立IPSec 會話,而不是繼續使用原來的IPSec 會話,原有IPSec 信息需要盡快刪除,所以在布署IPSec VPN HA 場景時,也同時需要配置IPSec DPD 技術。因為再次成為Active 的備用路由器原本就沒 有IPSec會話,所以需要重新建立。
在 VPN路由器之間配置HSRP 或VRRP 組時,外網接口上必須配置,而且還需要Track 相應內網接口,當內網接口不可用時,則必須讓出Active角色。

圖1 IPSec VPN HA 拓撲圖
這里以GNS3 模擬器來實現相關IPSec VPN HA 效果驗證,4 臺路由器連接拓撲及IP 地址信息如圖1 所示。在R1、R2、R3 之間配置IPSec Site-to-Site VPN 隧道來測試效果,其中R2 和R3通過HSRP 協議虛擬成一臺VPN 路由器,虛擬IP 地址為200.1.1.10,然 后R2 和R3中選舉為Active 角色的路由器以該虛擬IP 地址和對端路由器R1 建立VPN 連接,當Active 路由器不可用時,則備用路由器接替Active路由器的角色,這里假設經過R2 路由器為主鏈路,經過R3 為備用鏈路。R1 路由器上使用環回口和R4 的Fa0/0物理口建立VPN 隧道進行測試,此處各路由器基本信息和相關路由配置省略。
R1 上VPN 主要配置


此時路由器R1 的VPN peer 指向R2 和R3 通過虛擬出的HSRP 組IP 地址200.1.1.10。R2 和R3 路由器上同時配置與R1 之間相對應的IPSec VPN 信息,此處省略配置。
R2 上主要相關配置



保證R4 路由器在訪問R1 的環回口做VPN 隧道測試時,正常情況下流量選擇經過R2 的線路為主鏈路,經過R3 的線路為備用鏈路。
R2 在外網接口上和R3配置HSRP 組10,同時跟蹤連接R4 的內部接口F0/1,在F0/1 接口不可用時,將HSRP Active 的角色讓給R3,當Fa0/1 接口恢復后,又必須搶回Active 角色。
和R3 在內網接口上也建立一個HSRP 組20,并保證R2 和R3 在兩個HSRP 組中的角色相一致。
R3 上主要相關配置


注意:在接口上需要定義HSRP name 時,當該接口name或IP 地址發生改變,所使用的crypto map 也需要重新應用。
如圖2 所示,R2 的優先級為110,所以為Active 角色。

圖2 查看R2 狀態的程序
在R4 上ping 路由器R1的環回口地址1.1.1.1,可以看到R1 已經與對面相應建立的HSRP 組虛擬IP 地址之間建立了IKE SA,IKE SA 的lifetime 還剩23 小時58 分20 秒,Conn-id=1:1,如圖3 所示。
同樣,作為主鏈路,在R2上也可以看到與R1 之間建立了IKE SA,如圖4 所示,IPSec SA 也顯示了正確的網段信息與狀態,而R3 因為不是Active 角色,所以不需要建立VPN 連接,因此也就看不到任何SA 信息。

圖3 查看R1 的狀態

圖4 查看R2 狀態
在R4 上跟蹤流量情況,也可以發現去往VPN 對端是經過R2 轉發出去的,如下所示:R4#traceroute 1.1.1.1

當斷開R2 與R4 相連的內網Fa0/1 接口后,R2 的HSRP 角色從Active 變成了Standby,而R3 的HSRP角色則從Standby 變成了Active,如圖5 所示。

圖5 查看R3 的狀態
在R4 上使用ping 命令連續測試,也可以發現R4 和R1 之間的VPN 隧道在中斷一會后,又會恢復正常通信,此時R1 與R3 之間已經建立了IKE SA,R1 與R2 之間的IKE SA 則會被刪除,如圖6 所示。
通過以上IKE 建立的時間也可以看出,當前R2 與R1建立IKE SA 的lifetime 還剩23 小時59 分27 秒,因為IKE SA 新建立的lifetime默認為24 小時,也就說明此連接是完全新建立的。
再次在R1 上查看IKE SA,此時可以看到R1 上建立的IKE SA 的lifetime 雖 然還剩23 小時57 分,但現在顯示的Conn-id=SW:2,而之前的為Conn-id=SW:1,所以證明R1 上的IKE SA 也是新建立的,如圖7 所示。

圖6 使用Ping 命令連續測試

圖7 查看R1 狀態
再次查看R4 到VPN 對端的流量路徑,可以看到R4 去往R1 的VPN 流量先發送到R3,然后再由R3 轉發出去,如下所示:


當把R2 的Fa0/1 口no shutdown 后,由于開啟了搶占模式,所以R2 又會重新恢復成HSRP 組中的Active 角色,R4 和R1 間的VPN 流量也會重新經過R2 轉發到達R1,在R1 和R2 上也可以看到重新建立起的IKE SA 信息,如圖8 所示。
如果在R2 路由器上關閉外網的Fa0/0 口后,HSRP 組也會進行重新選舉,R4 和R1之間的流量也同樣會出現和上面一樣VPN 隧道重新建立的情形,這樣就達到了IPSec VPN HA 的預期效果。