對于一些大型企業用戶,如果您已經在阿里云部署了多個專有網絡 VPC(Virtual Private Cloud),希望多個VPC可以與企業本地數據中心IDC(Internet Data Center)實現網絡全互通,您可以通過建立IPsec-VPN連接將本地數據中心加密接入阿里云,其中IPsec連接綁定轉發路由器,通過轉發路由器實現同地域或跨地域的多個VPC與本地數據中心網絡全互通。
環境要求
公網網絡類型的IPsec連接綁定轉發路由器時,本地數據中心的網關設備必須配置公網IP地址。
對于支持IPsec-VPN連接雙隧道模式的地域,推薦本地數據中心的網關設備配置2個公網IP地址或者本地數據中心擁有兩個本地網關設備,每個本地網關設備均擁有一個公網IP地址,以建立高可用的IPsec-VPN連接。
本地數據中心的網關設備必須支持IKEv1或IKEv2協議,支持任意一種協議的設備均可以和轉發路由器建立IPsec-VPN連接。
本地數據中心和VPC間互通的網段沒有重疊。
場景示例
本文將以下圖場景為例。某企業已經在泰國(曼谷)地域創建了VPC1、在菲律賓(馬尼拉)地域創建了VPC2。VPC1和VPC2中使用云服務器ECS(Elastic Compute Service)部署了相關業務。本文將介紹如何通過IPsec-VPN連接(IPsec連接使用公網網絡類型)將本地數據中心加密接入阿里云,并通過轉發路由器實現本地數據中心、泰國(曼谷)地域VPC1、菲律賓(馬尼拉)地域VPC2網絡全互通。
本文將以雙隧道模式的IPsec-VPN連接為例進行說明,一個雙隧道模式的IPsec-VPN連接包含兩條隧道,兩條隧道分布在不同的可用區并自動形成ECMP(Equal-Cost Multipath Routing)鏈路,支持可用區級別的容災。雙隧道模式的IPsec-VPN連接功能公測中,開始操作前,請確保您已經向客戶經理申請了使用權限。更多信息,請參見綁定轉發路由器場景雙隧道IPsec-VPN連接說明。
如果您的地域僅支持單隧道模式的IPsec-VPN連接,如何建立高可用的IPsec-VPN連接,請參見建立多條公網IPsec-VPN連接實現流量的負載分擔。
網段規劃
規劃網段時,請確保本地數據中心、VPC1、VPC2之間要互通的網段沒有重疊。
創建IPsec-VPN連接時,推薦使用BGP動態路由方式。如果您要使用靜態路由方式,請確保本地網關設備支持配置靜態ECMP路由。本文將以BGP動態路由方式為例進行說明。
本地數據中心和VPC網段規劃
資源 | 網段 | IP地址 |
本地數據中心 | 待和VPC互通的網段:192.168.55.0/24 | 服務器IP地址:192.168.55.65 |
本地網關設備 | 不涉及 | 本地網關設備連接公網的物理接口:
|
VPC1 | 主網段:192.168.0.0/16 交換機1:192.168.66.0/24 交換機2:192.168.20.0/24 | ECS1 IP地址:192.168.66.193 |
VPC2 | 主網段:10.0.0.0/16 交換機1:10.0.10.0/24 交換機2:10.0.20.0/24 | ECS2 IP地址:10.0.20.61 |
BGP網段規劃
BGP隧道網段需要是在169.254.0.0/16內的子網掩碼為30的網段,且不能是169.254.0.0/30、169.254.1.0/30、169.254.2.0/30、169.254.3.0/30、169.254.4.0/30、169.254.5.0/30、169.254.6.0/30和169.254.169.252/30。一個IPsec連接下兩條隧道的隧道網段不能相同。
資源 | 隧道 | BGP隧道網段 | BGP IP地址 | BGP AS號(本端自治系統號) |
IPsec連接實例 | 隧道1 | 169.254.10.0/30 | 169.254.10.1 | 65535 |
隧道2 | 169.254.20.0/30 | 169.254.20.1 | ||
本地網關設備 | 隧道1 | 169.254.10.0/30 | 169.254.10.2 | 65530 |
隧道2 | 169.254.20.0/30 | 169.254.20.2 |
操作步驟
步驟一:創建云企業網實例和轉發路由器實例
創建IPsec-VPN連接前,需要先創建云企業網實例,并在云企業網實例下創建轉發路由器實例。
創建云企業網實例。創建云企業網實例時使用默認配置即可。
分別在菲律賓(馬尼拉)和泰國(曼谷)地域各創建一個轉發路由器實例。具體操作,請參見創建轉發路由器實例。
菲律賓(馬尼拉)地域的轉發路由器用于連接菲律賓(馬尼拉)地域下的VPC2,在菲律賓(馬尼拉)地域創建轉發路由器實例時使用默認配置即可。
泰國(曼谷)地域的轉發路由器用于連接泰國(曼谷)地域下的VPC1以及本地數據中心。創建泰國(曼谷)地域的轉發路由器實例時需要配置TR地址段,用于創建IPsec-VPN連接,其余配置項使用默認值即可。
說明建議您依據就近原則,在離本地數據中心最近的阿里云地域創建轉發路由器實例。
本文使用的TR地址段為10.10.10.0/24。TR地址段需和本地數據中心、VPC1、VPC2中要參與網絡互通的網段不沖突。
步驟二:創建IPsec-VPN連接
創建轉發路由器實例后,可以開始創建IPsec-VPN連接,用于將本地數據中心連接至阿里云。
創建用戶網關
您需要通過創建用戶網關將數據中心本地網關設備的公網IP地址注冊到阿里云上,本地數據中心僅能使用注冊過的公網IP地址與阿里云建立IPsec-VPN連接。
- 登錄VPN網關管理控制臺。
在左側導航欄,選擇 。
在頂部菜單欄,選擇用戶網關實例的地域。
說明用戶網關實例的地域必須和轉發路由器實例的地域相同。
在用戶網關頁面,單擊創建用戶網關。
在創建用戶網關面板,根據以下信息配置用戶網關實例,然后單擊確定。
根據以下信息創建2個用戶網關實例,注冊本地網關設備的2個公網IP地址。以下僅列舉本文強相關的配置項,其余配置項保持默認狀態。更多信息,請參見創建和管理用戶網關。
名稱
IP地址
自治系統號
用戶網關1
輸入本地網關設備的公網IP地址1120.XX.XX.104。
輸入本地網關設備自治系統號65530。
說明IPsec-VPN連接使用BGP動態路由方式時,需配置該項。
用戶網關2
輸入本地網關設備的公網IP地址2121.XX.XX.3。
創建IPsec連接
用戶網關創建完成后,需要在阿里云側創建IPsec連接,用于對接本地數據中心。創建IPsec連接時需要指定VPN隧道使用的加密算法、認證算法、預共享密鑰等信息。
在左側導航欄,選擇 。
在頂部菜單欄,選擇IPsec連接的地域。
IPsec連接的地域需和待綁定的轉發路由器實例所屬的地域相同。
在IPsec連接頁面,單擊創建IPsec連接。
在創建IPsec連接頁面,根據以下信息配置IPsec連接,然后單擊確定。
以下僅列舉本文強相關的配置項,其余配置項保持默認狀態。更多信息,請參見創建和管理IPsec連接(雙隧道模式)。
配置項
IPsec連接
名稱
定義為IPsec連接1。
綁定資源
選擇IPsec連接要綁定的資源。
需要選擇云企業網。
網關類型
選擇IPsec連接的網絡類型。
需要選擇公網。
云企業網實例ID
選擇在步驟一中創建的云企業網實例。
轉發路由器
系統自動顯示云企業網實例已在當前地域創建的轉發路由器實例ID。
路由模式
選擇IPsec連接的路由模式。
如果IPsec-VPN連接計劃使用BGP動態路由,推薦使用目的路由模式。本文使用目的路由模式。
立即生效
本文使用默認值是,在IPsec連接配置完成后,會立即開始IPsec-VPN連接協商。
Tunnel 1
用戶網關
關聯用戶網關1。
預共享密鑰
fddsFF111****。
重要IPsec連接及其對端網關設備配置的預共享密鑰需一致,否則系統無法正常建立IPsec-VPN連接。
加密配置
除以下參數外,其余配置項保持默認值。
IKE配置的DH分組選擇group14。
IPsec配置的DH分組選擇group14。
說明您需要根據本地網關設備的支持情況選擇加密配置參數,確保IPsec連接和本地網關設備的加密配置保持一致。
Tunnel 2
用戶網關
關聯用戶網關2。
預共享密鑰
fddsFF222****。
加密配置
除以下參數外,其余配置項保持默認值。
IKE配置的DH分組選擇group14。
IPsec配置的DH分組選擇group14。
說明您需要根據本地網關設備的支持情況選擇加密配置參數,確保IPsec連接和本地網關設備的加密配置保持一致。
高級配置
使用默認路由配置,即開啟所有高級配置選項。
在創建成功對話框中,單擊取消。
保持在IPsec連接頁面,找到創建的IPsec連接,在操作列單擊生成對端配置。
對端配置是指需要在IPsec連接對端添加的VPN配置。本文場景中您需要將這些配置添加在本地網關設備上。
在IPsec連接配置對話框,復制配置并保存在您的本地,用于后續配置本地網關設備。
配置本地網關設備
創建IPsec連接后,您需要在本地網關設備上添加VPN配置,使本地網關設備與阿里云之間成功建立IPsec-VPN連接。
說明本文以思科防火墻ASA(軟件版本9.19.1)作為配置示例。不同軟件版本的配置命令可能會有所差異,操作時請根據您的實際環境查詢對應文檔或咨詢相關廠商。更多本地網關設備配置示例,請參見本地網關設備配置示例。
以下內容包含的第三方產品信息僅供參考。阿里云對第三方產品的性能、可靠性以及操作可能帶來的潛在影響,不做任何暗示或其他形式的承諾。
登錄思科防火墻的命令行窗口并進入配置模式。
ciscoasa> enable Password: ******** #輸入進入enable模式的密碼。 ciscoasa# configure terminal #進入配置模式。 ciscoasa(config)#
查看接口配置和公網路由配置。
思科防火墻已完成了接口配置,并已開啟接口。以下為本文的接口配置示例。
ciscoasa(config)# show running-config interface ! interface GigabitEthernet0/0 nameif outside1 #GigabitEthernet0/0接口名稱。 security-level 0 ip address 120.XX.XX.104 255.255.255.255 #GigabitEthernet0/0接口配置的公網IP地址。 ! interface GigabitEthernet0/1 #連接本地數據中心的接口。 nameif private #GigabitEthernet0/1接口名稱。 security-level 100 #指定連接本地數據中心接口(私網接口)的security-level低于公網接口。 ip address 192.168.55.217 255.255.255.0 #GigabitEthernet0/1接口配置的IP地址。 ! interface GigabitEthernet0/2 nameif outside2 #GigabitEthernet0/2接口名稱。 security-level 0 ip address 121.XX.XX.3 255.255.255.255 #GigabitEthernet0/2接口配置的公網IP地址。 ! route outside1 121.XX.XX.170 255.255.255.255 192.XX.XX.172 #配置訪問阿里云側隧道1公網IP地址的路由,下一跳為公網地址。 route outside2 121.XX.XX.232 255.255.255.255 192.XX.XX.158 #配置訪問阿里云側隧道2公網IP地址的路由,下一跳為公網地址。 route private 192.168.55.0 255.255.255.0 192.168.55.216 #配置去往本地數據中心的路由。
為公網接口開啟IKEv2功能。
crypto ikev2 enable outside1 crypto ikev2 enable outside2
創建IKEv2 Policy,指定IKE階段認證算法、加密算法、DH分組和SA生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IKE配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IKE配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
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生存周期,需和阿里云側保持一致。
重要阿里云側配置IPsec連接時,IPsec配置階段的加密算法、認證算法和DH分組均只支持指定一個值,不支持指定多個值。建議在思科防火墻中IPsec配置階段的加密算法、認證算法和DH分組也均只指定一個值,該值需與阿里云側保持一致。
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,指定隧道的預共享密鑰,需和阿里云側保持一致。
tunnel-group 121.XX.XX.170 type ipsec-l2l #指定隧道1的封裝模式為l2l。 tunnel-group 121.XX.XX.170 ipsec-attributes ikev2 remote-authentication pre-shared-key fddsFF111**** #指定隧道1對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key fddsFF111**** #指定隧道1本段的預共享密鑰,需和阿里云側的保持一致。 ! tunnel-group 121.XX.XX.232 type ipsec-l2l #指定隧道2的封裝模式為l2l。 tunnel-group 121.XX.XX.232 ipsec-attributes ikev2 remote-authentication pre-shared-key fddsFF222**** #指定隧道2對端的預共享密鑰,即阿里云側的預共享密鑰。 ikev2 local-authentication pre-shared-key fddsFF222**** #指定隧道2本段的預共享密鑰,需和阿里云側的保持一致。 !
創建tunnel接口。
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 121.XX.XX.170 #指定隧道1目的地址為阿里云側隧道1的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道1應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道1接口。 ! interface Tunnel2 #創建隧道2的接口。 nameif ALIYUN2 ip address 169.254.20.2 255.255.255.252 #指定接口的IP地址。 tunnel source interface outside2 #指定隧道2源地址為公網接口GigabitEthernet0/2。 tunnel destination 121.XX.XX.232 #指定隧道2目的地址為阿里云側隧道2的公網IP地址。 tunnel mode ipsec ipv4 tunnel protection ipsec profile ALIYUN-PROFILE #指定隧道2應用ipsec profile ALIYUN-PROFILE。 no shutdown #開啟隧道2接口。 !
完成上述配置后,本地數據中心已經可以與阿里云成功建立IPsec-VPN連接,您可以在阿里云IPsec連接實例詳情頁面查看IPsec-VPN連接狀態。如果您的環境中未成功建立IPsec-VPN連接,請嘗試自助排查問題。具體操作,請參見IPsec-VPN自助診斷概述。
配置路由
IPsec-VPN連接成功建立后,本地數據中心還無法與云上資源進行互通,您需要在本地數據中心和IPsec連接中添加BGP路由。
說明本部分將一并提供使用靜態路由的方式,但推薦您使用BGP動態路由方式。使用靜態路由方式時,請確保本地網關設備支持配置靜態ECMP路由,否則本地數據中心去往阿里云的流量無法通過ECMP路徑進行傳輸,云上的流量卻能通過ECMP路徑傳輸至本地數據中心,可能會導致流量的傳輸路徑不符合您的期望。
BGP動態路由
在本地網關設備中配置BGP路由。
router bgp 65530 address-family ipv4 unicast neighbor 169.254.10.1 remote-as 65535 #指定BGP鄰居,即阿里云側隧道1的IP地址。 neighbor 169.254.10.1 ebgp-multihop 255 neighbor 169.254.10.1 activate #激活BGP鄰居。 neighbor 169.254.20.1 remote-as 65535 #指定BGP鄰居,即阿里云側隧道2的IP地址。 neighbor 169.254.20.1 ebgp-multihop 255 neighbor 169.254.20.1 activate #激活BGP鄰居。 network 192.168.55.0 mask 255.255.255.0 #宣告本地數據中心的網段。 maximum-paths 5 #提升BGP ECMP等價路由條目數量。 exit-address-family
請根據您的實際網絡環境按需在本地數據中心添加路由配置,使本地數據中心的客戶端可以通過本地網關設備訪問云上資源。
為阿里云IPsec連接實例配置BGP路由。
在左側導航欄,選擇 。
在IPsec連接頁面,找到IPsec連接,單擊IPsec連接ID。
在IPsec連接基本信息區域,在啟用BGP右側單擊按鈕,在BGP配置對話框根據以下信息進行配置,然后單擊確定。
關于配置項的說明,請參見BGP配置。
配置項
IPsec連接1配置
本端自治系統號
本文輸入65535。
Tunnel 1
隧道網段
本文輸入169.254.10.0/30。
本端BGP地址
本文輸入169.254.10.1。
Tunnel 2
隧道網段
本文輸入169.254.20.0/30。
本端BGP地址
本文輸入169.254.20.1。
BGP配置完成后,可以在阿里云IPsec連接實例詳情頁面查看BGP協商狀態。BGP狀態正常后,本地數據中心和IPsec連接之間會自動開始傳播路由。IPsec連接會將云上的路由自動傳播至本地數據中心,同時也會將學習到的本地數據中心的路由自動傳播至轉發路由器中。
靜態路由
說明如何配置靜態路由本文僅作描述,具體配置命令請查閱本地網關設備廠商的相關文檔。
在本地網關設備中添加去往VPC的靜態路由。
添加去往VPC2的兩條路由。目標網段為10.0.0.0/16,下一跳分別指向隧道1和隧道2,使兩條路由組成ECMP路徑。
添加去往VPC1的兩條路由。目標網段為192.168.66.0/24,下一跳分別指向隧道1和隧道2,使兩條路由組成ECMP路徑。
按需在本地數據中心添加路由配置,使本地數據中心的客戶端可以通過本地網關設備訪問云上資源。
在阿里云IPsec連接實例中添加去往本地數據中心的目的路由。目標網段為192.168.55.0/24,下一跳指向IPsec連接1。具體操作,請參見配置目的路由。
步驟三:實現本地數據中心和VPC全互通
本地數據中心成功連接至阿里云后,您需要將VPC1和VPC2連接至轉發路由器,通過轉發路由器實現本地數據中心、VPC1、VPC2的全互通。
創建VPC連接。
將VPC1接入至泰國(曼谷)地域的轉發路由器,VPC2接入至菲律賓(馬尼拉)地域的轉發路由器。
- 登錄云企業網管理控制臺。
在云企業網實例詳情頁面的
頁簽,找到菲律賓(馬尼拉)地域的轉發路由器實例,在操作列單擊創建網絡實例連接。在連接網絡實例頁面,根據以下信息進行配置,然后單擊確定創建。
創建VPC連接的主要配置下表所示,其余配置項保持默認狀態。更多信息,請參見使用企業版轉發路由器創建VPC連接。
配置項
VPC1連接
VPC2連接
實例類型
選擇專有網絡(VPC)。
地域
選擇泰國(曼谷)。
本文選擇菲律賓(馬尼拉)。
資源歸屬UID
選擇同賬號。
連接名稱
定義為VPC1連接。
定義為VPC2連接。
網絡實例
選擇VPC1。
選擇VPC2。
交換機
請確保選擇的每個交換機實例下擁有一個空閑的IP地址。如果VPC實例在轉發路由器支持的可用區中并沒有交換機實例或者交換機實例下沒有空閑的IP地址,您需要新建一個交換機實例。 具體操作,請參見創建和管理交換機。
高級配置
使用默認路由配置,即開啟所有高級配置選項。
連接VPC1和VPC2后,本地數據中心和VPC1位于相同地域,已經可以通過轉發路由器實現網絡互通,但VPC2與VPC1、本地數據中心位于不同地域,還需要創建跨地域連接才能實現相互通信。
創建跨地域連接。
需要在泰國(曼谷)轉發路由器和菲律賓(馬尼拉)轉發路由器之間創建跨地域連接,實現兩個轉發路由器下的資源跨地域互通。
在云企業網實例詳情頁面的
頁簽,單擊設置跨地域帶寬。在連接網絡實例頁面,根據以下信息配置跨地域連接,然后單擊確定創建。
配置項
說明
實例類型
選擇跨地域連接。
地域
選擇泰國(曼谷)。
對端地域
選擇菲律賓(馬尼拉)。
帶寬分配方式
選擇按流量付費,該帶寬分配方式將按照產生的流量計費,費用由CDT產品結算。
帶寬
輸入跨地域連接的帶寬值。單位:Mbps。
默認鏈路類型
鏈路類型默認為金。本文保持默認值。
高級配置
使用默認路由配置,即開啟所有高級配置選項。
查看路由。
VPC連接、跨地域連接創建完成后,轉發路由器會根據高級配置自動完成路由的傳播和學習。您可以在轉發路由器實例、IPsec連接實例、本地數據中心查看路由學習情況。
泰國(曼谷)地域轉發路由器路由表
IPsec連接BGP路由表
本地數據中心路由
步驟四:測試網絡連通性
完成上述操作后,本地數據中心、VPC1、VPC2之間已經可以實現任意互通。本部分介紹如何測試網絡連通性,以及如何測試IPsec-VPN連接的高可用性。
測試本地數據中心、VPC1、VPC2之間網絡連通性。
登錄本地數據中心客戶端的命令行界面。
在客戶端中執行
ping
命令,嘗試訪問VPC1下的ECS1實例和VPC2下的ECS2實例。ping <ECS IP地址>
如上圖所示,如果ECS1可以收到響應報文,則表示本地數據中心與VPC1、VPC2已實現網絡互通。
登錄VPC1下的ECS1實例。具體操作,請參見ECS遠程連接操作指南。
在ECS1實例中執行
ping
命令,嘗試訪問VPC2的ECS2實例。ping <ECS2 IP地址>
如上圖所示,如果ECS1可以收到響應報文,則表示VPC1與VPC2已實現網絡互通。
測試IPsec-VPN連接的高可用性。
登錄VPC1的ECS1實例。
執行以下命令,使VPC1下的ECS1實例連續向本地數據中心發送訪問報文。
ping <本地數據中心服務器IP地址> -c 10000
中斷IPsec-VPN連接下的一條隧道。
您可以通過修改IPsec連接隧道的預共享密鑰來中斷隧道,隧道兩端的預共享密鑰不一致,則隧道會中斷。
中斷隧道后,您可以觀察到VPC1實例下ECS1實例的通信會有短暫中斷,則表示在一條隧道中斷后,流量自動通過另一條隧道進行通信。
您可以在IPsec連接實例監控頁簽查看每條隧道的流量監控數據。具體操作,請參見監控IPsec連接。
隧道1
隧道2