本文介紹如何在阿里云專有網絡 VPC(Virtual Private Cloud)和AWS VPC(Amazon Virtual Private Cloud)之間建立IPsec-VPN連接,實現阿里云VPC和AWS VPC之間的相互通信。
場景示例
本文以下圖場景為例。某企業在阿里云德國(法蘭克福)地域創建了一個VPC,并在AWS的歐洲(法蘭克福)地域也擁有一個VPC,企業希望阿里云VPC和AWS VPC可以互相通信。
企業可以使用阿里云VPN網關產品(使用公網網絡類型的VPN網關實例)和AWS VPN產品在兩個VPC之間建立IPsec-VPN連接,實現兩個VPC之間的加密通信。
網段規劃
您可以自行規劃網段,請確保要互通的網段之間沒有重疊。
VPC實例網段規劃
資源 | VPC實例的網段 | 實例IP地址 |
阿里云VPC |
| ECS IP地址:10.0.0.223 |
AWS VPC |
| EC2 IP地址:192.168.10.113 |
IPsec-VPN連接BGP網段規劃
本文中將分別描述IPsec-VPN連接使用靜態路由和BGP動態路由情況下如何實現阿里云VPC和AWS VPC之間的通信。如果您不需要使用BGP動態路由方式,可以忽略本部分。以下為本文的BGP網段規劃。
在IPsec-VPN連接配置BGP動態路由協議的情況下,阿里云側兩條隧道的本端自治系統號需保持相同,兩條隧道對端的BGP AS號可以不相同,但建議保持相同。
資源 | IPsec連接名稱 | 隧道 | BGP隧道網段 | BGP IP地址 | BGP AS號(本端自治系統號) |
阿里云VPN網關 | IPsec連接 | 主隧道 | 169.254.116.208/30 說明 一個VPN網關實例下,每個隧道的網段需保持唯一。 | 169.254.116.210 | 65530 |
備隧道 | 169.254.214.96/30 | 169.254.214.98 | |||
AWS虛擬私有網關 | 站點到站點VPN連接1 | 隧道1 | 169.254.116.208/30 | 169.254.116.209 | 64512 |
隧道2 | 備隧道不使用。 | ||||
站點到站點VPN連接2 | 隧道1 | 169.254.214.96/30 | 169.254.214.97 | ||
隧道2 | 備隧道不使用。 |
準備工作
您已經在阿里云德國(法蘭克福)地域創建一個VPC,VPC下通過云服務器 ECS(Elastic Compute Service)部署相關資源。具體操作,請參見搭建IPv4專有網絡。
您已經在AWS歐洲(法蘭克福)地域創建了一個VPC,VPC下通過EC2部署了相關資源。具體操作,請咨詢AWS平臺。
配置流程
步驟一:在阿里云創建VPN網關實例
您需要先在阿里云創建一個VPN網關實例,VPN網關實例創建完成后,系統會為VPN網關實例分配2個IP地址,這2個IP地址用于與AWS平臺建立IPsec-VPN連接。
登錄VPN網關管理控制臺。
在頂部菜單欄,選擇VPN網關的地域。
VPN網關的地域需和待綁定的VPC實例的地域相同。
在VPN網關頁面,單擊創建VPN網關。
在購買頁面,根據以下信息配置VPN網關,然后單擊立即購買并完成支付。
以下僅列舉本文強相關的配置,其余配置項保持默認值或為空。更多信息,請參見創建和管理VPN網關實例。
配置項
說明
本文示例值
實例名稱
輸入VPN網關實例的名稱。
輸入VPN網關。
地域和可用區
選擇VPN網關實例所屬的地域。
選擇德國(法蘭克福)。
網關類型
選擇VPN網關實例的網關類型。
選擇普通型。
網絡類型
選擇VPN網關實例的網絡類型。
選擇公網。
隧道
系統直接展示當前地域IPsec-VPN連接支持的隧道模式。
雙隧道
單隧道
關于單隧道和雙隧道的說明,請參見【升級公告】IPsec-VPN連接升級為雙隧道模式。
本文保持默認值雙隧道。
VPC
選擇VPN網關實例關聯的VPC實例。
選擇阿里云德國(法蘭克福)地域的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實例下的第二個交換機實例。
IPsec-VPN
選擇開啟或關閉IPsec-VPN功能。默認值:開啟。
選擇開啟IPsec-VPN功能。
SSL-VPN
選擇開啟或關閉SSL-VPN功能。默認值:關閉。
選擇關閉SSL-VPN功能。
返回VPN網關頁面,查看創建的VPN網關實例。
剛創建好的VPN網關實例的狀態是準備中,約1~5分鐘左右會變成正常狀態。正常狀態表明VPN網關已經完成了初始化,可以正常使用。
系統為VPN網關實例分配的2個IP地址如下表所示:
VPN網關實例的名稱
VPN網關實例ID
IP地址
VPN網關
vpn-gw8dickm386d2qi2g****
IPsec地址1(默認為主隧道地址):8.XX.XX.146
IPsec地址2(默認為備隧道地址):8.XX.XX.74
步驟二:在AWS平臺部署VPN
為在AWS VPC和阿里云VPC之間建立IPsec-VPN連接,您需要根據以下信息在AWS平臺部署VPN,配置需要的具體命令或操作請咨詢AWS平臺。
使用靜態路由方式
創建客戶網關。
您需要在AWS側創建2個客戶網關,將阿里云VPN網關實例的2個IP地址作為客戶網關的IP地址。
創建虛擬私有網關。
您需要在AWS側創建虛擬私有網關,并將虛擬私有網關綁定到需要和阿里云互通的VPC實例上。
創建站點到站點VPN連接。
重要阿里云和AWS平臺下的IPsec-VPN連接均支持雙隧道模式,但由于AWS平臺的兩條隧道默認關聯至同一個客戶網關,而阿里云側兩條隧道擁有不同的IP地址,導致AWS平臺和阿里云側的兩條隧道無法做到一一對應建立連接。為確保阿里云側IPsec-VPN連接下兩條隧道同時啟用,您需要在AWS平臺創建兩個站點到站點的VPN連接,每個站點到站點VPN連接關聯不同的客戶網關。
下圖展示其中一個站點到站點VPN連接的配置,隧道選項配置使用默認值。另一個站點到站點VPN連接關聯與當前VPN連接不同的客戶網關,其余配置與當前VPN連接相同。
說明上圖中本地IPv4網絡CIDR需指定為阿里云VPC下的網段,遠程IPv4網絡CIDR需指定為AWS VPC下的網段。
站點到站點VPN連接創建完成后,您可以查看VPN連接下的隧道地址信息,用于后續在阿里云側創建IPsec-VPN連接。
本文中,2個VPN連接隧道1的外部IP地址以及關聯的客戶網關IP地址如下表所示:
站點到站點VPN連接
隧道
外部IP地址
關聯的客戶網關IP地址
站點到站點VPN連接1
Tunnel 1
3.XX.XX.52
8.XX.XX.146
站點到站點VPN連接2
Tunnel 1
3.XX.XX.56
8.XX.XX.74
配置路由傳播。
您需要在虛擬私有網關關聯的VPC實例的路由表下開啟路由傳播,以確保站點到站點VPN連接下的路由可以自動傳播到VPC實例的路由表中。
使用BGP動態路由方式
創建客戶網關。
您需要在AWS側創建2個客戶網關,將阿里云VPN網關實例的2個IP地址作為客戶網關的IP地址,同時將阿里云IPsec連接的BGP AS號注冊到AWS上。
創建虛擬私有網關。
您需要在AWS側創建虛擬私有網關,并將虛擬私有網關綁定到需要和阿里云互通的VPC實例上。創建虛擬私有網關時需要指定AWS側的BGP AS號。
創建站點到站點VPN連接。
重要阿里云和AWS平臺下的IPsec-VPN連接均支持雙隧道模式,但由于AWS平臺的兩條隧道默認關聯至同一個客戶網關,而阿里云側兩條隧道擁有不同的IP地址,導致AWS平臺和阿里云側的兩條隧道無法做到一一對應建立連接。為確保阿里云側IPsec-VPN連接下兩條隧道同時啟用,您需要在AWS平臺創建兩個站點到站點的VPN連接,每個站點到站點VPN連接關聯不同的客戶網關。
下圖展示其中一個站點到站點VPN連接的配置,未展示的配置項使用默認值。另一個站點到站點VPN連接關聯與當前VPN連接不同的客戶網關、隧道 1的內部IPv4 CIDR配置為169.254.214.96/30,其余配置與當前VPN連接相同。
說明上圖中本地IPv4網絡CIDR需指定為阿里云VPC下的網段,遠程IPv4網絡CIDR需指定為AWS VPC下的網段。
站點到站點VPN連接創建完成后,您可以查看VPN連接下的隧道地址信息。
查看隧道的預共享密鑰和阿里云側需配置的BGP IP地址。
站點到站點VPN連接創建完成后,您需要在AWS平臺下載隧道對端設備(本文中指阿里云VPN網關)的VPN配置文件,在VPN配置文件中查看阿里云側需配置的預共享密鑰和BGP IP地址。下載配置文件的操作,請參見下載配置文件。本文下載配置文件時供應商選擇Generic、IKE版本選擇IKEv2。
說明創建站點到站點的VPN連接時如果您指定了預共享密鑰,無需再通過VPN配置文件查看。如果您使用了系統自動生成的預共享密鑰,您可以通過VPN配置文件查看系統生成的預共享密鑰。阿里云側和AWS側隧道的預共享密鑰需保持一致。
本文中,兩個VPN連接隧道1的外部IP地址、BGP IP地址以及關聯的客戶網關IP地址如下表所示:
站點到站點VPN連接
隧道
外部IP地址
AWS側BGP IP地址
阿里云側BGP IP地址
關聯的客戶網關IP地址
站點到站點VPN連接1
Tunnel 1
3.XX.XX.52
169.254.116.209
169.254.116.210
8.XX.XX.146
站點到站點VPN連接2
Tunnel 1
3.XX.XX.56
169.254.214.97
169.254.214.98
8.XX.XX.74
配置路由傳播。
您需要在虛擬私有網關關聯的VPC實例的路由表下開啟路由傳播,以確保站點到站點VPN連接下的路由可以自動傳播到AWS VPC實例的路由表中。
步驟三:在阿里云部署VPN網關
在AWS平臺完成VPN配置后,請根據以下信息在阿里云側部署VPN網關,以便AWS VPC和阿里云VPC之間建立IPsec-VPN連接。
創建用戶網關。
登錄VPN網關管理控制臺。
在左側導航欄,選擇
。在頂部菜單欄選擇用戶網關的地域。
用戶網關地域需和VPN網關實例的地域相同。
在用戶網關頁面,單擊創建用戶網關。
在創建用戶網關面板,根據以下信息進行配置,然后單擊確定。
您需要創建兩個用戶網關,并將AWS平臺站點到站點VPN連接的隧道外部IP地址作為用戶網關的IP地址,以建立兩個加密隧道。以下僅列舉本文強相關配置項,其余配置保持默認值或為空。更多信息,請參見創建和管理用戶網關。
重要僅使用每個站點到站點VPN連接的Tunnel1的外部IP地址作為用戶網關的地址。每個站點到站點VPN連接的Tunnel2的外部IP地址默認不使用,IPsec-VPN連接創建完成后,每個站點到站點VPN連接的Tunnel2默認不通。
配置項
說明
用戶網關1
用戶網關2
名稱
輸入用戶網關的名稱。
輸入用戶網關1。
輸入用戶網關2。
IP地址
輸入AWS平臺隧道的外部IP地址。
輸入3.XX.XX.52。
輸入3.XX.XX.56。
自治系統號
輸入AWS虛擬私有網關的BGP AS號。
說明使用BGP動態路由方式時,需配置該項。
輸入64512。
輸入64512。
創建IPsec連接。
在左側導航欄,選擇
。在頂部菜單欄選擇IPsec連接的地域。
IPsec連接的地域需和VPN網關實例的地域相同。
在IPsec連接頁面,單擊創建IPsec連接。
在創建IPsec連接頁面,根據以下信息配置IPsec連接,然后單擊確定。
配置項
說明
本文示例值
名稱
輸入IPsec連接的名稱。
輸入IPsec連接。
綁定資源
選擇IPsec連接綁定的資源類型。
選擇VPN網關。
VPN網關
選擇IPsec連接關聯的VPN網關實例。
選擇已創建的VPN網關。
路由模式
選擇路由模式。
目的路由模式:基于目的IP地址路由和轉發流量。
感興趣流模式:基于源IP地址和目的IP地址精確的路由和轉發流量。
本文使用靜態路由方式時,選擇使用感興趣流模式(推薦)。
本端網段:輸入10.0.0.0/16。
對端網段:輸入192.168.0.0/16。
本文使用BGP動態路由方式時,選擇使用目的路由模式(推薦)。
立即生效
選擇IPsec連接的配置是否立即生效。取值:
是:配置完成后立即進行協商。
否:當有流量進入時進行協商。
選擇是。
啟用BGP
如果IPsec連接需要使用BGP路由協議,需要打開BGP功能的開關,系統默認關閉BGP功能。
本文此處保持默認值不打開BGP配置開關,默認為靜態路由方式。IPsec連接創建完成后如需使用BGP動態路由,則再單獨添加BGP配置。
Tunnel 1
為隧道1(主隧道)添加VPN相關配置。
系統默認隧道1為主隧道,隧道2為備隧道,且不支持修改。
用戶網關
為主隧道添加待關聯的用戶網關實例。
選擇用戶網關1。
預共享密鑰
輸入主隧道的認證密鑰,用于身份認證。
密鑰長度為1~100個字符,支持數字、大小寫英文字母及右側字符
~`!@#$%^&*()_-+={}[]\|;:',.<>/?
。若您未指定預共享密鑰,系統會隨機生成一個16位的字符串作為預共享密鑰。
重要隧道及其對端網關設備配置的預共享密鑰需一致,否則系統無法正常建立IPsec-VPN連接。
當前隧道的認證密鑰需和連接的AWS平臺隧道的密鑰一致。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
IKE配置的SA生存周期(秒)需與AWS平臺保持一致,本文設置為28800。
IPsec配置的SA生存周期(秒)需與AWS平臺保持一致,本文設置為3600。
其余配置項使用默認值。關于默認值的說明,請參見創建和管理IPsec連接(雙隧道模式)。
Tunnel 2
為隧道2(備隧道)添加VPN相關配置。
用戶網關
為備隧道添加待關聯的用戶網關實例。
選擇用戶網關2。
預共享密鑰
輸入備隧道的認證密鑰,用于身份認證。
當前隧道的認證密鑰需和連接的AWS平臺隧道的密鑰一致。
加密配置
添加IKE配置、IPsec配置、DPD、NAT穿越等配置。
IKE配置的SA生存周期(秒)需與AWS平臺保持一致,本文設置為28800。
IPsec配置的SA生存周期(秒)需與AWS平臺保持一致,本文設置為3600。
其余配置項使用默認值。關于默認值的說明,請參見創建和管理IPsec連接(雙隧道模式)。
在創建成功對話框中,單擊取消。
配置VPN網關路由。
使用靜態路由方式
創建IPsec連接后需要為VPN網關實例配置路由。創建IPsec連接時,如果路由模式您選擇了感興趣流模式,在IPsec連接創建完成后,系統會自動在VPN網關實例下創建策略路由,路由是未發布狀態。您需要執行本操作,將VPN網關實例下的策略路由發布至VPC中。
在左側導航欄,選擇 。
在頂部菜單欄,選擇VPN網關實例的地域。
在VPN網關頁面,單擊目標VPN網關實例ID。
在VPN網關實例詳情頁面單擊策略路由表頁簽,找到目標路由條目,在操作列單擊發布。
在發布路由對話框,單擊確定。
使用BGP動態路由方式
為IPsec連接添加BGP配置。
在左側導航欄,選擇 。
在IPsec連接頁面,找到IPsec連接,單擊IPsec連接ID。
在IPsec連接基本信息區域,在啟用BGP右側單擊按鈕,在BGP配置對話框根據以下信息進行配置,然后單擊確定。
配置項
配置項說明
IPsec連接配置
本端自治系統號
輸入IPsec連接的自治系統號。
本文輸入65530。
Tunnel 1
為主隧道添加BGP配置。
為IPsec連接的主隧道添加BGP配置。
隧道網段
輸入建立加密隧道時使用的網段。
本文輸入169.254.116.208/30。
本端BGP地址
輸入IPsec連接的BGP IP地址。
該地址為隧道網段內的一個IP地址。
本文輸入169.254.116.210。
Tunnel 2
為備隧道添加BGP配置。
為IPsec連接的備隧道添加BGP配置。
隧道網段
輸入建立加密隧道時使用的網段。
本文輸入169.254.214.96/30。
本端BGP地址
輸入IPsec連接的BGP IP地址。
該地址為隧道網段內的一個IP地址。
本文輸入169.254.214.98。
根據以下步驟為VPN網關實例開啟BGP路由自動傳播功能。
在左側導航欄,選擇 。
在VPN網關頁面,找到VPN網關實例,在操作列選擇 。
在開啟路由自動傳播對話框,單擊確定。
步驟四:測試連通性
配置完成后,阿里云VPC和AWS VPC之間已經成功建立IPsec-VPN連接。下文以阿里云ECS實例訪問AWS EC2實例為例,測試VPC之間的連通性。
在測試連通性前,請先在AWS平臺和阿里云側分別排查VPC實例所應用的訪問控制策略(例如網絡ACL、安全組規則等),以確保訪問控制策略允許兩個VPC實例下的資源互相訪問。
登錄阿里云VPC實例下的一個ECS實例。關于如何登錄ECS實例,請參見ECS遠程連接方式概述。
在ECS實例中執行
ping
命令,訪問AWS平臺的EC2實例,驗證通信是否正常。如果ECS實例可以收到AWS平臺EC2實例的回復報文,則證明VPC之間可以正常通信。
ping <AWS平臺EC2實例的私網IP地址>
測試IPsec-VPN連接的高可用性。
雙隧道模式的IPsec-VPN擁有高可用性,在主隧道中斷的情況下,流量自動通過備隧道進行傳輸。以下內容介紹如何驗證雙隧道模式IPsec-VPN連接的高可用性。
保持登錄阿里云VPC實例下的ECS實例。
執行以下命令,使阿里云下的ECS實例持續訪問AWS平臺的EC2實例。
ping <AWS平臺EC2實例的私網IP地址> -c 10000
中斷IPsec-VPN連接的主隧道。
本文通過在阿里云側修改IPsec連接下主隧道的預共享密鑰來中斷主隧道,主隧道兩端的預共享密鑰不一致,則主隧道會中斷。
查看阿里云ECS實例下的通信情況,會發現ECS實例下的流量在短暫中斷后,又重新恢復通信,表示在主隧道中斷后,流量自動通過備隧道進行通信。
您可以在阿里云監控頁簽查看隧道的流量監控信息。具體操作,請參見監控IPsec連接。