資訊無涯,回頭已不見岸

用雙線路與Azure建立站對站VPN

前面文章有說明如何用 Fortigate 與 Azure 做站對站 VPN,但建起來的連線是單條線路,一般企業不太可能接受及擔負單條線路帶來的風險,所以我嘗試實做及測試,用雙線路與 Azure VPN Gateway 建立 VPN 連線,期望能達成高可用性的運作目標。

地端 VPN 設備同樣使用 Fortigate,線路的部份採用一條中華電信 (CHT),另一條為遠傳 (Sparq)。

本文不會對設定位置及欄位做太多說明,因為前文已提及。先簡單結論這次的佈建,其實就是在 Azure 及 Fortigate 上,再做一次 VPN 的設定建立。

在現有 Azure 已經建立好一條站對站 VPN 連線的環境下,再新增一個區域網路閘道 (Local Network Gateway),對應到地端另一條線路的 Wan 2 IP,位址空間則是當然與先前建立的一致。

接著,到虛擬網路閘道新增第二個連接,區域網路閘道選擇剛新增的第二個區域網路閘道,共用金鑰可以與第一條不同,因為這組 VPN 設定,算是另一個通道 (Tunnel) 。

設定後的狀態檢查

回到地端的 Fortigate 進行設定,同樣掌握下面四個方向建立相關項目:
1. VPN 通道
2. 位址 (Address)
3. 路由 (Route)
4. 原則 (Policy)

新增與 Wan 2 為主的 VPN Tunnel。
我在這邊的設定犯了一個錯誤,導致最後無法成功連接,重新檢視才找到原因,歡迎嘗試除錯。 (解答: DH Group 預設為 5,應手動指定為 2)

新增與第二條 VPN 通道相關的位址。

新增與第二條 VPN 通道相關的路由。

新增與第二條 VPN 通道相關的原則,請別忘記雙邊互通,所以須建立兩個方向的原則。

設定完成,檢查 VPN 連接狀態。

從上圖可以確定兩條 VPN 已如同架構規劃完成連接。但對我來說,所謂高可用性,必須經過測試驗證才算真的完成。

由於現有線路為正式生產環境,為避免影響使用,我的測試方法是,同樣參考前面的文章,強制在 Azure 的 VM 透過 VPN 走回地端再上網,然後故意在 Fortigate 上讓其中一條 VPN 失效 (以設定錯誤的 Remote Gateway IP 造成斷線),觀察其運作狀態。

這張測試截圖,主要呈現 Azure 端的 VM 與地端主機互 Ping 的狀況。可以發現,原連接使用的 VPN 通道斷線時,如預期自動切換到另一條,不論雲到地或是地到雲,都會掉大概一個包。

下面兩張圖,主要是從 Azure VM 強制走 VPN 從地端上網,各利用 Web 及 Telnet 方式連到 PTT。可以發現原連接使用的 VPN 通道斷線時,自動切換到另一條通道會掉一個到兩個包,但無論是 Web 或 Telnet 都沒有被 PTT 主機踢出。

雖然 VPN 通道斷線做切換時會有掉包的狀況,但從目前測試觀察,都不至於影響運作使用,算能符合期望的高可用性運作,只是手邊的設備主要是 Fortigate,不清楚用其他品牌的防火牆或 VPN 設備能否達到預期 (歡迎各界友情商借給小弟測試)。

不過,建立雙線路高可用的 VPN 應該都是能達成的建置目標。

資料參考
Azure 文件 – 高可用性跨單位和 VNet 對 VNet 連線
FortiOS 5.6 Online Help – Chapter 14 – Redundant VPN configurations

1 則留言

  1. Peter

    最近正在研究這類設定,謝謝老蘇這篇文章分享,幫助不少。謝謝~

發佈回覆給「Peter」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

© 2024 蘇老碎碎唸

Theme by Anders NorenUp ↑