類似文章其實國內外都有人寫過,不過也想用自己的方式分享一下。
一般狀況下,已在使用的 Azure 環境正常應該都至少有一個虛擬網路,所以文章說明直接從建立 VPN 閘道開始。
設定Azure 端
建立虛擬網路閘道 (Virtual Network Gateway)
點擊左上角的「+」符號,建立資源 → 網路 → 虛擬網路閘道。
參考下圖範例建立資源,並依據需求填入名稱及選擇。
● 閘道類型,因為會用 Fortigate 走 IPSEC 方式與 Azure 建立連線,而且 EpressRoute 的申請費用及程序不會是中小企業的選擇,所以請選擇「VPN」。
● VPN 類型,請選擇依路由 (路由式 RouteBased, 動態路由)。原則式的限制很多,且只能有一個站對站連線。
● SKU 等級,若是單純測試需求,可以考慮只選擇「基本」。
但請留意,基本 (Basic) 屬於舊版,之後也僅能在基本、標準及高效能間等傳統模式更換設定,無法轉換為 Azure 較新且快的 VpnGw 等級。
● 閘道子網路的範圍,正常會自動設定也能自訂,但最小只能切 /29,官方建議至少是 /28 或更大。若看不到這部份的設定資訊,代表之前已經新增過。
至於 BGP ASN 什麼的,如果不知道是啥,就代表不用特別去按了。
建立區域網路閘道 (Local Network Gateway)
點擊左上角的「+」符號,建立資源 → 網路 → 區域網路閘道。
參考下圖範例新增。這部份的設定,主要是針對 VPN 另一端的網路環境做資訊新增。
● IP 位址,請填入另一端網路環境的 VPN Gateway IP。以本文來說,也就是 Fortigate 用來對接的外部 IP。
● 位址空間,請填入另一端網路環境會需要連通的網段。
建立連接 (Connections)
新增上述兩種閘道資訊的設定後,尚需要建立連接才算是完成 Azure 端的設定。
參考下圖範例新增,虛擬網路閘道及區域網路閘道,則是選擇剛新增的項目。
● 連接類型,請選擇「站對站 (IPSec)」。
● 共用金鑰,請設定一組密碼供 Azure 與 Fortigate 建立連接加密使用。
連接狀態檢查,請順手記下 Azure 端虛擬網路閘道的 Internet IP。
設定 Fortigate 端
以下為 5.6.x 版環境範例,簡單整理與 IPsec VPN 相關會動到的設定:
1. VPN 通道
2. Address
3. 路由
4. 原則
建立 VPN 通道 (Tunnel)
VPN → IPsec Wizard,建立名稱並選擇自訂後,點擊下一步。
參考下圖範例選擇及設定:
● IP Address 填入前面提醒,請順手記下的 Azure 端虛擬網路閘道的 Internet IP
● NAT Traversal 設定為 Disable
● Dead Peer Detection 設定為 On Idle
● IKE 版本使用 Version 2
● Dead Peer Detection 輸入與 Azure 相同的密碼金鑰值
● Peer Accept Types 設定為 Any peer ID
● Phase 1 的 Encryption 及Authentication 新增如下
AES 256 對應 SHA1
3DES 對應 SHA1
AES 256 對應 SHA 256
DH Group 指定為 2
● Key Lifetime 設定為 28800 秒
● Phase 2 點開 Advanced 進階項目, Encryption 及Authentication 新增項目如同 Phase 1,但
請取消勾選「Enable Perfect Forward Secrecy (PFS)」
● Auto-negotiate 建議勾選,勾選後同時會自動勾選 Autokey Keep Alive (感謝某技術人士補充此設定建議)
● Key Lifetime 設定為 27000 秒
如果對相關設定項目有興趣或疑慮,可參考文末資訊。
建立與 Azure 網段相關的防火牆物件 (Objects)
Policy & Objects → Addresses,主要針對 Azure 網段做資訊新增。
Interface 請選擇剛建立的 VPN 通道名稱。從這張圖也可以發現,此時 VPN 尚未接通。
建立到 Azure 網段的路由
Network → Static Routes,針對 Azure 網段做路由指定。
Interface 同樣選擇剛建立的 VPN 通道名稱,Administrative Distance 優先權請低於其他預設。
新增 Azure 網路與地端連通的防火牆原則。
Azure Virtual Network 到 CorpNet,請取消勾選 NAT,並依需求參考下圖完成設定。
CorpNet 到 Azure Virtual Network,請取消勾選 NAT,並依需求參考下圖完成設定。從這張圖可以稍微發現,在建立好 Azure VNet 網段到內網的 Policy 後,VPN 已經呈現接通狀態。
到 Monitor → IPsec Monitor,檢查 VPN 連接狀態,確認連接成功。
用放在 Azure 上的 VM 與地端主機互 Ping 也沒問題。
後記
承襲過往碎唸風格,文字描述很多,若很懶得看,直接照圖做應該也可以。
再補充,一般會建立雲端及地端的 VPN 對接,除了希望能直接從內部進行管理外,大多會希望在雲端的 VM 能加入網域。假使雲端的虛擬網路未佈建 DC (強烈建議至少放置一台於雲端,避免 VPN 斷線時無法溝通驗證),請務必參考下圖到虛擬網路的 DNS 設定,自訂 DNS 伺服器指向到 DC 相關 IP。
若 Fortigate 的版本,不是微軟官方文件目前驗證公告的 5.6 以上,我自己測試過,舊版的 FortiOS 4.x 也是能建立連線,但請瞭解,沒有人可以保證及支援這樣使用一定會是正常。
延伸閱讀
Azure 部落格 - New Azure VPN Gateways now 6x faster
Azure 文件 - 關於 VPN 裝置
Azure 文件 - 使用虛擬網路閘道 SKU (舊版 SKU)
Azure 文件 - VPN 閘道 SLA
資料參考
The Fortinet Cookbook - IPsec VPN to Microsoft Azure
FortiOS 5.6 Online Help - Chapter 14 - IPsec VPN
你好,请问这个操作会改变本地网络的出口IP为云端的ip吗
不會,純粹是兩邊的網路連接串通,
除非您有特別去改動本地端的路由
您好, 請問若要達成本地端出口為 Azure IP 可以達成嗎?
因為我測試好幾次都無法成功, 都只抓到 local public IP
謝謝~