本文介紹如何使用公網網絡類型的VPN網關在專有網絡VPC(Virtual Private Cloud)和本地數據中心之間建立IPsec-VPN連接(雙隧道模式),實現本地數據中心與VPC之間加密通信以及IPsec-VPN連接的高可用。
環境要求
IPsec連接綁定VPN網關實例時,本地數據中心的網關設備必須配置公網IP地址。
對于支持IPsec-VPN連接雙隧道模式的地域,推薦本地數據中心的網關設備配置2個公網IP地址或者本地數據中心擁有兩個本地網關設備,每個本地網關設備均擁有一個公網IP地址,以建立高可用的IPsec-VPN連接。關于支持IPsec-VPN連接雙隧道模式的地域信息,請參見【升級公告】IPsec-VPN連接升級為雙隧道模式。
本地數據中心的網關設備必須支持IKEv1或IKEv2協議,支持任意一種協議的設備均可以和轉發路由器建立IPsec-VPN連接。
本地數據中心的網段與待訪問的網段沒有重疊。
場景示例
本文以下圖場景示例。某公司在阿里云華北5(呼和浩特)地域創建了VPC,VPC主網段為192.168.0.0/16。企業在呼和浩特地域擁有一個本地數據中心,因業務發展,本地數據中心172.16.0.0/16網段下的設備需要訪問VPC下的資源。您可以在本地數據中心與云上VPC之間建立IPsec-VPN連接,實現云上和云下加密通信以及IPsec-VPN連接的高可用。
準備工作
您已經在阿里云華北5(呼和浩特)地域創建了VPC,VPC中使用云服務器ECS(Elastic Compute Service)部署了相關業務。具體操作,請參見搭建IPv4專有網絡。
您已經了解VPC中ECS實例所應用的安全組規則以及本地數據中心應用的訪問控制規則,并確保ECS安全組規則和本地數據中心訪問控制規則允許本地數據中心和VPC之間互相互訪。關于ECS安全組規則更多內容,請參見查詢安全組規則和添加安全組規則。
配置流程
步驟一:創建VPN網關
登錄VPN網關管理控制臺。
在頂部菜單欄,選擇VPN網關的地域。
VPN網關的地域需和本地數據中心要訪問的VPC實例的地域相同。
在VPN網關頁面,單擊創建VPN網關。
在購買頁面,根據以下信息配置VPN網關,然后單擊立即購買并完成支付。
配置項
說明
本文示例值
實例名稱
輸入VPN網關實例的名稱。
輸入VPNGW。
資源組
選擇VPN網關實例所屬的資源組。
如果不選擇,VPN網關實例創建后將歸屬于默認資源組。
本文保持為空。
地域和可用區
選擇VPN網關實例所屬的地域。
選擇華北5(呼和浩特)。
網關類型
選擇VPN網關實例的網關類型。
選擇普通型。
網絡類型
選擇VPN網關實例的網絡類型。
公網:VPN網關通過公網建立VPN連接。
私網:VPN網關通過私網建立VPN連接。
選擇公網。
隧道
系統直接展示當前地域IPsec-VPN連接支持的隧道模式。
雙隧道
單隧道
關于單隧道和雙隧道的說明,請參見【升級公告】IPsec-VPN連接升級為雙隧道模式。
本文保持默認值雙隧道。
VPC
選擇VPN網關實例關聯的VPC實例。
選擇阿里云華北5(呼和浩特)地域的VPC實例。
虛擬交換機
從VPC實例中選擇一個交換機實例。
IPsec-VPN連接的隧道模式為單隧道時,您僅需要指定一個交換機實例。
IPsec-VPN連接的隧道模式為雙隧道時,您需要指定兩個交換機實例。
IPsec-VPN功能開啟后,系統會在兩個交換機實例下各創建一個彈性網卡ENI(Elastic Network Interfaces),作為使用IPsec-VPN連接與VPC流量互通的接口。每個ENI會占用交換機下的一個IP地址。
說明系統默認幫您選擇第一個交換機實例,您可以手動修改或者直接使用默認的交換機實例。
創建VPN網關實例后,不支持修改VPN網關實例關聯的交換機實例,您可以在VPN網關實例的詳情頁面查看VPN網關實例關聯的交換機、交換機所屬可用區以及交換機下ENI的信息。
選擇VPC實例下的一個交換機實例。
虛擬交換機2
從VPC實例中選擇第二個交換機實例。
您需要從VPN網關實例關聯的VPC實例下指定兩個分布在不同可用區的交換機實例,以實現IPsec-VPN連接可用區級別的容災。
對于僅支持一個可用區的地域 ,不支持可用區級別的容災,建議您在該可用區下指定兩個不同的交換機實例以實現IPsec-VPN連接的高可用,支持選擇和第一個相同的交換機實例。
說明如果VPC實例下沒有第二個交換機實例,您可以新建交換機實例。具體操作,請參見創建和管理交換機。
選擇VPC實例下的第二個交換機實例。
帶寬規格
選擇VPN網關實例的帶寬規格。單位:Mbps。
本文使用默認值。
IPsec-VPN
選擇開啟或關閉IPsec-VPN功能。默認值:開啟。
選擇開啟IPsec-VPN功能。
SSL-VPN
選擇開啟或關閉SSL-VPN功能。默認值:關閉。
選擇關閉SSL-VPN功能。
計費周期
選擇購買時長。
您可以選擇是否自動續費:
按月購買:自動續費周期為1個月。
按年購買:自動續費周期為1年。
本文使用默認值。
服務關聯角色
單擊創建關聯角色,系統自動創建服務關聯角色AliyunServiceRoleForVpn。
VPN網關使用此角色來訪問其他云產品中的資源,更多信息,請參見。
若本配置項顯示為已創建,則表示您當前賬號下已創建了該角色,無需重復創建。
根據需求創建服務關聯角色或跳過本配置項。
返回VPN網關頁面,查看創建的VPN網關實例。
剛創建好的VPN網關實例的狀態是準備中,約1~5分鐘左右會變成正常狀態。正常狀態表明VPN網關已經完成了初始化,可以正常使用。
系統會為公網網絡類型的VPN網關實例分配兩個不同的公網IP地址,用于建立兩個加密隧道。本文中系統分配的兩個公網IP地址如下表:
IPsec-VPN連接隧道
地址
IPsec地址1(主隧道)
39.XX.XX.218
IPsec地址2(備隧道)
182.XX.XX.19
步驟二:創建用戶網關
在左側導航欄,選擇
。在頂部菜單欄選擇用戶網關的地域。
用戶網關地域需和VPN網關實例的地域相同。
在用戶網關頁面,單擊創建用戶網關。
在創建用戶網關面板,根據以下信息進行配置,然后單擊確定。
您需要創建兩個用戶網關用于創建兩個加密隧道。以下僅列舉本文強相關配置項,其余配置保持默認值或為空。更多信息,請參見創建和管理用戶網關。
配置項
說明
用戶網關1
用戶網關2
名稱
輸入用戶網關的名稱。
輸入CustomerGW1。
輸入CustomerGW2。
IP地址
輸入本地數據中心的網關設備的公網IP地址。
輸入211.XX.XX.36。
輸入211.XX.XX.71。
步驟三:創建IPsec連接
在左側導航欄,選擇
。在頂部菜單欄選擇IPsec連接的地域。
IPsec連接的地域需和VPN網關實例的地域相同。
在IPsec連接頁面,單擊創建IPsec連接。
在創建IPsec連接頁面,根據以下信息進行配置,然后單擊確定。
配置項
說明
本文示例值
名稱
輸入IPsec連接的名稱。
輸入IPsec-Connection。
資源組
選擇VPN網關實例所屬的資源組。
選擇默認資源組。
綁定資源
選擇IPsec連接綁定的資源類型。
選擇VPN網關。
VPN網關
選擇IPsec連接關聯的VPN網關實例。
選擇VPNGW。
路由模式
選擇路由模式。
目的路由模式:基于目的IP地址路由和轉發流量。
感興趣流模式:基于源IP地址和目的IP地址精確的路由和轉發流量。
選擇目的路由模式。
立即生效
選擇IPsec連接的配置是否立即生效。取值:
是:配置完成后立即進行協商。
否:當有流量進入時進行協商。
選擇是。
啟用BGP
如果IPsec連接需要使用BGP路由協議,需要打開BGP功能的開關,系統默認關閉BGP功能。
本文保持默認值,即不開啟BGP功能。
Tunnel 1
為隧道1(主隧道)添加VPN相關配置。
系統默認隧道1為主隧道,隧道2為備隧道,且不支持修改。
用戶網關
為主隧道添加待關聯的用戶網關實例。
選擇CustomerGW1。
預共享密鑰
輸入主隧道的認證密鑰,用于身份認證。
密鑰長度為1~100個字符,支持數字、大小寫英文字母及右側字符
~`!@#$%^&*()_-+={}[]\|;:',.<>/?
,不能包含空格。若您未指定預共享密鑰,系統會隨機生成一個16位的字符串作為預共享密鑰。創建IPsec連接后,您可以通過隧道的編輯按鈕查看系統生成的預共享密鑰。具體操作,請參見修改隧道的配置。
重要隧道及其對端網關設備配置的預共享密鑰需一致,否則系統無法正常建立IPsec-VPN連接。
輸入fddsFF123****。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
除以下參數外,其余配置項保持默認值。關于默認值的說明,請參見創建和管理IPsec連接(雙隧道模式)。
IKE配置的DH分組選擇group14。
IPsec配置的DH分組選擇group14。
說明您需要根據本地網關設備的支持情況選擇加密配置參數,確保IPsec連接和本地網關設備的加密配置保持一致。
Tunnel 2
為隧道2(備隧道)添加VPN相關配置。
用戶網關
為備隧道添加待關聯的用戶網關實例。
選擇CustomerGW2。
預共享密鑰
輸入備隧道的認證密鑰,用于身份認證。
輸入fddsFF456****。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
除以下參數外,其余配置項保持默認值。關于默認值的說明,請參見創建和管理IPsec連接(雙隧道模式)。
IKE配置的DH分組選擇group14。
IPsec配置的DH分組選擇group14。
說明您需要根據本地網關設備的支持情況選擇加密配置參數,確保IPsec連接和本地網關設備的加密配置保持一致。
標簽
為IPsec連接添加標簽。
本文保持為空。
在創建成功對話框中,單擊取消。
保持在IPsec連接頁面,找到創建的IPsec連接,在操作列單擊生成對端配置。
對端配置是指需要在IPsec連接對端添加的VPN配置。本文場景中您需要將這些配置添加在本地網關設備上。
在IPsec連接配置對話框,復制配置并保存在您的本地,用于后續配置本地網關設備。
步驟四:配置本地網關設備
在阿里云側創建IPsec連接后,您需要在本地網關設備上添加VPN配置和路由配置,使本地網關設備與VPN網關之間成功建立IPsec-VPN連接,同時使本地數據中心去往VPC的流量優先通過主隧道進行傳出,在主隧道中斷后自動切換至備隧道進行傳輸。
本文以思科防火墻ASA(軟件版本9.19.1)作為配置示例。不同軟件版本的配置命令可能會有所差異,操作時請根據您的實際環境查詢對應文檔或咨詢相關廠商。更多本地網關設備配置示例,請參見本地網關配置。
以下內容包含的第三方產品信息僅供參考。阿里云對第三方產品的性能、可靠性以及操作可能帶來的潛在影響,不做任何暗示或其他形式的承諾。
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置。
請確保思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
#查看本地網關設備1的接口配置 ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 211.XX.XX.36 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 172.16.50.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! #查看本地網關設備2的接口配置 ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 211.XX.XX.71 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 172.16.40.218 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 !
為公網接口開啟IKEv2功能。
#分別在本地網關設備1和本地網關設備2上添加如下配置 crypto ikev2 enable outside1 #為本地網關設備的outside1接口(公網接口)開啟IKEv2功能。
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
#分別在本地網關設備1和本地網關設備2上添加如下配置 crypto ikev2 policy 10 encryption aes #指定加密算法。 integrity sha #指定認證算法。 group 14 #指定DH分組。 prf sha #prf和integrity保持一致,阿里云側prf與認證算法默認保持一致。 lifetime seconds 86400 #指定SA生存周期。
創建IPsec proposal和profile,指定思科防火墻側的IPsec階段加密算法、認證算法、DH分組和SA生存周期,需和阿里云側保持一致。
#分別在本地網關設備1和本地網關設備2上添加如下配置 crypto ipsec ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec proposal。 protocol esp encryption aes #指定加密算法,協議使用ESP,阿里云側固定使用ESP協議。 protocol esp integrity sha-1 #指定認證算法,協議使用ESP,阿里云側固定使用ESP協議。 crypto ipsec profile ALIYUN-PROFILE set ikev2 ipsec-proposal ALIYUN-PROPOSAL #創建ipsec profile并應用已創建的proposal。 set ikev2 local-identity address #指定本端ID使用IP地址格式,與阿里云側RemoteId格式保持一致。 set pfs group14 #指定pfs和DH分組。 set security-association lifetime seconds 86400 #指定基于時間的SA生存周期。 set security-association lifetime kilobytes unlimited #關閉基于流量的SA生存周期。
創建tunnel group,指定隧道的預共享密鑰,需和阿里云側保持一致。
#在本地網關設備1上添加如下配置 tunnel-group 39.XX.XX.218 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 39.XX.XX.218 ipsec-attributes ikev2 remote-authentication pre-shared-key fddsFF123**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key fddsFF123**** #指定隧道1本段的預共享密鑰,需和阿里云側的保持一致。 ! #在本地網關設備2上添加如下配置 tunnel-group 182.XX.XX.19 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 182.XX.XX.19 ipsec-attributes ikev2 remote-authentication pre-shared-key fddsFF456**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key fddsFF456**** #指定隧道2本段的預共享密鑰,需和阿里云側的保持一致。 !
創建tunnel接口。
#在本地網關設備1上添加如下配置 interface Tunnel1 #創建隧道1的接口。 nameif ALIYUN1 ip address 169.254.10.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道1源地址為公網接口GigabitEthernet0/0。 tunnel destination 39.XX.XX.218 #指定隧道1目的地址為阿里云側隧道1的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道1接口。 ! #在本地網關設備2上添加如下配置 interface Tunnel1 #創建隧道2的接口。 nameif ALIYUN1 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside1 #指定隧道2源地址為公網接口GigabitEthernet0/0。 tunnel destination 182.XX.XX.19 #指定隧道2目的地址為阿里云側隧道2的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道2接口。 !
配置靜態路由。
//在本地網關設備1上添加如下配置 route ALIYUN1 192.168.0.0 255.255.0.0 39.XX.XX.218 #配置去往阿里云VPC(192.168.0.0/16)的靜態路由。 route outside1 39.XX.XX.218 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為外網地址。 route private 172.16.0.0 255.255.0.0 172.16.50.216 #配置去往本地數據中心的路由。 //在本地網關設備2上添加如下配置 route ALIYUN1 192.168.0.0 255.255.0.0 182.XX.XX.19 #配置去往阿里云VPC(192.168.0.0/16)的靜態路由。 route outside1 182.XX.XX.19 255.255.255.255 192.XX.XX.123 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為外網地址。 route private 172.16.0.0 255.255.0.0 172.16.40.219 #配置去往本地數據中心的路由。
請根據您的實際網絡環境按需在本地數據中心添加路由配置,使本地數據中心去往VPC的流量優先通過本地網關設備1進行傳輸,在本地網關設備1故障后可以自動通過本地網關設備2進行傳輸。具體命令,請咨詢相關設備廠商。
步驟五:配置VPN網關路由
在左側導航欄,選擇
。在頂部菜單欄選擇VPN網關實例的地域。
在VPN網關頁面,找到VPN網關實例,單擊實例ID。
單擊目的路由表頁簽,然后單擊添加路由條目。
在添加路由條目面板,根據以下信息配置路由,然后單擊確定。
配置項
說明
路由條目
目標網段
輸入本地數據中心的網段。
輸入172.16.0.0/16。
下一跳類型
選擇下一跳的類型。
選擇IPsec連接。
下一跳
選擇下一跳。
選擇IPsec-Connection。
發布到VPC
選擇是否將新添加的路由發布到VPN網關關聯的VPC中。
選擇是。
步驟六:驗證測試
測試本地數據中心和VPC之間的連通性。
登錄VPC下任意一個ECS實例。關于如何登錄ECS實例,請參見連接方式概述。
在ECS實例中執行
ping
命令,訪問本地數據中心內的服務器,驗證通信是否正常。如果ECS實例可以收到本地數據中心服務器的回復報文,則證明本地數據中心和VPC之間可以正常通信。
ping <本地數據中心服務器私網IP地址>
測試IPsec-VPN連接的高可用性。
登錄VPC下任意一個ECS實例。關于如何登錄ECS實例,請參見連接方式概述。
執行以下命令,使VPC下的ECS實例連續向本地數據中心發送訪問報文。
ping <本地數據中心服務器私網IP地址> -c 10000
中斷IPsec-VPN連接下的主隧道。
您可以通過修改IPsec連接主隧道的預共享密鑰來中斷主隧道,主隧道兩端的預共享密鑰不一致,則主隧道會中斷。
中斷主隧道后,您可以觀察VPC實例下ECS實例的通信情況,發現ECS實例下的流量在短暫中斷后,又重新恢復通信,則表示在主隧道中斷后,流量自動通過備隧道進行通信。